re PR tree-optimization/45232 (tree reassociation introduces undefined overflow)
[gcc.git] / gcc / ChangeLog
1 2010-08-12 Richard Guenther <rguenther@suse.de>
2
3 PR tree-optimization/45232
4 * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
5 for types with undefined overflow.
6 (reassociate_bb): Allow re-associating of bit and min/max
7 operations for types with undefined overflow.
8 * tree-ssa-forwprop.c (associate_plusminus): New function.
9 (tree_ssa_forward_propagate_single_use_vars): Call it.
10
11 2010-08-12 Richard Guenther <rguenther@suse.de>
12
13 * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
14 * tree-ssa-alias.c (get_ptr_info): Move ...
15 * tree-ssanames.c (get_ptr_info): ... here. Initialize
16 align and misalign fields conservatively.
17 * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
18 derive alignment information.
19 (evaluate_stmt): Derive alignment information from memory
20 allocation functions.
21 * tree.h (get_pointer_alignment): Make unsigned.
22 * builtins.c (get_object_alignment): Use alignment information we
23 have computed for pointers.
24 (get_pointer_alignment): Likewise. Make conservative, return
25 and unsigned value.
26 (expand_builtin_strlen): Adjust.
27 (expand_builtin_memcmp): Likewise.
28 (expand_builtin_strcmp): Likewise.
29 (expand_builtin_strncmp): Likewise.
30 (get_builtin_sync_mem): Use at least mode alignment.
31 (fold_builtin_memset): Adjust.
32 (fold_builtin_memory_op): Likewise.
33 * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
34 information also dump pointer alignment knowledge.
35 (dump_gimple_stmt): Likewise.
36
37 2010-08-12 Uros Bizjak <ubizjak@gmail.com>
38
39 * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
40 (EMPTY_FIELD_BOUNDARY): Remove.
41 * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
42
43 2010-08-12 Jakub Jelinek <jakub@redhat.com>
44
45 PR debug/45259
46 * caller-save.c (save_call_clobbered_regs): Only swap notes with
47 DEBUG_INSNs if n_regs_saved.
48
49 2010-08-12 Wei Guozhi <carrot@google.com>
50
51 PR target/44999
52 * config/arm/arm.md (andsi3): Change to zero extension if possible.
53 * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
54
55 2010-08-11 Vladimir Makarov <vmakarov@redhat.com>
56
57 * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
58
59 * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
60
61 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
62
63 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
64 the case removed in the previous patch, when the only phi argument
65 is defined in the same loop as the phi node itself. Handle it
66 separately from the invariant case by both propagating it outside
67 the region and replacing the phi node with an assign.
68
69 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
70
71 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
72 constant phi nodes with one argument are is_gimple_min_invariant
73 and SSA_NAME_IS_DEFAULT_DEF.
74
75 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
76
77 * graphite-cloog-util.c (oppose_constraint):
78 Extend loop counter's value range (CLOOG_ORG).
79 (cloog_matrix_to_ppl_constraint): Same.
80 (new_Constraint_System_from_Cloog_matrix): Same.
81 * graphite-cloog-compat.h (matrix_num_type): New.
82
83 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
84
85 * graphite.c (graphite_initialize): Do not initialize
86 CLooG and initialize the Parma Polyhedra Library
87 manually when using CLOOG_ORG.
88 (graphite_finalize): Do not finalize CLooG and finalize
89 the Parma Polyhedra Library manually when using CLOOG_ORG.
90 * graphite-cloog-compat.h (cloog_initialize): Hide function
91 when using CLOOG_ORG.
92 (cloog_finalize): Same.
93
94 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
95
96 * graphite-clast-to-gimple.c (free_scattering): Change
97 CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
98 (CLOOG_ORG).
99 (build_cloog_prog): Same.
100 * graphite-cloog-compat.h (cloog_domain): Removed.
101 (cloog_scattering): New.
102 (cloog_set_domain): Removed.
103 (cloog_set_scattering): New.
104 (cloog_next_domain): Removed.
105 (cloog_next_scattering): New.
106 (cloog_set_next_domain): Removed.
107 (cloog_set_next_scattering): New.
108 (CloogScatteringList): New.
109 (CloogScattering): New.
110 (cloog_scattering_free): New.
111 (new_Cloog_Scattering_from_ppl_Polyhedron): New.
112 * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
113 New.
114
115 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
116
117 * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
118 CloogState.
119 (set_cloog_options): Same.
120 (print_clast_stmt): Same.
121 (scop_to_clast): Same.
122 (print_generated_program): Same.
123 (gloog): Same.
124 * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
125 (scop_to_clast): Extend with CloogState.
126 * graphite-cloog-util.c: Include graphite-cloog-compat.h
127 (new_Cloog_Domain_from_ppl_Polyhedron):
128 Extend with CloogState. Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
129 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
130 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
131 * graphite-cloog-util.h (build_cloog_prog): Same.
132 * graphite-cloog-copat.h (build_cloog_prog): New.
133 (CloogState): New.
134 (cloog_state_malloc): New.
135 (cloog_state_free): New.
136 (cloog_loop_malloc): New.
137 (cloog_options_malloc): New.
138 (cloog_statement_alloc): New.
139 (cloog_domain_from_cloog_matrix): New.
140 (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
141 (new_Cloog_Domain_from_ppl_Polyhedron): New.
142
143 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
144
145 * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
146 type of NAME now depends on used CLooG version.
147 (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
148 (gcc_type_for_clast_expr): Same.
149 (print_clast_stmt): Replace pprint with clast_pprint.
150 * graphite-cloog-compat.h: Provide compatibility macros for
151 CLooG Legacy.
152 (clast_name_p): New.
153 (clast_expr_term): New.
154 (clast_expr_red): New.
155 (clast_expr_bin): New.
156 (clast_pprint): New.
157
158 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
159
160 * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
161 compatible to newer CLooG releases (CLOOG_ORG).
162 (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
163 (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
164 * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
165 (build_cloog_prog) : New.
166 (cloog_program_extract_scalars): New.
167 (cloog_program_scatter): New.
168
169 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
170
171 * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
172 conditionally (CLOOG_ORG).
173 * graphite-cloog-compat.h: New. Include graphite-cloog-compat.h.
174 (cloog_statement_usr): New.
175 (cloog_domain): Same.
176 (cloog_set_domain): Same.
177 (cloog_next_domain): Same.
178 (cloog_set_next_domain): Same.
179 (cloog_program_nb_scattdims): Same.
180 (cloog_program_set_nb_scattdims): Same.
181 (cloog_program_names): Same.
182 (cloog_program_set_names): Same.
183 (cloog_program_set_context): Same.
184 (cloog_program_set_loop): Same.
185 (cloog_program_blocklist): Same.
186 (cloog_program_set_blocklist): Same.
187 (cloog_program_scaldims): Same.
188 (cloog_program_set_scaldims): Same.
189 (cloog_names_nb_parameters): Same.
190 (cloog_names_set_nb_parameters): Same.
191 (cloog_names_parameters): Same.
192 (cloog_names_set_parameters): Same.
193 (cloog_names_set_nb_iterators): Same.
194 (cloog_names_set_iterators): Same.
195 (cloog_names_set_nb_scattering): Same.
196 (cloog_names_set_scattering): Same.
197 (cloog_statement_set_usr): Same.
198 (cloog_loop_set_next): Same.
199 (cloog_loop_set_domain): Same.
200 (cloog_loop_set_block): Same.
201 (cloog_block_list_next): Same.
202 (cloog_block_list_set_next):
203 (cloog_block_list_set_block): Same.
204
205 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
206
207 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
208 a bool.
209 (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
210 (rewrite_commutative_reductions_out_of_ssa_loop): Same.
211 (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
212 when something has been changed.
213 (rewrite_commutative_reductions_out_of_ssa): Same.
214
215 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
216
217 * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
218 handle the case when def is in the sese region.
219 (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
220 for invariant expressions.
221 (rewrite_cross_bb_phi_deps): Removed.
222 (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
223 (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
224 rewrite_cross_bb_phi_deps.
225
226 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
227
228 * graphite-sese-to-poly.c
229 (rewrite_commutative_reductions_out_of_ssa_loop): Call
230 scev_analyzable_p only on is_gimple_reg
231
232 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
233
234 * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
235 (rewrite_close_phi_out_of_ssa): Propagate constant values or
236 parametric expressions outside the scop region.
237 (rewrite_cross_bb_scalar_deps): Same.
238 * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
239
240 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
241
242 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
243 SSA_NAME_DEF_STMT only on SSA_NAMEs.
244
245 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
246
247 * tree-scalar-evolution.c (instantiate_scev_name): Do not
248 instantiate default definitions.
249
250 2010-08-11 Vladimir Kargov <kargov@gmail.com>
251 Sebastian Pop <sebastian.pop@amd.com>
252
253 * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
254 (loop_exits_from_bb_p): New.
255 * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
256 (loop_exits_from_bb_p): Declared.
257 * graphite-scop-detection.c (scopdet_basic_block_info): Call
258 loop_exits_to_bb_p.
259
260 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
261
262 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
263 extra parameter for the region. Call scev_analyzable_p.
264 (rewrite_reductions_out_of_ssa): Update call to
265 rewrite_close_phi_out_of_ssa.
266 (rewrite_cross_bb_phi_deps): Same.
267 (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
268 parameter for the region. Call scev_analyzable_p.
269 (rewrite_commutative_reductions_out_of_ssa): Update call to
270 rewrite_commutative_reductions_out_of_ssa_loop.
271
272 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
273
274 * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
275
276 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
277
278 * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
279 SSA scalar phi nodes that can be scev_analyzable_p.
280
281 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
282
283 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
284 handle SSA_NAME_IS_DEFAULT_DEF.
285
286 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
287
288 * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
289
290 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
291
292 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
293 case non close-phi nodes with one argument.
294
295 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
296
297 * sese.h (scev_analyzable_p): Scevs could be expressions without
298 chrecs and still be scev_analyzable_p.
299
300 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
301
302 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
303
304 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
305
306 * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
307 * cfgloop.h (struct loop): Remove single_iv field.
308 * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
309 (scop_canonicalize_loops): Removed.
310 (scop_ivs_can_be_represented): Do not use loop->single_iv. Iterate
311 over all the loop phi nodes in loop->header.
312 (build_poly_scop): Remove use of scop_canonicalize_loops.
313
314 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
315
316 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
317 handle GIMPLE_CALL.
318
319 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
320
321 * tree-chrec.c (chrec_apply): Should only apply to the specified
322 variable. Also handle multivariate chains of recurrences that
323 satisfy evolution_function_is_affine_p. Also handle CASE_CONVERT.
324
325 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
326
327 * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
328 (debug_clast_name_indexes_1): Removed.
329 (debug_clast_name_indexes): Removed.
330 (pbb_to_depth_to_oldiv): Removed.
331 (build_iv_mapping): Replace the use of rename_map with iv_map.
332 (translate_clast_user): Remove uses of rename_map. Allocate and
333 free iv_map.
334 (translate_clast_for_loop): Remove uses of rename_map.
335 (translate_clast_for): Same.
336 (translate_clast_guard): Same.
337 (translate_clast): Same.
338 (gloog): Same.
339 * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
340 * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
341 * sese.c (set_rename): Now static.
342 (rename_variables_in_stmt): Removed.
343 (rename_uses): New.
344 (is_parameter): Removed.
345 (is_iv): Removed.
346 (expand_scalar_variables_call): Removed.
347 (expand_scalar_variables_ssa_name): Removed.
348 (expand_scalar_variables_expr): Removed.
349 (expand_scalar_variables_stmt): Removed.
350 (expand_scalar_variables): Removed.
351 (rename_variables): Removed.
352 (remove_condition): Removed.
353 (get_true_edge_from_guard_bb): Removed.
354 (get_false_edge_from_guard_bb): Removed.
355 (struct igp): Removed.
356 (default_before_guard): Removed.
357 (convert_for_phi_arg): Removed.
358 (add_guard_exit_phis): Removed.
359 (insert_guard_phis): Removed.
360 (graphite_copy_stmts_from_block): Now also uses iv_map and a
361 region. Do not copy conditions. Do not copy induction variables.
362 Call rename_uses.
363 (copy_bb_and_scalar_dependences): Allocate a local rename_map for
364 the translated statement. Use the iv_map for the induction
365 variable renaming.
366 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
367 (set_rename): Removed declaration.
368 (scev_analyzable_p): ...here.
369 * tree-chrec.c (chrec_apply_map): New.
370 * tree-chrec.h (chrec_apply_map): Declared.
371
372 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
373
374 * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
375 insert_loop_close_phis.
376 * sese.c (name_defined_in_loop_p): Removed.
377 (expr_defined_in_loop_p): Removed.
378 (alive_after_loop): Removed.
379 (close_phi_not_yet_inserted_p): Removed.
380 (struct alep): Removed.
381 (add_loop_exit_phis): Removed.
382 (insert_loop_close_phis): Removed.
383
384 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
385
386 * graphite-cloog-util.c
387 (cloog_matrix_to_ppl_constraint): Fix flipped condition.
388 * graphite-poly.c
389 (psct_scattering_dim_for_loop_depth): Same.
390
391 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
392
393 * graphite-cloog-util.h: Added cloog.h.
394 * graphite-blocking.c: Removed cloog.h.
395 * graphite-dependences.c: Same.
396 * graphite-interchange.c: Same.
397 * graphite-poly.c: Same.
398 * graphite-ppl.c: Same.
399 * graphite-scop-detection.c: Same.
400 * graphite-sese-to-poly.c:
401 Removed cloog.h.
402 Removed graphite-clast-to-gimple.h.
403 (check_poly_representation): Removed (unused).
404 * graphite-sese-to-poly.h
405 (check_poly_representation): Removed (unused).
406
407 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
408
409 * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
410 (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
411 (graphite-cloog-util.o): New.
412 (graphite-ppl.o): Added graphite-cloog-util.h.
413 * graphite-clast-to-gimple.c:
414 Added graphite-cloog-util.h to include statements.
415 * graphite-cloog-util.c: New.
416 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
417 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
418 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
419 (new_C_Polyhedron_from_Cloog_Matrix): Same.
420 (insert_constraint_into_matrix): Same.
421 (ppl_Constrain_System_number_of_constraints): Same.
422 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
423 (oppose_constraint): Same.
424 (cloog_matrix_to_ppl_constraint): Same.
425 (new_Constraint_System_from_Cloog_Matrix): Same.
426 * graphite-cloog-util.h: New.
427 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
428 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
429 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
430 (new_C_Polyhedron_from_Cloog_Matrix): Same.
431 (insert_constraint_into_matrix): Same.
432 * graphite-ppl.c:
433 Added graphite-cloog-util.h to include statements.
434 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
435 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
436 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
437 (new_C_Polyhedron_from_Cloog_Matrix): Same.
438 (insert_constraint_into_matrix): Same.
439 (ppl_Constrain_System_number_of_constraints): Same.
440 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
441 (oppose_constraint): Same.
442 (cloog_matrix_to_ppl_constraint): Same.
443 (new_Constraint_System_from_Cloog_Matrix): Same.
444 * graphite-ppl.h:
445 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
446 graphite-cloog-util.h.
447 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
448 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
449 (new_C_Polyhedron_from_Cloog_Matrix): Same.
450 (insert_constraint_into_matrix): Same.
451
452 2010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
453
454 * graphite-clast-to-gimple.c
455 (precision_for_value): Resolve value_* calls to matching mpz_* calls.
456 (precision_for_interval): Same.
457 (gcc_type_for_interval): Same.
458 (compute_type_for_level): Same.
459 * graphite-interchange.c
460 (lst_interchange_profitable_p): Same.
461 * graphite-poly.c
462 (psct_scattering_dim_for_loop_depth): Same.
463 * graphite-ppl.c
464 (ppl_max_for_le_pointset): Same.
465 (ppl_min_for_le_pointset): Same.
466
467 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
468
469 * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
470 (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
471
472 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
473
474 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
475 rewrite_close_phi_out_of_ssa.
476
477 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
478
479 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
480
481 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
482
483 * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
484 rename_map.
485 * sese.c (debug_rename_map): Same.
486 (get_rename): Same.
487 (set_rename): Same.
488 (rename_variables_in_stmt): Same.
489 (expand_scalar_variables_call): Same.
490 (expand_scalar_variables_ssa_name): Same.
491 (expand_scalar_variables_expr): Same.
492 (expand_scalar_variables_stmt): Same.
493 (expand_scalar_variables): Same.
494 (rename_variables): Same.
495 (graphite_copy_stmts_from_block): Same.
496 (copy_bb_and_scalar_dependences): Same.
497
498 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
499
500 * graphite-clast-to-gimple.c (copy_renames): Removed.
501 (translate_clast_for): Do not call copy_renames.
502 (translate_clast_guard): Same.
503
504 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
505
506 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
507 (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
508 (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
509 before rewrite_cross_bb_scalar_deps.
510
511 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
512
513 * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
514 Early return in when flag_associative_math is not set.
515
516 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
517
518 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
519 of SSA copies on edges except for loop->latch.
520
521 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
522
523 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
524 Split out of rewrite_reductions_out_of_ssa.
525 * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
526 Declared.
527 * graphite.c (graphite_transform_loops): Call it.
528
529 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
530
531 * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
532
533 2010-08-11 Alexander Monakov <amonakov@ispras.ru>
534
535 * dbgcnt.def (graphite_scop): New counter.
536 * graphite.c: Include dbgcnt.h.
537 (graphite_transform_loops): Use new counter to limit transformations.
538 * Makefile.in (graphite.o): Depend on DBGCNT_H.
539
540 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
541
542 * passes.c (init_optimization_passes): Add pass_graphite.
543 Schedule a pass_copy_prop before pass_graphite_transforms.
544 * timevar.def (TV_GRAPHITE): Declared.
545 * tree-pass.h (pass_graphite): Declared.
546 * tree-ssa-loop.c (pass_graphite): New.
547
548 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
549
550 * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
551 Remove calls to rename_nb_iterations and rename_sese_parameters.
552 * graphite-clast-to-gimple.h (gloog): Update declaration.
553 * graphite.c (graphite_transform_loops): Update call to gloog.
554 * sese.c (rename_variables_in_expr): Removed.
555 (rename_nb_iterations): Removed.
556 (rename_sese_parameters): Removed.
557 * sese.h (rename_nb_iterations): Removed.
558 (rename_sese_parameters): Removed.
559
560 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
561
562 * graphite-clast-to-gimple.c (gloog): Remove call to
563 sese_adjust_liveout_phis.
564 * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
565 SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
566 (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
567 rewrite_phi_out_of_ssa.
568 * sese.c (get_vdef_before_sese): Removed.
569 (sese_adjust_vphi): Removed.
570 (sese_adjust_liveout_phis): Removed.
571 * sese.h (sese_adjust_liveout_phis): Removed.
572
573 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
574
575 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
576 argument for the place after which to insert the out of SSA copy.
577 (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
578 (rewrite_phi_out_of_ssa): Same.
579 (rewrite_cross_bb_scalar_deps): Same.
580 (insert_copyout): Removed.
581 (insert_copyin): Removed.
582 (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
583 insert_out_of_ssa_copy_on_edge instead of insert_copyout and
584 insert_copyin.
585
586 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
587
588 * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
589 (rewrite_reductions_out_of_ssa): Same.
590 (rewrite_commutative_reductions_out_of_ssa): Same.
591 (build_poly_scop): Do not call these functions.
592 * graphite-sese-to-poly.h (build_poly_scop): Declared.
593 (rewrite_reductions_out_of_ssa): Declared.
594 (rewrite_commutative_reductions_out_of_ssa): Declared.
595 * graphite.c (graphite_transform_loops): Call on every scop
596 rewrite_commutative_reductions_out_of_ssa before calling
597 rewrite_reductions_out_of_ssa and build_scop_bbs.
598
599 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
600
601 * graphite-dependences.c (dot_deps): Make system call to dotty run
602 in background.
603 (dot_deps_stmt): Same.
604 * graphite-poly.c (dot_lst): Same.
605
606 2010-08-11 Sebastian Pop <sebastian.pop@amd.com>
607
608 * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
609 phi_arg_in_outermost_loop.
610 (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
611 (remove_invariant_phi): Same.
612
613 2010-08-11 Anatoly Sokolov <aesok@post.ru>
614
615 * target.def (output_addr_const_extra): New hook.
616 * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
617 * doc/tm.texi: Regenerate.
618 * targhooks.c (default_asm_output_addr_const_extra): New function.
619 * targhooks.h (default_asm_output_addr_const_extra): Declare.
620 * final.c: (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
621 target hook.
622
623 * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
624 * config/i386/i386-protos.h (output_addr_const_extra): Remove.
625 * config/i386/i386.h (output_addr_const_extra): Rename to...
626 (i386_asm_output_addr_const_extra): ...this. Make static.
627 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
628
629 2010-08-11 Richard Henderson <rth@redhat.com>
630
631 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
632
633 2010-08-11 Nick Clifton <nickc@redhat.com>
634
635 * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
636 * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
637 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
638 stormy16-lib2-cmpsi.c.
639
640 * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
641 -O2.
642
643 2010-08-11 Joseph Myers <joseph@codesourcery.com>
644
645 * opts.h (struct cl_option_handler_func): Make handler take
646 cl_decoded_option structure as parameter, not individual elements.
647 (struct cl_option_handlers): Make callbacks take cl_decoded_option
648 structure as parameter, not individual elements.
649 (handle_option): Take cl_decoded_option structure as parameter,
650 not individual elements.
651 (handle_generated_option): Declare.
652 * opts-common.c (handle_option): Take cl_decoded_option structure
653 as parameter, not individual elements. Update calls to callback
654 and handler functions.
655 (handle_generated_option): New.
656 (read_cmdline_option): Update calls to callback functions and
657 handle_option.
658 * opts.c (common_handle_option, complain_wrong_lang,
659 unknown_option_callback, post_handling_callback,
660 lang_handle_option, target_handle_option): Take cl_decoded_option
661 structure as parameter, not individual elements.
662 (lang_handle_option, target_handle_option, common_handle_option):
663 Assert option has at most one argument.
664 (enable_warning_as_error): Call handle_generated_option instead of
665 handle_option. Do not pass -Werror argument as argument of
666 generated option.
667
668 2010-08-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
669
670 * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
671 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
672 (SUBWORD_BOOL_CAS): Likewise.
673 (SUBWORD_SYNC_OP): Likewise.
674 (SUBWORD_TEST_AND_SET): Likewise.
675 (FETCH_AND_OP_WORD): Parenthesise INF_OP
676 (SUBWORD_SYNC_OP): Likewise.
677 (OP_AND_FETCH_WORD): Likewise.
678
679 2010-08-10 Xinliang David Li <davidxl@google.com>
680
681 * tree-ssa-loop-ivopts.c (get_address_cost): Properly
682 compute max/min offset in address.
683
684 2010-08-10 Vladimir Makarov <vmakarov@redhat.com>
685
686 * ira-live.c: Include sbitmap.h.
687 (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
688 Compress live ranges even more.
689
690 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
691
692 * coverage.c (ctr_labels): Delete.
693
694 2010-08-10 Bernd Schmidt <bernds@codesourcery.com>
695
696 PR bootstrap/45177
697 * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
698 test here from arm_gen_load_multiple_1.
699 (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
700 multiple_operation_profitable_p.
701
702 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
703
704 * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
705 (fini_pre): Call free_aux_for_blocks. Delete unused bb variable.
706
707 2010-08-10 Richard Henderson <rth@redhat.com>
708
709 * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
710 after saving registers. Assert that SSE registers are only saved
711 with a sufficiently aligned frame.
712 (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
713 remove stack_realign_fp handling.
714 (ix86_expand_prologue): Save int registers before stack_realign_fp,
715 and do not mark the stack alignment as frame related.
716 (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
717
718 * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
719 saves when re-aligning the stack.
720
721 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
722
723 * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
724 * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
725 (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
726
727 2010-08-10 Nathan Froyd <froydnj@codesourcery.com>
728
729 * dwarf2out.c (struct die_struct): Move die_tag to the end.
730
731 2010-08-09 Sofiane Naci <sofiane.naci@arm.com>
732
733 * config/arm/iterators.md: New file.
734 * config/arm/arm.md: Include iterators.md.
735 (QHSI): Move to new file.
736 (LTUGEU, cnb, optab, ior_xor): Likewise.
737 * config/arm/iwmmxt.md (VMMX): Move to new file.
738 (VSHFT, MMX_char): Likewise.
739 * config/arm/neon.md (VD): Move to new file.
740 (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
741 (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
742 (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
743 (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
744 (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
745 (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
746 (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
747 (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
748 (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
749 (Is_d_reg, V_mode_nunits): Likewise.
750 * config/arm/vec-common.md (VALL): Move to new file.
751 (VALLW, VINT, VINTW): Likewise.
752
753 2010-08-10 Bernd Schmidt <bernds@codesourcery.com>
754
755 PR middle-end/45182
756 * combine.c (make_compound_operation): Don't try to convert
757 shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
758
759 2010-08-10 Richard Guenther <rguenther@suse.de>
760
761 * tree.h (get_object_alignment): Adjust prototype.
762 * builtins.c (get_object_alignment): Return unsigned int,
763 drop the align parameter. Handle MEM_REF, MISALIGNED_INDIRECT_REF
764 and TARGET_MEM_REF properly.
765 (get_pointer_alignment): Adjust.
766 * emit-rtl.c (get_mem_align_offset): Adjust comment.
767 (set_mem_attributes_minus_bitpos): Adjust.
768 * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
769
770 2010-08-10 Richard Guenther <rguenther@suse.de>
771
772 * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
773 (copy_prop_visit_assignment): Simplify.
774 (copy_prop_visit_stmt): Also visit assignments from
775 constants.
776 (copy_prop_visit_phi_node): Use operand_equal_p.
777
778 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
779
780 * ipa-split.c (find_split_points): Free stack.
781
782 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
783
784 * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
785 * tree.c (tree_node_kind): Delete corresponding entries.
786
787 2010-08-09 H.J. Lu <hongjiu.lu@intel.com>
788
789 * alias.c (may_alias_p): Remove unused ret.
790
791 2010-08-09 Bingfeng Mei <bmei@broadcom.com>
792
793 * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
794 alias_sets_conflict_p.
795 (walk_mems_1): Moved from alias.c.
796 (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
797 in alias.c.
798 (add_inter_loop_mem_dep): Use insns_may_alias_p now.
799 * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
800 * alias.c (walk_mems_2): Moved to ddg.c.
801 (walk_mems_1): Ditto.
802 (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
803 to ddg.c.
804 (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
805 disambiguation.
806 *(may_alias_p): New function to check whether two memory expression
807 may alias or not. Currently used in buidling inter-iteration memory
808 dependence.
809 *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
810 (insn_alias_sets_conflict_p): Removed
811 *rtl.h (may_alias_p): New function prototype.
812
813 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
814
815 * tree.c (nreverse): Assert that we don't have a BLOCK.
816
817 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
818
819 * builtins.c (fold_builtin_next_arg): Use stdarg_p.
820 * config/arm/arm.c (arm_get_pcs_model): Likewise.
821 * config/avr/avr.c (init_cumulative_args): Likewise.
822 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
823 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
824 * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
825 * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
826 * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
827 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
828 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
829 * dwarf2out.c (gen_subprogram_die): Likewise.
830 * function.c (allocate_struct_function): Likewise.
831 * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
832 (deserves_ellipsis): Delete.
833
834 2010-08-09 Richard Guenther <rguenther@suse.de>
835
836 * tree-ssa-copy.c (cached_last_copy_of): Remove.
837 (valueize_val): New function.
838 (get_last_copy_of): Remove.
839 (set_copy_of_val): Simplify.
840 (dump_copy_of): Likewise.
841 (copy_prop_visit_cond_stmt): Use valueize_val.
842 (copy_prop_visit_phi_node): Properly handle unvisited names.
843 Drop code managing copy-of chains.
844 (init_copy_prop): Adjust.
845 (fini_copy_prop): Likewise.
846 (execute_copy_prop): Remove obsolete comment.
847
848 2010-08-09 Richard Guenther <rguenther@suse.de>
849
850 PR middle-end/44632
851 * function.c (gimplify_parameters): Do not clear addressable
852 bit of the original parameter.
853
854 2010-08-09 Richard Guenther <rguenther@suse.de>
855
856 PR middle-end/45212
857 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
858 alignment from MEM_REF offset only if we took it from the
859 base object.
860
861 2010-08-09 Eric Fisher <joefoxreal@gmail.com>
862
863 * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
864
865 2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
866
867 * c-tree.h (build_arg_info): Declare.
868 * c-decl.c (build_arg_info): Define.
869 (get_parm_info): Call it. Delete initialization code.
870 * c-parser.c (c_parser_parms_declarator): Likewise.
871 (c_parser_parms_list_declaractor): Likewise.
872
873 2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
874
875 * c-tree.h (c_arg_tag): Define. Define a VEC containing it.
876 (struct c_arg_info): Change type of tags field.
877 * c-decl.c (grokdeclarator): Update for changed type of tags field.
878 (get_parm_info): Likewise.
879 (store_parm_decls_newstyle): Likewise.
880
881 2010-08-08 Nathan Froyd <froydnj@codesourcery.com>
882
883 * config/rs6000/rs6000.c (branch_island): Define. Define a VEC of it.
884 (branch_island_list): Delete.
885 (branch_islands): Declare.
886 (add_compiler_branch_island): Adjust for branch_islands instead of
887 branch_island_list.
888 (macho_branch_islands): Likewise.
889 (no_previous_def): Likewise.
890 (get_prev_label): Likewise.
891
892 2010-08-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
893
894 PR boehm-gc/34544
895 * gthr-posix.h (__gthread_start): Delete.
896 (__gthread_active_init): Use pthread_default_stacksize_np instead of
897 pthread_create to determine if hpux pthreads are active.
898 * gthr-posix95.h (__gthread_start): Delete.
899 (__gthread_active_init): Likewise use pthread_default_stacksize_np.
900
901 2010-08-08 Kai Tietz <kai.tietz@onevision.com>
902
903 * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
904 _WIN64 not expanded.
905
906 2010-08-07 Uros Bizjak <ubizjak@gmail.com>
907 H.J. Lu <hongjiu.lu@intel.com>
908
909 PR target/45213
910 * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
911 to output 32bit SFmode immediate as 8 byte sign extended value.
912
913 2010-08-07 Marcus Shawcroft <marcus.shawcroft@arm.com>
914
915 * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
916 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
917 (SUBWORD_BOOL_CAS): Likewise.
918 (SUBWORD_SYNC_OP): Likewise.
919 (SUBWORD_TEST_AND_SET): Likewise.
920 (FETCH_AND_OP_WORD): Parenthesise INF_OP
921 (SUBWORD_SYNC_OP): Likewise.
922 (OP_AND_FETCH_WORD): Likewise.
923
924 2010-08-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
925
926 * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
927 * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
928 (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
929 (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
930 generic part.
931 (cortex_a9_sched_adjust_cost): New function.
932 (xscale_sched_adjust_cost): New function.
933 * config/arm/arm-protos.h (struct tune_params): New field
934 sched_adjust_cost.
935 * config/arm/arm-cores.def: Adjust costs for cortex-a9.
936
937 2010-08-06 Eric Botcazou <ebotcazou@adacore.com>
938
939 PR target/44942
940 * config/sparc/sparc.c (function_arg_advance): Always take into account
941 the padding, if any.
942
943 2010-08-06 Richard Guenther <rguenther@suse.de>
944
945 * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
946 (dump_lattice_value): Dump it.
947 (get_default_value): Adjust.
948 (get_constant_value): Likewise.
949 (set_value_varying): Likewise.
950 (set_lattice_value): Make sure to not go up the lattice
951 with bitwise constant values.
952 (get_value_for_expr): Handle ADDR_EXPRs.
953 (value_to_double_int): New function.
954 (get_value_from_alignment): Likewise.
955 (do_dbg_cnt): Adjust.
956 (ccp_lattice_meet): Handle partially constant values.
957 (bit_value_unop_1): New function.
958 (bit_value_binop_1): Likewise.
959 (bit_value_unop): Likewise.
960 (bit_value_binop): Likewise.
961 (evaluate_stmt): Track partially constant values if
962 flag_tree_bit_ccp is set.
963 (ccp_fold_stmt): Dump if we folded a predicate.
964 (ccp_visit_stmt): Adjust.
965 * common.opt (ftree-bit-ccp): New flag.
966 * doc/invoke.texi (ftree-bit-ccp): Document.
967 * opts.c (decode_options): Enable bit-CCP at -O1.
968
969 2010-08-06 Alan Modra <amodra@gmail.com>
970
971 * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
972 and -mrelocatable-lib description.
973
974 2010-08-05 Bernd Schmidt <bernds@codesourcery.com>
975
976 From Martin Thuresson <martint@google.com>
977 * postreload.c (reload_cse_simplify_operands): Use
978 SET_REGNO_RAW instead of SET_REGNO.
979 * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
980 SET_REGNO.
981 * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
982 instead of SET_REGNO.
983 * rtl.h (SET_REGNO_RAW): New macro.
984
985 2010-08-05 Eric Botcazou <ebotcazou@adacore.com>
986
987 * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
988 computations. Fix formatting issues.
989 (num_sign_bit_copies1): Likewise.
990 (canonicalize_condition): Likewise.
991
992 2010-08-05 Richard Henderson <rth@redhat.com>
993
994 * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
995 (floor_log2): Use clz_hwi.
996 (exact_log2): Use ctz_hwi.
997 * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
998 * builtins.c (fold_builtin_bitop): Use them.
999 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
1000 * combine.c (get_pos_from_mask): Use ctz_hwi.
1001 * double-int.c (double_int_ctz): Likewise.
1002 * explow.c (force_reg): Likewise.
1003 * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
1004
1005 2010-08-05 Richard Henderson <rth@redhat.com>
1006
1007 PR target/45189
1008 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
1009 the alignment constant is properly sign-extended.
1010
1011 2010-08-05 Richard Guenther <rguenther@suse.de>
1012
1013 * expr.c (store_expr): Use emit_block_move only if both
1014 source and target are MEMs. Use store_bit_field if only
1015 the target is a MEM.
1016
1017 2010-08-05 Richard Henderson <rth@redhat.com>
1018
1019 PR debug/45188
1020 * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
1021 (INCOMING_RETURN_ADDR_RTX): Likewise.
1022 (dwarf2out_do_frame): Remove conditional compilation.
1023 (dwarf2out_frame_init): Likewise.
1024
1025 2010-08-05 Nicolas Setton <setton@adacore.com>
1026
1027 * gcov.c (flag_display_progress): New static variable.
1028 (main): Display progress info on standard output if requested.
1029 (options): Add -d/--display-progress.
1030 (print_usage): Print them.
1031 (process_args): Handle them.
1032 * doc/gcov.texi: Document them.
1033
1034 2010-08-05 Martin Jambor <mjambor@suse.cz>
1035
1036 * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
1037 (ipcp_insert_stage): Redirect only edges not flagged with
1038 indirect_inlining_edge. Call ipcp_discover_new_direct_edges for all
1039 discovered constants.
1040
1041 2010-08-05 Martin Jambor <mjambor@suse.cz>
1042
1043 * ipa-prop.h (enum ipa_lattice_type): Changed comments.
1044 (struct ipa_param_descriptor): New fields types and
1045 cannot_devirtualize.
1046 (ipa_param_cannot_devirtualize_p): New function.
1047 (ipa_param_types_vec_empty): Likewise.
1048 (ipa_make_edge_direct_to_target): Declare.
1049 * ipa-cp.c: Fixed first stage driver name in initial comment,
1050 described devirtualization there too.
1051 (ipcp_analyze_node): Call ipa_analyze_params_uses.
1052 (ipcp_print_all_lattices): Print devirtualization info.
1053 (ipa_set_param_cannot_devirtualize): New function.
1054 (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
1055 lattice to BOTTOM.
1056 (ipcp_init_stage): Merged into...
1057 (ipcp_generate_summary): ...its caller.
1058 (ipcp_change_tops_to_bottom): Also process type lists.
1059 (ipcp_add_param_type): New function.
1060 (ipcp_copy_types): Likewise.
1061 (ipcp_propagate_types): Likewise.
1062 (ipcp_propagate_stage): Also propagate types.
1063 (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
1064 Also return true if propagated types require it.
1065 (ipcp_update_callgraph): Dump redirection info.
1066 (ipcp_process_devirtualization_opportunities): New function.
1067 (ipcp_const_param_count): Include known type information.
1068 (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
1069 on new node. Fixed formatting.
1070 * ipa-prop.c (make_edge_direct_to_target): Renamed to
1071 ipa_make_edge_direct_to_target and changed all callers. Made
1072 externally visible.
1073 (ipa_node_duplication_hook): Duplicate types vector.
1074 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
1075 redirect outgoing calls for which we can't get a decl from the
1076 statement. Check that we can get a decl from the call statement.
1077 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1078 ipa_analyze_params_uses only when ipa-cp is disabled.
1079 * tree-inline.c (get_indirect_callee_fndecl): Removed.
1080 (expand_call_inline): Do not call get_indirect_callee_fndecl.
1081 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
1082 * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
1083
1084 2010-08-05 Uros Bizjak <ubizjak@gmail.com>
1085
1086 * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
1087 temporary. Emit move from temporary to accum, so REG_EQUAL note will
1088 be attached to this insn in correct mode.
1089
1090 2010-08-05 Uros Bizjak <ubizjak@gmail.com>
1091
1092 * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
1093 using REGNO of base_reg directly.
1094
1095 2010-08-05 Jie Zhang <jie@codesourcery.com>
1096
1097 PR tree-optimization/45144
1098 * tree-sra.c (type_consists_of_records_p): Return false
1099 if the record contains bit-field.
1100
1101 2010-08-04 Richard Henderson <rth@redhat.com>
1102
1103 * config/i386/i386.c (struct ix86_frame): Remove padding and
1104 to_allocate members.
1105 (ix86_compute_frame_layout): Don't store them.
1106 (ix86_can_use_return_insn_p): Use a more direct and more obviously
1107 correct condition for the position of the stack pointer.
1108 (ix86_expand_prologue): Compute remaining stack allocation based
1109 on the ultimate stack pointer offset.
1110 (ix86_expand_epilogue): Use more obvious expressions testing for
1111 the stack pointer already pointing to the saved registers.
1112
1113 * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
1114 duplication deconstructing the frame pointer. Simplify
1115 deallocation of the local stack frame.
1116
1117 * reg-notes.def (CFA_EXPRESSION): New.
1118 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
1119 (dwarf2out_frame_debug_cfa_expression): New.
1120 (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
1121
1122 * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
1123 * config/i386/i386.c (ix86_expand_prologue): Set it.
1124 (ix86_expand_epilogue): Clear it.
1125 (ix86_emit_save_reg_using_mov): For registers saved in a realigned
1126 context, add REG_CFA_EXPRESSION notes.
1127
1128 * config/i386/i386.h (struct machine_frame_state): Rename from
1129 machine_cfa_state. Add members tracking SP and FP regardless
1130 of the current CFA register.
1131 (ix86_cfa_state): Remove.
1132 * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
1133 and sse_reg_save_offset members.
1134 (ix86_compute_frame_layout): Set them.
1135 (gen_push): Increment sp_offset too.
1136 (choose_baseaddr_len, choose_baseaddr): New.
1137 (ix86_emit_save_reg_using_mov): New.
1138 (ix86_emit_save_regs_using_mov): Use it.
1139 (ix86_emit_save_sse_regs_using_mov): Likewise.
1140 (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
1141 compare vs the saved red_zone_offset.
1142 (pro_epilogue_adjust_stack): Adjust sp_offset.
1143 (ix86_adjust_stack_and_probe): Likewise.
1144 (ix86_expand_prologue): Set up, use, and validate the new
1145 frame_state_info members. Use gen_frame_mem.
1146 (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
1147 (ix86_emit_restore_reg_using_pop): Likewise. Use and update the
1148 new frame_state_info members.
1149 (ix86_emit_leave): Likewise.
1150 (ix86_emit_restore_regs_using_mov): Likewise. Don't check for
1151 out-of-range stack pointer offsets here.
1152 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1153 (ix86_expand_epilogue): Use and validate the new frame_state_info
1154 members. Break up and simplify the logic selecting the
1155 restore_regs_via_mov code path. Ensure that there will be no
1156 out-of-range stack pointer offsets.
1157
1158 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
1159
1160 * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
1161 argument name to reflect the expected tree; fix indentation.
1162 (ix86_asm_output_function_label): Output the entire 32-bit
1163 ms_hook here as bytes ...
1164 (ix86_expand_prologue): ... not here as insns. Attach the
1165 unwind info for the ms_hook to a blockage insn.
1166 (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
1167 (ix86_ms_bitfield_layout_p): Fix indentation.
1168 * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
1169
1170 * config/i386/i386.c (ix86_using_red_zone): New.
1171 (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
1172 ix86_expand_prologue, ix86_force_to_memory): Use it.
1173
1174 * config/i386/i386.c (ix86_expand_prologue): Simplify logic
1175 saving the int registers.
1176
1177 * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
1178 and DWARF2_UNWIND_INFO conditional compilation.
1179
1180 2010-08-04 Richard Henderson <rth@redhat.com>
1181
1182 PR debug/45171
1183 * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
1184 an is_naming_typedef_decl.
1185
1186 2010-08-04 Bernd Schmidt <bernds@codesourcery.com>
1187
1188 PR rtl-optimization/45162
1189 * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
1190 * dce.c (word_dce_process_block): Likewise.
1191
1192 2010-08-04 Steve Ellcey <sje@cup.hp.com>
1193
1194 PR target/44583
1195 * config/ia64/constraints.md (Z): New.
1196 * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
1197 (xfreg_or_signed_fp01_operand): New.
1198 * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
1199 with fr_reg_or_signed_fp01_operand and constraint G with Z.
1200 (subsf3): Ditto.
1201 (*maddsf4): Ditto.
1202 (*msubsf4): Ditto.
1203 (adddf3): Ditto.
1204 (adddf3_trunc): Ditto.
1205 (subdf3): Ditto.
1206 (*subdf3_trunc): Ditto.
1207 (*madddf4): Ditto.
1208 (*madddf4_trunc): Ditto.
1209 (*msubdf4): Ditto.
1210 (*msubdf4_trunc): Ditto.
1211 (addxf3): Replace xfreg_or_fp01_operand with
1212 xfreg_or_signed_fp01_operand and constraint G with Z.
1213 (*addxf3_truncsf): Ditto.
1214 (*addxf3_truncdf): Ditto.
1215 (subxf3): Ditto.
1216 (*subxf3_truncsf): Ditto.
1217 (*subxf3_truncdf): Ditto.
1218 (*maddxf4): Ditto.
1219 (*maddxf4_truncsf): Ditto.
1220 (*maddxf4_truncdf): Ditto.
1221 (*msubxf4): Ditto.
1222 (*msubxf4_truncsf): Ditto.
1223 (*msubxf4_truncdf): Ditto.
1224
1225 2010-08-04 Richard Guenther <rguenther@suse.de>
1226
1227 * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
1228 if either alias-set is zero.
1229
1230 2010-08-04 Richard Guenther <rguenther@suse.de>
1231
1232 * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
1233 * tree-ssa-ccp.c: ... here.
1234 * tree-ssa-copy.c: ... and here.
1235 * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
1236 value_range_t): Move ...
1237 * tree-vrp.c: ... here.
1238 * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
1239 (substitute_and_fold): Adjust prototype.
1240 * tree-ssa-propagate.c (replace_uses_in): Adjust.
1241 (replace_phi_args_in): Likewise.
1242 (substitute_and_fold): Take callback to query lattice instead
1243 of pointer to lattice. Replace SSA name defs with lattice
1244 values first.
1245 * tree-ssa-ccp.c (ccp_finalize): Adjust.
1246 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
1247 (get_value): New function.
1248 (fini_copy_prop): Adjust.
1249 * tree-vrp.c (vrp_finalize): Adjust.
1250
1251 2010-08-04 Richard Guenther <rguenther@suse.de>
1252
1253 PR middle-end/45176
1254 * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
1255 points-to set for original MEM_REF.
1256
1257 2010-08-04 Richard Guenther <rguenther@suse.de>
1258
1259 * tree-ssa-ccp.c (get_constant_value): New function.
1260 (get_rhs_assign_op_for_ccp): Remove.
1261 (valueize_op): New function.
1262 (ccp_fold): Use get_constant_value and valueize_op.
1263 (fold_const_aggregate_ref): Likewise.
1264 (ccp_fold_stmt): Likewise.
1265 (visit_assignment): Simplify.
1266
1267 2010-08-04 Richard Guenther <rguenther@suse.de>
1268
1269 * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
1270 * double-int.h (double_int_ctz): Declare.
1271 * double-int.c (double_int_ctz): New function.
1272
1273 2010-08-04 Hariharan Sandanagobalane <hariharan@picochip.com>
1274
1275 * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
1276 Define.
1277 picochip_expand_movmemhi : Expand movmem pattern.
1278 * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
1279 Declare.
1280 * config/picochip/picochip.md (movmemhi) : New pattern.
1281
1282 2010-08-03 Uros Bizjak <ubizjak@gmail.com>
1283
1284 * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
1285
1286 2010-08-03 Bernd Schmidt <bernds@codesourcery.com>
1287
1288 * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
1289 NEG as operand of a MULT by merging it with the other operand.
1290 * combine.c (make_compound_operation): Use trunc_int_for_mode when
1291 generating a MULT with constant. Canonicalize PLUS and MINUS involving
1292 MULT.
1293 * config/arm/constraints.md (M): Examine only 32 bits of a
1294 HOST_WIDE_INT.
1295 * config/arm/predicates.md (power_of_two_operand): Likewise.
1296
1297 2010-08-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1298
1299 * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
1300 non-NOTE insns.
1301
1302 2010-08-03 Jan Hubicka <jh@suse.cz>
1303
1304 * ipa-split.c (struct split_point): Add split_part_set_retval.
1305 (find_retval): Forward declare.
1306 (test_nonssa_use, mark_nonssa_use): Special case return by reference.
1307 (consider_split): Compute current->split_part_set_retval.
1308 (visit_bb): Do not look into return value.
1309 (split_function): Handle !split_part_set_retval
1310
1311 2010-08-03 Martin Jambor <mjambor@suse.cz>
1312
1313 * tree-sra.c (completely_scalarize_record): New parameter REF, create
1314 its own access->expr intead of using build_ref_for_offset.
1315
1316 2010-08-03 Joseph Myers <joseph@codesourcery.com>
1317
1318 * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
1319 * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
1320 * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
1321 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
1322 * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
1323 * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
1324 * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
1325 DEFAULT_SWITCH_TAKES_ARG.
1326 * config/rx/rx.opt (-patch=): Remove option.
1327 * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
1328 * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
1329 * doc/invoke.texi (RX Options): Remove -patch=.
1330 * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
1331 (option_map): Remove --profile-blocks, --quiet and --silent.
1332
1333 2010-08-03 Uros Bizjak <ubizjak@gmail.com>
1334
1335 * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
1336 * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
1337 (ix86_expand_branch): Add op0 and op1 arguments. Do not access
1338 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
1339 Update calls to ix86_expand_compare and ix86_expand_branch.
1340 (ix86_expand_setcc): Add op0 and op1 arguments. Update calls to
1341 ix86_expand_compare.
1342 (ix86_expand_compare): Add op0 and op1 arguments. Do not access
1343 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
1344 Make static.
1345 (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
1346 and ix86_compare_op1. Update calls to ix86_expand_compare.
1347 (ix86_expand_int_movcc): Ditto.
1348 (ix86_expand_fp_movcc): Ditto. Update calls to ix86_expand_setcc.
1349 * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
1350 (ix86_expand_setcc): Ditto.
1351 (ix86_expand_compare): Remove prototype.
1352 * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
1353 ix86_compare_op0 and ix86_compare_op1. Update calls
1354 to ix86_expand_branch to directly pass operands[1] and operands[2].
1355 (cbranchxf4): Ditto.
1356 (cbranch<MODEF:mode>4): Ditto.
1357 (cbranchcc4): Ditto.
1358 (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
1359 Update calls to ix86_expand_setcc to directly pass operands[2] and
1360 operands[3].
1361 (cstorexf4): Ditto.
1362 (cstore<MODEF:mode>4): Ditto.
1363 (cstorecc4): Ditto.
1364
1365 2010-08-02 Bernd Schmidt <bernds@codesourcery.com>
1366
1367 PR target/45063
1368 * caller-save.c (save_call_clobbered_regs): Remove regs from
1369 hard_regs_saved when they are set.
1370
1371 2010-08-02 Uros Bizjak <ubizjak@gmail.com>
1372
1373 PR target/41089
1374 * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
1375 as volatile.
1376
1377 2010-08-02 Sebastian Pop <sebastian.pop@amd.com>
1378
1379 * common.opt (ftree-loop-distribute-patterns): New.
1380 * invoke.texi (-ftree-loop-distribute-patterns): Documented.
1381 * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
1382 at -O3.
1383 * tree-data-ref.c (stores_zero_from_loop): New.
1384 * tree-data-ref.h (stores_zero_from_loop): Declared.
1385 * tree-loop-distribution.c (tree_loop_distribution): Call
1386 stores_zero_from_loop.
1387 (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
1388
1389 2010-08-02 Bernd Schmidt <bernds@codesourcery.com>
1390
1391 * postreload.c (reload_cse_simplify_operands): Take attribute enabled
1392 into account.
1393
1394 * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
1395 * config/arm/arm.c (thumb1_code): New variable.
1396 (arm_override_options): Set it.
1397 (thumb1_final_prescan_insn): Keep track of condition code status.
1398 (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
1399 jumps that depend on them.
1400 * config/arm/arm.h (thumb1_code): Declare variable.
1401 (struct machine_function): Guard with #ifndef GENERATOR_FILE. Add
1402 members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
1403 thumb1_cc_mode.
1404 (CC_STATUS_INIT): New macro.
1405 * config/arm/constraints.md (Pd): New constraint.
1406 * config/arm/predicates.md (noov_comparison_operator): New predicate.
1407 * config/arm/arm.md (is_thumb1): New define_attr.
1408 (conds): Set default to "clob" when generating Thumb1 code.
1409 (thumb1_bicsi3): Renamed from bicsi3. All uses changed. Condition
1410 code are set. Use two-operand assembly syntax.
1411 (thumb1_subsi3_insn): Condition codes are set. Now a properly named
1412 pattern.
1413 (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
1414 codes are set. Use two-operand assembly syntax.
1415 (zero_extendhisi splitter): Remove constraints.
1416 (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
1417 thumb1_movsf_insn): Set conds attribute as appropriate.
1418 (cbranchsi4_insn): Use condition code status from struct
1419 machine_function to determine whether the comparison can be eliminated.
1420 Discourage the alternative using high registers.
1421 (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
1422 orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
1423 bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
1424 subsi3_cbranch): Delete.
1425 (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
1426 one subtract and one cbranch insn.
1427
1428 * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
1429 thumb2_movdf_soft_insn): Delete patterns.
1430 * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
1431 arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
1432 (pool_range, neg_pool_range): Use them to define defaults.
1433 (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
1434 and allow for TARGET_32BIT.
1435
1436 PR target/40457
1437 * config/arm/arm.h (arm_regs_in_sequence): Declare.
1438 * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
1439 load_multiple_sequence, store_multiple_sequence): Delete
1440 declarations.
1441 (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
1442 declarations.
1443 * config/arm/ldmstm.md: New file.
1444 * config/arm/arm.c (arm_regs_in_sequence): New array.
1445 (load_multiple_sequence): Now static. New args SAVED_ORDER,
1446 CHECK_REGS. All callers changed.
1447 If SAVED_ORDER is nonnull, copy the computed order into it.
1448 If CHECK_REGS is false, don't sort REGS. Handle Thumb mode.
1449 (store_multiple_sequence): Now static. New args NOPS_TOTAL,
1450 SAVED_ORDER, REG_RTXS and CHECK_REGS. All callers changed.
1451 If SAVED_ORDER is nonnull, copy the computed order into it.
1452 If CHECK_REGS is false, don't sort REGS. Set up REG_RTXS just
1453 like REGS. Handle Thumb mode.
1454 (arm_gen_load_multiple_1): New function, broken out of
1455 arm_gen_load_multiple.
1456 (arm_gen_store_multiple_1): New function, broken out of
1457 arm_gen_store_multiple.
1458 (arm_gen_multiple_op): New function, with code from
1459 arm_gen_load_multiple and arm_gen_store_multiple moved here.
1460 (arm_gen_load_multiple, arm_gen_store_multiple): Now just
1461 wrappers around arm_gen_multiple_op. Remove argument UP, all callers
1462 changed.
1463 (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
1464 * config/arm/predicates.md (commutative_binary_operator): New.
1465 (load_multiple_operation, store_multiple_operation): Handle more
1466 variants of these patterns with different starting offsets. Handle
1467 Thumb-1.
1468 * config/arm/arm.md: Include "ldmstm.md".
1469 (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
1470 ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
1471 stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
1472 peepholes): Delete.
1473 * config/arm/ldmstm.md: New file.
1474 * config/arm/arm-ldmstm.ml: New file.
1475
1476 * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
1477 if statement which adds extra costs to frame-related expressions.
1478
1479 2010-08-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1480
1481 * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
1482
1483 2010-08-01 Uros Bizjak <ubizjak@gmail.com>
1484
1485 PR target/45142
1486 * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
1487 alternative 2.
1488 (vec_set<moode>_0 splitter): Use SSEMODE4S mode iterator to also
1489 split V4SI operands.
1490
1491 2010-08-01 Anatoly Sokolov <aesok@post.ru>
1492
1493 * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
1494 * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
1495 * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
1496 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
1497
1498 2010-07-31 Kai Tietz <kai.tietz@onevision.com>
1499
1500 * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
1501 LOCAL_INCLUDE_DIR.
1502
1503 2010-07-31 Richard Sandiford <rdsandiford@googlemail.com>
1504
1505 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
1506 used in the call to optab_for_tree_code. Fix the second
1507 is_widening_mult_p call. Check that both unwidened operands
1508 have the same sign.
1509
1510 2010-07-31 John Tytgat <John.Tytgat@aaug.net>
1511
1512 * config/arm/arm.c (arm_function_arg): Remove superfluous test.
1513
1514 2010-07-31 Anatoly Sokolov <aesok@post.ru>
1515
1516 * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
1517
1518 2010-07-30 DJ Delorie <dj@redhat.com>
1519
1520 * config/rx/predicates.md (rx_constshift_operand): New.
1521 * config/rx/rx.md (zs_cond): New.
1522 (cbranchsi4): Remove mode.
1523 (*cbranchsi4_<code>): Likewise.
1524 (*tstbranchsi4_<code>): New.
1525 (*tstbranchsi4r_<code>): New.
1526 (*tstbranchsi4m_eq): New.
1527 (*tstbranchsi4m_ne): New.
1528 (cbranchsf4): Remove mode.
1529 (*cbranchsf4_<code>): Likewise.
1530
1531 2010-07-30 Bernd Schmidt <bernds@codesourcery.com>
1532
1533 * rtlanal.c (simplify_subreg_regno): Don't treat
1534 HARD_FRAME_POINTER_REGNUM specially.
1535
1536 2010-07-30 Joseph Myers <joseph@codesourcery.com>
1537
1538 * common.opt (-G): Don't define option here.
1539 * config/g.opt: New.
1540 * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
1541 rs6000/powerpc and score targets.
1542 * opts.c (common_handle_option): Don't handle -G here.
1543 * config/alpha/alpha.c (alpha_handle_option): Handle -G.
1544 * config/frv/frv.c (frv_handle_option): Handle -G.
1545 * config/ia64/ia64.c (ia64_handle_option): Handle -G.
1546 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
1547 * config/m32r/m32r.c (m32r_handle_option): Handle -G.
1548 * config/mips/mips.c (mips_handle_option): Handle -G.
1549 * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
1550 * config/score/score.c (score_handle_option): Handle -G.
1551
1552 2010-07-30 Anatoly Sokolov <aesok@post.ru>
1553
1554 * config/mmix/mmix.c: Include basic-block.h.
1555
1556 2010-07-30 Jakub Jelinek <jakub@redhat.com>
1557
1558 PR debug/45055
1559 PR rtl-optimization/45137
1560 * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
1561 prototypes.
1562 * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
1563 New functions.
1564 * combine.c (next_nonnote_nondebug_insn): Removed.
1565 * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
1566 * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
1567 * sched-deps.c (sched_analyze_insn): Likewise.
1568 (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
1569 * rtlanal.c (canonicalize_condition): Likewise.
1570 * postreload.c (reload_combine_recognize_pattern): Likewise.
1571 (reload_cse_move2add): Use next_nonnote_nondebug_insn.
1572
1573 2010-07-29 Uros Bizjak <ubizjak@gmail.com>
1574
1575 * config/i386/i386.md (int_cond): Remove code iterator.
1576 (fp_cond): Ditto.
1577 (cbranch<mode>4): Use ordered_comparison_operator predicate
1578 for operator0.
1579 (cstore<mode>4): Ditto for operator1.
1580 (mov<SWIM:mode>cc and corresponding splitter): Ditto.
1581 (add<mode>cc): ditto.
1582
1583 2010-07-30 Richard Guenther <rguenther@suse.de>
1584
1585 PR middle-end/45141
1586 * expr.c (expand_expr_real_1): Check for not handled base address.
1587
1588 2010-07-30 Richard Guenther <rguenther@suse.de>
1589
1590 * ipa-prop.c (ipa_modify_formal_parameters): Use
1591 build_distinct_type_copy.
1592
1593 2010-07-30 Anthony Green <green@moxielogic.com>
1594
1595 * config/moxie/rtems.h: New file.
1596 * config.gcc: Add moxie-rtems support.
1597
1598 2010-07-29 Bernd Schmidt <bernds@codesourcery.com>
1599
1600 * dce.c (run_word_dce): Take flag_dce into account. Clear and restore
1601 df flags as in run_fast_df_dce.
1602
1603 2010-07-29 Jakub Jelinek <jakub@redhat.com>
1604
1605 Revert:
1606 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
1607
1608 * rtl.def (NOTE): Swap operands 4 and 5.
1609 * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
1610 NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
1611 Adjust accordingly.
1612 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
1613
1614 2010-07-29 Jakub Jelinek <jakub@redhat.com>
1615
1616 PR debug/45110
1617 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
1618 (gen_formal_types_die): Add DW_AT_object_pointer in methods.
1619 (gen_subprogram_die): Likewise. Remove it when removing declaration's
1620 formal parameters.
1621 (gen_decl_die): Change return type to dw_die_ref, return what
1622 gen_formal_parameter_die returned.
1623
1624 2010-07-29 Martin Jambor <mjambor@suse.cz>
1625
1626 * dbgcnt.def (eipa_sra): New counter.
1627 * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
1628
1629 2010-07-29 Xinliang David Li <davidxl@google.com>
1630
1631 PR bootstrap/45119
1632 * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
1633 in revision 162652.
1634
1635 2010-07-29 Richard Guenther <rguenther@suse.de>
1636
1637 * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
1638 (TV_TREE_STORE_CCP): Likewise.
1639 (TV_TREE_REDPHI): Likewise.
1640
1641 2010-07-29 Richard Guenther <rguenther@suse.de>
1642
1643 * double-int.h (double_int_and_not): New function.
1644 * combine.c (try_combine): Use it.
1645 * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
1646
1647 2010-07-29 Bernd Schmidt <bernds@codesourcery.com>
1648
1649 PR rtl-optimization/42575
1650 * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
1651 Argument AU removed. All callers changed. Ignore artificial refs.
1652 Use return value of df_word_lr_simulate_defs to decide whether an insn
1653 is necessary.
1654 (fast_dce): Rename arg to WORD_LEVEL.
1655 (run_word_dce): Renamed from rest_of_handle_fast_byte_dce. No longer
1656 static.
1657 (pass_fast_rtl_byte_dce): Delete.
1658 * dce.h (run_word_dce): Declare.
1659 * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
1660 All callers changed. Simplify code to only deal with two-word regs.
1661 * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
1662 (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
1663 (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
1664 (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
1665 (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
1666 (df_word_lr_mark_ref): Declare.
1667 (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
1668 df_word_lr_simulate_uses): Declare or rename from byte variants.
1669 (df_byte_lr_simulate_artificial_refs_at_top,
1670 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
1671 df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
1672 declarations.
1673 (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
1674 (enum df_mm): Delete.
1675 * df-byte-scan.c: Delete file.
1676 * df-problems.c (df_word_lr_problem_data): Renamed from
1677 df_byte_lr_problem_data, all members deleted except for
1678 WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS. Uses changed.
1679 (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
1680 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
1681 df_byte_lr_get_regno_len, df_byte_lr_check_regs,
1682 df_byte_lr_confluence_0): Delete functions.
1683 (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
1684 callers changed.
1685 (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
1686 Don't initialize members that were deleted, don't try to discover data
1687 about registers. Ignore hard regs.
1688 (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
1689 (df_word_lr_mark_ref): New function.
1690 (df_word_lr_bb_local_compute): Renamed from
1691 df_byte_bb_lr_local_compute; all callers changed. Use
1692 df_word_lr_mark_ref. Assert that artificial refs don't include
1693 pseudos. Ignore hard registers.
1694 (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
1695 Assert that exit block uses don't contain pseudos.
1696 (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
1697 (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
1698 callers changed. Ignore hard regs.
1699 (df_word_lr_transfer_function): Renamed from
1700 df_byte_lr_transfer_function; all callers changed.
1701 (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
1702 (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
1703 changed.
1704 (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
1705 callers changed.
1706 (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
1707 confluence operator 0 set to NULL.
1708 (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
1709 callers changed.
1710 (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
1711 Return bool, true if bitmap changed or insn otherwise necessary.
1712 All callers changed. Simplify using df_word_lr_mark_ref.
1713 (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
1714 all callers changed. Simplify using df_word_lr_mark_ref.
1715 * lower-subreg.c: Include "dce.h"
1716 (decompose_multiword_subregs): Call run_word_dce if df available.
1717 * Makefile.in (lower-subreg.o): Adjust dependencies.
1718 (df-byte-scan.o): Delete.
1719 * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
1720
1721 2010-07-29 Richard Guenther <rguenther@suse.de>
1722
1723 * tree.c (build_vector): Assert that the vector constant
1724 has enough elements.
1725 (build_vector_from_ctor): Pad with trailing zeros.
1726
1727 2010-07-29 Richard Guenther <rguenther@suse.de>
1728
1729 PR tree-optimization/45120
1730 * tree-ssa-structalias.c (get_constraint_for_component_ref):
1731 Handle offset in DEREFs properly.
1732 (get_constraint_for_1): Handle MEM_REF offset properly.
1733
1734 2010-07-29 Richard Guenther <rguenther@suse.de>
1735
1736 PR middle-end/45034
1737 * convert.c (convert_to_integer): Always use an unsigned
1738 type for narrowed negate and bitwise not.
1739
1740 2010-07-29 Ira Rosen <irar@il.ibm.com>
1741
1742 * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
1743 to outer loop when creating reduction epilogue for double reduction,
1744 and switch back to the inner loop when updating the phi nodes.
1745 Update uses of outer loop exit phi nodes in double reduction (instead
1746 of uses of reduction).
1747
1748 2010-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
1749
1750 * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
1751 popcount on power7 and parity on power6 systems.
1752 (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
1753 (rs6000_emit_parity): Add support for power6 prtyd/prtyw
1754 instructions.
1755
1756 * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
1757 (UNSPEC_PARITY): Ditto.
1758 (SFDF): New iterator for SF/DF.
1759 (rreg2): New mode attribute for floating register constraint.
1760 (TARGET_FLOAT): New mode attribute for whether single/double float
1761 is supported.
1762 (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
1763 pattern.
1764 (parity<mode>2_cmpb): New insn for parity on power6 and newer
1765 machines.
1766 (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
1767 pattern. Add support for fcpsgn instruction added in power6.
1768 (copysignsf3): Delete.
1769 (copysigndf3): Delete.
1770 (copysign<mode>3_fcpsgn): New insn to generate fcpsgn. Use UNSPEC
1771 instead of if_then_else in RTL to avoid problems with -0.
1772
1773 * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
1774 of if_then_else to mirror scalar code.
1775 (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
1776 rs6000.md.
1777
1778 * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
1779 instead of if_then_else.
1780
1781 2010-07-28 Xinliang David Li <davidxl@google.com>
1782
1783 * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
1784 (dump_cand): Dump var_before/after.
1785 (htab_inv_expr_eq): New function.
1786 (htab_inv_expr_hash): New function.
1787 (tree_ssa_iv_optimize_init): Support pseudo invariants.
1788 (add_candidate_1): consider base type precision.
1789 (set_use_iv_cost): New parameter.
1790 (adjust_setup_cost): Use profile information.
1791 (get_address_cost): Do not hard code width in computing address
1792 offset limits.
1793 (compare_aff_trees): New function.
1794 (get_loop_invariant_expr_id): New function.
1795 (get_computation_cost_at): New parameter and use profile information.
1796 (get_computation_cost): New parameter.
1797 (determine_use_iv_cost_generic): Pass new parameter.
1798 (determine_use_iv_cost_address): Ditto.
1799 (determine_use_iv_cost_condition): Ditto.
1800 (autoinc_possible_for_pair): Ditto.
1801 (determine_use_iv_costs): More dumps.
1802 (iv_ca_get_num_inv_exprs): New function.
1803 (iv_ca_recount_cost): Consider loop invariants in register pressure
1804 cost.
1805 (iv_ca_add_use): New parameter.
1806 (iv_ca_dump): Better dumping.
1807 (iv_ca_extend): New parameter.
1808 (try_add_cand_for): Attempt to get better partial solution.
1809 (try_improve_iv_set): Pass new parameter to iv_ca_extend.
1810 (create_new-ivs): More dumps.
1811 (rewrite_use_compare): Ditto.
1812 (free_loop_data): More cleanup.
1813 (treee_ssa_iv_optimize_finalize): Ditto.
1814
1815 2010-07-28 Kai Tietz <kai.tietz@onevision.com>
1816
1817 * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
1818 * config/i386/i386.c (ix86_profile_before_prologue): New.
1819 (override_options): Add special handling for -mfentry.
1820 (ix86_function_regparm): Likewise.
1821 (ix86_function_sseregparm): Likewise.
1822 (ix86_frame_pointer_required): Likewise.
1823 (ix86_expand_prologue): Check for ms_hook_prologue.
1824 (x86_function_profiler): Adjust mcount output.
1825 (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
1826 * config/i386/i386.opt (mfentry): New.
1827 * doc/invoke.texi (mfentry): Add documentation.
1828 * doc/tm.texi: Regenerated..
1829 * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
1830 * final.c (final_start_function): Replace macro
1831 PROFILE_BEFORE_PROLOGUE by target hook.
1832 * function.c (thread_prologue_and_epilogue_insns): Likewise.
1833 * target.def (profile_before_prologue): New hook.
1834 * targhooks.c (default_profile_before_prologue): New.
1835 * targhooks.h (default_profile_before_prologue): New.
1836
1837 2010-07-28 Jakub Jelinek <jakub@redhat.com>
1838
1839 PR debug/45105
1840 * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
1841
1842 PR debug/45103
1843 * dwarf2out.c (dwarf2out_var_location): Always consider
1844 NOTE_DURING_CALL_P notes, even when not followed by real instructions.
1845
1846 2010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
1847
1848 PR rtl-optimization/45107
1849 * gcse.c (hash_scan_set): Use max_distance for gcse-las.
1850
1851 2010-07-28 Richard Guenther <rguenther@suse.de>
1852
1853 * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
1854 (set_lattice_value): Do not query an old default value.
1855 (get_value_for_expr): New function. Properly canonicalize
1856 float values.
1857 (ccp_visit_phi_node): Use it.
1858
1859 2010-07-28 Chung-Lin Tang <cltang@codesourcery.com>
1860
1861 * config/arm/arm.c (arm_pcs_default): Remove static.
1862 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
1863 __ARM_PCS_VFP to indicate soft/hard-float calling convention.
1864 (arm_pcs_default): Declare.
1865
1866 2010-07-28 Iain Sandoe <iains@gcc.gnu.org>
1867
1868 * config/rs6000/rs6000.c (rs6000_override_options):
1869 Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
1870 ... to darwin_rs6000_override_options.
1871 (rs6000_return_in_memory): Update preceding comment for darwin
1872 64 bit ABI. Use TARGET_MACHO inline.
1873 (rs6000_darwin64_struct_check_p): New.
1874 (function_arg_advance): Use rs6000_darwin64_struct_check_p.
1875 (function_arg): Likewise.
1876 (rs6000_arg_partial_bytes): Likewise.
1877 (rs6000_function_value): Likewise.
1878
1879 2010-07-28 Andi Kleen <ak@linux.intel.com>
1880
1881 * lto-opts.c (lto_file_read_options): Add loop over all inputs.
1882
1883 2010-07-28 Richard Guenther <rguenther@suse.de>
1884
1885 PR middle-end/44903
1886 * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
1887 targets try harder to not generate unaligned accesses.
1888
1889 2010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
1890
1891 PR rtl-optimization/45101
1892 * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
1893 for gcse-las.
1894
1895 2010-07-28 Eric Botcazou <ebotcazou@adacore.com>
1896
1897 PR tree-optimization/44885
1898 * tree-sra.c (find_param_candidates): Skip pointer types to arrays
1899 with non-aliased component.
1900
1901 2010-07-28 Joseph Myers <joseph@codesourcery.com>
1902
1903 * config/darwin-driver.c (SWITCH_TAKES_ARG,
1904 WORD_SWITCH_TAKES_ARG): Remove.
1905 * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
1906 * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
1907 DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
1908 (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
1909 definitions from gcc.c.
1910 * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
1911 defaults.h.
1912 * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
1913 Move to defaults.h.
1914 * opts-common.c: Include tm.h.
1915 (decode_cmdline_option): Use SWITCH_TAKES_ARG and
1916 WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
1917 Handle more than one argument. Set canonical_option_num_elements.
1918 (decode_cmdline_options_to_array): Set
1919 canonical_option_num_elements and trailing elements of
1920 canonical_option.
1921 * opts.h (struct cl_decoded_option): Allow four elements in
1922 canonical_option. Add field canonical_option_num_elements.
1923 * Makefile.in (opts-common.o): Update dependencies.
1924
1925 2010-07-28 Eric Botcazou <ebotcazou@adacore.com>
1926
1927 PR middle-end/44790
1928 PR middle-end/44993
1929 * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change. Make
1930 sure the base has address_mode before adding the offset.
1931
1932 2010-07-27 Xinliang David Li <davidxl@google.com>
1933
1934 * tree-flow.h (create_mem_ref): Add one new parameter.
1935 * tree-ssa-address.c (create_mem_ref): New parameter.
1936 (addr_to_parts): Ditto.
1937 (move_variant_to_index): New function.
1938 * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
1939
1940 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
1941
1942 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
1943 4 and 5.
1944 * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
1945 NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
1946 NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
1947 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
1948 CODE_LABELs and NOTEs.
1949 * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
1950 * combine.c (try_combine): Likewise.
1951 * ira.c (setup_prohibited_mode_move_regs): Likewise.
1952 * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
1953
1954 2010-07-27 Joseph Myers <joseph@codesourcery.com>
1955
1956 * coretypes.h (struct cl_option_handlers): Declare.
1957 * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
1958 * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
1959 * langhooks-def.h (lhd_handle_option): Declare.
1960 (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
1961 * langhooks.c (lhd_handle_option): New.
1962 * langhooks.h (struct lang_hooks): Update prototype and return
1963 value type of handle_option hook.
1964 * optc-gen.awk: Generate target_flags_explicit definition for the
1965 driver.
1966 * opts-common.c: Include diagnostic.h.
1967 (handle_option): Move from opts.c. Update prototype and return
1968 value type. Use handlers structure.
1969 (read_cmdline_option): Move from opts.c. Update prototype. Use
1970 handlers structure.
1971 (set_option): Move from opts.c.
1972 * opts.c (common_handle_option): Update prototype and return value
1973 type. Update calls to handle_option and enable_warning_as_error.
1974 (unknown_option_callback, post_handling_callback,
1975 lang_handle_option, target_handle_option): New.
1976 (handle_option, read_cmdline_option): Move to opts-common.c.
1977 (read_cmdline_options): Update prototype. Update call to
1978 read_cmdline_option.
1979 (decode_options): Initialize and use handlers structure.
1980 (set_option): Move to opts-common.c.
1981 (enable_warning_as_error): Update prototype. Update call to
1982 handle_option.
1983 * opts.h (struct cl_option_handler_func, struct
1984 cl_option_handlers): New.
1985 (handle_option, enable_warning_as_error): Update prototypes.
1986 (read_cmdline_option): Declare.
1987 * Makefile.in (opts-common.o): Update dependencies.
1988
1989 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
1990
1991 * config/arm/arm.c (params.h): Include.
1992 (arm_override_options): Tune gcse-unrestricted-cost.
1993 * config/arm/t-arm (arm.o): Define dependencies.
1994
1995 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
1996
1997 PR target/42495
1998 PR middle-end/42574
1999 * basic-block.h (get_dominated_to_depth): Declare.
2000 * dominance.c (get_dominated_to_depth): New function, use
2001 get_all_dominated_blocks as a base.
2002 (get_all_dominated_blocks): Use get_dominated_to_depth.
2003
2004 * gcse.c (occr_t, VEC (occr_t, heap)): Define.
2005 (hoist_exprs): Remove.
2006 (alloc_code_hoist_mem, free_code_hoist_mem): Update.
2007 (compute_code_hoist_vbeinout): Add debug print outs.
2008 (hoist_code): Partially rewrite, simplify. Use get_dominated_to_depth.
2009
2010 * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
2011 quadratic behavior.
2012 * params.h (MAX_HOIST_DEPTH): New macro.
2013 * doc/invoke.texi (max-hoist-depth): Document.
2014
2015 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
2016
2017 PR rtl-optimization/40956
2018 * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
2019 constants.
2020
2021 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
2022
2023 PR target/42495
2024 PR middle-end/42574
2025 * config/arm/arm.c (legitimize_pic_address): Use
2026 gen_calculate_pic_address pattern to emit calculation of PIC address.
2027 (will_be_in_index_register): New function.
2028 (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
2029 (thumb1_legitimate_address_p): Use it provided !strict_p.
2030 * config/arm/arm.md (calculate_pic_address): New expand and split.
2031
2032 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
2033
2034 PR target/42495
2035 PR middle-end/42574
2036 * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
2037 * config/arm/arm.md (define_split "J", define_split "K"): Make
2038 IRA/reload friendly.
2039
2040 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
2041
2042 * gcse.c (insert_insn_end_basic_block): Update signature, remove
2043 unused checks.
2044 (pre_edge_insert, hoist_code): Update.
2045
2046 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
2047
2048 PR target/42495
2049 PR middle-end/42574
2050 * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
2051
2052 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
2053
2054 * gcse.c (hoist_code): Generate new pseudo for every new set insn.
2055
2056 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
2057
2058 PR rtl-optimization/40956
2059 PR target/42495
2060 PR middle-end/42574
2061 * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
2062 for hoisting.
2063 (hoist_code): Count occurences in current block too.
2064
2065 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
2066
2067 * gcse.c (struct expr:max_distance): New field.
2068 (doing_code_hoisting_p): New static variable.
2069 (want_to_gcse_p): Change signature. Allow constrained hoisting of
2070 simple expressions, don't change behavior for PRE. Set max_distance.
2071 (insert_expr_in_table): Set new max_distance field.
2072 (hash_scan_set): Update.
2073 (hoist_expr_reaches_here_p): Stop search after max_distance
2074 instructions.
2075 (find_occr_in_bb): New static function. Use it in ...
2076 (hoist_code): Calculate sizes of basic block before any changes are
2077 done. Pass max_distance to hoist_expr_reaches_here_p.
2078 (one_code_hoisting_pass): Set doing_code_hoisting_p.
2079
2080 * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
2081 (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
2082 * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
2083 macros.
2084 * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
2085 Document.
2086
2087 2010-07-27 Jeff Law <law@redhat.com>
2088 Maxim Kuvyrkov <maxim@codesourcery.com>
2089
2090 * gcse.c (compute_transpout, transpout): Remove, move logic
2091 to prune_expressions.
2092 (compute_pre_data): Move pruning of trapping expressions ...
2093 (prune_expressions): ... here. New static function.
2094 (compute_code_hoist_data): Use it.
2095 (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
2096
2097 2010-07-27 Xinliang David Li <davidxl@google.com>
2098
2099 * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
2100 (rewrite_use_address): Adjust iv update position when needed.
2101
2102 2010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
2103
2104 * dbgcnt.def (hoist_insn): New debug counter.
2105 * gcse.c (hoist_code): Use it.
2106
2107 2010-07-27 Xinliang David Li <davidxl@google.com>
2108
2109 * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
2110 (niter_for_single_dom_exit): Passes additional parameter.
2111 (iv_period): Fix comments.
2112 (may_eliminate_iv): Handles multiple exit loops properly.
2113 (free_tree_niter_desc): New function.
2114 (free_loop_data): Frees up loop iteration descriptors.
2115
2116 2010-07-27 Jakub Jelinek <jakub@redhat.com>
2117
2118 PR target/44542
2119 * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
2120 of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
2121 instead of MAX_SUPPORTED_STACK_ALIGNMENT.
2122 (expand_one_var): Don't consider DECL_ALIGN for variables for
2123 which expand_one_stack_var_at has been already called.
2124
2125 PR testsuite/44701
2126 * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
2127 constraints on IA-64.
2128
2129 2010-07-27 Jie Zhang <jie@codesourcery.com>
2130
2131 PR target/44290
2132 Revert:
2133 2010-07-23 Jie Zhang <jie@codesourcery.com>
2134
2135 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
2136 false if ! tree_versionable_function_p.
2137
2138 2010-07-27 Jakub Jelinek <jakub@redhat.com>
2139
2140 * dwarf2out.c (add_data_member_location_attribute): Use
2141 add_AT_unsigned instead of add_AT_int if offset is non-negative.
2142
2143 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
2144
2145 * postreload.c (try_replace_in_use): New static function.
2146 (reload_combine_recognize_const_pattern): Use it here. Allow
2147 substituting into a final add insn, and substituting into a memory
2148 reference in an insn that sets the reg.
2149
2150 2010-07-27 Joseph Myers <joseph@codesourcery.com>
2151
2152 * common.opt (o): Add MissingArgError.
2153 * doc/options.texi (MissingArgError): Document.
2154 * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
2155 * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
2156 * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
2157 (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
2158 * langhooks.h (struct lang_hooks): Remove missing_argument.
2159 * optc-gen.awk: Handle MissingArgError and output new structure
2160 field initializers.
2161 * opts.c (read_cmdline_option): Use missing_argument_error field
2162 instead of missing_argument langhook.
2163 * opts.h (struct cl_option): Add missing_argument_error field.
2164 * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
2165
2166 2010-07-27 Iain Sandoe <iains@gcc.gnu.org>
2167
2168 PR target/29090
2169 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
2170 Darwin64 ABI, for zero-sized objects.
2171
2172 2010-07-27 Iain Sandoe <iains@gcc.gnu.org>
2173
2174 PR target/35491
2175 PR target/29090
2176
2177 Merge from Apple local 4.2.1.
2178 2005-05-11 Stan Shebs <shebs@apple.com>
2179 Fix 64-bit varargs for Darwin (Radar 4028089).
2180 * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
2181 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
2182 Add argument, add case for 8-byte register half-filled with a float.
2183 (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
2184 single-precision floats specially.
2185
2186 2010-07-27 Ira Rosen <irar@il.ibm.com>
2187
2188 PR tree-optimization/44152
2189 * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
2190 complex numbers for further check.
2191 (vect_supported_load_permutation_p): Check nodes with
2192 complex numbers.
2193
2194 2010-07-27 Joseph Myers <joseph@codesourcery.com>
2195
2196 * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
2197 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
2198 (LANG_HOOKS_INIT_OPTIONS): Update default definition.
2199 (LANG_HOOKS_INITIALIZER): Add new hooks.
2200 * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
2201 * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
2202 and complain_wrong_lang_p. Update init_options prototype.
2203 * c-objc-common.c (c_initialize_diagnostics): First call
2204 c_common_initialize_diagnostics.
2205 * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
2206 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
2207 * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
2208 * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
2209 (hook_uint_void_0): New.
2210 * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
2211 (hook_uint_void_0): New.
2212 * opts-common.c (decode_cmdline_option,
2213 decode_cmdline_options_to_array): Also fill in canonical_option field.
2214 * opts.c (complain_wrong_lang): Use langhook to determine whether
2215 to complain instead of special-casing LTO.
2216 (decode_options): Separate lang_mask determination with
2217 option_lang_mask hook from call of init_options hook.
2218 * opts.h (struct cl_decoded_option): Add canonical_option.
2219
2220 2010-07-27 Jakub Jelinek <jakub@redhat.com>
2221
2222 PR tree-optimization/45083
2223 * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
2224
2225 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
2226
2227 * postreload.c (reload_combine_recognize_const_pattern): Move test
2228 for limiting the insn movement to the right scope.
2229
2230 PR rtl-optimization/45051
2231 * reload1.c (delete_output_reload): Use refers_to_regno_p rather
2232 than reg_mentioned_p.
2233
2234 2010-07-26 Richard Henderson <rth@redhat.com>
2235
2236 PR target/44132
2237 * tree-emutls.c: New file.
2238 * Makefile.in (OBJS-common): Add it.
2239 * tree-pass.h (pass_ipa_lower_emutls): Declare.
2240 * passes.c (init_optimization_passes): Add it.
2241
2242 * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
2243 pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
2244 * expr.c (emutls_var_address): Delete.
2245 (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
2246 * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
2247 (emutls_finish): Delete.
2248 * toplev.c (compile_file): Don't call it.
2249 * tree.h (emutls_decl): Delete.
2250 * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
2251 (emutls_finish, emutls_finalize_control_var): Delete.
2252 (emutls_object_type): Move to tree-emutls.c.
2253 (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
2254 default_emutls_var_fields, get_emutls_object_type,
2255 get_emutls_init_templ_addr, emutls_decl, emutls_common_1
2256 default_emutls_var_init): Likewise.
2257 (get_variable_section): Don't special case emutls.
2258 (assemble_variable, do_assemble_alias, categorize_decl_for_section,
2259 default_elf_select_section, default_unique_section,
2260 default_encode_section_info): Likewise.
2261 * varpool.c (decide_is_variable_needed): Likewise.
2262 * gimple-iterator.c (update_call_edge_frequencies): New
2263 (gsi_insert_on_edge_immediate): Use it.
2264 (gsi_insert_seq_on_edge_immediate): Likewise.
2265 (gsi_commit_one_edge_insert): Likewise.
2266
2267 * config/i386/i386.c (x86_64_elf_select_section): Don't handle
2268 SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
2269 (x86_64_elf_unique_section): Likewise.
2270
2271 2010-07-26 Jan Hubicka <jh@suse.cz>
2272
2273 * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
2274 GTY((skip)).
2275
2276 2010-07-26 Anatoly Sokolov <aesok@post.ru>
2277
2278 * target.def (output_source_filename): New hook.
2279 * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
2280 * doc/tm.texi: Regenerate.
2281 * toplev.c (output_file_directive) Remove function.
2282 * toplev.h (output_file_directive) Remove.
2283 * output.h (default_asm_output_source_filename,
2284 output_file_directive): Declare.
2285 * varasm.h (default_asm_output_source_filename,
2286 output_file_directive): New functions.
2287
2288 * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
2289 * config/mips/mips-protos.h (mips_output_filename): Remove.
2290 * config/mips/mips.c (mips_output_filename): Make Static.
2291 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
2292
2293 2010-07-26 Richard Guenther <rguenther@suse.de>
2294
2295 PR tree-optimization/43784
2296 * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
2297 if the destination is used by the call.
2298
2299 2010-07-26 Richard Guenther <rguenther@suse.de>
2300
2301 PR middle-end/45073
2302 * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
2303 SSA updating on being in SSA form.
2304
2305 2010-07-26 Richard Guenther <rguenther@suse.de>
2306
2307 PR middle-end/45056
2308 * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
2309
2310 2010-07-26 Richard Guenther <rguenther@suse.de>
2311
2312 PR tree-optimization/45071
2313 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
2314 adjust op->opcode.
2315
2316 2010-07-26 Naveen.H.S <naveen.S@kpitcummins.com>
2317
2318 * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
2319 save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
2320 save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
2321 save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
2322 save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
2323 save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
2324 save_r31, return_r31, save_interrupt, return_interrupt,
2325 save_all_interrupt, return_all_interrupt, L_save_r2_r31,
2326 L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
2327 L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
2328 new ABI requirements.
2329 (save_r6_r9, L_callt_save_r6_r9): Remove.
2330 * config/v850/predicates.md (even_reg_operand, disp23_operand,
2331 const_float_1_operand const_float_0_operand): New Predicates.
2332 (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
2333 pattern_is_ok_for_epilogue): Update as per the ABI requirements.
2334 * config/v850/t-v850: Update multilibs for new target variants.
2335 (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
2336 * config/v850/t-v850e: Likewise.
2337 * config/v850/v850.c (v850_issue_rate): New.
2338 (v850_strict_argument_naming): New.
2339 (function_arg): Modify to generate a different ABI.
2340 (print_operand): Update case 'z' to support float modes.
2341 (output_move_single): Modify to generate appropriate and better
2342 assembly.
2343 (v850_float_z_comparison_operator, v850_select_cc_mode,
2344 v850_float_nz_comparison_operator, v850_gen_float_compare,
2345 v850_gen_compare): New functions to support comparison of float values.
2346 (ep_memory_offset): Add support for V850E2 targets.
2347 (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
2348 (INTERRUPT_REGPARM_NUM): Remove.
2349 (compute_register_save_size): Add extra case to save/restore long call.
2350 (use_prolog_function): New function to support prologue.
2351 (expand_prologue): Add support for V850E2 targets and modified
2352 as per the current ABI requirements.
2353 (expand_epilogue): Likewise.
2354 (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
2355 (construct_save_jarl): Likewise.
2356 (construct_dispose_instruction): Update as per the current ABI
2357 requirements.
2358 (construct_prepare_instruction): Likewise.
2359 * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
2360 (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
2361 (CPP_SPEC): Updated to support v850e2 targets.
2362 (STRICT_ALIGNMENT): Modified.
2363 (FIRST_PSEUDO_REGISTER): Updated to add even registers.
2364 (FIXED_REGISTERS): Likewise.
2365 (CALL_USED_REGISTERS): Likewise.
2366 (CONDITIONAL_REGISTER_USAGE): Updated.
2367 (HARD_REGNO_MODE_OK): Updated.
2368 (reg_class): Updated to add even registers.
2369 (REG_CLASS_NAMES): Likewise.
2370 (REG_CLASS_CONTENTS): Likewise.
2371 (REGNO_REG_CLASS): Updated for CC registers.
2372 (REG_CLASS_FROM_LETTER): Added support for even registers.
2373 (REGNO_OK_FOR_BASE_P): Updated for CC registers.
2374 (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
2375 ARG_POINTER_REGNUM): Updated.
2376 (FUNCTION_ARG_ADVANCE): Define.
2377 (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
2378 (OUTGOING_REG_PARM_STACK_SPACE): Remove.
2379 (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
2380 (GO_IF_LEGITIMATE_ADDRESS): Updated.
2381 (SELECT_CC_MODE): Define.
2382 (REGISTER_NAMES): Updated to add psw and fcc registers.
2383 (ADDITIONAL_REGISTER_NAMES): Updated.
2384 (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
2385 (JUMP_TABLES_IN_TEXT_SECTION): Updated.
2386 * config/v850/v850.md (define_constants): Define new constants.
2387 (type): Update store,bit1,macc,div,fpu and single attributes.
2388 (cpu): New attribute.
2389 (cc): Add set_z attribute.
2390 (unsign23byte_load, sign23byte_load, unsign23hword_load,
2391 sign23hword_load, 23word_load, 23byte_store, 23hword_store,
2392 23word_store): New instructions for 23-bit displacement load and store.
2393 (movqi_internal, movhi_internal): Update the attributes.
2394 (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
2395 (movsi_internal_v850e, movsi_internal, movsf_internal): Update
2396 the attributes.
2397 (v850_tst1): Modified using CC_REGNUM.
2398 (tstsi): Remove.
2399 (cmpsi): Modified as define_expand from define_insn.
2400 (cmpsi_insn, cmpsf, cmpdf): New instructions.
2401 (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
2402 udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
2403 v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
2404 one_cmplsi2): Clobber the CC_REGNUM register.
2405 (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
2406 v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
2407 v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
2408 (setf_insn, set_z_insn, set_nz_insn): New instructions for
2409 v850e2v3 target.
2410 (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
2411 (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
2412 targets.
2413 (sasf_1, sasf_2): Remove.
2414 (sasf): New instruction.
2415 (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
2416 targets. CC_REGNUM register is clobbered and attributes are
2417 updated.
2418 (branch_z_normal, branch_z_invert, branch_nz_normal,
2419 branch_nz_invert): New branch related instructions.
2420 (jump): Updated the attributes.
2421 (switch): Update to support new targets. CC_REGNUM register is
2422 clobbered and attributes are updated.
2423 (call_internal_short, call_internal_long, call_value_internal_short,
2424 call_value_internal_long): Updated the attributes.
2425 (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
2426 clobbered and attributes are updated.
2427 (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
2428 Update to support new targets. CC_REGNUM register is clobbered.
2429 (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
2430 instructions.
2431 (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
2432 are updated.
2433 (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
2434 divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
2435 negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
2436 floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
2437 rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
2438 cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
2439 cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
2440 cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
2441 movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
2442 movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
2443 point instructions defined for V850e2v3 target.
2444 (callt_save_interrupt, callt_return_interrupt, return_interrupt):
2445 Add support for V850E2 targets and CC_REGNUM register is clobbered.
2446 (callt_save_all_interrupt, callt_restore_all_interrupt): Add
2447 support for new targets.
2448 * config/v850/v850-modes.def: New file.
2449 * config/v850/v850.opt(mstrict-align): Remove.
2450 (mno-strict-align, mjump-tables-in-data-section, mv850e2,
2451 mv850e2v3): New command line options for V850.
2452 * config.gcc: Update the newly added files.
2453 * doc/invoke.texi: Update the newly added command line options for
2454 V850 target.
2455
2456 2010-07-26 Richard Guenther <rguenther@suse.de>
2457
2458 PR tree-optimization/45052
2459 * ipa-pure-const.c (check_stmt): Check volatileness.
2460
2461 2010-07-25 Eric Botcazou <ebotcazou@adacore.com>
2462
2463 PR target/44707
2464 * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
2465 * config/sparc/sparc.c: Include reload.h.
2466 (legitimize_tls_address): Rename into...
2467 (sparc_legitimize_tls_address): ...this.
2468 (legitimize_pic_address): Rename into...
2469 (sparc_legitimize_pic_address): ...this.
2470 (sparc_expand_move): Adjust to above renaming.
2471 (sparc_tls_referenced_p): Likewise.
2472 (sparc_legitimize_tls_address): Likewise.
2473 (sparc_legitimize_pic_address): Likewise.
2474 (sparc_legitimize_address): Likewise.
2475 (sparc_output_mi_thunk): Likewise.
2476 (sparc_legitimize_reload_address): New global function. Recognize
2477 (lo_sum (high ...) ...) patterns generated by earlier passes.
2478 * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
2479
2480 2010-07-25 Eric Botcazou <ebotcazou@adacore.com>
2481
2482 PR target/44484
2483 * config/sparc/predicates.md (memory_reg_operand): Delete.
2484 * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
2485 (*sync_compare_and_swap): Encode the address form in the pattern.
2486 (*sync_compare_and_swapdi_v8plus): Likewise.
2487
2488 2010-07-24 Gerald Pfeifer <gerald@pfeifer.com>
2489
2490 * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
2491 Streamline paragraph on compatibility with the system compiler.
2492
2493 2010-07-24 Steven Bosscher <steven@gcc.gnu.org>
2494
2495 PR middle-end/45035
2496 * alias.c (true_dependence_1): Fix thinko in merge of old
2497 true_dependence and canon_true_dependence.
2498
2499 2010-07-23 Jan Hubicka <jh@suse.cz>
2500
2501 * lto-streamer-out.c (write_symbol): Fix visibilities of external
2502 references.
2503
2504 2010-07-23 Le-Chun Wu <lcwu@google.com>
2505
2506 * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
2507 * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
2508 and an unnecessary assignment.
2509 * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
2510 self-assign warning.
2511 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
2512 unnecessary self-init.
2513
2514 2010-07-23 Richard Guenther <rguenther@suse.de>
2515
2516 PR lto/43071
2517 * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
2518 for -flto and -fwhopr.
2519
2520 2010-07-23 Kai Tietz <kai.tietz@onevision.com>
2521
2522 PR target/41943
2523 * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
2524 (stmp-int-hdrs): Prefix/postfix headers by include_next.
2525 * config.gcc (user_headers_inc_next_pre): New.
2526 (user_headers_inc_next_post): Likewise.
2527 (*-w64-mingw*): Use for float.h post-fixing, and for
2528 stddef.h/stdarg.h pre-fixing by include_next.
2529 * configure.ac (user_headers_inc_next_post): New.
2530 (user_headers_inc_next_pre): New.
2531 * configure: Regenerated.
2532
2533 2010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2534
2535 * configure.ac: Don't disable TLS on Solaris 8/9 by default
2536 Set tga_func for Solaris 2/x86 resp. SPARC.
2537 Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
2538 (LIB_THREAD_LDFLAGS_SPEC): Define.
2539 (LIB_TLS_SPEC): Define. Check for required Sun ld version.
2540 * configure: Regenerate.
2541 * config.in: Regenerate.
2542 * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
2543 -pthread, -threads, LIB_TLS_SPEC with -pthread.
2544 * doc/install.texi (Specific, *-*-solaris2*): Document use of
2545 alternate thread libraries on Solaris 8.
2546 Document TLS patch requirements.
2547 * doc/sourcebuild.texi (Add Options): Sort alphabetically.
2548 Document tls.
2549
2550 PR target/18788
2551 * config/sol2.h (LIB_SPEC): Link with thread libraries even with
2552 -shared.
2553
2554 2010-07-23 Jakub Jelinek <jakub@redhat.com>
2555
2556 * tree.h (struct tree_base): Add nameless_flag bitfield.
2557 (TYPE_NAMELESS, DECL_NAMELESS): Define.
2558 * omp-low.c (create_omp_child_function, scan_omp_parallel,
2559 scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
2560 DECL_ARTIFICIAL where needed.
2561 * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
2562 (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
2563 has DECL_NAMELESS set.
2564
2565 2010-07-23 Martin Jambor <mjambor@suse.cz>
2566
2567 PR tree-optimization/44915
2568 * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
2569 * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
2570 (analyze_function): Likewise.
2571
2572 2010-07-23 Martin Jambor <mjambor@suse.cz>
2573
2574 PR tree-optimization/44914
2575 * tree-sra.c (sra_modify_function_body): Return true if CFG was
2576 changed, add purging dead eh edges.
2577 (ipa_sra_modify_function_body): Return true if CFG was changed,
2578 simplify purging dead eh edges.
2579 (modify_function): Return true if CFG was changed.
2580 (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
2581 was changed.
2582 (ipa_early_sra): Likewise.
2583
2584 2010-07-23 Jie Zhang <jie@codesourcery.com>
2585
2586 PR target/44290
2587 * attribs.c (decl_attributes): Insert "noinline" and "noclone"
2588 if "naked".
2589 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
2590 false if ! tree_versionable_function_p.
2591
2592 2010-07-23 Nathan Froyd <froydnj@codesourcery.com>
2593
2594 * builtins.def (BUILT_IN_ARGS_INFO): Remove.
2595 * ipa-pure-const.c (special_builtlin_state): Remove
2596 BUILT_IN_ARGS_INFO case.
2597 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
2598 * builtins.c (expand_builtin): Likewise.
2599 (expand_builtin_args_info): Remove.
2600 * doc/tm.texi (__builtin_args_info): Remove.
2601 (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
2602 * doc/tm.text.in: Likewise.
2603
2604 2010-07-23 Richard Guenther <rguenther@suse.de>
2605
2606 * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
2607 (lto_symtab_merge_decls_2): Likewise.
2608 * tree-ssa.c (useless_type_conversion_p): Likewise.
2609 * lto-streamer-in.c (input_gimple_stmt): Likewise.
2610 * gimple.c (gtc_visited2, gtc_ob2): Remove.
2611 (struct type_pair_d): Make same_p an array indexed by mode.
2612 Update comment.
2613 (lookup_type_pair): Update initialization.
2614 (struct sccs): Adjust same_p type.
2615 (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
2616 Adjust.
2617 (print_gimple_types_stats): Likewise.
2618 * gimple.h (enum gtc_mode): New.
2619 (gimple_types_compatible_p): Adjust prototype.
2620
2621 2010-07-23 Daniel Jacobowitz <dan@codesourcery.com>
2622
2623 * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
2624 again after processing insn.
2625
2626 2010-07-23 Jie Zhang <jie@codesourcery.com>
2627
2628 * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
2629 proper words when !tree_versionable_function_p.
2630
2631 2010-07-23 Richard Guenther <rguenther@suse.de>
2632
2633 PR tree-optimization/45037
2634 * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
2635
2636 2010-07-23 Jie Zhang <jie@codesourcery.com>
2637
2638 * doc/extend.texi: Remove IP2K from the description of naked attribute.
2639 Add MCORE instead.
2640
2641 2010-07-10 Andi Kleen <ak@linux.intel.com>
2642
2643 PR lto/44992
2644 * lto-opts.c (lto_write_options): Add NULL file_data argument to
2645 lto_get_section_name.
2646 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
2647 * lto-streamer-out.c (produce_asm): Likewise.
2648 (copy_function): Likewise.
2649 (produce_symtab): Likewise.
2650 (produce_asm_for_decls): Likewise.
2651 * lto-streamer.c (lto_get_section_name): Add file_data argument.
2652 Rewrite to add random postfix to LTO sections.
2653 * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
2654 (lto_get_section_name): Add file_data argument to prototype.
2655
2656 2010-07-10 Andi Kleen <ak@linux.intel.com>
2657
2658 * lto-section-in.c (lto_section_name): Synchronize names
2659 with lto_get_section_name.
2660
2661 2010-07-10 Andi Kleen <ak@linux.intel.com>
2662
2663 * lto-opts.c (lto_read_file_options): Check for missing section.
2664
2665 2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
2666
2667 * ira.c (check_allocation): Correctly handle the case where an allocno
2668 with two objects was allocated to a single reg.
2669
2670 2010-07-22 Richard Sandiford <rdsandiford@googlemail.com>
2671
2672 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
2673 (is_widening_mult_p): Likewise.
2674 (convert_to_widen): Use them.
2675 (convert_plusminus_to_widen): Likewise. Handle fixed-point types as
2676 well as integer ones.
2677
2678 2010-07-22 Steven Bosscher <steven@gcc.gnu.org>
2679
2680 * alias.c (true_dependence_1): New function, merged version of
2681 true_dependence and canon_true_dependence.
2682 (true_dependence): Simplify.
2683 (canon_true_dependence): Simplify.
2684
2685 2010-07-22 Richard Henderson <rth@redhat.com>
2686
2687 PR target/45027
2688 * config/i386/i386.c (setup_incoming_varargs_64): Force the use
2689 of V4SFmode for the SSE saves; increase stack alignment if needed.
2690 (ix86_gimplify_va_arg): Don't increase stack alignment here.
2691
2692 2010-07-22 Jakub Jelinek <jakub@redhat.com>
2693
2694 PR bootstrap/45028
2695 * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
2696 call cprop_find_used_regs again via note_uses.
2697
2698 2010-07-22 Eric Botcazou <ebotcazou@adacore.com>
2699
2700 * alias.c (get_alias_set): Fix formatting issues.
2701
2702 2010-07-22 Steve Ellcey <sje@cup.hp.com>
2703
2704 PR middle-end/44878
2705 * stmt.c (expand_value_return): Call promote_function_mode with
2706 a for_return argument of 2 when returning by reference.
2707
2708 2010-07-22 Dodji Seketeli <dodji@redhat.com>
2709
2710 PR debug/45024
2711 * dwarf2out.c (scope_die_for): Don't fall back to the compilation
2712 unit DIE if we can find the scope DIE.
2713
2714 2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
2715
2716 * ira-build.c (ira_create_object): New arg SUBWORD; all callers
2717 changed. Initialize OBJECT_SUBWORD.
2718 (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
2719 (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
2720 all callers changed.
2721 (merge_hard_reg_conflicts): Iterate over allocno subobjects.
2722 (finish_allocno): Likewise.
2723 (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
2724 (remove_low_level_allocnos): Likewise.
2725 (update_bad_spill_attribute): Likewise.
2726 (setup_min_max_allocno_live_range_point): Likewise.
2727 (sort_conflict_id_map): Likewise.
2728 (ira_flattening): Likewise. Use ior_hard_reg_conflicts.
2729 (ior_hard_reg_conflicts): New function.
2730 (ior_allocate_object_conflicts): Renamed first argument to OBJ.
2731 (compress_conflict_vecs): Iterate over objects, not allocnos.
2732 (ira_add_live_range_to_object): New function.
2733 (object_range_compare_func): Renamed from allocno_range_compare_func.
2734 All callers changed.
2735 (setup_min_max_conflict_allocno_ids): For allocnos with multiple
2736 subobjects, widen the min/max range of the lowest-order object to
2737 potentially include all other such low-order objects.
2738 * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
2739 (check_allocation): Likewise. Use more fine-grained tests for register
2740 conflicts.
2741 * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
2742 allocno subobjects.
2743 (assign_hard_reg): Keep multiple sets of conflicts. Make finer-grained
2744 choices about which bits to set in each set. Don't use
2745 ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
2746 using the multiple sets we computed.
2747 (push_allocno_to_stack): Iterate over allocno subobjects.
2748 (all_conflicting_hard_regs_coalesced): New static function.
2749 (setup_allocno_available_regs_num): Use it.
2750 (setup_allocno_left_conflicts_size): Likewise. Iterate over allocno
2751 subobjects.
2752 (coalesced_allocno_conflict): Test subobject 0 in each allocno.
2753 (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
2754 by ALLOCNO_NUM_OBJECTS.
2755 (calculate_spill_cost): Likewise.
2756 (color_pass): Express if statement in a more normal way.
2757 (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
2758 (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
2759 (setup_slot_coalesced_allocno_live_ranges): Likewise.
2760 (allocno_reload_assign): Likewise.
2761 (ira_reassign_pseudos): Likewise.
2762 (fast_allocation): Likewise.
2763 * ira-conflicts.c (build_conflict_bit_table): Likewise.
2764 (print_allocno_conflicts): Likewise.
2765 (ira_build_conflicts): Likewise.
2766 (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p. All
2767 callers changed. Test subword 0 of each allocno for conflicts.
2768 (build_object_conflicts): Renamed from build_allocno_conflicts. All
2769 callers changed. Iterate over allocno subobjects.
2770 * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
2771 * ira-int.h (struct ira_allocno): New member: num_objects.
2772 Rename object to objects and change it into an array.
2773 (ALLOCNO_OBJECT): Add new argument N.
2774 (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
2775 (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
2776 (ior_hard_reg_conflicts): Declare.
2777 (ira_add_live_range_to_object): Declare.
2778 (ira_allocno_object_iterator): New.
2779 (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
2780 (FOR_EACH_ALLOCNO_OBJECT): New macro.
2781 * ira-lives.c (objects_live): Renamed from allocnos_live; all
2782 uses changed.
2783 (allocnos_processed): New sparseset.
2784 (make_object_born): Renamed from make_allocno_born; take an
2785 ira_object_t argument. All callers changed.
2786 (make_object_dead): Renamed from make_allocno_dead; take an
2787 ira_object_t argument. All callers changed.
2788 (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
2789 All callers changed.
2790 (mark_pseudo_regno_live): Iterate over allocno subobjects.
2791 (mark_pseudo_regno_dead): Likewise.
2792 (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
2793 functions.
2794 (mark_ref_live): Detect subword accesses and call
2795 mark_pseudo_regno_subword_live as appropriate.
2796 (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
2797 (process_bb_nodes_live): Deal with object-related updates first; set
2798 and test bits in allocnos_processed to avoid computing allocno
2799 statistics more than once.
2800 (create_start_finish_chains): Iterate over objects, not allocnos.
2801 (print_object_live_ranges): New function.
2802 (print_allocno_live_ranges): Use it.
2803 (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
2804 and objects_live.
2805
2806 2010-07-22 Richard Guenther <rguenther@suse.de>
2807
2808 PR lto/42451
2809 * gimple.c (gtc_next_dfs_num): New global.
2810 (struct sccs): Make value a union, add integer same_p member.
2811 (gtc_visit): New function.
2812 (gimple_types_compatible_p_1): New function, split out from ...
2813 (gimple_types_compatible_p): ... here. Start a DFS walk here.
2814 (iterative_hash_gimple_type): Adjust for sccs change.
2815
2816 2010-07-22 Martin Jambor <mjambor@suse.cz>
2817
2818 PR tree-optimization/44891
2819 * tree-sra.c: Include gimple-pretty-print.h.
2820 (replace_uses_with_default_def_ssa_name): Renamed to
2821 get_repl_default_def_ssa_name, return the new SSA name instead of
2822 replacing the old one.
2823 (sra_modify_assign): Dump a message when removing a load, if the LHS
2824 is an SSA_NAME, do not do any propagation, just set the RHS to a
2825 default definition SSA NAME, type convert if necessary.
2826 * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
2827
2828 2010-07-22 Richard Guenther <rguenther@suse.de>
2829
2830 PR tree-optimization/45017
2831 * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
2832 TYPE_PRECISION of integral types in addition to size.
2833
2834 2010-07-22 Maxim Kuvyrkov <maxim@codesourcery.com>
2835
2836 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
2837 when no C library is specified.
2838
2839 2010-07-22 Martin Jambor <mjambor@suse.cz>
2840
2841 * ipa-prop.h (struct ipa_node_params): Updated comment.
2842 (struct ipa_edge_args): Likewise.
2843 * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
2844
2845 2010-07-22 Martin Jambor <mjambor@suse.cz>
2846
2847 * cgraphunit.c (verify_edge_count_and_frequency): New function.
2848 (verify_cgraph_node): Verify frequencies of indirect edges.
2849 * tree-inline.c (tree_function_versioning): Update frequencies of
2850 indirect edges.
2851
2852 2010-07-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2853
2854 PR target/43698
2855 * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
2856 Set *arm_rev to be predicable.
2857
2858 2010-07-22 Iain Sandoe <iains@gcc.gnu.org>
2859
2860 * config/darwin.h (LINK_COMMAND_SPEC): Split into...
2861 (LINK_COMMAND_SPEC_A): New.
2862 (DSYMUTIL): New.
2863 (DSYMUTIL_SPEC): New.
2864 * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
2865 (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
2866
2867 2010-07-22 Iain Sandoe <iains@gcc.gnu.org>
2868
2869 * calls.c (load_register_parameters): Move check for zero
2870 sized items so that only the call to
2871 mem_overlaps_already_clobbered_arg_p () is protected.
2872
2873 2010-07-22 Jan Hubicka <jh@suse.cz>
2874
2875 * ipa-pure-const.c (varying_state): Break out from ...
2876 (get_function_state): ... here; always return varying_state
2877 when state would be NULL otherwise.
2878 (remove_node_data): Do not free varying state.
2879
2880 2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
2881
2882 PR bootstrap/44970
2883 PR middle-end/45009
2884 * postreload.c: Include "target.h".
2885 (reload_combine_closest_single_use): Don't take DEBUG_INSNs
2886 into account.
2887 (fixup_debug_insns): Don't copy the rtx.
2888 (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
2889 Don't copy when replacing. Call fixup_debug_insns in the case where
2890 we merged one add with another.
2891 (reload_combine_recognize_pattern): Fail if there aren't any uses.
2892 Try harder to determine whether we're picking a valid index register.
2893 Don't set store_ruid for an insn we're going to scan in the
2894 next iteration.
2895 (reload_combine): Remove unused code.
2896 (reload_combine_note_use): When updating use information for
2897 an old insn, ignore a use that occurs after store_ruid.
2898 * Makefile.in (postreload.o): Update dependencies.
2899
2900 * function.c (record_hard_reg_sets): Restrict the previous change
2901 to cases where the incoming nominal mode is the same as the
2902 incoming promoted mode and everything happens in MODE_INT.
2903
2904 2010-07-21 Jakub Jelinek <jakub@redhat.com>
2905
2906 PR debug/45015
2907 * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
2908 ASM_OPERANDS_OUTPUT_IDX.
2909 (adjust_insn): For inline asm with multiple sets ensure first
2910 ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
2911 the insn.
2912
2913 2010-07-21 Richard Henderson <rth@redhat.com>
2914
2915 * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
2916 comparison for avoiding xmm register saves. Emit the xmm register
2917 saves explicitly.
2918 * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
2919 (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
2920 (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
2921 Remove patterns and the associated splitters.
2922
2923 2010-07-21 Changpeng Fang <changpeng.fang@amd.com>
2924
2925 * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
2926 and imagine parts of a complex, so that they can have the same
2927 base and fall into the same group.
2928
2929 2010-07-21 Richard Guenther <rguenther@suse.de>
2930
2931 PR lto/45018
2932 * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
2933 of TYPE_DECLs. Do not follow TYPE_NEXT_VARIANT,
2934 TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
2935
2936 2010-07-21 Martin Jambor <mjambor@suse.cz>
2937
2938 PR tree-optimization/44900
2939 * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
2940 (sra_modify_assign): Move gsi to the next statmenent unconditionally.
2941
2942 2010-07-21 Bernd Schmidt <bernds@codesourcery.com>
2943
2944 PR middle-end/44738
2945 * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
2946
2947 2010-07-21 Richard Guenther <rguenther@suse.de>
2948
2949 PR middle-end/45013
2950 * tree-ssa.c (useless_type_conversion_p): Dispatch to
2951 gimple_types_compatible_p only when in lto.
2952 * gimple.c (gimple_types_compatible_p): Use canonical types
2953 to speed up comparison.
2954
2955 2010-07-21 Richard Guenther <rguenther@suse.de>
2956
2957 * tree-flow.h (referenced_var): Move define ...
2958 * tree-flow-inline.h (referenced_var): ... here as an inline
2959 function. Assert here ...
2960 * tree-dfa.c (referenced_var_lookup): ... instead of here.
2961 * tree-ssa.c (maybe_optimize_var): Check if the variable
2962 is in referenced vars.
2963 (execute_update_addresses_taken): Remove old broken check.
2964 * gimple-pretty-print.c (pp_points_to_solution): Use
2965 referenced_var_lookup.
2966 * tree-into-ssa.c (dump_decl_set): Likewise.
2967
2968 2010-07-21 Jakub Jelinek <jakub@redhat.com>
2969
2970 PR debug/45003
2971 * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
2972 * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
2973 ZERO_EXTEND here.
2974
2975 2010-07-20 Richard Henderson <rth@redhat.com>
2976
2977 * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
2978
2979 2010-07-20 Bernd Schmidt <bernds@codesourcery.com>
2980
2981 * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
2982 computing the sum of the stack pointer and a large constant.
2983 * config/arm/constraints.md (M): Remove superfluous parentheses.
2984 (Pc): New constraint.
2985
2986 2010-07-20 Jakub Jelinek <jakub@redhat.com>
2987
2988 PR debug/45006
2989 * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
2990 operand's type if exp is tcc_unary class tree.
2991
2992 2010-07-20 Nathan Froyd <froydnj@codesourcery.com>
2993
2994 * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
2995 Reverse sense of if_then_else condition.
2996
2997 2010-07-20 Nathan Froyd <froydnj@codesourcery.com>
2998
2999 * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
3000 * config/rs6000/rs6000.c (rs6000_override_options): Set
3001 rs6000_block_move_inline_limit appropriately.
3002 (expand_block_move): Use rs6000_block_move_inline_limit.
3003 * doc/invoke.texi (mblock-move-inline-limit): Document.
3004
3005 2010-07-20 Bernd Schmidt <bernds@codesourcery.com>
3006
3007 * postreload.c (fixup_debug_insns): Remove arg REGNO. New args
3008 FROM and TO. All callers changed. Don't look for tracked uses,
3009 just scan the RTL for DEBUG_INSNs and substitute.
3010 (reload_combine_recognize_pattern): Call fixup_debug_insns.
3011 (reload_combine): Ignore DEBUG_INSNs.
3012
3013 2010-07-20 Jakub Jelinek <jakub@redhat.com>
3014
3015 * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
3016 depth to 8 from 5.
3017
3018 PR debug/45003
3019 * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
3020 or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
3021 instead of the result's type.
3022
3023 2010-07-20 Richard Guenther <rguenther@suse.de>
3024
3025 PR tree-optimization/44977
3026 * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
3027 SSA form.
3028
3029 2010-07-20 Richard Guenther <rguenther@suse.de>
3030
3031 * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
3032 (lto_symtab_merge_decls_2): Likewise.
3033 * gimple.h (gimple_types_compatible_p): Declare.
3034 * gimple.c (gimple_queue_type_fixup): Remove.
3035 (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
3036 (gimple_compatible_complete_and_incomplete_type_p): New function.
3037 (gimple_types_compatible_p): Adjust.
3038 (gimple_register_type): Remove type fixup code.
3039 (print_gimple_types_stats): Adjust.
3040 (free_gimple_type_tables): Likewise.
3041 * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
3042 * tree-ssa.c (useless_type_conversion_p): Likewise.
3043
3044 2010-07-20 Richard Guenther <rguenther@suse.de>
3045
3046 PR middle-end/44971
3047 PR middle-end/44988
3048 * tree-ssa.c (maybe_optimize_var): New function split out from ...
3049 (execute_update_addresses_taken): ... here.
3050 (non_rewritable_mem_ref_base): Likewise.
3051 (execute_update_addresses_taken): Do not iterate over all referenced
3052 vars but just all local decls and parms.
3053 Properly check call and asm arguments and rewrite call arguments.
3054
3055 2010-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
3056
3057 * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
3058 to top level.
3059 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
3060 definitions ...
3061 * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
3062 New macro.
3063 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
3064
3065 2010-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3066
3067 * gengtype.c (start_root_entry): New function, split out from
3068 write_root. Check whether V is null and raise an error if so.
3069 (write_field_root): Check for V being null. Don't raise an error here;
3070 set V to null instead.
3071 (write_root): Update comment above function. Use start_root_entry.
3072
3073 2010-07-19 Xinliang David Li <davidxl@google.com>
3074
3075 PR testsuite/44932
3076 * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
3077 def edges.
3078 (find_uninit_use): Add dump.
3079 (is_use_properly_guarded): Ditto.
3080 (warn_uninitialized_phi): Ditto.
3081 (execute_late_warn_uninitialized): Ditto.
3082
3083 2010-07-19 Richard Guenther <rguenther@suse.de>
3084
3085 PR middle-end/44941
3086 * expr.c (emit_block_move_hints): Move zero size check first.
3087 Move asserts to more useful places.
3088 * calls.c (load_register_parameters): Check for zero size.
3089
3090 2010-07-19 Richard Henderson <rth@redhat.com>
3091
3092 * tree-optimize.c (execute_all_early_local_passes): New. Change
3093 cgraph_state here ...
3094 (execute_early_local_optimizations): ... not here. Remove.
3095 (pass_early_local_passes, pass_all_early_optimizations): Update.
3096
3097 2010-07-19 Bernd Schmidt <bernds@codesourcery.com>
3098
3099 * postreload.c (reload_combine_closest_single_use): Ignore the
3100 number of uses for DEBUG_INSNs.
3101 (fixup_debug_insns): New static function.
3102 (reload_combine_recognize_const_pattern): Use it. Don't let the
3103 main loop be affected by DEBUG_INSNs.
3104 Really disallow moving adds past a jump insn.
3105 (reload_combine_recognize_pattern): Don't update use_ruid here.
3106 (reload_combine_note_use): Do it here.
3107 (reload_combine): Use control_flow_insn_p rather than JUMP_P.
3108
3109 2010-07-19 Bingfeng Mei <bmei@broadcom.com>
3110
3111 * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
3112 of a loop.
3113 * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
3114
3115 2010-07-19 Iain Sandoe <iains@gcc.gnu.org>
3116
3117 * config/i386/darwin.h: Define darwin_emit_branch_islands.
3118 (TARGET_MACHO_BRANCH_ISLANDS): New.
3119 (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
3120 * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
3121 default value.
3122 * config/i386/i386.c (output_pic_addr_const): Do not emit
3123 branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
3124 (x86_output_mi_thunk): Adjust symbol creation.
3125 * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
3126 Remove out of date comment.
3127 * config/rs6000/rs6000.c (print_operand): Adjust symbol.
3128 (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
3129 (DARWIN_GENERATE_ISLANDS): Ditto.
3130 (output_call): Do not emit branch islands unless
3131 darwin_emit_branch_islands is set.
3132 * config/darwin.c: Declare darwin_emit_branch_islands.
3133 (machopic_indirect_data_reference): Do not emit unless
3134 darwin_emit_branch_islands is set.
3135 (darwin_override_options): Set darwin_emit_branch_islands
3136 where it is needed.
3137 * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
3138
3139 2010-07-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3140
3141 * doc/sourcebuild.texi (Effective-Target Keywords): Document
3142 sse_runtime, sse2_runtime.
3143
3144 2010-07-18 Richard Sandiford <rdsandiford@googlemail.com>
3145
3146 * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
3147 low half of a single-register SCmode return value before ORing
3148 it with the high half.
3149 * config/mips/mips16.S (MERGE_GPRf): Likewise.
3150
3151 2010-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3152
3153 PR target/44805
3154 * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
3155 on all targets.
3156
3157 2010-07-17 Bernd Schmidt <bernds@codesourcery.com>
3158
3159 PR target/42235
3160 * postreload.c (reload_cse_move2add): Return bool, true if anything.
3161 changed. All callers changed.
3162 (move2add_use_add2_insn): Likewise.
3163 (move2add_use_add3_insn): Likewise.
3164 (reload_cse_regs): If reload_cse_move2add changed anything, rerun
3165 reload_combine.
3166 (RELOAD_COMBINE_MAX_USES): Bump to 16.
3167 (last_jump_ruid): New static variable.
3168 (struct reg_use): New members CONTAINING_MEM and RUID.
3169 (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
3170 (reload_combine_split_one_ruid, reload_combine_split_ruids,
3171 reload_combine_purge_insn_uses, reload_combine_closest_single_use
3172 reload_combine_purge_reg_uses_after_ruid,
3173 reload_combine_recognize_const_pattern): New static functions.
3174 (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
3175 is true for our reg and that we have available index regs.
3176 (reload_combine_note_use): New args RUID and CONTAINING_MEM. All
3177 callers changed. Use them to initialize fields in struct reg_use.
3178 (reload_combine): Initialize last_jump_ruid. Be careful when to
3179 take PREV_INSN of the scanned insn. Update REAL_STORE_RUID fields.
3180 Call reload_combine_recognize_const_pattern.
3181 (reload_combine_note_store): Update REAL_STORE_RUID field.
3182
3183 2010-07-16 Jason Merrill <jason@redhat.com>
3184
3185 * Makefile.in (opts-common.o): Depend on options.h.
3186
3187 2010-07-16 Nathan Froyd <froydnj@codesourcery.com>
3188
3189 * tree.c (build_common_builtin_nodes): Use build_function_type_list
3190 instead of build_function_type.
3191 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
3192 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
3193
3194 2010-07-16 Nathan Froyd <froydnj@codesourcery.com>
3195
3196 * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
3197 do all the work.
3198 (rs6000_emit_int_cmove): Use function pointers for insn generation.
3199 Don't force values into registers unnecessarily.
3200 (output_isel): Assert that we're not given conditions we can't handle.
3201 Delete corresponding code.
3202 * config/rs6000/rs6000.md (isel_signed_<mode>): Use
3203 scc_comparison_operator constraint. Permit 0 for the consequent
3204 operand. Permit any GPR for the alternative operand.
3205 (isel_unsigned_<mode>): Likewise.
3206
3207 2010-07-16 Jakub Jelinek <jakub@redhat.com>
3208
3209 PR target/44942
3210 * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
3211 argument to const_tree.
3212 * config/i386/i386.c (function_arg_advance): If padding needs to be
3213 inserted before argument, increment cum->words by number of padding
3214 words as well.
3215 (contains_aligned_value_p): Change argument to const_tree.
3216 (ix86_function_arg_boundary): Change second argument to const_tree.
3217
3218 2010-07-16 Bernd Schmidt <bernds@codesourcery.com>
3219
3220 PR target/42235
3221 * function.c (record_hard_reg_sets): New static function.
3222 (assign_parm_setup_reg): If an optab for extending exists and the
3223 generated code clobbbers no hard regs, emit the insn directly and
3224 create a REG_EQUIV note.
3225
3226 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
3227
3228 * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
3229 TREE_CHAIN.
3230 * c-typeck.c (push_init_level): Likewise.
3231 (process_init_element): Likewise.
3232
3233 2010-07-15 Anatoly Sokolov <aesok@post.ru>
3234
3235 * tree.h (enum tree_index): Add TI_INTEGER_THREE.
3236 (integer_three_node): Add.
3237 * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
3238 NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
3239 * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
3240 of call build_int_cst.
3241 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
3242 * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
3243 (find_interesting_uses_address): Ditto.
3244 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
3245 * tree-eh.c (lower_eh_constructs_2): Ditto.
3246 * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
3247 * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
3248 * expmed.c (expand_divmod): Ditto.
3249 * tree-mudflap.c (mx_register_decls): Ditto.
3250 * varasm.c (array_size_for_constructor): Ditto.
3251 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
3252 * c-parser.c (c_parser_postfix_expression): Ditto.
3253
3254 2010-07-15 Bernd Schmidt <bernds@codesourcery.com>
3255
3256 * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
3257 New static variables.
3258 (reload_combine_recognize_pattern): New static function, broken out
3259 of reload_combine.
3260 (reload_combine): Use it. Only initialize first_index_reg and
3261 last_index_reg once.
3262
3263 2010-07-15 Richard Henderson <rth@redhat.com>
3264
3265 * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
3266 when done.
3267
3268 2010-07-15 Jan Hubicka <jh@suse.cz>
3269
3270 * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
3271 comdats for broken gold.
3272 (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
3273
3274 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
3275
3276 * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
3277
3278 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
3279
3280 * tree.h (DECL_CHAIN): Define.
3281 * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
3282 * c-decl.c: Likewise.
3283 * c-parser.c: Likewise.
3284 * c-typeck.c: Likewise.
3285 * cfgexpand.c: Likewise.
3286 * cgraph.c: Likewise.
3287 * cgraphunit.c: Likewise.
3288 * combine.c: Likewise.
3289 * config/alpha/alpha.c: Likewise.
3290 * config/arm/arm.c: Likewise.
3291 * config/frv/frv.c: Likewise.
3292 * config/i386/i386.c: Likewise.
3293 * config/i386/winnt-cxx.c: Likewise.
3294 * config/ia64/ia64.c: Likewise.
3295 * config/iq2000/iq2000.c: Likewise.
3296 * config/mep/mep.c: Likewise.
3297 * config/mips/mips.c: Likewise.
3298 * config/pa/som.h: Likewise.
3299 * config/rs6000/rs6000.c: Likewise.
3300 * config/s390/s390.c: Likewise.
3301 * config/sh/sh.c: Likewise.
3302 * config/sh/symbian-cxx.c: Likewise.
3303 * config/sparc/sparc.c: Likewise.
3304 * config/spu/spu.c: Likewise.
3305 * config/stormy16/stormy16.c: Likewise.
3306 * config/vxworks.c: Likewise.
3307 * config/xtensa/xtensa.c: Likewise.
3308 * coverage.c: Likewise.
3309 * dbxout.c: Likewise.
3310 * dwarf2out.c: Likewise.
3311 * emit-rtl.c: Likewise.
3312 * expr.c: Likewise.
3313 * function.c: Likewise.
3314 * gimple-low.c: Likewise.
3315 * gimple-pretty-print.c: Likewise.
3316 * gimplify.c: Likewise.
3317 * integrate.c: Likewise.
3318 * ipa-inline.c: Likewise.
3319 * ipa-prop.c: Likewise.
3320 * ipa-split.c: Likewise.
3321 * ipa-struct-reorg.c: Likewise.
3322 * ipa-type-escape.c: Likewise.
3323 * langhooks.c: Likewise.
3324 * lto-cgraph.c: Likewise.
3325 * omp-low.c: Likewise.
3326 * stor-layout.c: Likewise.
3327 * tree-cfg.c: Likewise.
3328 * tree-complex.c: Likewise.
3329 * tree-dfa.c: Likewise.
3330 * tree-dump.c: Likewise.
3331 * tree-inline.c: Likewise.
3332 * tree-mudflap.c: Likewise.
3333 * tree-nested.c: Likewise.
3334 * tree-object-size.c: Likewise.
3335 * tree-pretty-print.c: Likewise.
3336 * tree-sra.c: Likewise.
3337 * tree-ssa-live.c: Likewise.
3338 * tree-ssa-loop-niter.c: Likewise.
3339 * tree-ssa-math-opts.c: Likewise.
3340 * tree-ssa-reassoc.c: Likewise.
3341 * tree-ssa-sccvn.c: Likewise.
3342 * tree-ssa-structalias.c: Likewise.
3343 * tree-tailcall.c: Likewise.
3344 * tree-vrp.c: Likewise.
3345 * tree.c: Likewise.
3346 * var-tracking.c: Likewise.
3347 * varasm.c: Likewise.
3348
3349 2010-07-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3350
3351 PR target/44877
3352 * config/spu/spu.c (spu_expand_builtin_1): Allow references
3353 (as well as pointers) as argument to mask_for_load builtins.
3354
3355 2010-07-15 Richard Guenther <rguenther@suse.de>
3356
3357 PR tree-optimization/44946
3358 * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
3359 with accessing only padding properly.
3360
3361 2010-07-15 Jan Hubicka <jh@suse.cz>
3362
3363 * ipa.c (function_and_variable_visibility): Variables marked as used
3364 should not be localized.
3365
3366 2010-07-15 Jan Hubicka <jh@suse.cz>
3367
3368 * cgraph.c: Include lto-streamer.h
3369 (change_decl_assembler_name): Work when assembler name hash is at place.
3370 (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
3371 be sure to rename it to avoid name clash.
3372 * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
3373 Localize hidden symbols only when locally defined.
3374
3375 2010-07-15 Uros Bizjak <ubizjak@gmail.com>
3376
3377 * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
3378
3379 2010-07-15 Magnus Granberg <zorry@gentoo.org>
3380 Kevin F. Quinn <kevquinn@gentoo.org>
3381
3382 * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
3383 * common.opt: Add -Wtrampolines.
3384 * doc/invoke.texi: Add -Wtrampolines.
3385
3386 2010-07-15 Jie Zhang <jie@codesourcery.com>
3387
3388 * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
3389 cortex_a8_issue_ls.
3390
3391 2010-07-15 Dave Korn <dave.korn.cygwin@gmail.com>
3392
3393 * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
3394 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
3395
3396 2010-07-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3397
3398 * config/spu/spu.c (reg_names): Remove prototype.
3399 (call_used_regs): Likewise.
3400
3401 2010-07-14 Dave Korn <dave.korn.cygwin@gmail.com>
3402
3403 * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
3404 "unused" with attribute "used".
3405 (__JCR_END__): Likewise.
3406 * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
3407 "used" attribute.
3408 (__JCR_LIST__): Replace attribute "unused" with attribute "used".
3409
3410 2010-07-14 Richard Guenther <rguenther@suse.de>
3411
3412 * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
3413 (maybe_fixup_decls): Likewise.
3414 (input_gimple_stmt): Do not fixup anything.
3415 * lto-streamer-out.c (output_gimple_stmt): Make sure all
3416 non-automatic variable uses are wrapped inside a MEM_REF.
3417
3418 2010-07-14 Richard Henderson <rth@redhat.com>
3419
3420 * passes.c (rest_of_decl_compilation): Do not call assemble_variable
3421 for functions.
3422 * varasm.c (assemble_variable): Remove early exit for functions;
3423 assert that we're given a variable.
3424
3425 2010-07-14 Jie Zhang <jie@codesourcery.com>
3426
3427 * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
3428 cortex_a8_default when neon_type is not none.
3429
3430 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
3431
3432 * lower-subreg.c (subreg_context): New static bitmap.
3433 (decompose_multiword_subregs): Allocate and free it.
3434 (find_decomposable_subregs): Set a bit in it for a register that
3435 occurs in a subreg that changes mode but not size.
3436 (can_decompose_p): Test it instead of non_decomposable_context.
3437
3438 2010-07-14 Richard Guenther <rguenther@suse.de>
3439
3440 PR tree-optimization/44824
3441 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
3442 is_gimple_mem_ref_addr.
3443 (tree_ssa_forward_propagate_single_use_vars): Do not propagate
3444 non-decl_address_invariant_p addresses.
3445
3446 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
3447
3448 * reload.c (find_reloads): Revert code to penalize small register
3449 classes that was brought in with the IRA merge.
3450
3451 2010-07-14 Richard Guenther <rguenther@suse.de>
3452
3453 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
3454 as base of ARRAY_REFs.
3455
3456 2010-07-14 Richard Guenther <rguenther@suse.de>
3457
3458 PR middle-end/44930
3459 * tree-pretty-print.c (do_niy): Do not print a newline.
3460
3461 2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
3462
3463 * ira-int.h (struct ira_object): New.
3464 (ira_object_t): New typedef. Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
3465 (struct ira_allocno): Remove members min, max,
3466 conflict_allocno_array, conflict_id, conflict_allocno_array_size,
3467 conflict_allocnos_num and conflict_vec_p. Add new member object.
3468 (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
3469 OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
3470 OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
3471 OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
3472 ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
3473 ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
3474 ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
3475 ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
3476 an ira_object_t rather than ira_allocno_t. All uses changed.
3477 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
3478 contains a vector of ira_object_t; all uses changed.
3479 (ira_objects_num): Declare variable.
3480 (ira_create_allocno_object): Declare function.
3481 (ira_conflict_vector_profitable_p): Adjust prototype.
3482 (ira_allocate_conflict_vec): Renamed from
3483 ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
3484 (ira_allocate_object_conflicts): Renamed from
3485 ira_allocate_allocno_conflicts; first arg now ira_object_t.
3486 (struct ira_object_iterator): New.
3487 (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
3488 (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
3489 to conflict_vec_p. All uses changed.
3490 (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
3491 Changed to take into account that conflicts are now tracked for
3492 objects.
3493 * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
3494 Args changed to accept ira_object_t. All uses changed.
3495 (allocnos_conflict_p): New static function.
3496 (collected_conflict_objects): Renamed from collected_allocno_objects;
3497 now a vector of ira_object_t. All uses changed.
3498 (build_conflict_bit_table): Changed to take into account that
3499 conflicts are now tracked for objects.
3500 (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
3501 (print_allocno_conflicts, ira_build_conflicts): Likewise.
3502 * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
3503 setup_allocno_left_conflicts_size, allocno_reload_assign,
3504 fast_allocation): Likewise.
3505 * ira-lives.c (make_hard_regno_born, make_allocno_born)
3506 process_single_reg_class_operands, process_bb_node_lives): Likewise.
3507 * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
3508 Likewise.
3509 * ira-build.c (ira_objects_num): New variable.
3510 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
3511 contains a vector of ira_object_t; all uses changed.
3512 (ira_object_id_map_vec): Corresponding change.
3513 (object_pool): New static variable.
3514 (initiate_allocnos): Initialize it.
3515 (finish_allocnos): Free it.
3516 (ira_create_object, ira_create_allocno_object, create_allocno_objects):
3517 New functions.
3518 (ira_create_allocno): Don't set members that were removed.
3519 (ira_set_allocno_cover_class): Don't change conflict hard regs.
3520 (merge_hard_reg_conflicts): Changed to take into account that
3521 conflicts are now tracked for objects.
3522 (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
3523 allocate_conflict_bit_vec, ira_allocate_object_conflicts,
3524 compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
3525 setup_min_max_allocno_live_range_point, allocno_range_compare_func,
3526 setup_min_max_conflict_allocno_ids, ): Likewise.
3527 (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
3528 to ira_object_t; all callers changed.
3529 (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
3530 to ira_object_t, all callers changed.
3531 (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
3532 to ira_object_t, all callers changed.
3533 (conflict_check, curr_conflict_check_tick): Renamed from
3534 allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
3535 changed.
3536 (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
3537 arg changed to ira_object_t, all callers changed.
3538 (create_cap_allocno): Call ira_create_allocno_object.
3539 (finish_allocno): Free the corresponding object.
3540 (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
3541 callers changed. Adjusted for dealing with objects.
3542 (ira_build): Call create_allocno_objects after ira_costs. Adjusted for
3543 dealing with objects.
3544 * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
3545
3546 * ira-int.h (struct live_range): Rename allocno member to object
3547 and change type to ira_object_t.
3548 (struct ira_object): New member live_ranges.
3549 (struct ira_allocno): Remove member live_ranges.
3550 (ALLOCNO_LIVE_RANGES): Remove.
3551 (OBJECT_LIVE_RANGES): New macro.
3552 (ira_create_live_range, ira_copy_live_range_list,
3553 ira_merge_live_range_list, ira_live_ranges_intersect_p,
3554 ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
3555 * ira-build.c (ira_create_object): Initialize live ranges here.
3556 (ira_create_allocno): Not here.
3557 (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
3558 changed to ira_object_t, all callers changed.
3559 (copy_live_range): Rename from copy_allocno_live_range, all callers
3560 changed.
3561 (ira_copy_live_range_list): Rename from
3562 ira_copy_allocno_live_range_list, all callers changed.
3563 (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
3564 all callers changed.
3565 (ira_live_ranges_intersect_p): Rename from
3566 ira_allocno_live_ranges_intersect_p, all callers changed.
3567 (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
3568 callers changed.
3569 (ira_finish_live_range_list): Rename from
3570 ira_finish_allocno_live_range_list, all callers changed.
3571 (change_object_in_range_list): Rename from change_allocno_in_range_list,
3572 last arg changed to ira_object_t, all callers changed.
3573 (finish_allocno): Changed to expect live ranges in the allocno's object.
3574 (move_allocno_live_ranges, copy_allocno_live_ranges,
3575 update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
3576 ira_flattening, ira_build): Likewise.
3577 * ira-color.c (allocnos_have_intersected_live_ranges_p,
3578 slot_coalesced_allocno_live_ranges_intersect,
3579 setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
3580 * ira-conflicts.c (build_conflict_bit_table): Likewise.
3581 * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
3582 * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
3583 make_allocno_dead, create_start_finish_chains,
3584 remove_some_program_points_and_update_live_ranges,
3585 ira_debug_live_range_list): Likewise.
3586
3587 * ira-int.h (ira_object_conflict_iterator): Rename from
3588 ira_allocno_conflict_iterator.
3589 (ira_object_conflict_iter_init): Rename from
3590 ira_allocno_conflict_iter_init, second arg changed to
3591 * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
3592 FOR_EACH_ALLOCNO_CONFLICT.
3593 * ira-color.c (assign_hard_reg, push_allocno_to_stack)
3594 setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
3595 ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
3596 * ira-conflicts.c (print_allocno_conflicts): Likewise.
3597
3598 2010-07-13 Joern Rennecke <joern.rennecke@embecosm.com>
3599
3600 PR other/44874
3601 * tree-dump.c (dump_options): Add enumerate_locals entry.
3602 Add TDF_NOID exclusion to all entry.
3603 * tree-dump.h (dump_enumerated_decls): Declare.
3604 * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
3605 Don't display type uid.
3606 (print_declaration): Don't crash on TREE_TYPE (t) == 0.
3607 * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
3608 * tree-ssa-live.c: Include gimple.h.
3609 (numbered_tree_d): New struct.
3610 (numbered_tree): New typedef.
3611 (DEF_VEC_O (numbered_tree): New.
3612 (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
3613 (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
3614 (dump_enumerated_decls): Likewise.
3615 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
3616 debug info and flag_dump_final_insns, call dump_enumerated_decls.
3617 * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
3618 * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
3619
3620 2010-07-13 Richard Sandiford <rdsandiford@googlemail.com>
3621
3622 * expmed.h (MAX_BITS_PER_WORD): Move to...
3623 * defaults.h (MAX_BITS_PER_WORD): ...here.
3624
3625 2010-07-13 DJ Delorie <dj@redhat.com>
3626
3627 * config/h8300/h8300.c (h8300_init_once): Default to
3628 -fstrict_volatile_bitfields.
3629
3630 * config/sh/sh.c (sh_override_options): Default to
3631 -fstrict_volatile_bitfields.
3632
3633 * config/rx/rx.c (rx_option_override): New.
3634
3635 * config/m32c/m32c.c (m32c_override_options): Default to
3636 -fstrict_volatile_bitfields.
3637
3638 2010-07-13 Nathan Froyd <froydnj@codesourcery.com>
3639
3640 * tree.h (build_function_call_expr): Delete.
3641 (build_call_expr_loc_array): New function.
3642 (build_call_expr_loc_vec): New function.
3643 * tree-flow.h (struct omp_region): Change type of ws_args field
3644 to a VEC.
3645 * builtins.c (build_function_call_expr): Delete.
3646 (build_call_expr_loc_array): New function.
3647 (build_call_expr_loc): Call it. Use XALLOCAVEC.
3648 (build_call_expr): Likewise.
3649 (build_call_expr_loc_vec): New function.
3650 * cgraphunit.c (build_cdtor): Call build_call_expr instead of
3651 build_function_call_expr.
3652 * expr.c (emutls_var_address): Likewise.
3653 * varasm.c (emutls_common_1): Likewise.
3654 * omp-low.c (expand_omp_atomic_mutex): Likewise.
3655 (expand_omp_taskreg): Adjust for new type of region->ws_args.
3656 (get_ws_args_for): Return a VEC instead of a tree.
3657 (expand_parallel_call): Call build_call_expr_loc_vec instead of
3658 build_function_call_expr.
3659 * stor-layout.c (self_referential_size): Likewise.
3660
3661 2010-07-13 Jakub Jelinek <jakub@redhat.com>
3662
3663 PR testsuite/44701
3664 * recog.c (constrain_operands): Allow side-effects in memory
3665 operands if either < or > constraint is used, rather than if
3666 both < and > is used.
3667
3668 2010-07-13 Richard Guenther <rguenther@suse.de>
3669
3670 PR middle-end/44911
3671 * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
3672 MEM_REF pointer type dumping. Avoid recursing for TYPE_DECLs
3673 without name.
3674
3675 2010-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
3676
3677 PR target/44761
3678 * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
3679 to variable emited.
3680 * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
3681 * config/sh/sh.md (symGOT_load): Likewise.
3682 (symDTPOFF2reg): Likewise.
3683 (symTPOFF2reg): Likewise.
3684
3685 2010-07-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3686
3687 * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
3688 * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
3689
3690 2010-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3691
3692 * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
3693 explanation.
3694 Find ucontext_t * on Solaris 11.
3695 (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
3696 Handle new Solaris 11 __sighndlr patterns.
3697
3698 2010-07-13 Jakub Jelinek <jakub@redhat.com>
3699
3700 PR debug/44901
3701 * vec.h (VEC_block_remove): Fix comment.
3702 * tree-ssa-live.c (remove_unused_locals): Don't use
3703 VEC_unordered_remove on local_decls, instead replace a single
3704 vector element in each iteration if at least one element had
3705 to be removed and VEC_truncate at the end.
3706 * omp-low.c (expand_omp_taskreg): Likewise.
3707
3708 2010-07-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
3709
3710 * c-decl.c (finish_function): Fix typo in comment.
3711
3712 2010-07-12 H.J. Lu <hongjiu.lu@intel.com>
3713
3714 PR bootstrap/44921
3715 * postreload.c (move2add_use_add3_insn): Silence gcc warning
3716 on min_regno.
3717
3718 2010-07-12 Jakub Jelinek <jakub@redhat.com>
3719
3720 * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
3721 (simplify_stmt_using_ranges): Use it.
3722
3723 2010-07-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3724
3725 * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
3726 member. Do not mark as GTY(()).
3727 * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
3728 (spu_builtin_decls): New static variable.
3729 (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
3730 (spu_init_builtins): Likewise.
3731 (spu_builtin_mul_widen_even): Likewise.
3732 (spu_builtin_mul_widen_odd): Likewise.
3733 (spu_builtin_mask_for_load): Likewise.
3734 (spu_builtin_vec_perm): Likewise.
3735 * config/spu/spu-c.c: Include "target.h".
3736 (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
3737 of using spu_builtins[].fndecl.
3738
3739 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3740
3741 * config/mips/mips.c (mips_override_options): Make -mflip-mips16
3742 imply -minterlink-mips16.
3743
3744 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3745
3746 * config/mips/mips.h (mips16_globals): Declare.
3747 (SWITCHABLE_TARGET): Define.
3748 * config/mips/mips.c: Include target-globals.h.
3749 (mips16_globals): New variable.
3750 (mips_set_mips16_mode): Use save_target_globals and
3751 restore_target_globals instead of target_reinit.
3752
3753 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3754
3755 * reginfo.c (init_reg_sets): Don't zero globals here. Update comment
3756 to say that the function can be called more than once.
3757 * target-globals.c (save_target_globals): Call init_reg_sets.
3758
3759 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3760
3761 * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
3762 * bb-reorder.h: New file.
3763 * bb-reorder.c (default_target_bb_reorder): New variable.
3764 (this_target_bb_reorder): New conditional variable.
3765 (uncond_jump_length): Redefine as a macro.
3766 * target-globals.h (this_target_bb_reorder): Declare.
3767 (target_globals): Add a bb_reorder field.
3768 (restore_target_globals): Copy the bb_reorder field to
3769 this_target_bb-reorder.
3770 * target-globals.c: Include bb-reorder.h.
3771 (default_target_globals): Initialize the bb_reorder field.
3772 (save_target_globals): Likewise.
3773
3774 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3775
3776 * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
3777 * gcse.h: New file.
3778 * gcse.c: Include gcse.h.
3779 (default_target_gcse): New variable.
3780 (this_target_gcse): New conditional variable.
3781 (can_copy): Redefine as a macro.
3782 (can_copy_init_p): New macro.
3783 (can_copy_p): Remove can_copy_init_p.
3784 * target-globals.h (this_target_gcse): Declare.
3785 (target_globals): Add a gcse field.
3786 (restore_target_globals): Copy the gcse field to this_target_gcse.
3787 * target-globals.c: Include gcse.h.
3788 (default_target_globals): Initialize the gcse field.
3789 (save_target_globals): Likewise.
3790
3791 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3792
3793 * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
3794 and x_ira_prohibited_mode_move_regs_initialized_p.
3795 (ira_prohibited_mode_move_regs): Redefine as a macro.
3796 * ira.c (ira_prohibited_mode_move_regs): Delete.
3797 (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
3798
3799 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3800
3801 * reload.h (target_reload): Add x_cached_reg_save_code and
3802 x_cached_reg_restore_code.
3803 * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
3804 Redefine as macros.
3805
3806 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3807
3808 * Makefile.in (target-globals.o): Depend on builtins.h.
3809 * builtins.h: New file.
3810 * builtins.c: Include builtins.h.
3811 (default_target_builtins): New variable.
3812 (this_target_builtins): New conditional variable.
3813 (apply_args_mode, apply_result_mode): Redefine as macros.
3814 * target-globals.h (this_target_builtins): Declare.
3815 (target_globals): Add a builtins field.
3816 (restore_target_globals): Copy the builtins field to
3817 this_target_builtins.
3818 * target-globals.c: Include builtins.h.
3819 (default_target_globals): Initialize the builtins field.
3820 (save_target_globals): Likewise.
3821
3822 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3823
3824 * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
3825 (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
3826 from expmed.c.
3827 (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
3828 (alg_hash, alg_hash_used_p): New macros.
3829 * expmed.c (init_expmed): Clear alg_hash if reinitializing.
3830 (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
3831 (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
3832
3833 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3834
3835 * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
3836 x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
3837 * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
3838 (this_op_costs, costs_classes): Redefine as macros.
3839 (record_reg_classes): Don't take op_costs as a parameter.
3840 (record_operand_costs): Likewise. Update calls to record_reg_classes.
3841 (scan_one_insn): Update call to record_operand_costs.
3842
3843 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3844
3845 * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
3846 * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
3847 (target_ira_int): New structure.
3848 (default_target_ira_int): Declare.
3849 (this_target_ira_int): Declare as a variable or define as a macro.
3850 (ira_reg_mode_hard_regset, ira_register_move_cost)
3851 (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
3852 (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
3853 (prohibited_class_mode_regs, ira_important_classes_num)
3854 (ira_important_classes, ira_reg_class_intersect)
3855 (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
3856 (ira_reg_class_union): Redefine as macros.
3857 * ira.h (target_ira): New structure.
3858 (default_target_ira): Declare.
3859 (this_target_ira): Declare as a variable or define as a macro.
3860 (ira_available_class_regs, ira_hard_regno_cover_class)
3861 (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
3862 (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
3863 (ira_class_hard_regs_num): Redefine as macros.
3864 * ira.c (default_target_ira, default_target_ira_int): New variables.
3865 (this_target_ira, this_target_ira_int): New conditional variables.
3866 (ira_reg_mode_hard_regset, ira_memory_move_cost)
3867 (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
3868 (ira_class_subset_p): Delete.
3869 (no_unit_alloc_regs): Redefine as a macro.
3870 (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
3871 (ira_class_hard_regs_num, ira_class_hard_reg_index)
3872 (ira_available_class_regs): Delete.
3873 (alloc_reg_class_subclasses): Redefine as a macro.
3874 (ira_reg_class_cover_size, ira_reg_class_cover)
3875 (ira_important_classes_num, ira_important_classes)
3876 (ira_important_class_nums, ira_class_translate): Delete.
3877 (cover_class_order): Document the variable's lifetime.
3878 (reorder_important_classes): Don't set ira_important_class_nums.
3879 (ira_reg_class_intersect, ira_reg_classes_intersect_p)
3880 (ira_reg_class_super_classes, ira_reg_class_union)
3881 (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
3882 Delete.
3883 (setup_reg_class_nregs): Don't set ira_max_regs.
3884 (prohibited_class_mode_regs): Delete.
3885 * target-globals.h (this_target_ira, this_target_ira_int): Declare.
3886 (target_globals): Add ira and ira_int fields.
3887 (restore_target_globals): Copy the ira field to this_target_ira
3888 and the ira_int field to this_target_ira_int.
3889 * target-globals.c: Include ira-int.h.
3890 (default_target_globals): Initialize the ira and ira_int fields.
3891 (save_target_globals): Likewise.
3892
3893 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3894
3895 * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
3896 * cfgloop.h (target_cfgloop): New structure.
3897 (default_target_cfgloop): Declare.
3898 (this_target_cfgloop): Declare as a variable or define as a macro.
3899 (target_avail_regs, target_clobbered_regs, target_res_regs)
3900 (target_reg_cost, target_spill_cost): Redefine as macros.
3901 * cfgloopanal.c (default_target_cfgloop): New variable.
3902 (this_target_cfgloop): New conditional variable.
3903 (target_avail_regs, target_clobbered_regs, target_res_regs)
3904 (target_reg_cost, target_spill_cost): Delete.
3905 * target-globals.h (this_target_cfgloop): Declare.
3906 (target_globals): Add a cfgloop field.
3907 (restore_target_globals): Copy the cfgloop field to
3908 this_target_cfgloop.
3909 * target-globals.c: Include cfgloop.h.
3910 (default_target_globals): Initialize the cfgloop field.
3911 (save_target_globals): Likewise.
3912
3913 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3914
3915 * regs.h (target_regs): Add x_direct_load, x_direct_store and
3916 x_float_extend_from_mem.
3917 (direct_load, direct_store, float_extend_from_mem): New macros.
3918 * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
3919
3920 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3921
3922 * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
3923 (target-globals.o): Depend on $(LIBFUNCS_H).
3924 * libfuncs.h: Include hashtab.h.
3925 (libfunc_entry): Moved from optabs.c.
3926 (target_libfuncs): New structure.
3927 (default_target_libfuncs): Declare.
3928 (this_target_libfuncs): Declare as a variable or define as a macro.
3929 (libfunc_table): Redefine as a macro.
3930 * optabs.c (default_target_libfuncs): New variable.
3931 (this_target_libfuncs): New conditional variable.
3932 (libfunc_table): Delete.
3933 (libfunc_entry): Moved to optabs.h.
3934 (libfunc_hash): Redefine as a macro.
3935 (hash_libfunc, eq_libfunc): Fix comments.
3936 (init_optabs): Use libfunc_hash to detect cases where the function
3937 has already been called. Clear the hash table instead of
3938 recreating it.
3939 * target-globals.h (this_target_libfuncs): Declare.
3940 (target_globals): Add a libfuncs field.
3941 (restore_target_globals): Copy the libfuncs field to
3942 this_target_libfuncs.
3943 * target-globals.c: Include libfuncs.h.
3944 (default_target_globals): Initialize the libfuncs field.
3945 (save_target_globals): Likewise.
3946
3947 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3948
3949 * Makefile.in (LIBFUNCS_H): New variable. Use instead of libfuncs.h
3950 in all dependency lists.
3951
3952 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3953
3954 * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
3955 * optabs.h (target_optabs): New structure.
3956 (default_target_optabs): Declare.
3957 (this_target_optabs): Declare as a variable or define as a macro.
3958 (optab_table, convert_optab_table, direct_optab_table): Redefine
3959 as macros.
3960 * optabs.c (default_target_optabs): New variable.
3961 (this_target_optabs): New conditional variable.
3962 (optab_table, convert_optab_table, direct_optab_table): Delete.
3963 * target-globals.h (this_target_optabs): Declare.
3964 (target_globals): Add a optabs field.
3965 (restore_target_globals): Copy the optabs field to
3966 this_target_optabs.
3967 * target-globals.c: Include expr.h and optabs.h.
3968 (default_target_globals): Initialize the optabs field.
3969 (save_target_globals): Likewise.
3970
3971 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3972
3973 * flags.h (target_flagstate): Add x_flag_excess_precision.
3974 (flag_excess_precision): Redefine as a macro.
3975 * toplev.c (flag_excess_precision): Delete.
3976
3977 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3978
3979 * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
3980 * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
3981 * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
3982 (no_caller_save_reg_set): Redefine as a macro.
3983 * reload.h (target_reload): Add x_caller_save_initialized_p and
3984 x_regno_save_mode.
3985 (caller_save_initialized_p): Redefine as a macro.
3986 * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
3987 (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
3988 (regno_save_mode): Redefine as a macro.
3989
3990 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3991
3992 * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
3993 * expmed.h: New file.
3994 * expmed.c (default_target_costs): New variable.
3995 (this_target_costs): New conditional variable.
3996 (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
3997 (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
3998 (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
3999 * target-globals.h (this_target_expmed): Declare.
4000 (target_globals): Add a expmed field.
4001 (restore_target_globals): Copy the expmed field to
4002 this_target_expmed.
4003 * target-globals.c: Include expmed.h.
4004 (default_target_globals): Initialize the expmed field.
4005 (save_target_globals): Likewise.
4006
4007 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
4008
4009 * Makefile.in (target-globals.o): Depend on reload.h.
4010 * reload.h (target_reload): New structure.
4011 (default_target_reload): Declare.
4012 (this_target_reload): Declare as a variable or define as a macro.
4013 (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
4014 * reload1.c (default_target_reload): New variable
4015 (this_target_reload): New conditional variable.
4016 (indirect_symref_ok, double_reg_address_ok): Delete.
4017 (spill_indirect_levels): Redefine as a macro.
4018 * target-globals.h (this_target_reload): Declare.
4019 (target_globals): Add a reload field.
4020 (restore_target_globals): Copy the reload field to
4021 this_target_reload.
4022 * target-globals.c: Include hard-reg-set.h.
4023 (default_target_globals): Initialize the reload field.
4024 (save_target_globals): Likewise.
4025
4026 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
4027
4028 * rtl.h (target_rtl): Add x_static_reg_base_value.
4029 * alias.c (static_reg_base_value): Redefine as a macro.
4030
4031 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
4032
4033 * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
4034 (GTFILES): Remove reginfo.c.
4035 * rtl.h (target_rtl): Add x_top_of_stack.
4036 (top_of_stack): New macro.
4037 * reginfo.c: Don't include ggc.h or gt-reginfo.h.
4038 (top_of_stack): Delete.
4039
4040 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
4041
4042 * regs.h (target_regs): Add x_hard_regs_of_mode,
4043 x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
4044 x_may_move_out_cost and x_last_mode_for_init_move_cost.
4045 (have_regs_of_mode, contains_reg_of_mode, move_cost)
4046 (may_move_in_cost, may_move_out_cost): Redefine as macros.
4047 * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
4048 (may_move_in_cost, may_move_out_cost): Delete.
4049 (last_mode_for_init_move_cost): Redefine as a macro.
4050
4051 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
4052
4053 * hard-reg-set.h (target_hard_regs): New structure.
4054 (default_target_hard_regs): Declare.
4055 (this_target_hard_regs): Declare as a variable or define as a macro.
4056 (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
4057 (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
4058 (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
4059 (reg_class_size, reg_class_subclasses, reg_class_subunion)
4060 (reg_class_superunion, reg_names): Redefine as macros.
4061 * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
4062 (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
4063 (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
4064 (reg_class_contents, reg_class_size, reg_class_subclasses)
4065 (reg_class_subunion, reg_class_superunion, reg_names): Delete.
4066 (default_target_hard_regs): New variable
4067 (this_target_hard_regs, initial_call_really_used_regs)
4068 (initial_reg_alloc_order): New conditional variables.
4069 (initial_reg_names): New variable.
4070 (init_reg_sets): Assert that initial_call_really_used_regs,
4071 initial_reg_alloc_order and initial_reg_names
4072 are all the same size as their variable counterparts. Use them to
4073 initialize those counterparts.
4074 * target-globals.h (this_target_hard_regs): Declare.
4075 (target_globals): Add a hard_regs field.
4076 (restore_target_globals): Copy the hard_regs field to
4077 this_target_hard_regs.
4078 * target-globals.c: Include hard-reg-set.h.
4079 (default_target_globals): Initialize the hard_regs field.
4080 (save_target_globals): Likewise.
4081
4082 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
4083
4084 * Makefile.in (target-globals.o): Depend on $(RTL_H).
4085 * rtl.h (target_rtl): New structure.
4086 (default_target_rtl): Declare.
4087 (this_target_rtl): Declare as a variable or define as a macro.
4088 (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
4089 Redefine as macros.
4090 * emit-rtl.c (default_target_rtl): New variable.
4091 (this_target_rtl): New conditional variable.
4092 (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
4093 (return_address_pointer_rtx): Delete.
4094 (initial_regno_reg_rtx): New macro.
4095 (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
4096 (init_emit_regs): Likewise.
4097 * target-globals.h (this_target_rtl): Declare.
4098 (target_globals): Add a rtl field.
4099 (restore_target_globals): Copy the rtl field to this_target_rtl.
4100 * target-globals.c: Include rtl.h.
4101 (default_target_globals): Initialize the rtl field.
4102 (save_target_globals): Likewise.
4103
4104 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
4105
4106 * Makefile.in (target-globals.o): Depend on $(REGS_H).
4107 * regs.h (target_reg_modes): New structure.
4108 (default_target_reg_modes): Declare.
4109 (this_target_reg_modes): Declare as a variable or define as a macro.
4110 (hard_regno_nregs, reg_raw_mode): Redefine as macros.
4111 * reginfo.c (default_target_reg_modes): New variable.
4112 (this_target_reg_modes): New conditional variable.
4113 (hard_regno_nregs, reg_raw_mode): Delete.
4114 * target-globals.h (this_target_regs): Declare.
4115 (target_globals): Add a regs field.
4116 (restore_target_globals): Copy the regs field to this_target_regs.
4117 * target-globals.c: Include regs.h.
4118 (default_target_globals): Initialize the regs field.
4119 (save_target_globals): Likewise.
4120
4121 2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
4122
4123 * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
4124 * doc/tm.texi: Regenerate.
4125 * Makefile.in (OBJS-common): Add target-globals.o.
4126 (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
4127 and target-globals.h.
4128 (target-globals.o): New rule.
4129 (GTFILES): Include $(srcdir)/target-globals.h.
4130 * defaults.h (SWITCHABLE_TARGET): Define.
4131 * gengtype.c (open_base_files): Add target-globals.h to the
4132 list of includes.
4133 * target-globals.h: New file.
4134 * target-globals.c: Likewise.
4135
4136 * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
4137 * flags.h (target_flag_state): New structure.
4138 (default_target_flag_state): Declare.
4139 (this_target_flag_state): Declare as a variable or define as a macro.
4140 (align_loops_log): Redefine as a macro.
4141 (align_loops_max_skip, align_jumps_log): Likewise.
4142 (align_jumps_max_skip, align_labels_log): Likewise.
4143 (align_labels_max_skip, align_functions_log): Likewise.
4144 * toplev.c (default_target_flag_state): New variable.
4145 (this_target_flag_state): New conditional variable.
4146 (align_loops_log): Delete.
4147 (align_loops_max_skip, align_jumps_log): Likewise.
4148 (align_jumps_max_skip, align_labels_log): Likewise.
4149 (align_labels_max_skip, align_functions_log): Likewise.
4150 * target-globals.h (this_target_flag_state): Declare.
4151 (target_globals): Add a flag_state field.
4152 (restore_target_globals): Copy the flag_state field to
4153 this_target_flag_state.
4154 * target-globals.c: Include flags.h.
4155 (default_target_globals): Initialize the flag_state field.
4156 (save_target_globals): Likewise.
4157
4158 2010-07-12 Jie Zhang <jie@codesourcery.com>
4159
4160 * postreload.c (reg_symbol_ref[]): New.
4161 (move2add_use_add2_insn): New.
4162 (move2add_use_add3_insn): New.
4163 (reload_cse_move2add): Handle SYMBOL + OFFSET case.
4164 (move2add_note_store): Likewise.
4165
4166 2010-07-12 Joern Rennecke <joern.rennecke@embecosm.com>
4167
4168 PR rtl-optimization/44752
4169 * genautomata.c (main): Don't emit an empty file even if there
4170 is no automaton.
4171
4172 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4173
4174 * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
4175 ix86_solaris_return_in_memory.
4176 * config/i386-protos.h: Reflect this.
4177 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
4178 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
4179 Move ...
4180 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
4181
4182 2010-07-12 Jie Zhang <jie@codesourcery.com>
4183
4184 * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
4185 align the stack when it's going to be saved.
4186
4187 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4188
4189 PR pch/14940
4190 * config/host-solaris.c (mmap_fixed): New function.
4191 (sol_gt_pch_get_address): Use it.
4192 (sol_gt_pch_use_address): Likewise.
4193
4194 2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4195
4196 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
4197 pentiumpro on Solaris 8 and 9/x86.
4198 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
4199 Document SSE/SSE2 support.
4200 * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
4201
4202 2010-07-12 Andi Kleen <ak@linux.intel.com>
4203
4204 * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
4205 instead of gcc_assert to print better error message for multiple
4206 prevailing defs.
4207
4208 2010-07-12 Uros Bizjak <ubizjak@gmail.com>
4209
4210 * config/i386/i386.c (ix86_asm_output_function_label): Change format
4211 string placeholder from 0x%x to %#x.
4212 (ix86_code_end): Use putc to output '\n'.
4213 (ix86_print_operand) <case ';'>: Use putc to output ';'.
4214
4215 2010-07-11 Kai Tietz <kai.tietz@onevision.com>
4216
4217 * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
4218 in directive -export.
4219
4220 2010-07-10 Anatoly Sokolov <aesok@post.ru>
4221
4222 * reginfo.h (reg_classes_intersect_p): Change arguments type to
4223 reg_class_t.
4224 * rtl.h (reg_classes_intersect_p): Adjust prototype.
4225
4226 * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
4227 Remove macros.
4228 * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
4229 rs6000_memory_move_cost): Remove
4230 * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
4231 TARGET_MEMORY_MOVE_COST): Define.
4232 (rs6000_register_move_cost): Make static. Change arguments type from
4233 enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
4234 (rs6000_memory_move_cost): Make static. Change arguments type from
4235 'enum reg_class' to reg_class_t.
4236
4237 2010-07-10 Sandra Loosemore <sandra@codesourcery.com>
4238
4239 PR middle-end/42505
4240 * tree-inline.c (estimate_num_insns): Refactor builtin complexity
4241 lookup code into....
4242 * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
4243 new functions.
4244 * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
4245 * cfgloopanal.c (target_clobbered_regs): Define.
4246 (init_set_costs): Initialize target_clobbered_regs.
4247 (estimate_reg_pressure_cost): Add call_p argument. When true,
4248 adjust the number of available registers to exclude the
4249 call-clobbered registers.
4250 * cfgloop.h (target_clobbered_regs): Declare.
4251 (estimate_reg_pressure_cost): Adjust declaration.
4252 * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
4253 (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
4254 (determine_set_costs): Dump target_clobbered_regs.
4255 (loop_body_includes_call): New function.
4256 (tree_ssa_iv_optimize_loop): Use it to initialize new field.
4257 * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
4258 call_p flag through.
4259 (best_gain_for_invariant): Likewise.
4260 (find_invariants_to_move): Likewise.
4261 (move_single_loop_invariants): Likewise, using already-computed
4262 has_call field.
4263
4264 2010-07-10 Richard Guenther <rguenther@suse.de>
4265 Joern Rennecke <joern.rennecke@embecosm.com>
4266
4267 PR debug/44832
4268 * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
4269 (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
4270 unless they have DECL_IGNORED_P set.
4271
4272 2010-07-10 Richard Guenther <rguenther@suse.de>
4273
4274 PR lto/44889
4275 * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
4276 helper function.
4277 (gimple_types_compatible_p): Similar to pointed-to
4278 types allow and merge a mix of complete and incomplete aggregate.
4279 Use gimple_fixup_complete_and_incomplete_subtype_p for that.
4280 (iterative_hash_gimple_type): Adjust for that.
4281
4282 2010-07-10 Richard Sandiford <r.sandiford@uk.ibm.com>
4283
4284 * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
4285
4286 2010-07-10 Iain Sandoe <iains@gcc.gnu.org>
4287
4288 PR objc/44140
4289 * config/darwin.c (output_objc_section_asm_op): Save and restore
4290 section when outputting ObjC section list.
4291
4292 2010-07-09 Jan Hubicka <jh@suse.cz>
4293
4294 * lto-streamer-out.c (produce_symtab): Do not write alias
4295 cgraph/varpool nodes.
4296
4297 2010-07-09 Jan Hubicka <jh@suse.cz>
4298
4299 * tree-inline.c (declare_return_variable): Fix ICE while
4300 inlining DECL_BY_VALUE function not in SSA form
4301
4302 2010-07-09 Changpeng Fang <changpeng.fang@amd.com>
4303
4304 PR tree-optimization/44576
4305 * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
4306 New. Pull out from is_loop_prefetching_profitable to implement
4307 the trip count to ahead ratio heuristic.
4308 (mem_ref_count_reasonable_p): New. Pull out from
4309 is_loop_prefetching_profitable to implement the instruction to
4310 memory reference ratio heuristic. Also consider not reasonable if
4311 the memory reference count is above a threshold (to avoid
4312 explosive compilation time.
4313 (insn_to_prefetch_ratio_too_small_p): New. Pull out from
4314 is_loop_prefetching_profitable to implement the instruction to
4315 prefetch ratio heuristic.
4316 (is_loop_prefetching_profitable): Removed.
4317 (loop_prefetch_arrays): Distribute the cost analysis across the
4318 function to allow early exit of the prefetch analysis.
4319 is_loop_prefetching_profitable is splitted into three functions,
4320 with each one called as early as possible.
4321 (PREFETCH_MAX_MEM_REFS_PER_LOOP): New. Threshold above which the
4322 number of memory references in a loop is considered too many.
4323
4324 2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
4325
4326 * reload.c (find_reloads): Don't clear badop if we have a winreg
4327 alternative, but not win, and the class only has fixed regs.
4328 * hard-reg-set.h (class_only_fixed_regs): Declare.
4329 * reginfo.c (class_only_fixed_regs): New array.
4330 (init_reg_sets_1): Initialize it.
4331 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
4332 discourage alternatives using the stack pointer.
4333
4334 * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
4335
4336 * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
4337
4338 * config/arm/arm.md (cbranchqi4): Fix array size.
4339 (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
4340 calculating length.
4341
4342 2010-07-09 Richard Guenther <rguenther@suse.de>
4343
4344 * gimple.c (struct type_fixup_s): New struct and VEC type.
4345 (gimple_register_type_fixups): New static global.
4346 (gimple_queue_type_fixup): New function.
4347 (gimple_types_compatible_p): Queue type fixups instead of
4348 applying them here.
4349 (gimple_register_type): Apply queued fixups for the
4350 canonical type. Empty the type fixup queue.
4351
4352 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
4353
4354 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
4355 * configure: Regenerate.
4356 * config.in: Ditto.
4357
4358 2010-07-09 Jakub Jelinek <jakub@redhat.com>
4359 Denys Vlasenko <dvlasenk@redhat.com>
4360 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
4361
4362 PR tree-optimization/28632
4363 * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
4364 (extract_range_from_binary_expr): Further optimize
4365 BIT_AND_EXPR and BIT_IOR_EXPR.
4366
4367 2010-07-09 Sebastian Pop <sebastian.pop@amd.com>
4368
4369 * tree-if-conv.c (fold_or_predicates): New.
4370 (add_to_predicate_list): Call it.
4371
4372 2010-07-09 Richard Guenther <rguenther@suse.de>
4373
4374 PR middle-end/44890
4375 * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
4376 if base is a pointer.
4377 * tree-cfg.c (verify_expr): Update MEM_REF checking.
4378
4379 2010-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
4380
4381 PR target/44877
4382 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
4383 POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
4384 builtin mask for load/store builtins.
4385
4386 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
4387
4388 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
4389 for "lock addl".
4390 * configure: Regenerate.
4391 * config/i386/i386.c (ix86_print_operand) <case ';'>:
4392 Remove TARGET_MACHO.
4393
4394 2010-07-09 Peter Bergner <bergner@vnet.ibm.com>
4395
4396 * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
4397 default ISA flags.
4398 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
4399
4400 2010-07-09 Tom de Vries <tjvries@xs4all.nl>
4401
4402 * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
4403
4404 2010-07-09 Hariharan Sandanagobalane <hariharan@picochip.com>
4405
4406 * config/picochip/picochip.md (commsTestPort): Emit more
4407 efficient sequence for tstport instruction.
4408
4409 2010-07-09 Uros Bizjak <ubizjak@gmail.com>
4410
4411 * config/i386/i386.c (ix86_veclib_handler): Make static.
4412
4413 2010-07-09 Richard Guenther <rguenther@suse.de>
4414
4415 PR tree-optimization/44852
4416 * tree-ssa-alias.c: Include toplev.h for exact_log2.
4417 (indirect_ref_may_alias_decl_p): Properly handle negative offsets
4418 in MEM_REF.
4419 (indirect_refs_may_alias_p): Likewise.
4420 * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
4421
4422 2010-07-09 Richard Guenther <rguenther@suse.de>
4423
4424 PR tree-optimization/44882
4425 * tree-vect-stmts.c (vectorizable_store): Do not assert alias
4426 sets do conflict.
4427 (vectorizable_load): Likewise.
4428
4429 2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
4430
4431 PR target/40657
4432 * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
4433 All callers changed.
4434 Handle the case when we're called for the epilogue.
4435 (thumb_unexpanded_epilogue): Use it.
4436 (thumb1_expand_epilogue): Likewise.
4437
4438 2010-07-09 Jakub Jelinek <jakub@redhat.com>
4439
4440 * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
4441 both ranges are range_int_cst_p with non-negative minimum,
4442 try harder to derive smaller range.
4443
4444 2010-07-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
4445
4446 * genrecog.c: Include diagnostic-core.h before toplev.h.
4447 * genoutput.c: Likewise.
4448 * genextract.c: Likewise.
4449 * genautomata.c: Likewise.
4450 * genemit.c: Likewise.
4451 * genpeep.c: Likewise.
4452 * genattrtab.c: Likewise.
4453 * genconditions.c: Likewise.
4454 * genpreds.c: Likewise.
4455
4456 2010-07-08 Andi Kleen <ak@linux.intel.com>
4457
4458 * lto-section-in.c (lto_section_name): Add missing comma.
4459
4460 2010-07-08 Anatoly Sokolov <aesok@post.ru>
4461
4462 * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
4463 * config/ia64/ia64-protos.h (ia64_override_options): Remove.
4464 * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
4465 (ia64_override_options): Rename to...
4466 (ia64_option_override): ... this one. Make static.
4467
4468 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
4469
4470 PR middle-end/44843
4471 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
4472 pointed-to type of the offset in a MEM_REF to compute the alignment.
4473
4474 2010-07-08 Kai Tietz <kai.tietz@onevision.com>
4475
4476 * final.c (final_scan_insn): Replace
4477 TARGET_UNWIND_INFO macro check by unwind_emit
4478 hook NULL check.
4479 * targhooks.c (default_unwind_emit): Removed.
4480 * targhooks.h (default_unwind_emit): Likewise.
4481 * target.def (unwind_emit): Set default value to NULL.
4482
4483 * config/i386/i386-protos.h (ix86_asm_output_function_label):
4484 New prototype.
4485 * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
4486 for NULL fntype argument and allow 64-bit targets.
4487 (ix86_asm_output_function_label): New function.
4488 (ix86_expand_prologue): Handle 64-bit ms hook prologue.
4489 (ix86_handle_fndecl_attribute): Likewise.
4490 * doc/extend.texi (ms_hook_prologue): Adjust documentation.
4491 * doc/doc/tm.texi: Regenerated.
4492 * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
4493 (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
4494 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
4495 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
4496 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
4497 * config/elfos.h: Likewise.
4498 * config/i386/cygming.h: Likewise.
4499 * config/netbsd-aout.h: Likewise.
4500 * config/openbsd.h: Likewise.
4501 * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
4502 by ix86_asm_output_function_label function call.
4503 * varasm.c (assemble_start_function): Use
4504 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
4505
4506 2010-07-08 Jan Hubicka <jh@suse.cz>
4507
4508 * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
4509 New function.
4510 * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
4511 Declare.
4512 * ipa-cp.c (ipcp_estimate_growth): Use it.
4513 * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
4514 Likewise.
4515
4516 2010-07-08 Jan Hubicka <jh@suse.cz>
4517
4518 * tree-inline.c (declare_return_variable): Allocate annotation for new
4519 temporary.
4520
4521 2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
4522
4523 PR tree-optimization/44710
4524 * tree-if-conv.c (parse_predicate): New.
4525 (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
4526 Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
4527
4528 2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
4529
4530 * common.opt (ftree-loop-if-convert): New flag.
4531 * doc/invoke.texi (ftree-loop-if-convert): Documented.
4532 * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
4533 when flag_tree_loop_if_convert is set.
4534
4535 2010-07-08 Uros Bizjak <ubizjak@gmail.com>
4536
4537 * config/i386/i386.c: Use short syntax for function calls
4538 through function pointers.
4539 * config/i386/i386.md: Ditto.
4540
4541 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
4542
4543 * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
4544
4545 2010-07-08 Richard Guenther <rguenther@suse.de>
4546
4547 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
4548 stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
4549
4550 2010-07-08 Jakub Jelinek <jakub@redhat.com>
4551
4552 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
4553 instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
4554 (loc_list_from_tree): Likewise.
4555 (output_loc_operands): Handle outputting DW_OP_const[48]u
4556 with loc->dtprel set.
4557 (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
4558
4559 2010-07-08 Jan Hubicka <jh@suse.cz>
4560
4561 * ipa.c: Include pointer-set.h
4562 (cgraph_externally_visible_p): New attribute ALIASED;
4563 when in LTO, hidden symbols are local unless they are aliased.
4564 (function_and_variable_visibility): Compute aliased nodes;
4565 handle LTO and hidden symbol on functions and vars.
4566 * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
4567 for COMDAT symbols; handle COMDAT_GROUPS also at vars.
4568
4569 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
4570
4571 * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
4572 * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4573 * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4574 * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4575 * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4576 * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
4577 (ix86_gen_probe_stack_range): Likewise.
4578 (override_options): Set them.
4579 (ix86_target_stack_probe): New function.
4580 (ix86_compute_frame_layout): Force use of push instructions to
4581 save registers if stack checking with probes is enabled.
4582 (get_scratch_register_on_entry): New function.
4583 (release_scratch_register_on_entry): Likewise.
4584 (ix86_adjust_stack_and_probe): Likewise.
4585 (output_adjust_stack_and_probe): Likewise.
4586 (ix86_emit_probe_stack_range): Likewise.
4587 (output_probe_stack_range): Likewise.
4588 (ix86_expand_prologue): Emit stack checking code if static built-in
4589 stack checking is enabled.
4590 Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
4591 * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
4592 (output_adjust_stack_and_probe): Likewise.
4593 (output_probe_stack_range): Likewise.
4594 * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
4595 (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
4596 TARGET_STACK_PROBE.
4597 (allocate_stack_worker_64): Likewise.
4598 (allocate_stack): Likewise.
4599 (adjust_stack_and_probe): New insn.
4600 (probe_stack_range): Likewise.
4601
4602 2010-07-08 Richard Guenther <rguenther@suse.de>
4603
4604 PR tree-optimization/44831
4605 * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
4606 a MEM_REF preserving TBAA info of the original dereference.
4607 Dereference the original pointer if the address is not invariant.
4608 (propagate_with_phi): Fixup type checks wrt MEM_REFs. Require
4609 at least one invariant address that we are going to dereference.
4610
4611 2010-07-08 Richard Guenther <rguenther@suse.de>
4612
4613 PR tree-optimization/44861
4614 * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
4615 information when building MEM_REFs.
4616 (vectorizable_load): Likewise.
4617 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
4618
4619 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
4620
4621 * config/sol2-c.c: Do not include diagnostic-core.h.
4622
4623 2010-07-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4624
4625 PR bootstrap/44768
4626 * cfgexpand.c (estimated_stack_frame_size): Make self-contained
4627 with respect to current_function_decl. Pass decl of the function.
4628 * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
4629 * ipa-inline.c (compute_inline_parameters): Pass decl to
4630 estimated_stack_frame_size.
4631
4632 2010-07-08 Richard Guenther <rguenther@suse.de>
4633
4634 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
4635 New function.
4636 (valueize_refs): Call it.
4637
4638 2010-07-08 Richard Guenther <rguenther@suse.de>
4639
4640 PR rtl-optimization/44838
4641 * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
4642 SSA form do not use pointer equivalence.
4643
4644 2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
4645
4646 * dwarf2out.c (AT_linkage_name): Delete.
4647 (add_linkage_attr): New function.
4648 (add_linkage_name): Call it to emit the linkage attribute.
4649 (dwarf2out_finish): Likewise.
4650 (move_linkage_attr): Explicitly accept both attribute variants.
4651
4652 2010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
4653
4654 * toplev.h: Do not include diagnostic-core.h.
4655 Include diagnostic-core.h in every file that includes toplev.h.
4656 * c-tree.h: Do not include toplev.h.
4657 * pretty-print.h: Update comment.
4658 * Makefile.in: Update dependencies.
4659 * alias.c: Include diagnostic-core.h in every file that includes
4660 toplev.h.
4661 * attribs.c: Likewise.
4662 * auto-inc-dec.c: Likewise.
4663 * bb-reorder.c: Likewise.
4664 * bt-load.c: Likewise.
4665 * caller-save.c: Likewise.
4666 * calls.c: Likewise.
4667 * cfg.c: Likewise.
4668 * cfganal.c: Likewise.
4669 * cfgbuild.c: Likewise.
4670 * cfgcleanup.c: Likewise.
4671 * cfghooks.c: Likewise.
4672 * cfgloop.c: Likewise.
4673 * combine.c: Likewise.
4674 * config/alpha/alpha.c: Likewise.
4675 * config/arc/arc.c: Likewise.
4676 * config/arm/arm.c: Likewise.
4677 * config/arm/pe.c: Likewise.
4678 * config/avr/avr.c: Likewise.
4679 * config/bfin/bfin.c: Likewise.
4680 * config/cris/cris.c: Likewise.
4681 * config/crx/crx.c: Likewise.
4682 * config/darwin-c.c: Likewise.
4683 * config/darwin.c: Likewise.
4684 * config/fr30/fr30.c: Likewise.
4685 * config/frv/frv.c: Likewise.
4686 * config/h8300/h8300.c: Likewise.
4687 * config/host-darwin.c: Likewise.
4688 * config/i386/i386.c: Likewise.
4689 * config/i386/netware.c: Likewise.
4690 * config/i386/nwld.c: Likewise.
4691 * config/i386/winnt-cxx.c: Likewise.
4692 * config/i386/winnt-stubs.c: Likewise.
4693 * config/i386/winnt.c: Likewise.
4694 * config/ia64/ia64-c.c: Likewise.
4695 * config/ia64/ia64.c: Likewise.
4696 * config/iq2000/iq2000.c: Likewise.
4697 * config/lm32/lm32.c: Likewise.
4698 * config/m32c/m32c-pragma.c: Likewise.
4699 * config/m32c/m32c.c: Likewise.
4700 * config/m32r/m32r.c: Likewise.
4701 * config/m68hc11/m68hc11.c: Likewise.
4702 * config/m68k/m68k.c: Likewise.
4703 * config/mcore/mcore.c: Likewise.
4704 * config/mep/mep-pragma.c: Likewise.
4705 * config/mep/mep.c: Likewise.
4706 * config/mmix/mmix.c: Likewise.
4707 * config/mn10300/mn10300.c: Likewise.
4708 * config/moxie/moxie.c: Likewise.
4709 * config/pa/pa.c: Likewise.
4710 * config/pdp11/pdp11.c: Likewise.
4711 * config/picochip/picochip.c: Likewise.
4712 * config/rs6000/rs6000-c.c: Likewise.
4713 * config/rs6000/rs6000.c: Likewise.
4714 * config/rx/rx.c: Likewise.
4715 * config/s390/s390.c: Likewise.
4716 * config/score/score.c: Likewise.
4717 * config/score/score3.c: Likewise.
4718 * config/score/score7.c: Likewise.
4719 * config/sh/sh.c: Likewise.
4720 * config/sh/symbian-base.c: Likewise.
4721 * config/sh/symbian-c.c: Likewise.
4722 * config/sh/symbian-cxx.c: Likewise.
4723 * config/sol2-c.c: Likewise.
4724 * config/sol2.c: Likewise.
4725 * config/sparc/sparc.c: Likewise.
4726 * config/spu/spu.c: Likewise.
4727 * config/stormy16/stormy16.c: Likewise.
4728 * config/v850/v850-c.c: Likewise.
4729 * config/v850/v850.c: Likewise.
4730 * config/vax/vax.c: Likewise.
4731 * config/vxworks.c: Likewise.
4732 * config/xtensa/xtensa.c: Likewise.
4733 * convert.c: Likewise.
4734 * cse.c: Likewise.
4735 * cselib.c: Likewise.
4736 * dbgcnt.c: Likewise.
4737 * dbxout.c: Likewise.
4738 * ddg.c: Likewise.
4739 * dominance.c: Likewise.
4740 * emit-rtl.c: Likewise.
4741 * explow.c: Likewise.
4742 * expmed.c: Likewise.
4743 * fixed-value.c: Likewise.
4744 * fold-const.c: Likewise.
4745 * fwprop.c: Likewise.
4746 * gcse.c: Likewise.
4747 * ggc-common.c: Likewise.
4748 * ggc-page.c: Likewise.
4749 * ggc-zone.c: Likewise.
4750 * gimple-low.c: Likewise.
4751 * gimplify.c: Likewise.
4752 * graph.c: Likewise.
4753 * haifa-sched.c: Likewise.
4754 * ifcvt.c: Likewise.
4755 * implicit-zee.c: Likewise.
4756 * integrate.c: Likewise.
4757 * ira-build.c: Likewise.
4758 * ira-color.c: Likewise.
4759 * ira-conflicts.c: Likewise.
4760 * ira-costs.c: Likewise.
4761 * ira-lives.c: Likewise.
4762 * ira.c: Likewise.
4763 * lists.c: Likewise.
4764 * loop-doloop.c: Likewise.
4765 * loop-iv.c: Likewise.
4766 * lto-opts.c: Likewise.
4767 * lto-symtab.c: Likewise.
4768 * main.c: Likewise.
4769 * modulo-sched.c: Likewise.
4770 * optabs.c: Likewise.
4771 * params.c: Likewise.
4772 * plugin.c: Likewise.
4773 * postreload-gcse.c: Likewise.
4774 * postreload.c: Likewise.
4775 * predict.c: Likewise.
4776 * profile.c: Likewise.
4777 * real.c: Likewise.
4778 * regcprop.c: Likewise.
4779 * reginfo.c: Likewise.
4780 * regmove.c: Likewise.
4781 * reorg.c: Likewise.
4782 * resource.c: Likewise.
4783 * rtl.c: Likewise.
4784 * rtlanal.c: Likewise.
4785 * sched-deps.c: Likewise.
4786 * sched-ebb.c: Likewise.
4787 * sched-rgn.c: Likewise.
4788 * sdbout.c: Likewise.
4789 * sel-sched-dump.c: Likewise.
4790 * sel-sched-ir.c: Likewise.
4791 * simplify-rtx.c: Likewise.
4792 * stmt.c: Likewise.
4793 * stor-layout.c: Likewise.
4794 * store-motion.c: Likewise.
4795 * targhooks.c: Likewise.
4796 * tree-cfg.c: Likewise.
4797 * tree-cfgcleanup.c: Likewise.
4798 * tree-dump.c: Likewise.
4799 * tree-eh.c: Likewise.
4800 * tree-inline.c: Likewise.
4801 * tree-nomudflap.c: Likewise.
4802 * tree-object-size.c: Likewise.
4803 * tree-optimize.c: Likewise.
4804 * tree-outof-ssa.c: Likewise.
4805 * tree-phinodes.c: Likewise.
4806 * tree-profile.c: Likewise.
4807 * tree-ssa-ccp.c: Likewise.
4808 * tree-ssa-coalesce.c: Likewise.
4809 * tree-ssa-live.c: Likewise.
4810 * tree-ssa-loop-niter.c: Likewise.
4811 * tree-ssa-loop-prefetch.c: Likewise.
4812 * tree-ssa-loop.c: Likewise.
4813 * tree-ssa-structalias.c: Likewise.
4814 * tree-ssa-uninit.c: Likewise.
4815 * tree-ssa.c: Likewise.
4816 * tree-vect-data-refs.c: Likewise.
4817 * tree-vect-loop-manip.c: Likewise.
4818 * tree-vect-loop.c: Likewise.
4819 * tree-vect-patterns.c: Likewise.
4820 * tree-vect-stmts.c: Likewise.
4821 * tree-vrp.c: Likewise.
4822 * varasm.c: Likewise.
4823 * vec.c: Likewise.
4824 * web.c: Likewise.
4825 * xcoffout.c: Likewise.
4826
4827 2010-07-07 Richard Sandiford <rdsandiford@googlemail.com>
4828
4829 * gengtype.c (write_field_root): New function.
4830 (write_root): Use it.
4831
4832 2010-07-07 Wei Guozhi <carrot@google.com>
4833
4834 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
4835 of lowest bits to lshift/compare): Add a missing line.
4836
4837 2010-07-07 Wei Guozhi <carrot@google.com>
4838
4839 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
4840 of lowest bits to lshift/compare): New.
4841
4842 2010-07-07 Tom Tromey <tromey@redhat.com>
4843
4844 * doc/tm.texi: Update.
4845 * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
4846 Add @hook.
4847 * target.def (want_debug_pub_sections): New hook.
4848 * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
4849 * dwarf2out.c (add_pubname_string): Check
4850 targetm.want_debug_pub_sections.
4851 (add_pubname): Likewise.
4852 (add_pubtype): Likewise.
4853
4854 2010-07-07 Jie Zhang <jie@codesourcery.com>
4855
4856 * genautomata.c (output_automata_list_min_issue_delay_code):
4857 Correctly decompress min_issue_delay.
4858
4859 2010-07-07 Bernd Schmidt <bernds@codesourcery.com>
4860
4861 PR rtl-optimization/44404
4862 * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
4863 possible, use reg_overlap_mentioned_p instead.
4864
4865 2010-07-07 Duncan Sands <baldrick@free.fr>
4866
4867 PR middle-end/41355
4868 * tree.c (build_function_type_skip_args): Copy the original type using
4869 build_distinct_type_copy rather than copy_node.
4870
4871 2010-07-07 H.J. Lu <hongjiu.lu@intel.com>
4872
4873 PR target/44850
4874 * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
4875 revision 161876.
4876 (ix86_expand_prologue): Likewise.
4877 (ix86_handle_fndecl_attribute): Likewise.
4878 (ix86_asm_declare_function_name): Likewise.
4879 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4880 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4881 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
4882 * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
4883 * doc/extend.texi: Likewise.
4884
4885 2010-07-07 H.J. Lu <hongjiu.lu@intel.com>
4886
4887 PR target/44844
4888 * config/i386/i386.md (rdrand<mode>): Changed to expand to
4889 retry if the carry flag isn't valid.
4890 (rdrand<mode>_1): New.
4891
4892 2010-07-07 Richard Guenther <rguenther@suse.de>
4893
4894 PR middle-end/44790
4895 * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
4896 for expanding the constant offset for MEM_REFs.
4897
4898 2010-07-07 Richard Guenther <rguenther@suse.de>
4899
4900 * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
4901 * tree-ssa-propagate.c (valid_gimple_call_p): Make static. Fix.
4902 * gimple.h (is_gimple_operand): Remove.
4903 * gimple.c (is_gimple_operand): Likewise.
4904 (walk_gimple_op): Fix wi->val_only setting for calls.
4905 * tree-cfg.c (verify_gimple_call): Fix argument validation.
4906 * tree-profile.c (tree_gen_ic_func_profiler): Do not create
4907 invalid gimple calls.
4908
4909 2010-07-06 Jan Hubicka <jh@suse.cz>
4910
4911 * lto-cgraph.c (output_cgraph): Add missing declaration.
4912
4913 2010-07-06 Jan Hubicka <jh@suse.cz>
4914
4915 * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
4916 partition.
4917
4918 2010-07-06 Alexandre Oliva <aoliva@redhat.com>
4919
4920 * doc/gimple.texi (GIMPLE_DEBUG): Document.
4921 * doc/rtl.texi (Debug Information): New node.
4922 (NOTE_INSN_VAR_LOCATION): Document.
4923 (debug_insn): Likewise.
4924 * doc/generic.texi (DEBUG_EXPR_DECL): Document.
4925
4926 2010-07-07 Jan Hubicka <jh@suse.cz>
4927
4928 With parts by Richard Guenther.
4929
4930 PR middle-end/44813
4931 * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
4932 for functions passed by reference.
4933 * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
4934 in memory when passed by reference.
4935 * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
4936 beggining.
4937 * ipa-split.c (split_function): Cleanup way return value is passed;
4938 handle SSA DECL_BY_REFERENCE retvals.
4939 * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
4940 DECL_BY_REFERENCE is set.
4941 * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
4942 find_what_p_points_to): Handle RESULT_DECL.
4943 * tree-inline.c (declare_return_variable): Get new entry_block argument;
4944 when passing by reference ensure that RESULT_DECL is gimple_val.
4945 (remap_gimple_op_r): Remap RESULT_DECL ssa name.
4946 (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
4947
4948 2010-07-07 Bernd Schmidt <bernds@codesourcery.com>
4949
4950 PR rtl-optimization/44787
4951 * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
4952 * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
4953
4954 2010-07-06 Jan Hubicka <jh@suse.cz>
4955
4956 * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
4957 (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
4958 with body can prevail.
4959 (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
4960 (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
4961 * cgraph.c (cgraph_get_node_or_alias): New function.
4962 * cgraph.h (cgraph_get_node_or_alias): Declare.
4963
4964 2010-07-06 Kai Tietz <kai.tietz@onevision.com>
4965
4966 * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
4967 support.
4968 (ix86_expand_prologue): Likewise.
4969 (ix86_handle_fndecl_attribute): Likewise.
4970 (ix86_asm_declare_function_name): New function for
4971 ASM_DECLARE_FUNCTION_NAME.
4972 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
4973 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
4974 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
4975 * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
4976 * doc/extend.texi: Adjust documentation about ms_hook_prologue
4977 attribute.
4978
4979 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
4980
4981 * config/i386/i386.md (immediate_operand): New mode attribute.
4982
4983 (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
4984 pro_epilogue_adjust_stack and pro_epilogue_adjust_stack_rex64
4985 using P mode iterator.
4986 (pro_epilogue_adjust_stack_di_2): Rename from
4987 pro_epilogue_adjust_stack_rex64_2.
4988
4989 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
4990
4991 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
4992
4993 * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
4994 through gen_mov_insv_1 function pointer.
4995 (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
4996 gen_truncxf<mode>2 through gen_truncxf function pointer.
4997 (remainder<mode>3): Ditto.
4998 (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
4999 (allocate_stack): Call gen_allocate_stack_worker_64 or
5000 gen_allocate_stack_worker_32 through gen_allocate_stack_worker
5001 function pointer.
5002 (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
5003 function pointer.
5004
5005 2010-07-06 Uros Bizjak <ubizjak@gmail.com>
5006
5007 * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
5008 operand constraint instead of <r><i>m.
5009
5010 2010-07-06 Richard Guenther <rguenther@suse.de>
5011
5012 PR middle-end/44828
5013 * convert.c (convert_to_integer): Watch out for overflowing
5014 MULT_EXPR as well.
5015
5016 2010-07-05 Jan Hubicka <jh@suse.cz>
5017
5018 * lto-streamer.c (write_symbol_vec): Rename to ...
5019 (write_symbol) ... this one; write only symbol given and when
5020 present in cache. Sanity check that what is defined is present
5021 in cgraph/varpool with body/finalized decl.
5022 (write_symbols_of_kind): Remove.
5023 (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
5024 pairs to produce symtab.
5025 (produce_asm_for_decls): Update call of produce_symtab; don't do so
5026 when doing WPA streaming.
5027
5028 2010-07-05 Jan Hubicka <jh@suse.cz>
5029
5030 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
5031 function is still available to fold into.
5032
5033 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
5034
5035 * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
5036 * function.h (struct_function): Change type of local_decls field
5037 to a VEC.
5038 (add_local_decl): New function.
5039 (FOR_EACH_LOCAL_DECL): New macro.
5040 * cfgexpand.c (init_vars_expansion): Adjust for new type of
5041 cfun->local_decls.
5042 (estimated_stack_frame_size): Likewise.
5043 (expand_used_vars): Likewise.
5044 * cgraphbuild.c (build_cgraph_edges): Likewise.
5045 * function.c (instantiate_decls_1): Likewise.
5046 * ipa-struct-reorg.c (build_data_structure): Likewise.
5047 * ipa-type-escape.c (analyze_function): Likewise.
5048 * lto-streamer-in.c (input_function): Likewise.
5049 * lto-streamer-out.c (output_function): Likewise.
5050 * tree-ssa-live.c (remove_unused_locals): Likewise.
5051 * tree.c (free_lang_data_in_decl): Likewise.
5052 (find_decls_types_in_node): Likewise.
5053 * omp-low.c (remove_exit_barrier): Likewise.
5054 (expand_omp_taskreg): Likewise.
5055 (list2chain): Rename to...
5056 (vec2chain): ...this. Adjust.
5057 * cgraphunit.c (assemble_thunk): Call add_local_decl.
5058 * tree-cfg.c (replace_by_duplicate_decl): Likewise.
5059 * gimple-low.c (record_vars_into): Likewise.
5060 * tree-inline.c (remap_decls): Likewise.
5061 (declare_return_variable): Likewise.
5062 (declare_inline_vars): Likewise.
5063 (copy_forbidden): Adjust for new type of cfun->local_decls.
5064 (add_local_variables): New function.
5065 (expand_call_inline): Call it.
5066 (tree_function_versioning): Likewise.
5067
5068 2010-07-05 H.J. Lu <hongjiu.lu@intel.com>
5069
5070 AVX Programming Reference (June, 2010)
5071 * config/i386/cpuid.h (bit_F16C): New.
5072 (bit_RDRND): Likewise.
5073 (bit_FSGSBASE): Likewise.
5074
5075 * config/i386/i386-builtin-types.def: Add
5076 "DEF_FUNCTION_TYPE (UINT16)", function types for
5077 float16 <-> float conversions and
5078 "DEF_FUNCTION_TYPE (VOID, UINT64)".
5079
5080 * config/i386/i386-c.c (ix86_target_macros_internal): Support
5081 OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
5082 OPTION_MASK_ISA_F16C.
5083
5084 * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
5085 (OPTION_MASK_ISA_RDRND_SET): Likewise.
5086 (OPTION_MASK_ISA_F16C_SET): Likewise.
5087 (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
5088 (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
5089 (OPTION_MASK_ISA_F16C_UNSET): Likewise.
5090 (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
5091 (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
5092 (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
5093 (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
5094 (override_options): Handle them.
5095 (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
5096 (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
5097 IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
5098 IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
5099 IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
5100 IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
5101 IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
5102 IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
5103 IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
5104 (bdesc_args): Likewise.
5105 (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
5106 V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
5107 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
5108 VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
5109 Handle non-memory store.
5110
5111 * config/i386/i386.h (TARGET_FSGSBASE): New.
5112 (TARGET_RDRND): Likewise.
5113 (TARGET_F12C): Likewise.
5114
5115 * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
5116 (UNSPEC_VCVTPS2PH): Likewise.
5117 (UNSPECV_RDFSBASE): Likewise.
5118 (UNSPECV_RDGSBASE): Likewise.
5119 (UNSPECV_WRFSBASE): Likewise.
5120 (UNSPECV_WRGSBASE): Likewise.
5121 (UNSPECV_RDRAND): Likewise.
5122 (rdfsbase<mode>): Likewise.
5123 (rdgsbase<mode>): Likewise.
5124 (wrfsbase<mode>): Likewise.
5125 (wrgsbase<mode>): Likewise.
5126 (rdrand<mode>): Likewise.
5127
5128 * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
5129
5130 * config/i386/immintrin.h (_rdrand_u16): New.
5131 (_rdrand_u32): Likewise.
5132 (_readfsbase_u32): Likewise.
5133 (_readfsbase_u64): Likewise.
5134 (_readgsbase_u32): Likewise.
5135 (_readgsbase_u64): Likewise.
5136 (_writefsbase_u32): Likewise.
5137 (_writefsbase_u64): Likewise.
5138 (_writegsbase_u32): Likewise.
5139 (_writegsbase_u64): Likewise.
5140 (_rdrand_u64): Likewise.
5141 (_cvtsh_ss): Likewise.
5142 (_mm_cvtph_ps): Likewise.
5143 (_mm256_cvtph_ps): Likewise.
5144 (_cvtss_sh): Likewise.
5145 (_mm_cvtps_ph): Likewise.
5146 (_mm256_cvtps_ph): Likewise.
5147
5148 * config/i386/sse.md (vcvtph2ps): New.
5149 (*vcvtph2ps_load): Likewise.
5150 (vcvtph2ps256): Likewise.
5151 (vcvtps2ph): Likewise.
5152 (*vcvtps2ph): Likewise.
5153 (*vcvtps2ph_store): Likewise.
5154 (vcvtps2ph256): Likewise.
5155
5156 * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
5157
5158 * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
5159
5160 2010-07-05 Joern Rennecke <joern.rennecke@embecosm.com>
5161
5162 PR bootstrap/44512
5163 * genenums.c (main): Output include of insn-constants.h
5164 * Makefile.in (insn-enums.o): Depend on insn-constants.h.
5165
5166 2010-07-05 Uros Bizjak <ubizjak@gmail.com>
5167
5168 * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
5169 (override_options): Initialize it.
5170 (ix86_expand_prologue): Use it.
5171
5172 2010-07-05 Jakub Jelinek <jakub@redhat.com>
5173
5174 * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
5175
5176 2010-07-05 Anatoly Sokolov <aesok@post.ru>
5177
5178 * double-int.h (fit_double_type): Remove declaration.
5179 * double-int.c (fit_double_type): Remove function.
5180 * tree.h (int_fits_type_p): Adjust prototype.
5181 * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
5182 instead of fit_double_type.
5183 (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
5184 instead of fit_double_type and build_int_cst_wide.
5185 * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
5186 instead of fit_double_type and build_int_cst_wide.
5187 (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
5188 of fit_double_type.
5189
5190 2010-07-05 Jan Hubicka <jh@suse.cz>
5191
5192 * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
5193 in_other_partition.
5194 * lto-cgraph.c (referenced_from_other_partition_p,
5195 reachable_from_other_partition_p): Use in_other_partition flags.
5196 (output_node, output_varpool_node): COMDAT nodes always have private
5197 copies and thus are never used from other partition.
5198
5199 2010-07-05 Anatoly Sokolov <aesok@post.ru>
5200
5201 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
5202 * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
5203 * config/ia64/ia64.c Include reload.h.
5204 (ia64_memory_move_cost): New function.
5205 (TARGET_MEMORY_MOVE_COST): Define.
5206 (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
5207 memory_move_cost.
5208
5209 2010-07-05 Sandra Loosemore <sandra@codesourcery.com>
5210
5211 PR middle-end/42505
5212 * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
5213 comments about cost model.
5214 (try_add_cand_for): Add second strategy for choosing initial set
5215 based on original IVs, controlled by ORIGINALP argument.
5216 (get_initial_solution): Add ORIGINALP argument.
5217 (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
5218 (find_optimal_iv_set): Try two different strategies for choosing
5219 the IV set, and return the one with lower cost.
5220
5221 2010-07-05 Richard Guenther <rguenther@suse.de>
5222
5223 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
5224
5225 2010-07-05 Richard Guenther <rguenther@suse.de>
5226
5227 * tree.c (reference_alias_ptr_type): New function.
5228 * tree.h (reference_alias_ptr_type): Declare.
5229 * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
5230 allow non-TARGET_MEM_REF new refs.
5231 (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
5232 * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
5233 Build a MEM_REF instead of a TARGET_MEM_REF if possible.
5234 (create_mem_ref): Get alias pointer type. Adjust calls to
5235 create_mem_ref_raw.
5236 (maybe_fold_tmr): Likewise.
5237 * tree-flow.h (create_mem_ref): Adjust prototype.
5238
5239 2010-07-05 Jakub Jelinek <jakub@redhat.com>
5240
5241 PR c++/44808
5242 * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
5243 *from_p is VAR_DECL.
5244
5245 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
5246
5247 * tree.h (build_call_list): Remove.
5248 * tree.c (build_call_list): Remove.
5249
5250 2010-07-05 Richard Guenther <rguenther@suse.de>
5251
5252 * double-int.h (double_int_sub): Declare.
5253 * double-int.c (double_int_sub): New function.
5254 * dwarf2out.c (field_byte_offset): Use it.
5255 * fixed-value.c (do_fixed_add): Likewise.
5256 (do_fixed_multiply): Likewise.
5257 (do_fixed_divide): Likewise.
5258 * tree-predcom.c (add_ref_to_chain): Likewise.
5259 (determine_roots_comp): Likewise.
5260 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
5261
5262 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
5263
5264 * vec.h (VEC_splice, VEC_safe_splice): New macros. Add function
5265 implementations.
5266
5267 2010-07-05 Bernd Schmidt <bernds@codesourcery.com>
5268
5269 * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
5270 * arm-modes.def (CC_NOTB): Don't define.
5271 * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
5272 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
5273 (LTUGEU): New code_iterator.
5274 (cnb, optab): New corresponding code_attrs.
5275 (addsi3_carryin_<optab>): Renamed from addsi3_carryin. Change pattern
5276 to canonical form. Operands 1 and 2 are commutative. Parametrize
5277 using LTUGEU.
5278 (addsi3_carryin_shift_<optab>): Likewise.
5279 (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
5280 Operands 1 and 2 are commutative. Parametrize using LTUGEU.
5281 (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
5282 (subsi3_compare): Renamed from subsi3_compare0_c.
5283 Change CC_NOTB to CC.
5284 (arm_subsi3_insn): Allow constants for operand 0.
5285 (compare_scc peephole for eq case): New.
5286 (compare_scc splitters): Change CC_NOTB to CC.
5287
5288 2010-07-05 Richard Guenther <rguenther@suse.de>
5289
5290 * tree-ssa-loop-im.c (for_each_index): Do not handle
5291 ALIGN_INDIRECT_REF.
5292 (gen_lsm_tmp_name): Likewise.
5293 * tree-dump.c (dequeue_and_dump): Likewise.
5294 * tree-pretty-print.c (dump_generic_node): Likewise.
5295 (op_code_prio): Likewise.
5296 (op_symbol_code): Likewise.
5297 * tree.c (staticp): Likewise.
5298 (build1_stat): Likewise.
5299 * tree.h (INDIRECT_REF_P): Likewise.
5300 * fold-const.c (maybe_lvalue_p): Likewise.
5301 (operand_equal_p): Likewise.
5302 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
5303 (ao_ref_init_from_vn_reference): Likewise.
5304 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
5305 (find_interesting_uses_address): Likewise.
5306 * dwarf2out.c (loc_list_from_tree): Likewise.
5307 * gimplify.c (gimplify_expr): Likewise.
5308 * tree-eh.c (tree_could_trap_p): Likewise.
5309 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5310 * cfgexpand.c (expand_debug_expr): Likewise.
5311 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
5312 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
5313 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
5314 * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
5315 * tree-ssa-operands.c (get_expr_operands): Likewise.
5316 * expr.c (safe_from_p): Likewise.
5317 (expand_expr_real_1): Likewise. TER BIT_AND_EXPRs into MEM_REFs.
5318 * tree-vect-data-refs.c (vect_setup_realignment): Build
5319 BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
5320 * tree-vect-stmts.c (vectorizable_load): Likewise.
5321 * tree.def (ALIGN_INDIRECT_REF): Remove.
5322
5323 2010-07-05 Richard Guenther <rguenther@suse.de>
5324
5325 PR tree-optimization/44784
5326 * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
5327 for inserted stmts.
5328 (find_or_generate_expression): Fix SCCVN insertion check.
5329
5330 2010-07-05 Nathan Sidwell <nathan@codesourcery.com>
5331
5332 * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
5333 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
5334 * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
5335 directives.
5336
5337 2010-07-05 Ira Rosen <irar@il.ibm.com>
5338
5339 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
5340 statements that are not vectorized.
5341 * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
5342 in INSIDE_COST.
5343
5344 2010-07-05 Mikael Pettersson <mikpe@it.uu.se>
5345
5346 PR bootstrap/44820
5347 * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
5348
5349 2010-07-05 Richard Guenther <rguenther@suse.de>
5350
5351 * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
5352 RESULT_DECLs properly.
5353
5354 2010-07-04 H.J. Lu <hongjiu.lu@intel.com>
5355
5356 PR rtl-optimization/44695
5357 * config/i386/i386.md (extract_code): Removed.
5358 (<u>divmodqi4): Likewise.
5359 (divmodqi4): New.
5360 (udivmodqi4): Likewise.
5361 (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
5362 (udivmodhiqi3): Likewise.
5363
5364 2010-07-04 Jan Hubicka <jh@suse.cz>
5365
5366 * lto-cgraph.c (input_edge): Do not care about resolution decisions.
5367
5368 2010-07-04 Jan Hubicka <jh@suse.cz>
5369
5370 * cgraphunit.c (init_cgraph): Only initialize dump file if it
5371 is not already initialized.
5372
5373 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
5374
5375 * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
5376 (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
5377 (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
5378 (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
5379 (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
5380 (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
5381 (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
5382 (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
5383 (sync_new_nand_optab): Redefine as macros.
5384 (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
5385 Delete.
5386 (direct_optab_index): New enum.
5387 (direct_optab_d): New structure.
5388 (direct_optab): New typedef.
5389 (direct_optab_table): Declare.
5390 (direct_optab_handler, set_direct_optab_handler): New functions.
5391 (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
5392 (sync_lock_release_optab): New macros.
5393 * optabs.c (direct_optab_table): New variable.
5394 (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
5395 (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
5396 cmpstr_optab and cmpstrn_optab.
5397 (emit_conditional_move): Likewise for movcc_optab.
5398 (can_conditionally_move_p): Likewise for movcc_gen_code.
5399 (init_insn_codes): Clear direct_optab_table.
5400 (init_optabs): Don't initialize the new "direct optabs" here.
5401 (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
5402 vcond_gen_code.
5403 (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
5404 (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
5405 (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
5406 (expand_sync_operation): Likewise other sync_*_optabs.
5407 (expand_sync_fetch_operation): Likewise. Rename sync_compare_and_swap
5408 to sync_compare_and_swap_optab.
5409 (expand_sync_lock_test_and_set): Use direct_optab_handler for
5410 sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
5411 to the names of both.
5412 * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
5413 cmpstr_optab and cmpstrn_optab.
5414 (expand_builtin_lock_release): Likewise sync_lock_release.
5415 * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
5416 (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
5417 (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
5418 (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
5419 (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
5420 (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
5421 (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
5422 (sync_lock_test_and_set, sync_lock_release): Delete.
5423 (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
5424 (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
5425 * genopinit.c (optabs): Use set_direct_optab_handler for the new
5426 macro optabs.
5427 * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
5428 the "optab" local variable. Use direct_optab_handler for optab and
5429 sync_compare_and_swap_optab.
5430 * reload1.c (reload_in_optab, reload_out_optab): Delete.
5431 * targhooks.c (default_secondary_reload): Use direct_optab_handler for
5432 reload_in_optab and reload_out_optab.
5433 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
5434 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
5435 * config/pa/pa.c (pa_secondary_reload): Likewise.
5436 * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
5437 for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
5438 (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
5439 (VMSupportsCS8_builtin): Likewise.
5440
5441 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
5442
5443 * optabs.h (optab_handlers): Change type of insn_code to int.
5444 (optab_handler, set_optab_handler, convert_optab_handler)
5445 (set_convert_optab_handler): Treat the insn_code field as "insn_code -
5446 CODE_FOR_nothing".
5447 * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
5448 (init_insn_codes): Zero both the above arrays.
5449 (init_optabs): Never call init_insn_codes first time around.
5450
5451 2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
5452
5453 * optabs.h (optab_handler, convert_optab_handler): Turn into
5454 inline functions that return an insn code.
5455 (set_optab_handler, set_convert_optab_handler): New functions.
5456 * builtins.c: Replace optab_handler(X)->insn_code with
5457 optab_handler or set_optab_handler thoughout. Likewise
5458 convert_optab_handler(X)->insn_code with convert_optab_handler
5459 and set_convert_optab_handler.
5460 * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
5461 reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
5462 tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
5463 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
5464 tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
5465 config/spu/spu.c: Likewise.
5466
5467 2010-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
5468
5469 PR target/44531
5470 * config.gcc (sh*-*-*): Use regular expressions instead of
5471 the 'i' modifier for sed substitutions.
5472
5473 2010-07-04 Jeremie Salvucci <jeremie.salvucci@free.fr>
5474
5475 * gimple.c (gimple_body): Comments added.
5476
5477 2010-07-04 Richard Guenther <rguenther@suse.de>
5478
5479 PR middle-end/44809
5480 * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
5481 of an INDIRECT_REF.
5482
5483 2010-07-04 Richard Guenther <rguenther@suse.de>
5484
5485 PR tree-optimization/44479
5486 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
5487 extra SSA name copy statements which preserves points-to
5488 information.
5489 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
5490 Copy points-to information for all pointers. Properly handle
5491 MEM_REFs.
5492 (vect_create_data_ref_ptr): Likewise. Avoid extra SSA name
5493 copy statements.
5494 * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
5495 dependency.
5496
5497 2010-07-04 Richard Guenther <rguenther@suse.de>
5498
5499 PR middle-end/44785
5500 * tree-inline.c (initialize_inlined_parameters): Do not
5501 re-use pointer-map slot over remap_type call.
5502
5503 2010-07-04 Richard Guenther <rguenther@suse.de>
5504
5505 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
5506
5507 2010-07-04 Richard Guenther <rguenther@suse.de>
5508
5509 PR tree-optimization/44656
5510 * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
5511 again after value-replacing in the defintions lhs.
5512
5513 2010-07-04 Ira Rosen <irar@il.ibm.com>
5514 Revital Eres <eres@il.ibm.com>
5515
5516 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
5517 Document new arguments.
5518 * doc/tm.texi: Regenerate.
5519 * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
5520 Handle unaligned store.
5521 * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
5522 * target.def (builtin_vectorization_cost): Add new arguments.
5523 * target.h (enum vect_cost_for_stmt): Add unaligned_store.
5524 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
5525 of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
5526 (vect_vfa_segment_size): Fix indentation.
5527 * tree-vectorizer.h (struct _vect_peel_info): New.
5528 (struct _vect_peel_extended_info): New.
5529 (struct _loop_vec_info): Add new field for peeling hash table and a
5530 macro for its access.
5531 (VECT_MAX_COST): Define.
5532 (vect_get_load_cost): Declare.
5533 (vect_get_store_cost, vect_get_known_peeling_cost,
5534 vect_get_single_scalar_iteraion_cost): Likewise.
5535 (vect_supportable_dr_alignment): Add new argument.
5536 * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
5537 field.
5538 (destroy_loop_vec_info): Free peeling hash table.
5539 (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
5540 (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
5541 vect_analyze_slp. Fix indentation.
5542 (vect_get_single_scalar_iteraion_cost): New function.
5543 (vect_get_known_peeling_cost): Likewise.
5544 (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
5545 Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
5546 statement. Move outside cost calculation inside unknown peeling case.
5547 Call vect_get_known_peeling_cost for known amount of peeling.
5548 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
5549 reference to the print message of forced alignment.
5550 (vect_verify_datarefs_alignment): Update call to
5551 vect_supportable_dr_alignment.
5552 (vect_get_data_access_cost): New function.
5553 (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
5554 vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
5555 vect_peeling_hash_choose_best_peeling): Likewise.
5556 (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
5557 to store all the accesses in the loop and find best possible access to
5558 align using peeling for known alignment case. For unknown alignment
5559 check if stores are preferred or if peeling is worthy.
5560 (vect_find_same_alignment_drs): Analyze pairs of loads too.
5561 (vect_supportable_dr_alignment): Add new argument and check aligned
5562 accesses according to it.
5563 * tree-vect-stmts.c (vect_get_stmt_cost): New function.
5564 (cost_for_stmt): Call vect_get_stmt_cost.
5565 (vect_model_simple_cost): Likewise.
5566 (vect_model_store_cost): Call vect_get_stmt_cost. Call
5567 vect_get_store_cost to calculate the cost of the statement.
5568 (vect_get_store_cost): New function.
5569 (vect_model_load_cost): Call vect_get_stmt_cost. Call
5570 vect_get_load_cost to calculate the cost of the statement.
5571 (vect_get_load_cost): New function.
5572 (vectorizable_store): Update call to vect_supportable_dr_alignment.
5573 (vectorizable_load): Likewise.
5574 * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
5575 * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
5576 arguments. Handle unaligned store.
5577 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
5578 (rs6000_builtin_support_vector_misalignment): Return true for word and
5579 double word alignments for VSX.
5580 * tree-vect-slp.c (vect_build_slp_tree): Update calls to
5581 vect_supportable_dr_alignment and builtin_vectorization_cost.
5582
5583 2010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5584
5585 PR target/44597
5586 * config/pa/predicates.md (prefetch_cc_operand): Remove.
5587 (prefetch_nocc_operand): Likewise.
5588 * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
5589 (prefetch_20): New insn.
5590 (prefetch_cc): Remove.
5591 (prefetch_nocc): Likewise.
5592
5593 2010-07-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
5594
5595 * expr.c (vector_mode_valid_p): Move to c-common.c.
5596 * expr.h (vector_mode_valid_p): Do not declare here.
5597 * system.h: Poison GCC_EXPR_H in front-ends.
5598 * Makefile.in: Update dependencies.
5599
5600 2010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5601
5602 PR target/44705
5603 * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
5604
5605 2010-07-03 Jan Hubicka <jh@suse.cz>
5606
5607 * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
5608 TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
5609 * cfgexpand.c (gimple_expand_cfg): Use new timevars.
5610 * var-tracking.c (vt_find_locations, variable_tracking_main_1):
5611 Likewise.
5612
5613 * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
5614 Update timevars.V
5615 * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
5616 (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
5617 TV_IPA_LTO_DECL_OUT): New.
5618 * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
5619
5620 2010-07-03 Jan Hubicka <jh@suse.cz>
5621
5622 * ipa-inline.c (update_edge_key): Break out from ...
5623 update_callers_keys): ... here;
5624 (update_callee_keys): Update only the edges from caller to callee.
5625 (update_all_calle_keys): Do what update_calle_keys did.
5626 (decide_inlining_of_small_functions): Avoid recomputing of all
5627 callees when badness increase.
5628
5629 2010-07-03 Jie Zhang <jie@codesourcery.com>
5630
5631 * config/arm/arm.c (arm_attr_length_move_neon): New.
5632 * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
5633 * config/arm/neon.md (define_mode_attr V_slen): Remove.
5634 (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
5635 to compute length attribute.
5636
5637 2010-07-03 Jie Zhang <jie@codesourcery.com>
5638
5639 * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
5640 as predicate for operand 1 and remove its constraint.
5641 * config/arm/predicates.md (vfp_register_operand): New.
5642 * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
5643 (*push_fp_multi): Likewise.
5644
5645 2010-07-03 Eric Botcazou <ebotcazou@adacore.com>
5646
5647 * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
5648
5649 2010-07-03 Jan Hubicka <jh@suse.cz>
5650
5651 * config/i386/i386.c (override_options): Revert accidental commit.
5652
5653 2010-07-02 Le-Chun Wu <lcwu@google.com>
5654
5655 PR c++/44128
5656 * doc/invoke.texi: Update documentation of -Wshadow.
5657
5658 2010-07-02 Daniel Jacobowitz <dan@codesourcery.com>
5659 Julian Brown <julian@codesourcery.com>
5660 Sandra Loosemore <sandra@codesourcery.com>
5661
5662 * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
5663 comparisons. Adjust to take both operands.
5664 (arm_select_cc_mode): Handle DImode comparisons.
5665 (arm_gen_compare_reg): Generate a scratch register for DImode
5666 comparisons which require one. Use xor for Thumb equality checks.
5667 (arm_const_double_by_immediates): New.
5668 (arm_print_operand): Allow 'Q' and 'R' for constants.
5669 (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
5670 * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
5671 arm_canonicalize_comparison.
5672 * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
5673 * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
5674 prototype.
5675 (arm_const_double_by_immediates): Declare.
5676 * config/arm/constraints.md (Di): New constraint.
5677 * config/arm/predicates.md (arm_immediate_di_operand)
5678 (arm_di_operand, cmpdi_operand): New.
5679 * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
5680 (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
5681 (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
5682 (cstoredi4): Handle non-Cirrus also.
5683
5684 2010-07-02 Julian Brown <julian@codesourcery.com>
5685 Sandra Loosemore <sandra@codesourcery.com>
5686
5687 PR target/43703
5688 * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
5689 (smax<mode>3): Disable for NEON float modes when
5690 flag_unsafe_math_optimizations is false.
5691 * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
5692 (*mul<mode>3_neon)
5693 (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
5694 (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
5695 for NEON float modes when flag_unsafe_math_optimizations is false.
5696 (quad_halves_<code>v4sf): Only enable if
5697 flag_unsafe_math_optimizations is true.
5698 * doc/invoke.texi (ARM Options): Add note about floating point
5699 vectorization requiring -funsafe-math-optimizations.
5700
5701 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
5702 Julian Brown <julian@codesourcery.com>
5703
5704 * config/arm/neon.md (UNSPEC_VABA): Delete.
5705 (UNSPEC_VABAL): Delete.
5706 (UNSPEC_VABS): Delete.
5707 (UNSPEC_VMUL_N): Delete.
5708 (adddi3_neon): New.
5709 (subdi3_neon): New.
5710 (mul<mode>3add<mode>_neon): Make the pattern named.
5711 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
5712 (neon_vadd<mode>): Replace with define_expand, and move the remaining
5713 unspec parts...
5714 (neon_vadd<mode>_unspec): ...to this.
5715 (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
5716 (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
5717 (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
5718 (neon_vaba<mode>): Rewrite in terms of vabd.
5719 (neon_vabal<mode>): Rewrite in terms of vabdl.
5720 (neon_vabs<mode>): Rewrite without unspec.
5721 * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
5722 (*arm_subdi3): Likewise.
5723 * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
5724 No_op attribute to disable assembly output checks.
5725 * config/arm/arm_neon.h: Regenerated.
5726 * doc/arm-neon-intrinsics.texi: Regenerated.
5727
5728 2010-07-02 Jan Hubicka <jh@suse.cz>
5729
5730 * ipa-split.c (split_function): For aggregate values, set the return
5731 slot optimization bit. When passing DECL_BY_REFERENCE, produce
5732 *<retval> = fncall.part ().
5733 (execute_split_functions): Do not care about DECL_BY_REFERENCE.
5734
5735 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
5736
5737 * config/arm/neon.md (UNSPEC_VAND): Delete.
5738 (UNSPEC_VBIC): Delete.
5739 (UNSPEC_VCLZ): Delete.
5740 (UNSPEC_VCNT): Delete.
5741 (UNSPEC_VEOR): Delete.
5742 (UNSPEC_VORN): Delete.
5743 (UNSPEC_VORR): Delete.
5744 (iordi3_neon): Rewrite RTL without unspec. Add alternatives to handle
5745 core registers too.
5746 (anddi3_neon): Likewise.
5747 (orndi3_neon): Likewise.
5748 (bicdi3_neon): Likewise.
5749 (xordi3_neon): Likewise.
5750 (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
5751 rid of unspec and handle unused operand.
5752 (neon_vcnt<mode>): Similarly, with popcount<mode>2.
5753 * config/arm/predicates.md (imm_for_neon_logic_operand):
5754 Require TARGET_NEON.
5755 (imm_for_neon_inv_logic_operand): Likewise.
5756 * config/arm/arm.md (define_split for logical_binary_operator):
5757 Disable for NEON registers.
5758 (anddi3): Add new define_expand, and rename the insn. Disable
5759 this insn for NEON, where anddi3_neon now applies.
5760 (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
5761 (iordi3): As for anddi3.
5762 (xordi3): Likewise.
5763 * config/arm/neon.ml (Vand): Split DImode variants and mark them
5764 as No_op to disable testing for exact instruction match.
5765 (Vorr): Likewise.
5766 (Veor): Likewise.
5767 (Vbic): Likewise.
5768 (Vorn): Likewise.
5769 * config/arm/arm_neon.h: Regenerated.
5770 * doc/arm-neon-intrinsics.texi: Regenerated.
5771
5772 2010-07-02 Eric Botcazou <ebotcazou@adacore.com>
5773
5774 * expr.h (emit_stack_probe): Declare.
5775 * explow.c (emit_stack_probe): Make global.
5776 (anti_adjust_stack_and_probe): Fix comments.
5777 * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
5778 * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5779 * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5780 * config/sparc/sparc.c: Include except.h.
5781 (sparc_emit_probe_stack_range): New function.
5782 (output_probe_stack_range): Likewise.
5783 (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
5784 built-in stack checking is enabled.
5785 * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
5786 * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
5787 (probe_stack_range): New insn.
5788
5789 2010-07-02 Richard Guenther <rguenther@suse.de>
5790
5791 PR target/43958
5792 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
5793 for argument alignment.
5794
5795 2010-07-02 Jan Hubicka <jh@suse.cz>
5796
5797 * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
5798 walk backwards from entry_bb to check only those basic block of header
5799 that might lead to execution of split part.
5800 (consider_split) ... here.
5801 (find_return_bb): Allow assignment in return BB.
5802 (find_retval): New.
5803 (split_function): Fix name of cloned function; take care of updating
5804 return value in return_bb containing move.
5805
5806 2010-07-02 Andreas Schwab <schwab@linux-m68k.org>
5807
5808 PR target/44771
5809 * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
5810 used variable insn.
5811
5812 2010-07-02 Eric Botcazou <ebotcazou@adacore.com>
5813
5814 * implicit-zee.c (combine_reaching_defs): Fix long lines.
5815 (is_set_with_extension_DI): Delete.
5816 (struct zero_extend_info): New structure.
5817 (add_removable_zero_extend): New function.
5818 (find_removable_zero_extends): Use note_stores to find SETs.
5819 (find_and_remove_ze): Fix long line, remove superfluous parentheses.
5820
5821 2010-07-02 Changpeng Fang <changpeng.fang@amd.com>
5822
5823 * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
5824 is_miss_rate_acceptable. Pull total_positions computation
5825 out of the loops. Early return if miss_positions exceeds
5826 the acceptable threshold.
5827 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
5828 is_miss_rate_acceptable after renaming of compute_miss_rate.
5829
5830 2010-07-02 Changpeng Fang <changpeng.fang@amd.com>
5831
5832 PR middle-end/44576
5833 * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
5834 of 1000) for miss rate if the address diference is greater than or
5835 equal to the cache line size (the two reference will never hit the
5836 same cache line).
5837
5838 2010-07-02 Bernd Schmidt <bernds@codesourcery.com>
5839
5840 PR target/42835
5841 * config/arm/arm-modes.def (CC_NOTB): New mode.
5842 * config/arm/arm.c (get_arm_condition_code): Handle it.
5843 * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
5844 * config/arm/arm.md (subsi3_compare0_c): New pattern.
5845 (compare_scc): Now a define_and_split. Add a number of extra
5846 splitters before it.
5847
5848 PR target/42172
5849 * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
5850 and ZERO_EXTEND.
5851 (arm_rtx_costs_1): Likewise.
5852 (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
5853 * config/arm/arm.md (is_arch6): New attribute.
5854 (zero_extendhisi2, zero_extendqisi2, extendhisi2,
5855 extendqisi2): Tighten the code somewhat, avoiding invalid
5856 RTL to occur in the expander patterns.
5857 (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
5858 (thumb1_zero_extendhisi2_v6): Delete.
5859 (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
5860 (thumb1_extendhisi2_v6): Delete.
5861 (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
5862 (thumb1_extendqisi2_v6): Delete.
5863 (zero_extendhisi2 for register input splitter): New.
5864 (zero_extendqisi2 for register input splitter): New.
5865 (thumb1_extendhisi2 for register input splitter): New.
5866 (extendhisi2 for register input splitter): New.
5867 (extendqisi2 for register input splitter): New.
5868 (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
5869 (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
5870 and add support for a register alternative requiring a split.
5871 (thumb1_zero_extendqisi2): Likewise.
5872 (arm_zero_extendqisi2): Likewise.
5873 (arm_extendhisi2): Likewise.
5874 (arm_extendqisi2): Likewise.
5875
5876 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
5877
5878 * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
5879 instead of an unspec.
5880 (neon_expand_vector_init): Likewise.
5881 * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
5882 (UNSPEC_VDUP_LANE): Delete.
5883 (UNSPEC VDUP_N): Delete.
5884 (UNSPEC_VGET_HIGH): Delete.
5885 (UNSPEC_VGET_LANE): Delete.
5886 (UNSPEC_VGET_LOW): Delete.
5887 (UNSPEC_VMVN): Delete.
5888 (UNSPEC_VSET_LANE): Delete.
5889 (V_double_vector_mode): New.
5890 (vec_set<mode>_internal): Make code emitted match that for the
5891 corresponding intrinsics.
5892 (vec_setv2di_internal): Likewise.
5893 (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
5894 (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
5895 (neon_vset_lane<mode>): Combine double and quad patterns and
5896 expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
5897 (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
5898 (neon_vdup_n<mode>): Rewrite RTL without unspec.
5899 (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
5900 (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
5901 with neon_vdup_lanev2di, adjusting the pattern from the latter
5902 to be predicable for consistency.
5903 (neon_vdup_lane<mode>_internal): New.
5904 (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
5905 to avoid using an unspec.
5906 (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
5907 (neon_vdup_lanev2di): Turn into a define_expand.
5908 (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
5909 (neon_vget_high<mode>): Replace with....
5910 (neon_vget_highv16qi): New pattern using canonical RTL.
5911 (neon_vget_highv8hi): Likewise.
5912 (neon_vget_highv4si): Likewise.
5913 (neon_vget_highv4sf): Likewise.
5914 (neon_vget_highv2di): Likewise.
5915 (neon_vget_low<mode>): Replace with....
5916 (neon_vget_lowv16qi): New pattern using canonical RTL.
5917 (neon_vget_lowv8hi): Likewise.
5918 (neon_vget_lowv4si): Likewise.
5919 (neon_vget_lowv4sf): Likewise.
5920 (neon_vget_lowv2di): Likewise.
5921
5922 * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
5923 test for this emitting vmov.
5924 (Vset_lane): Likewise.
5925 (Vdup_n): Likewise.
5926 (Vmov_n): Likewise.
5927
5928 * doc/arm-neon-intrinsics.texi: Regenerated.
5929
5930 2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
5931
5932 * config/arm/neon.md (vec_extractv2di): Correct error in register
5933 numbering to reconcile with neon_vget_lanev2di.
5934
5935 2010-07-02 Richard Guenther <rguenther@suse.de>
5936
5937 * tree-ssa-structalias.c (pt_solution_set_var): New function.
5938 * tree-ssa-alias.h (pt_solution_set_var): Declare.
5939 * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
5940 points-to information.
5941
5942 2010-07-02 Christian Borntraeger <borntraeger@de.ibm.com>
5943
5944 * config/s390/s390.c (override_options): Adopt prefetching
5945 at -O3 to handle flag_prefetch_loop_arrays as a tristate.
5946
5947 2010-07-02 Jan Hubicka <jh@suse.cz>
5948
5949 * df-problems.c (df_kill_notes): Do not collect dead notes.
5950 (df_set_note): Just call add_reg_note.
5951 (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
5952 df_create_unused_note): Do not deal with lists of old notes.
5953 (df_note_bb_compute): Likewise.
5954
5955 2010-07-02 Richard Guenther <rguenther@suse.de>
5956
5957 * tree-ssa-structalias.c (find_func_aliases): Handle
5958 pointer alignment via BIT_AND_EXPR.
5959 * tree-vrp.c (extract_range_from_binary_expr): Likewise.
5960
5961 2010-07-02 Richard Guenther <rguenther@suse.de>
5962
5963 * tree-data-ref.c (initialize_data_dependence_relation): Handle
5964 mismatching number of dimensions properly.
5965
5966 2010-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5967
5968 PR target/44707
5969 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
5970 (lo_sum (high ...) ...) patterns generated by earlier passes.
5971
5972 2010-07-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5973
5974 * doc/install.texi (Prerequisites): Document Perl requirement on
5975 Solaris 2.
5976 (Specific, *-*-solaris2*): Document GNU c++filt requirement.
5977
5978 2010-07-02 Richard Guenther <rguenther@suse.de>
5979
5980 PR middle-end/44777
5981 * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
5982
5983 2010-07-02 Jan Hubicka <jh@suse.cz>
5984
5985 PR middle-end/44706
5986 * predict.c (predict_paths_for_bb): Handle case when control dependence
5987 BB has only abnormal edges.
5988
5989 2010-07-02 Richard Guenther <rguenther@suse.de>
5990
5991 PR tree-optimization/44748
5992 * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
5993 the embedded conversion in MEM_REFs.
5994
5995 2010-07-01 López-Ibáñez <manu@gcc.gnu.org>
5996
5997 * reload.c: Include toplev.h.
5998 * recog.c: Likewise.
5999 * Makefile.in: Adjust dependencies.
6000
6001 2010-07-01 Jakub Jelinek <jakub@redhat.com>
6002
6003 PR debug/44694
6004 * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
6005 or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
6006
6007 2010-07-01 Richard Guenther <rguenther@suse.de>
6008
6009 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
6010 types for offsets.
6011
6012 2010-07-01 Joern Rennecke <joern.rennecke@embecosm.com>
6013
6014 PR target/44732
6015 * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
6016 Fix argument types.
6017
6018 2010-07-01 Bernd Schmidt <bernds@codesourcery.com>
6019
6020 PR target/44727
6021 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
6022 Make sure operand 0 dies.
6023
6024 2010-07-01 Richard Guenther <rguenther@suse.de>
6025
6026 PR middle-end/42834
6027 PR middle-end/44468
6028 * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
6029 * doc/generic.texi (References to storage): Document MEM_REF.
6030 * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
6031 (print_call_name): Likewise.
6032 * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
6033 (build_simple_mem_ref_loc): New function.
6034 (mem_ref_offset): Likewise.
6035 * tree.h (build_simple_mem_ref_loc): Declare.
6036 (build_simple_mem_ref): Define.
6037 (mem_ref_offset): Declare.
6038 * fold-const.c: Include tree-flow.h.
6039 (operand_equal_p): Handle MEM_REF.
6040 (build_fold_addr_expr_with_type_loc): Likewise.
6041 (fold_comparison): Likewise.
6042 (fold_unary_loc): Fold
6043 VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
6044 (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
6045 fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
6046 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
6047 (ptr_deref_may_alias_ref_p_1): Likewise.
6048 (ao_ref_base_alias_set): Properly differentiate base object for
6049 offset and TBAA.
6050 (ao_ref_init_from_ptr_and_size): Use MEM_REF.
6051 (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
6052 (indirect_refs_may_alias_p): Likewise.
6053 (refs_may_alias_p_1): Likewise. Remove pointer SSA name def
6054 chasing code.
6055 (ref_maybe_used_by_call_p_1): Handle MEM_REF.
6056 (call_may_clobber_ref_p_1): Likewise.
6057 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
6058 * expr.c (expand_assignment): Handle MEM_REF.
6059 (store_expr): Handle MEM_REFs from STRING_CSTs.
6060 (store_field): If expanding a MEM_REF of a non-addressable
6061 decl use bitfield operations.
6062 (get_inner_reference): Handle MEM_REF.
6063 (expand_expr_addr_expr_1): Likewise.
6064 (expand_expr_real_1): Likewise.
6065 * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
6066 * alias.c (ao_ref_from_mem): Handle MEM_REF.
6067 (get_alias_set): Likewise. Properly handle VIEW_CONVERT_EXPRs.
6068 * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
6069 (dr_analyze_indices): Likewise.
6070 (dr_analyze_alias): Likewise.
6071 (object_address_invariant_in_loop_p): Likewise.
6072 * gimplify.c (mark_addressable): Handle MEM_REF.
6073 (gimplify_cond_expr): Build MEM_REFs.
6074 (gimplify_modify_expr_to_memcpy): Likewise.
6075 (gimplify_init_ctor_preeval_1): Handle MEM_REF.
6076 (gimple_fold_indirect_ref): Adjust.
6077 (gimplify_expr): Handle MEM_REF. Gimplify INDIRECT_REF to MEM_REF.
6078 * tree.def (MEM_REF): New tree code.
6079 * tree-dfa.c: Include toplev.h.
6080 (get_ref_base_and_extent): Handle MEM_REF.
6081 (get_addr_base_and_unit_offset): New function.
6082 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
6083 * gimple-fold.c (may_propagate_address_into_dereference): Handle
6084 MEM_REF.
6085 (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
6086 accesses if the array has just one dimension. Remove always true
6087 parameter. Do not require type compatibility here.
6088 (maybe_fold_offset_to_component_ref): Remove.
6089 (maybe_fold_stmt_indirect): Remove.
6090 (maybe_fold_reference): Remove INDIRECT_REF handling.
6091 Fold back to non-MEM_REF.
6092 (maybe_fold_offset_to_address): Simplify. Deal with type
6093 mismatches here.
6094 (maybe_fold_reference): Likewise.
6095 (maybe_fold_stmt_addition): Likewise. Also handle
6096 &ARRAY + I in addition to &ARRAY[0] + I.
6097 (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
6098 (gimple_get_relevant_ref_binfo): Handle MEM_REF.
6099 * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
6100 * tree-ssa.c (useless_type_conversion_p): Make most pointer
6101 conversions useless.
6102 (warn_uninitialized_var): Handle MEM_REF.
6103 (maybe_rewrite_mem_ref_base): New function.
6104 (execute_update_addresses_taken): Implement re-writing of MEM_REFs
6105 to SSA form.
6106 * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
6107 INDIRECT_REF handling.
6108 (copy_tree_body_r): Handle MEM_REF.
6109 * gimple.c (is_gimple_addressable): Adjust.
6110 (is_gimple_address): Likewise.
6111 (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
6112 invariant base are invariant.
6113 (is_gimple_min_lval): Adjust.
6114 (is_gimple_mem_ref_addr): New function.
6115 (get_base_address): Handle MEM_REF.
6116 (count_ptr_derefs): Likewise.
6117 (get_base_loadstore): Likewise.
6118 * gimple.h (is_gimple_mem_ref_addr): Declare.
6119 (gimple_call_fndecl): Handle invariant MEM_REF addresses.
6120 * tree-cfg.c (verify_address): New function, split out from ...
6121 (verify_expr): ... here. Use for verifying ADDR_EXPRs and
6122 the address operand of MEM_REFs. Verify MEM_REFs. Reject
6123 INDIRECT_REFs.
6124 (verify_types_in_gimple_min_lval): Handle MEM_REF. Disallow
6125 INDIRECT_REF. Allow conversions.
6126 (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
6127 a register does not change its size.
6128 (verify_types_in_gimple_reference): Verify MEM_REF.
6129 (verify_gimple_assign_single): Disallow INDIRECT_REF.
6130 Handle MEM_REF.
6131 * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
6132 New.
6133 (mark_address_taken): Handle MEM_REF.
6134 (get_indirect_ref_operands): Pass through opf_not_non_addressable.
6135 (get_asm_expr_operands): Pass opf_not_non_addressable.
6136 (get_expr_operands): Handle opf_[not_]non_addressable.
6137 Handle MEM_REF. Remove INDIRECT_REF handling.
6138 * tree-vrp.c (check_array_ref): Handle MEM_REF.
6139 (search_for_addr_array): Likewise.
6140 (check_array_bounds): Likewise.
6141 (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
6142 * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
6143 (ref_always_accessed_p): Likewise.
6144 (gen_lsm_tmp_name): Likewise. Handle ADDR_EXPR.
6145 * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
6146 Handle MEM_REF.
6147 * cgraphbuild.c (mark_load): Properly check for NULL result
6148 from get_base_address.
6149 (mark_store): Likewise.
6150 * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
6151 * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
6152 handling for MEM_REF.
6153 * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
6154 &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
6155 * builtins.c (stabilize_va_list_loc): Use the function ABI
6156 valist type if we couldn't canonicalize the argument type.
6157 Always dereference with the canonical va-list type.
6158 (maybe_emit_free_warning): Handle MEM_REF.
6159 (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
6160 memmove to memcpy.
6161 * builtins.c (fold_builtin_memory_op): Use ref-all types
6162 for all memcpy foldings.
6163 * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
6164 (build_outer_var_ref): Likewise.
6165 (scan_omp_1_op): Likewise.
6166 (lower_rec_input_clauses): Likewise.
6167 (lower_lastprivate_clauses): Likewise.
6168 (lower_reduction_clauses): Likewise.
6169 (lower_copyprivate_clauses): Likewise.
6170 (expand_omp_atomic_pipeline): Likewise.
6171 (expand_omp_atomic_mutex): Likewise.
6172 (create_task_copyfn): Likewise.
6173 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
6174 Remove old union trick. Initialize constant offsets.
6175 (ao_ref_init_from_vn_reference): Likewise. Do not handle
6176 INDIRECT_REF. Init base_alias_set properly.
6177 (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
6178 (vn_reference_fold_indirect): Adjust for MEM_REFs.
6179 (valueize_refs): Fold MEM_REFs. Re-evaluate constant offset
6180 for ARRAY_REFs.
6181 (may_insert): Remove.
6182 (visit_reference_op_load): Do not test may_insert.
6183 (run_scc_vn): Remove parameter, do not fiddle with may_insert.
6184 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
6185 a field to store the constant offset this op applies.
6186 (run_scc_vn): Adjust prototype.
6187 * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
6188 * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
6189 MEM_REF. Propagate &foo + CST as &MEM[&foo, CST]. Do not
6190 bother about volatile qualifiers on pointers.
6191 (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
6192 * tree-ssa-loop-ivopts.c
6193 * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
6194 (strip_offset_1): Likewise.
6195 (find_interesting_uses_address): Replace INDIRECT_REF handling with
6196 MEM_REF handling.
6197 (get_computation_cost_at): Likewise.
6198 * ipa-pure-const.c (check_op): Handle MEM_REF.
6199 * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
6200 * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
6201 and constants.
6202 * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
6203 * tree-parloops.c (take_address_of): Adjust for MEM_REF.
6204 (eliminate_local_variables_1): Likewise.
6205 (create_call_for_reduction_1): Likewise.
6206 (create_loads_for_reductions): Likewise.
6207 (create_loads_and_stores_for_name): Likewise.
6208 * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
6209 (ssa_accessed_in_tree): Handle MEM_REF.
6210 (ssa_accessed_in_assign_rhs): Likewise.
6211 (update_type_size): Likewise.
6212 (analyze_accesses_for_call_stmt): Likewise.
6213 (analyze_accesses_for_assign_stmt): Likewise.
6214 (transform_access_sites): Likewise.
6215 (transform_allocation_sites): Likewise.
6216 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
6217 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
6218 not handle INDIRECT_REF.
6219 * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
6220 (cond_store_replacement): Likewise.
6221 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
6222 MEM_REF, no not handle INDIRECT_REFs.
6223 (insert_into_preds_of_block): Properly initialize avail.
6224 (phi_translate_1): Fold MEM_REFs. Re-evaluate constant offset
6225 for ARRAY_REFs. Properly handle reference lookups that
6226 require a bit re-interpretation.
6227 (can_PRE_operation): Do not handle INDIRECT_REF. Handle MEM_REF.
6228 * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
6229 (build_ref_for_offset_1): Remove.
6230 (build_ref_for_offset): Build MEM_REFs.
6231 (gate_intra_sra): Disable for now.
6232 (sra_ipa_modify_expr): Handle MEM_REF.
6233 (ipa_early_sra_gate): Disable for now.
6234 * tree-sra.c (create_access): Swap INDIRECT_REF handling for
6235 MEM_REF handling.
6236 (disqualify_base_of_expr): Likewise.
6237 (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
6238 MEM_REF handling.
6239 (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
6240 Use mem_ref_offset. Remove bogus folding.
6241 (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
6242 (make_fancy_name_1): Add support for MEM_REF.
6243 * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
6244 * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
6245 * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
6246 (compute_complex_ancestor_jump_func): Likewise.
6247 (ipa_analyze_virtual_call_uses): Likewise.
6248 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
6249 INDIRECT_REF folding with more generalized MEM_REF folding.
6250 (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
6251 (forward_propagate_addr_into_variable_array_index): Also handle
6252 &ARRAY + I in addition to &ARRAY[0] + I.
6253 * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
6254 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
6255 creates assignments with overlap.
6256 * tree-nested.c (get_static_chain): Adjust for MEM_REF.
6257 (get_frame_field): Likewise.
6258 (get_nonlocal_debug_decl): Likewise.
6259 (convert_nonlocal_reference_op): Likewise.
6260 (struct nesting_info): Add mem_refs pointer-set.
6261 (create_nesting_tree): Allocate it.
6262 (convert_local_reference_op): Insert to be folded mem-refs.
6263 (fold_mem_refs): New function.
6264 (finalize_nesting_tree_1): Perform defered folding of mem-refs
6265 (free_nesting_tree): Free the pointer-set.
6266 * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
6267 (vectorizable_load): Likewise.
6268 * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
6269 (propagate_with_phi): Likewise.
6270 * tree-object-size.c (addr_object_size): Handle MEM_REFs
6271 instead of INDIRECT_REFs.
6272 (compute_object_offset): Handle MEM_REF.
6273 (plus_stmt_object_size): Handle MEM_REF.
6274 (collect_object_sizes_for): Dispatch to plus_stmt_object_size
6275 for &MEM_REF.
6276 * tree-flow.h (get_addr_base_and_unit_offset): Declare.
6277 (symbol_marked_for_renaming): Likewise.
6278 * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
6279 (fold-const.o): Add $(TREE_FLOW_H).
6280 * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
6281 (find_func_clobbers): Likewise.
6282 * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
6283 (decompose_access): Likewise.
6284 (replace_field_acc): Likewise.
6285 (replace_field_access_stmt): Likewise.
6286 (insert_new_var_in_stmt): Likewise.
6287 (get_stmt_accesses): Likewise.
6288 (reorg_structs_drive): Disable.
6289 * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
6290 (ix86_canonical_va_list_type): Likewise.
6291
6292 2010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
6293
6294 PR other/44566
6295 * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
6296 * target.def (struct gcc_target): Replace enum reg_class with
6297 reg_class_t in hook argument / return types.
6298 * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
6299 (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
6300 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
6301 * targhooks.h (default_branch_target_register_class): Likewise.
6302 (default_ira_cover_classes, default_secondary_reload): Likewise.
6303 (default_memory_move_cost, default_register_move_cost): Likewise.
6304 * targhooks.c (default_branch_target_register_class): Likewise.
6305 (default_ira_cover_classes, default_secondary_reload): Likewise.
6306 (default_memory_move_cost, default_register_move_cost): Likewise.
6307 * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
6308 * bt-load.c (branch_target_load_optimize): Likewise.
6309 * ira.c (setup_cover_and_important_classes): Likewise.
6310 * ira-costs.c (copy_cost): Likewise.
6311 * reload1.c (emit_input_reload_insns): Likewise.
6312 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
6313 * config/frv/frv.c (frv_secondary_reload): Likewise.
6314 * config/s390/s390.c (s390_secondary_reload): Likewise.
6315 * config/i386/i386.c (i386_ira_cover_classes): Likewise.
6316 (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
6317 (ix86_register_move_cost): Likewise.
6318 * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
6319 * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
6320 * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
6321 * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
6322 * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
6323 (rs6000_ira_cover_classes): Likewise.
6324 * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
6325 * config/picochip/picochip-protos.h (picochip_secondary_reload):
6326 Likewise.
6327 * config/pa/pa.c (pa_secondary_reload): Likewise.
6328 * config/mips/mips.c (mips_ira_cover_classes): Likewise.
6329 * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
6330 * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
6331 * doc/tm.texi: Regenerate.
6332
6333 2010-06-30 Sebastian Pop <sebastian.pop@amd.com>
6334
6335 PR bootstrrap/44726
6336 * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
6337 use.
6338 (build_alias_set_optimal_p): Likewise.
6339 (build_base_obj_set_for_drs): Likewise.
6340
6341 2010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
6342
6343 * target.def: Remove comment about licensing problems of function
6344 declarations.
6345
6346 * target.def (declare_constant_name): Change exp to expr. Use DEFHOOK.
6347 * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
6348 * doc/tm.texi: Regenerate.
6349
6350 * target.def (builtin_reciprocal): Change tm_fn to md_fn. Use DEFHOOK.
6351 * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
6352
6353 * target.def (enum_va_list_p): Use DEFHOOK.
6354 * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
6355 Rename ptype to ptree.
6356 * doc/tm.texi: Regenerate.
6357
6358 * target.def (fold_builtin): Rename nargs to n_args. Use DEFHOOK.
6359 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
6360 * doc/tm.texi: Regenerate.
6361
6362 * target.def (memory_move_cost): Use DEFHOOK.
6363 * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
6364 Rename regclass AKA class to rclass.
6365 * doc/tm.texi: Regenerate.
6366
6367 * target.def (pragma_parse): Use DEFHOOK.
6368 * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
6369 s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
6370 * doc/tm.texi: Regenerate.
6371
6372 * target.def (pass_by_reference): Use DEFHOOK.
6373 * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
6374 * doc/tm.texi: Regenerate.
6375
6376 * target.def (resolve_overloaded_builtin): Rename params to arglist.
6377 Use DEFHOOK.
6378 * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
6379 * doc/tm.texi: Regenerate.
6380
6381 * target.def (return_pops_args): Use DEFHOOK.
6382 * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
6383 Rename stack-size to size.
6384 * doc/tm.texi: Regenerate.
6385
6386 * target.def (dfa_new_cycle): Use DEFHOOK. Rename dump_file to dump,
6387 last-sched_cycle to last_clock, cur_cycle to clock.
6388 * doc/tm.texi.in: Use @hook.
6389 * doc/tm.texi: Regenerate.
6390
6391 * target.def (print_operand, print_operand_address): Update comment.
6392 (print_operand_punct_valid_p): Likewise.
6393
6394 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
6395
6396 * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
6397 to rtl.h.
6398 (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
6399 * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
6400 * rtl-error.h: New.
6401 * regrename.c: Do not include toplev.h. Include rtl-error.h.
6402 * rtl-error.c: Likewise.
6403 * reload.c: Likewise.
6404 * recog.c: Likewise.
6405 * sel-sched.c: Likewise.
6406 * function.c: Likewise.
6407 * reg-stack.c: Likewise.
6408 * cfgrtl.c: Likewise.
6409 * reload1.c: Likewise.
6410 * final.c: Include rtl-error.
6411 * Makefile.in: Adjust dependencies.
6412
6413 2010-06-30 Jan Hubicka <jh@suse.cz>
6414
6415 PR middle-end/PR44706
6416 * ipa-split (split_function): Refine conditions when to use DECL_RESULT
6417 to return the value.
6418
6419 2010-06-30 Michael Matz <matz@suse.de>
6420
6421 PR bootstrap/44699
6422 * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
6423 * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
6424 a gimple reg, attach the original VDEF to the last store in the
6425 sequence.
6426
6427 2010-06-30 Iain Sandoe <iains@gcc.gnu.org>
6428
6429 PR other/44034
6430 * config/darwin.c (darwin_override_options): Use renamed
6431 targetm.asm_out.emit_unwind_label.
6432
6433 2010-06-30 Bernd Schmidt <bernds@codesourcery.com>
6434
6435 PR tree-optimization/39799
6436 * tree-inline.c (remap_ssa_name): Initialize variable only if
6437 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
6438
6439 2010-06-30 Nathan Froyd <froydnj@codesourcery.com>
6440
6441 * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
6442
6443 2010-06-30 Richard Guenther <rguenther@suse.de>
6444
6445 PR target/44722
6446 * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
6447 against oscillation with reverse peephole2.
6448
6449 2010-06-30 H.J. Lu <hongjiu.lu@intel.com>
6450
6451 PR target/44721
6452 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
6453 Fix last commit.
6454
6455 2010-06-30 Nick Clifton <nickc@redhat.com>
6456
6457 * config/rx/rx-modes.def: New file.
6458 * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
6459 (CC_REGNUM): Define.
6460 (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
6461 register.
6462 (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
6463 (SELECT_CC_MODE): Define.
6464 * config/rx/rx.md (CC_REG): Define. Update all patterns to use
6465 (reg:CC CC_REG) instead of (cc0).
6466 (attr "cc"): Delete.
6467 (cbranchsi4): Do not split compare and branch here. Instead move
6468 it to...
6469 (cbranchsi4_<code>): ... here. New patterns.
6470 (cmpsi): Call rx-compare_redundant to find out if it is necessary
6471 to emit the compare instruction.
6472 * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
6473 cc_status flags.
6474 (rx_get_stack_layout): Iterate up to before CC_REGNUM not
6475 FIRST_PSEUDO_REGNUM.
6476 (rx_expand_prologue, rx_expand_epilogue): Likewise.
6477 (rx_notice_update_cc): Delete.
6478 (rx_cc_modes_compatible): New function.
6479 (flags_needed_for_conditional): New function.
6480 (flags_from_mode): New function.
6481 (rx_compare_redundant): New function - scans backwards through
6482 insn list to find out if condition flags are already set correctly.
6483 (TARGET_CC_MODES_COMPATIBLE): Define.
6484 * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
6485
6486 * config/rx/rx.h (BRANCH_COST): Define.
6487 (REGISTER_MOVE_COST): Define.
6488 * config/rx/predicates (rx_source_operand): Allow all constant types.
6489 * config/rx/rx.md (addsi3): Add alternative for swapped operands.
6490 (tstsi4): New pattern.
6491 * config/rx/rx.c (rx_memory_move_cost): Define.
6492 (TARGET_MEMORY_MOVE_COST): Define.
6493
6494 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
6495
6496 * tree.h (block_may_fallthru): Declare here.
6497 * tree-flow.h (block_may_fallthru): Do not declare here.
6498 * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
6499 bitmap.h
6500 * Makefile.in (c-typeck.o): Update dependencies.
6501
6502 2010-06-30 Jakub Jelinek <jakub@redhat.com>
6503
6504 PR debug/44694
6505 * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
6506 * cselib.c (cfa_base_preserved_regno): New static variable.
6507 (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
6508 of REGNO (cfa_base_preserved_val->locs->loc).
6509 (cselib_preserve_cfa_base_value): Add regno argument, set
6510 cfa_base_preserved_regno to it.
6511 (cselib_invalidate_regno): Allow removal of registers other than
6512 cfa_base_preserved_regno from cfa_base_preserved_val.
6513 (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
6514 * var-tracking.c (adjust_mems): Replace sp or hfp even outside
6515 of MEM addresses, if not on LHS.
6516 (reverse_op): Don't add reverse ops for cfa_base_rtx.
6517 (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
6518
6519 2010-06-30 Bernd Schmidt <bernds@codesourcery.com>
6520
6521 * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
6522 static variables.
6523 (peep2_buf_position): New static function.
6524 (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
6525 peephole2_optimize): Use it.
6526 (peep2_attempt, peep2_update_life): New static functions, broken out
6527 of peephole2_optimize.
6528 (peep2_fill_buffer): New static function.
6529 (peephole2_optimize): Change the main loop to try to fill the buffer
6530 with the maximum number of insns before matching them against
6531 peepholes. Use a forward scan. Remove special case for targets with
6532 conditional execution.
6533 * genrecog.c (change_state): Delete dead code.
6534 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
6535 Rewrite so as not to expect the second insn to have had a peephole
6536 applied yet.
6537
6538 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
6539
6540 * genhooks.c (emit_findices): Cast field precision to int.
6541 (emit_documentation): Likewise.
6542
6543 2010-06-29 Jakub Jelinek <jakub@redhat.com>
6544
6545 PR tree-optimization/43801
6546 * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
6547 if old_decl was DECL_ONE_ONLY.
6548
6549 PR debug/44668
6550 * dwarf2out.c (add_accessibility_attribute): New function.
6551 (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
6552 instead of adding DW_AT_accessibility manually.
6553 (gen_enumeration_type_die, gen_struct_or_union_type_die,
6554 gen_typedef_die): Use it.
6555
6556 2010-06-29 Douglas B Rupp <rupp@gnat.com>
6557
6558 * vmsdbgout.c (full_name): Just output the file name if not native.
6559
6560 2010-06-29 Douglas B Rupp <rupp@gnat.com>
6561
6562 * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
6563 (funcnam_table): New static table.
6564 (funcnum_table): New static table.
6565 (write_rtnbeg): Write value saved in funcnum_table.
6566 (write_rtnend): Write value saved in funcnum_table.
6567 (vmsdbgout_begin_function): Save current function info in
6568 (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
6569 (vmsdbgout_finish): Iterate over funcnum_table.
6570
6571 2010-06-29 Douglas B Rupp <rupp@gnat.com>
6572
6573 * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
6574 (vmsdbgout_type_decl): Declare
6575 (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
6576 (FUNC_EPILOGUE_LABEL): New macro
6577 (vmsdbgout_begin_epilogue): New function.
6578 (vmsdbgout_type_decl): New function.
6579
6580 2010-06-29 Douglas B Rupp <rupp@gnat.com>
6581
6582 * vmsdbg.h: Update copyright.
6583
6584 2010-06-29 Douglas B Rupp <rupp@gnat.com>
6585
6586 * vmsdbg.h (DST_K_TBG): New DST constant.
6587 * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
6588 (write_modbeg): Cast module_language to avoid warning.
6589 (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
6590
6591 2010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
6592
6593 PR other/44034
6594 * target.def, doc/tm.texi.in, genhooks.c: New files.
6595 * target.h: Instead of defining individual hook members,
6596 define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
6597 include target.def.
6598 * target-def.h: Instead of defining individual hook initializers,
6599 include target-hooks-def.h.
6600 * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
6601 targetm.live_on_entry -> targetm.extra_live_on_entry
6602 targetm.sched.md_finish ->targetm.sched.finish
6603 targetm.sched.md_init -> targetm.sched.init
6604 targetm.sched.md_init_global -> targetm.sched.init_global
6605 targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
6606 targetm.asm_out.except_table_label ->
6607 targetm.asm_out.emit_except_table_label
6608 targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
6609 targetm.target_help -> targetm.help
6610 targetm.vectorize.builtin_support_vector_misalignment ->
6611 targetm.vectorize.support_vector_misalignment
6612 targetm.file_start_app_off -> targetm.asm_file_start_app_off
6613 targetm.file_start_file_directive ->
6614 targetm.asm_file_start_file_directive
6615 * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
6616 * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
6617 * gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
6618 TARGET_VECTOR_ALIGNMENT_REACHABLE ->
6619 TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
6620 TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
6621 TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
6622 TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
6623 * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
6624 * Makefile.in (TARGET_H): Depend on target.def.
6625 (TARGET_DEF_H): Depend on target-hooks-def.h.
6626 (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
6627 (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
6628 * doc/tm.texi: Regenerate.
6629
6630 * Makefile.in (s-tm-texi): Remove stray tab / rule.
6631
6632 * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
6633 (targetm.sched.init): Likewise.
6634
6635 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
6636
6637 PR bootstrap/44713
6638 * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
6639 (function_arg_advance_32): Const-ify TYPE parameter.
6640 (function_arg_advance_64): Likewise. Change type of NAMED to bool.
6641 (ix86_function_arg_advance): Change type of NAMED to bool.
6642 (function_arg_32): Const-ify CUM and TYPE parameters.
6643 (function_arg_64): Likewise. Change type of NAMED to bool.
6644 (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
6645 to bool.
6646 (ix86_function_arg): Change type of NAMED to bool.
6647 (ix86_setup_incoming_varargs): Call ix86_function_arg_advance. Pass
6648 last argument as a bool.
6649
6650 2010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
6651
6652 * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
6653 (OVERRIDE_OPTIONS): Add note of obsolescence.
6654 Replace references with references to TARGET_OPTION_OVERRIDE.
6655 (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
6656 the macro).
6657 * targhooks.c (default_target_option_override): New function.
6658 * targhooks.h (default_target_option_override): Declare.
6659 * target.h (struct gcc_target): Add override member to
6660 target_option member.
6661 * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
6662 targetm.target_option.override call.
6663 * target-def.h (TARGET_OPTION_OVERRIDE): Define.
6664 (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
6665
6666 2010-06-29 Jan Hubicka <jh@suse.cz>
6667
6668 * tree-inline.c: Replace incomming by incomin and clonning by cloning.
6669
6670 2010-06-29 Jan Hubicka <jh@suse.cz>
6671
6672 * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
6673 unreachable.
6674 (rebuild_frequencies): New function.
6675 * predict.h (rebuild_frequencies): Declare.
6676 * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
6677 entry block and edge reaching new_entry.
6678 (tree_function_versioning): When doing partial cloning, rebuild
6679 frequencies when done.
6680 * passes.c (execute_function_todo): Use rebild_frequencies.
6681
6682 2010-06-29 Richard Guenther <rguenther@suse.de>
6683
6684 * tree-dfa.c (dump_variable): Remove noalias_state dumping.
6685 * tree-flow.h (enum noalias_state): Remove.
6686 (struct var_ann_d): Remove noalias_state member.
6687
6688 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
6689
6690 PR target/43902
6691 * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
6692 (maddhisi4): Renamed from mulhisi3addsi. Operands renumbered.
6693 (maddhidi4): Likewise.
6694
6695 Revert parts of the change for PR25130.
6696 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
6697 MEM_ALIAS_SET.
6698
6699 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
6700
6701 * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
6702 targetm.calls.function_incoming_arg, and
6703 targetm.calls.function_arg_advance instead of FUNCTION_ARG,
6704 FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
6705 * target.h (struct gcc_target): Add function_arg_advance,
6706 function_arg, and function_incoming_arg fields.
6707 * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
6708 (TARGET_FUNCTION_INCOMING_ARG): Define.
6709 (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
6710 and TARGET_FUNCTION_INCOMING_ARG.
6711 * targhooks.h (default_function_arg_advance): Declare.
6712 (default_function_arg, default_function_incoming_arg): Declare.
6713 * targhooks.c (default_function_arg_advance): New function.
6714 (default_function_arg, default_function_incoming_arg): New function.
6715 * config/i386/i386.c (function_arg_advance): Rename to...
6716 (ix86_function_arg_advance): ...this. Make static.
6717 (function_arg): Rename to...
6718 (ix86_function_arg): ...this. Make static.
6719 (TARGET_FUNCTION_ARG_ADVANCE): Define.
6720 (TARGET_FUNCTION_ARG): Define.
6721 * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
6722 (FUNCTION_ARG): Delete.
6723 * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
6724 (function_arg): Delete prototype.
6725
6726 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
6727
6728 * reginfo.c (init_reg_sets_1): Adjust comments.
6729 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
6730 * calls.c (prepare_call_address): Likewise.
6731 (emit_call_1): Use targetm.calls.return_pops_args.
6732 (expand_call): Likewise.
6733 * function.c (assign_parms): Likewise.
6734 * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
6735 * target.h (struct gcc_target) [struct calls]: Add
6736 return_pops_args field.
6737 * targhooks.h (default_return_pops_args): Declare.
6738 * targhooks.c (default_return_pops_args): Define.
6739 * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
6740 (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
6741 * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
6742 (TARGET_RETURN_POPS_ARGS): ...this. Use deftypefn. Adjust
6743 documentation.
6744 * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
6745 * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
6746 * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
6747 * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
6748 * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
6749 * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
6750 * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
6751 * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
6752 * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
6753 * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
6754 * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
6755 * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
6756 * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
6757 * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
6758 * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
6759 * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
6760 * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
6761 * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
6762 * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
6763 * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
6764 * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
6765 * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
6766 * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
6767 * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
6768 * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
6769 * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
6770 * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
6771 * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
6772 * config/score/score.h (RETURN_POPS_ARGS): Likewise.
6773 * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
6774 * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
6775 * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
6776 * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
6777 * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
6778 * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
6779 * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
6780 * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
6781 * config/i386/i386.c (ix86_return_pops_args): Make static.
6782 Constify arguments.
6783 (TARGET_RETURN_POPS_ARGS): Define.
6784 * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
6785 * config/m68k/m68k.c (m68k_return_pops_args): ...here. New function.
6786 (TARGET_RETURN_POPS_ARGS): Define.
6787 * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
6788 * config/vax/vax.c (vax_return_pops_args): ...here. New function.
6789 (TARGET_RETURN_POPS_ARGS): Define.
6790
6791 2010-06-29 Richard Guenther <rguenther@suse.de>
6792
6793 PR middle-end/44667
6794 * tree-inline.c (initialize_inlined_parameters): Make sure
6795 to remap the inlined parameter variable substitutions types.
6796
6797 2010-06-29 Eric Botcazou <ebotcazou@adacore.com>
6798
6799 PR rtl-optimization/44659
6800 * combine.c (make_compound_operation) <SUBREG>: Do not return the
6801 result of force_to_mode if it partially re-expanded the compound.
6802
6803 2010-06-28 Jan Hubicka <jh@suse.cz>
6804
6805 PR middle-end/44671
6806 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
6807 RESULT_DECL.
6808
6809 2010-06-28 Anatoly Sokolov <aesok@post.ru>
6810
6811 * double-int.h (force_fit_type_double): Remove declaration.
6812 * double-int.c (force_fit_type_double): Move to tree.c.
6813 * tree.h (force_fit_type_double): Declare.
6814 * tree.h (force_fit_type_double): Moved from double-int.c. Use
6815 double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
6816 double_int_to_tree instead of fit_double_type and build_int_cst_wide.
6817 * convert.c (convert_to_pointer): Adjust call to
6818 force_fit_type_double.
6819 * tree-vrp.c (extract_range_from_assert,
6820 extract_range_from_unary_expr): Adjust call to force_fit_type_double.
6821 * fold-const.c: Update comment.
6822 (int_const_binop, fold_convert_const_int_from_int,
6823 fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
6824 extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
6825 fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
6826 round_up_loc): Adjust call to force_fit_type_double.
6827
6828 2010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6829
6830 * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
6831
6832 2010-06-28 Martin Jambor <mjambor@suse.cz>
6833
6834 * tree-sra.c (convert_callers): New parameter, change fndecls of
6835 recursive calls.
6836 (modify_function): Pass the old decl to convert_callers.
6837
6838 2010-06-28 Martin Jambor <mjambor@suse.cz>
6839
6840 * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
6841 ipa_check_create_node_params and ipa_initialize_node_params with
6842 checking asserts they are not necessary.
6843
6844 2010-06-28 Jan Hubicka <jh@suse.cz>
6845
6846 PR tree-optimization/44687
6847 * ipa-split.c (split_function): Use DECL_RESULT to store return value.
6848
6849 2010-06-28 Martin Jambor <mjambor@suse.cz>
6850
6851 PR c++/44535
6852 * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
6853 (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
6854 instead of BINFO_BASE_BINFO.
6855
6856 2010-06-28 Michael Matz <matz@suse.de>
6857
6858 PR middle-end/44592
6859 * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
6860 proper VDEF chain for intermediate stores in the sequence.
6861
6862 2010-06-28 Jan Hubicka <jh@suse.cz>
6863
6864 PR tree-optimization/44357
6865 * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
6866 uninlinable functions.
6867
6868 2010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6869
6870 * config.gcc (powerpc*-*-*): Handle titan.
6871 * config/rs6000/rs6000.c (titan_cost): New costs.
6872 (rs6000_override_options): Add "titan" to processor_target_table.
6873 Add Titan to branch alignment logic.
6874 Correctly set rs6000_cost for titan.
6875 * config/rs6000/rs6000.md (cpu): Add titan. Include "titan.md".
6876 * config/rs6000/titan.md: New file.
6877 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
6878
6879 2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
6880
6881 * tree-browser.c (TB_history_stack): Convert to a VEC.
6882 (TB_SET_HEAD): Adjust for new type of TB_history_stack.
6883 (TB_history_prev): Likewise.
6884
6885 2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
6886
6887 * vec.h (vec_heap_free): Add parentheses around free.
6888
6889 2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
6890
6891 * system.h: Poison GCC_EXCEPT_H for front-end files.
6892
6893 * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
6894 langhook.
6895 * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
6896 Define to NULL by default.
6897 * except.h: Define GCC_EXCEPT_H.
6898 (doing_eh): Remove prototype.
6899 (init_eh, init_eh_for_function): Move prototypes to toplev.h.
6900 (lang_protect_cleanup_actions): Remove.
6901 * except.c (lang_protect_cleanup_actions): Remove.
6902 (doing_eh): Remove.
6903 (gen_eh_region): Don't check doing_eh here.
6904 * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
6905 * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
6906 instead of lang_protect_cleanup_actions.
6907 * omp-low.c (maybe_catch_exception): Likewise.
6908 * Makefile.in: Update dependencies.
6909
6910 2010-06-28 Bingfeng Mei <bmei@broadcom.com>
6911
6912 * cgraph.h (struct varpool_node): new used_from_object_file flag.
6913 (struct cgraph_local_info): new used_from_object_file flag.
6914 * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
6915 (cgraph_clone_node): initialize used_from_object_file.
6916 (cgraph_create_virtual_clone): initialize used_from_object_file.
6917 * lto-symbtab.c (lto_symtab_merge_decls_1): Set
6918 used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
6919 when compiling with -fwhole-program.
6920 (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
6921 internal resolver.
6922 * ipa.c (function_and_variable_visibility): Set externally_visible
6923 flag of varpool_node if used_from_object_file flag is set.
6924 (cgraph_externally_visible_p): check used_from_object_file flag.
6925 * doc/invoke.texi (-fwhole-program option): Change description of
6926 externally_visible attribute accordingly.
6927 * doc/extend.texi (externally_visible): Ditto.
6928
6929 2010-06-27 Jan Hubicka <jh@suse.cz>
6930
6931 * params.def (max-inline-insns-auto): Default to 40.
6932 * doc/invoke.texi (max-inline-insns-auto): Document the change.
6933
6934 2010-06-27 Jan Hubicka <jh@suse.cz>
6935
6936 PR middle-end/44671
6937 PR middle-end/44686
6938 * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
6939 signature change.
6940 * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
6941 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
6942
6943 2010-06-27 Anatoly Sokolov <aesok@post.ru>
6944
6945 * target.h (struct gcc_target): Add register_move_cost field.
6946 * target-def.h (TARGET_REGISTER_MOVE_COST): New.
6947 (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
6948 * targhooks.c (default_register_move_cost): New function.
6949 * targhooks.h (default_register_move_cost): Declare function.
6950 * defaults.h (REGISTER_MOVE_COST): Delete.
6951 * ira-int.h (ira_register_move_cost): Update comment.
6952 * ira.c (ira_register_move_cost): Update comment.
6953 * reload.h (register_move_cost): Declare.
6954 * reginfo.c (register_move_cost): New function.
6955 (move_cost): Update comment.
6956 (init_move_cost, memory_move_secondary_cost): Replace
6957 REGISTER_MOVE_COST with register_move_cost.
6958 * postreload.c (reload_cse_simplify_set): (Ditto.).
6959 * reload.c (find_valid_class, find_reloads): (Ditto.).
6960 * reload1.c (choose_reload_regs): (Ditto.).
6961 * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
6962 (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
6963 * doc/md.texi (can_create_pseudo_p): Update documentation.
6964
6965 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
6966 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
6967 * config/i386/i386.h (ix86_memory_move_cost): Make static.
6968 (TARGET_MEMORY_MOVE_COST): Define.
6969
6970 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
6971 * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
6972 * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
6973 (TARGET_MEMORY_MOVE_COST): Define.
6974
6975 2010-06-27 Richard Guenther <rguenther@suse.de>
6976
6977 PR tree-optimization/44683
6978 * tree-ssa-dom.c (record_edge_info): Record equivalences for the
6979 false edge from the inverted condition.
6980
6981 2010-06-27 Richard Guenther <rguenther@suse.de>
6982
6983 PR middle-end/44684
6984 * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
6985 (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
6986 for register LHS. Or non-store assignments.
6987
6988 2010-06-26 Eric Botcazou <ebotcazou@adacore.com>
6989
6990 * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
6991 (sparc_emit_set_const64): Likewise. Remove disabled code.
6992 * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
6993 (sparc_emit_set_const64): Likewise.
6994
6995 2010-06-26 Catherine Moore <clm@codesourcery.com>
6996
6997 * config/mips/mips.md (alu_type): New attribute.
6998 (type): Infer type from alu_type.
6999 (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
7000 *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
7001 *subsi3_extended, negsi2, negdi2, *low<mode>,
7002 *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
7003 xor<mode>3, *nor<mode>3,
7004 *zero_extend<GPR:mode>_trunc<SHORT:mode>,
7005 *zero_extendhi_truncqi): Set alu_type instead of type.
7006
7007 2010-06-26 Douglas B Rupp <rupp@gnat.com>
7008
7009 * config/alpha/alpha.c (alpha_need_linkage): Adjust
7010 splay_tree_new_ggc call.
7011 (alpha_use_linkage): Likewise.
7012
7013 2010-06-26 Joseph Myers <joseph@codesourcery.com>
7014
7015 * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
7016 * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
7017 * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
7018 (static_specs): Remove switches_need_spaces.
7019 (process_command, do_self_spec): Hardcode handling "-o" instead of
7020 checking switches_need_spaces.
7021 * system.h (SWITCHES_NEED_SPACES): Poison.
7022
7023 2010-06-26 Richard Guenther <rguenther@suse.de>
7024
7025 PR tree-optimization/44393
7026 * tree-loop-distribution.c (generate_loops_for_partition): Fix
7027 stmt removal and VOP renaming.
7028 (generate_memset_zero): Remove redundant stmt updating.
7029 * tree-flow.h (mark_virtual_ops_in_bb): Remove.
7030 * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
7031
7032 2010-06-26 Jan Hubicka <jh@suse.cz>
7033
7034 * ipa-split.c (consider_split): PHI in entry block is OK as long as all
7035 edges comming from header are equivalent.
7036 (visit_bb): Handle PHIs correctly.
7037 * tree-inline.c (copy_phis_for_bb): Be able to copy
7038 PHI from entry edge.
7039 (copy_cfg_body): Produce edge from entry BB before copying PHIs.
7040
7041 2010-06-26 Richard Guenther <rguenther@suse.de>
7042
7043 PR middle-end/44674
7044 * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
7045 decls. Handle LABEL_DECLs like FUNCTION_DECLs.
7046
7047 2010-06-26 Joseph Myers <joseph@codesourcery.com>
7048
7049 * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
7050 add_infile, alloc_switch): New.
7051 (process_command): Remove variable lang_n_infiles. Process
7052 options in a single pass. Use new functions for allocating
7053 infiles and switches arrays. Properly skip operands of
7054 -Xpreprocessor and -Xassembler.
7055
7056 2010-06-26 Jan Hubicka <jh@suse.cz>
7057
7058 PR middle-end/44671
7059 * cgraphunit.c (cgraph_function_versioning): Remove wrong
7060 cgraph_make_decl_local call; fix typo copying RTL data.
7061
7062 2010-06-25 DJ Delorie <dj@redhat.com>
7063
7064 * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
7065 (m32c_output_aligned_common): Likewise.
7066 * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
7067 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
7068 * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
7069 (m32c_register_pragmas): Register it.
7070 * config/m32c/m32c.c (m32c_get_pragma_address): New.
7071 (m32c_insert_attributes): Set #pragma address decls volatile.
7072 (pragma_entry_eq): New.
7073 (pragma_entry_hash): New.
7074 (m32c_note_pragma_address): New.
7075 (m32c_get_pragma_address): New.
7076 (m32c_output_aligned_common): New.
7077 * doc/extend.texi: Document the new pragma.
7078
7079 * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
7080 also.
7081 * config/m32c/predicates.md (m32c_any_operand): Check the code
7082 instead of memory_operand so as to allow matching volatile MEMs.
7083 (m32c_nonimmediate_operand): Likewise.
7084 (mra_operand): Allow volatiles.
7085
7086 2010-06-25 Alexandre Oliva <aoliva@redhat.com>
7087
7088 PR debug/44610
7089 * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
7090 address if the offset is unknown.
7091
7092 2010-06-25 Douglas B Rupp <rupp@gnat.com>
7093
7094 * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
7095 * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
7096 * config/ia64/ia64-protos.h (ia64_start_function): Declare.
7097 * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
7098 to ia64_start_function. Invoke it.
7099 * config/ia64/ia64.c (ia64_start_function): Call new function
7100 dwarf2out_vms_debug_main_pointer.
7101
7102 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
7103
7104 * tree-if-conv.c (insert_gimplified_predicates): Do not insert
7105 statements computing the true predicate.
7106
7107 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
7108
7109 * tree-if-conv.c (init_bb_predicate): Initialize the predicate
7110 to boolean_true_node.
7111 (reset_bb_predicate): New.
7112 (predicate_bbs): Call reset_bb_predicate.
7113
7114 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
7115
7116 * tree-if-conv.c (combine_blocks): Remove FIXME comment.
7117 (tree_if_conversion): Returns true when something has been changed.
7118 (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
7119 changed something.
7120
7121 2010-06-25 Sebastian Pop <sebastian.pop@amd.com>
7122
7123 * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
7124 * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
7125 * tree-if-conv.c: Include dbgcnt.h.
7126 (tree_if_conversion): Use if_conversion_tree to count the number of
7127 if-convertible loops.
7128
7129 2010-06-25 Changpeng Fang <changpeng.fang@amd.com>
7130
7131 * common.opt (fprefetch-loop-arrays): Re-define
7132 -fprefetch-loop-arrays as a tri-state option with the initial
7133 value of -1.
7134 * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
7135 pass only when flag_prefetch_loop_arrays > 0.
7136 * toplev.c (process_options): Note that, with tri-states,
7137 flag_prefetch_loop_arrays>0 means prefetching is enabled.
7138 * config/i386/i386.c (override_options): Enable prefetching at -O3
7139 for a set of CPUs that sw prefetching is helpful.
7140 (software_prefetching_beneficial_p): New. Return TRUE if software
7141 prefetching is beneficial for the given CPU.
7142
7143 2010-06-25 H.J. Lu <hongjiu.lu@intel.com>
7144
7145 PR rtl-optimization/44326
7146 * implicit-zee.c (find_removable_zero_extends): Replace
7147 INSN_P with NONDEBUG_INSN_P.
7148
7149 2010-06-25 Martin Jambor <mjambor@suse.cz>
7150
7151 * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
7152 (struct ipa_node_params): Removed the modification_analysis_done flag.
7153 (ipa_is_param_modified): Removed.
7154 (ipa_analyze_node): Declare.
7155 (ipa_compute_jump_functions): Remove declaration.
7156 (ipa_count_arguments): Likewise.
7157 (ipa_detect_param_modifications): Likewise.
7158 (ipa_analyze_params_uses): Likewise.
7159 * ipa-prop.c (struct param_analysis_info): New type.
7160 (visit_store_addr_for_mod_analysis): Removed.
7161 (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
7162 moved down in the file.
7163 (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
7164 (ipa_count_arguments): Made static.
7165 (mark_modified): New function.
7166 (is_parm_modified_before_call): New function.
7167 (compute_pass_through_member_ptrs): New parameter parms_info, call
7168 is_parm_modified_before_call instead of ipa_is_param_modified.
7169 (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
7170 it to compute_pass_through_member_ptrs.
7171 (ipa_compute_jump_functions): New parameter parms_info, pass it to
7172 ipa_compute_jump_functions_for_edge. Call ipa_initialize_node_params
7173 on the callee if it is analyzed. Made static.
7174 (ipa_analyze_indirect_call_uses): New parameter parms_info, call
7175 is_parm_modified_before_call instead of ipa_is_param_modified.
7176 (ipa_analyze_call_uses): New parameter parms_info, pass it to
7177 ipa_analyze_indirect_call_uses.
7178 (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
7179 ipa_analyze_call_uses.
7180 (ipa_analyze_params_uses): New parameter parms_info, pass it to
7181 ipa_analyze_stmt_uses. Also perform the used analysis. Made static.
7182 (ipa_analyze_node): New function.
7183 (ipa_print_node_params): Do not dump the modified flag.
7184 (ipa_write_node_info): Assert uses_analysis_done rather than streaming
7185 it. Do not stream the modified parameter flag.
7186 (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
7187 it. Do not stream the modified parameter flag.
7188 * ipa-cp.c (ipcp_analyze_node): Removed.
7189 (ipcp_init_stage): Iterate only once over the nodes, analyze each one
7190 with only a call to ipa_analyze_node.
7191 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
7192 node with only a call to ipa_analyze_node.
7193
7194 2010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
7195
7196 * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
7197
7198 2010-06-25 Jan Hubicka <jh@suse.cz>
7199
7200 * tree-pass.h (pass_split_functions): Declare.
7201 * opts.c (decode_options): Enable function splitting at -O2
7202 * timevar.def (TV_IPA_FNSPLIT): New macro.
7203 * ipa-split.c: New file.
7204 * common.opt (-fpartial-inlining): New flag.
7205 * Makefile.in (ipa-split.o): New object file.
7206 * passes.c (init_optimization_passes): Add ipa-split.
7207 * params.def (partial-inlining-entry-probability): New parameters.
7208 * doc/invoke.texi (-fpartial-inlining): New.
7209
7210 2010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
7211
7212 PR 44665
7213 * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
7214 * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
7215 (gimplify_expr): Likewise.
7216
7217 2010-06-25 Martin Jambor <mjambor@suse.cz>
7218
7219 * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
7220 statements instead of bailing out on them.
7221 (ipa_analyze_indirect_call_uses): Do not require that loads from the
7222 parameter are in the same BB as the condition. Update comments.
7223
7224 2010-06-25 Jakub Jelinek <jakub@redhat.com>
7225
7226 PR middle-end/43866
7227 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
7228 true or always false, return NULL_TREE.
7229 (tree_unswitch_single_loop): Optimize conditions even when reaching
7230 max-unswitch-level parameter. If num > 0, optimize first all conditions
7231 using entry checks, then do still reachable block discovery and consider
7232 only conditions in still reachable basic blocks in the loop.
7233
7234 PR tree-optimization/44539
7235 * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
7236 the call doesn't have LHS, but has VDEF.
7237
7238 2010-06-25 Joseph Myers <joseph@codesourcery.com>
7239
7240 * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
7241 * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
7242 * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
7243 (process_command): Remove code conditional on MODIFY_TARGET_NAME.
7244 * system.h (MODIFY_TARGET_NAME): Poison.
7245
7246 2010-06-25 Alan Modra <amodra@gmail.com>
7247
7248 * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
7249 * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
7250 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
7251 CMODEL_LARGE as default.
7252 * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
7253 (offsettable_ok_by_alignment): Delete.
7254 (rs6000_emit_move): Remove mcmodel=medium optimization.
7255
7256 2010-06-25 Bernd Schmidt <bernds@codesourcery.com>
7257
7258 With large parts from Jim Wilson:
7259 PR target/43902
7260 * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
7261 WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
7262 * optabs.c (optab_for_tree_code): Likewise.
7263 (expand_widen_pattern_expr): Likewise.
7264 * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
7265 out of execute_optimize_widening_mul.
7266 (convert_plusminus_to_widen): New function.
7267 (execute_optimize_widening_mul): Use the two new functions.
7268 * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
7269 Remove code to generate widening multiply-accumulate. Add support
7270 for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
7271 * gimple-pretty-print.c (dump_ternary_rhs): New function.
7272 (dump_gimple_assign): Call it when appropriate.
7273 * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
7274 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
7275 (expand_gimple_stmt_1): Likewise.
7276 (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
7277 WIDEN_MULT_MINUS_EXPR.
7278 * tree-ssa-operands.c (get_expr_operands): Likewise.
7279 * tree-inline.c (estimate_operator_cost): Likewise.
7280 * gimple.c (extract_ops_from_tree_1): Renamed from
7281 extract_ops_from_tree. Add new arg for a third operand; fill it.
7282 (gimple_build_assign_stat): Support operations with three operands.
7283 (gimple_build_assign_with_ops_stat): Likewise.
7284 (gimple_assign_set_rhs_from_tree): Likewise.
7285 (gimple_assign_set_rhs_with_ops_1): Renamed from
7286 gimple_assign_set_rhs_with_ops. Add new arg for a third operand.
7287 (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
7288 (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
7289 WIDEN_MULT_MINUS_EXPR.
7290 * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
7291 (extract_ops_from_tree_1): Adjust declaration.
7292 (gimple_assign_set_rhs_with_ops_1): Likewise.
7293 (gimple_build_assign_with_ops): Pass NULL for last operand.
7294 (gimple_build_assign_with_ops3): New macro.
7295 (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
7296 gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
7297 functions.
7298 * tree-cfg.c (verify_gimple_assign_ternary): New static function.
7299 (verify_gimple_assign): Call it.
7300 * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
7301 (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
7302 functions for dealing with three-operand statements.
7303 * tree.c (commutative_ternary_tree_code): New function.
7304 * tree.h (commutative_ternary_tree_code): Declare it.
7305 * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
7306 ternary statements.
7307 (gimple_assign_nonzero_warnv_p): Likewise.
7308 * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
7309 * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
7310 (ccp_fold): Use it. Handle GIMPLE_TERNARY_RHS.
7311 * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
7312 (struct hashtable_expr): New member ternary in the union.
7313 (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
7314 (hashable_expr_equal_p): Fix indentation. Handle EXPR_TERNARY.
7315 (iterative_hash_hashable_expr): Likewise.
7316 (print_expr_hash_elt): Handle EXPR_TERNARY.
7317 * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
7318 * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
7319 statements. Handle GIMPLE_TERNARY_RHS.
7320
7321 2010-06-25 Jan Hubicka <jh@suse.cz>
7322
7323 * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
7324
7325 2010-06-25 Shujing Zhao <pearly.zhao@oracle.com>
7326
7327 PR c/44517
7328 * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
7329 parameters are not good.
7330 (c_parser_parameter_declaration): Error unknown type name if the type
7331 name can't start declaration specifiers.
7332
7333 2010-06-25 Joseph Myers <joseph@codesourcery.com>
7334
7335 * gcc.c (translate_options): Don't mention +e in comment.
7336 (process_command): Don't handle +e specially.
7337
7338 2010-06-25 Bernd Schmidt <bernds@codesourcery.com>
7339
7340 * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
7341
7342 * ira-build.c (merge_hard_reg_conflicts): New function.
7343 (create_cap_allocno, copy_info_to_removed_store_destinations,
7344 propagate_some_info_from_allocno, propagate_allocno_info): Use it.
7345 (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
7346 (remove_unnecessary_allocnos, remove_low_level_allocnos)
7347 copy_nifo_to_removed_store_destination): Use them.
7348 * ira-lives.c (make_hard_regno_born): New function, split out of
7349 make_regno_born.
7350 (make_allocno_born): Likewise.
7351 (make_hard_regno_dead): New function, split out of make_regno_dead.
7352 (make_allocno_dead): Likewise.
7353 (inc_register_pressure): New function, split out of set_allocno_live.
7354 (dec_register_pressure): New function, split out of clear_allocno_live.
7355 (mark_pseudo_regno_live): New function, split out of mark_reg_live.
7356 (mark_hard_reg_live): Likewise. Use inc_register_pressure.
7357 (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
7358 (mark_hard_reg_dead): Likewise. Use dec_register_pressure.
7359 (make_pseudo_conflict): Use mark_pseudo_regno_dead and
7360 mark_pseudo_regno_live.
7361 (process_bb_node_lives): Use mark_pseudo_regno_live,
7362 make_hard_regno_born and make_allocno_dead.
7363 (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
7364 set_allocno_live, clear_allocno_live): Delete functions.
7365
7366 * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
7367 * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
7368 functions.
7369 (ira_flattening): Use ira_parent_allocno.
7370 * ira-conflicts.c (process_regs_for_copy, propagate_copies)
7371 build_allocno_conflicts): Use ira_parent_or_cap_allocno.
7372
7373 * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
7374 statement.
7375
7376 * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
7377 TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
7378 minmax_set_iter_cond, minmax_set_iter_next,
7379 FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
7380 CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
7381 ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
7382 ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET. All
7383 uses changed.
7384
7385 * ira-int.h (struct live_range, live_range_t): Renamed from struct
7386 ira_allocno_live_range and allocno_live_range_t; all uses changed.
7387 * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
7388 All uses changed.
7389
7390 2010-06-24 Richard Earnshaw <rearnsha@arm.com>
7391
7392 * thumb2.md (thumb2_tlobits_cbranch): Delete.
7393 (peephole2 to convert zero_extract/compare of single bit to
7394 lshift/compare): New.
7395
7396 2010-06-24 Anatoly Sokolov <aesok@post.ru>
7397
7398 * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
7399 recursive call and call to 'int_const_binop'.
7400 (build_range_check, fold_cond_expr_with_comparison, unextend,
7401 fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
7402 multiple_of_p): Adjust call to const_binop.
7403
7404 2010-06-24 Uros Bizjak <ubizjak@gmail.com>
7405
7406 * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
7407 determine size of XFmode operand.
7408 (XFmode extended DFmode push splitter): Ditto.
7409 (XFmode extended SFmode push splitter): Ditto.
7410
7411 2010-06-24 H.J. Lu <hongjiu.lu@intel.com>
7412
7413 PR target/44588
7414 * config/i386/i386.md (extract_code): New.
7415 (<u>divmodqi4): Likewise.
7416 (divmodhiqi3): Likewise.
7417 (udivmodhiqi3): Likewise.
7418 (<u>divqi3): Remvoved.
7419
7420 2010-06-24 Jakub Jelinek <jakub@redhat.com>
7421
7422 PR middle-end/44492
7423 * recog.h (struct recog_data): Add is_asm field.
7424 * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
7425 present in constraints of inline-asm operand and memory operand
7426 contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
7427 (extract_insn): Initialize recog_data.is_asm.
7428 * doc/md.texi (Constraints): Document operand side-effect rules.
7429
7430 2010-06-24 Andi Kleen <ak@linux.intel.com>
7431
7432 * c-parser.c (c_parser_conditional_expression): Call
7433 warn_for_omitted_condop.
7434 * doc/invoke.texi: Document omitted condop warning.
7435
7436 2010-06-24 Nick Clifton<nickc@redhat.com>
7437
7438 * loop-unswitch.c (compare_and_jump_seq): Assert that the last
7439 insn in the sequence is a jump insn before setting its label.
7440
7441 2010-06-24 Alan Modra <amodra@gmail.com>
7442
7443 * collect2.c (main): Match exactly --version and --help.
7444
7445 2010-06-24 DJ Delorie <dj@redhat.com>
7446
7447 * config/m32c/m32c-pragma.c: Don't include rtl.h.
7448
7449 2010-06-23 Uros Bizjak <ubizjak@gmail.com>
7450
7451 * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
7452 using X87MODEF mode iterator.
7453 (pushsf splitter): Macroize splitter using P mode iterator.
7454 (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
7455 mode iterator.
7456
7457 (*movxf_internal): Rename from *movxf_integer.
7458 (*movxf_internal_nointeger): Rename from *movxf_nointeger.
7459 (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
7460 (*movdf_internal): Rename from *movdf_integer.
7461 (*movdf_internal_nointeger): Rename from *movdf_nointeger.
7462 (*movsf_internal): Rename from *movdf_1.
7463
7464 2010-06-23 Basile Starynkevitch <basile@starynkevitch.net>
7465
7466 * coretypes.h (gimple_seq_node_d, gimple_seq_node)
7467 (const_gimple_seq_node): Removed typedefs.
7468
7469 * gimple.h (gimple_seq_node_d, gimple_seq_node)
7470 (const_gimple_seq_node): Added typedefs moved from coretypes.h.
7471
7472 2010-06-23 H.J. Lu <hongjiu.lu@intel.com>
7473
7474 * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
7475 CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
7476 CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
7477 and CODE_FOR_vec_extract_lo_v4df.
7478
7479 * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
7480 Changed to define_insn_and_split.
7481 (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
7482 (vec_extract_lo_v16hi): Likewise.
7483 (vec_extract_lo_v32qi): Likewise.
7484 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
7485 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
7486
7487 2010-06-23 Joern Rennecke <joern.rennecke@embecosm.com>
7488
7489 PR target/44640
7490 * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
7491 * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
7492 (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
7493 (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
7494 (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
7495
7496 PR target/44640
7497 * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
7498
7499 PR other/44644
7500 * df-core.c (struct df): Rename to df_d.
7501 * df.h (struct df): Likewise.
7502 * dse.h (struct df): Remove forward declaration.
7503 * recog.h (struct insn_data): Rename to:
7504 (struct_insn_data_d). Adjusted all users.
7505
7506 2010-06-23 Arnaud Charlet <charlet@adacore.com
7507
7508 PR ada/22220
7509 * doc/install.texi: Update requirements to build GNAT.
7510
7511 2010-06-22 Andreas Schwab <schwab@linux-m68k.org>
7512
7513 * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
7514 enum type.
7515 (m68k_sched_attr_opx_type): Remove unreachable return.
7516 (m68k_sched_attr_opy_type): Likewise.
7517 (m68k_sched_attr_size): Likewise.
7518 (sched_get_opxy_mem_type): Likewise.
7519 (m68k_sched_attr_op_mem): Likewise.
7520
7521 2010-06-22 Eric Botcazou <ebotcazou@adacore.com>
7522
7523 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
7524 new statement and adjust VDEF only if necessary. Remove superfluous
7525 call to maybe_clean_or_replace_eh_stmt.
7526 * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
7527 copy the flags.
7528 * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
7529 * tree-inline.c (copy_bb): ...and not there.
7530
7531 2010-06-22 Cary Coutant <ccoutant@google.com>
7532
7533 * dwarf2out.c (is_nested_in_subprogram): New function.
7534 (should_move_die_to_comdat): Use it.
7535 (copy_ancestor_tree): Don't mark DIEs here.
7536 (copy_decls_walk): Start walk from root of newly-added tree;
7537 mark DIEs here instead.
7538
7539 2010-06-22 H.J. Lu <hongjiu.lu@intel.com>
7540
7541 * config/i386/i386.md (unit): Also check sseishft1.
7542
7543 2010-06-22 Jan Hubicka <jh@suse.cz>
7544
7545 * gimple.h (gimple_expr_code): Do checking on when gimple checking is
7546 enabled.
7547
7548 2010-06-22 Jan Hubicka <jh@suse.cz>
7549
7550 * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
7551 df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
7552 Return true if something changed.
7553 * df.h (df_confluence_function_n): Return bool.
7554 * df-core.c (df_worklist_propagate_forward,
7555 df_worklist_propagate_backward): Track changes and ages.
7556 (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
7557 track ages.
7558 * dse.c (dse_confluence_n): Return always true.
7559
7560 2010-06-22 Jan Hubicka <jh@suse.cz>
7561
7562 * bitmap.c (bitmap_clear_bit): Micro optimize.
7563
7564 2010-06-22 Uros Bizjak <ubizjak@gmail.com>
7565
7566 * config/i386/i386.md (SWI1248x): New mode iterator.
7567 (SWI48x): Ditto.
7568 (SWI12): Ditto.
7569 (SWI24): Ditto.
7570
7571 (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
7572 SWI1248x mode iterator.
7573 (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
7574 using SWI124 mode iterator.
7575 (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
7576 mode iterator.
7577 (*push<mode>2_prologue): Macroize insn from *pushsi2_prologue and
7578 *pushdi2_prologue_rex64 using P mode iterator.
7579 (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
7580 using SWI48 mode iterator.
7581 (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
7582 (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
7583 using SWI1248x mode iterator.
7584 (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
7585 (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
7586 SWI48 mode iterator.
7587 (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
7588 iterator.
7589 (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
7590 (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
7591 SWI12 mode iterator.
7592 (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
7593 SWI12 mode iterator.
7594 (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
7595 (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
7596 SWI24 mode iterator.
7597 (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
7598 SWI48 mode iterator.
7599 (mov<mode>_insn_1): New expander.
7600 (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
7601 using SWI48x mode iterator.
7602
7603 (*movoi_internal_avx): Rename from *movoi_internal.
7604 (*movti_internal_rex64): Rename from *movti_rex64.
7605 (*movti_internal_sse): Rename from *movti_sse.
7606 (*movdi_internal_rex64): Rename from *movdi_1_rex64.
7607 (*movdi_internal): Rename from *movdi_2.
7608 (*movsi_internal): Rename from *movsi_1.
7609 (*movhi_internal): Rename from *movhi_1.
7610 (*movqi_internal): Rename from *movqi_1.
7611
7612 (insv): Update the call to gen_movsi_insv_1 for rename.
7613 * config/i386/i386.c (promote_duplicated_reg): Ditto.
7614
7615 2010-06-22 Jan Hubicka <jh@suse.cz>
7616
7617 * passes.c (execute_function_todo): Move call of statistics_fini_pass
7618 to ...
7619 (execute_todo) ... this one.
7620
7621 2010-06-22 Alan Modra <amodra@gmail.com>
7622
7623 PR target/44364
7624 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
7625 * caller-save.c (insert_restore, insert_save): Use non-validate
7626 form of adjust_address.
7627
7628 2010-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7629
7630 PR target/39690
7631 * config/pa/pa.c (override_options): Disable
7632 -freorder-blocks-and-partition.
7633
7634 2010-06-21 H.J. Lu <hongjiu.lu@intel.com>
7635
7636 PR target/44615
7637 * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
7638
7639 * config/i386/i386.md (type): Add sseishft1
7640
7641 * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
7642 (ppro_insn_load): Likewise.
7643 (ppro_insn_store): Likewise.
7644 (ppro_insn_both): Likewise.
7645
7646 * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
7647 (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
7648 for type.
7649 (*vec_extractv2di_1_avx): Likewise.
7650 (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
7651 type. Remove atom_unit.
7652 (*vec_extractv2di_1_sse2): Likewise.
7653
7654 2010-06-21 DJ Delorie <dj@redhat.com>
7655
7656 * diagnostic.h (diagnostic_classification_change_t): New.
7657 (diagnostic_context): Add history and push/pop list.
7658 (diagnostic_push_diagnostics): Declare.
7659 (diagnostic_pop_diagnostics): Declare.
7660 * diagnostic.c (diagnostic_classify_diagnostic): Store changes
7661 from pragmas in a history chain instead of the global table.
7662 (diagnostic_push_diagnostics): New.
7663 (diagnostic_pop_diagnostics): New.
7664 (diagnostic_report_diagnostic): Scan history chain to find state
7665 of diagnostics as of the diagnostic location.
7666 * opts.c (set_option): Pass UNKNOWN_LOCATION to
7667 diagnostic_classify_diagnostic.
7668 (enable_warning_as_error): Likewise.
7669 * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
7670 use in the history chain.
7671 * doc/extend.texi: Document pragma GCC diagnostic changes.
7672
7673 2010-06-21 Jakub Jelinek <jakub@redhat.com>
7674
7675 * dwarf2out.c (add_linkage_name): New function. Don't add
7676 anything to DW_TAG_member DIEs.
7677 (add_name_and_src_coords_attributes): Use it.
7678 (gen_variable_die): Call it for C++ static data members if
7679 specification is DW_TAG_member.
7680
7681 * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
7682 C++ char16_t and char32_t.
7683
7684 * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
7685 * genattrtab.c: Include vecprim.h.
7686 (cached_attrs, cached_attr_count, attrs_seen_once,
7687 attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
7688 attrs_cached_after): New variables.
7689 (find_attrs_to_cache): New function.
7690 (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
7691 (write_test_expr): Add attrs_cached argument, return it too,
7692 attempt to cache non-const attributes used more than once in
7693 a single case handling.
7694 (write_attr_get): Use find_attrs_to_cache, for caching candidates
7695 emit cached_* variables. Adjust write_attr_set callers.
7696 (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
7697 to find attributes that should be cached in this block. Adjust
7698 write_test_expr callers.
7699 (write_attr_case): Clear attrs_to_cache. Adjust write_attr_set
7700 callers.
7701 (make_automaton_attrs): Adjust write_test_expr caller.
7702
7703 * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
7704 * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
7705 (make_automaton_attrs): If find_tune_attr returns non-NULL,
7706 write separate internal_dfa_insn_code_* and insn_default_latency_*
7707 functions for each attribute's value and emit init_sched_attrs
7708 function and function pointers.
7709 * genattr.c (const_attrs, reservations): New variables.
7710 (gen_attr): Add const attributes to const_attrs vector.
7711 (check_tune_attr, find_tune_attr): New functions.
7712 (main): Add reservations to reservations vector. If find_tune_attr
7713 returns true, add prototype for init_sched_attrs and make
7714 internal_dfa_insn_code and insn_default_latency function pointers,
7715 otherwise define init_sched_attrs as dummy macro.
7716 * cfgexpand.c: Include insn-attr.h.
7717 (gimple_expand_cfg): Call init_sched_attrs.
7718
7719 * stmt.c (resolve_asm_operand_names): Fix handling of %%.
7720
7721 PR target/44575
7722 * config/i386/i386.c (ix86_gimplify_va_arg): When copying
7723 va_arg from a set of register save slots into a temporary,
7724 if the container is bigger than type size, do the copying
7725 using smaller mode or using memcpy.
7726
7727 PR bootstrap/44426
7728 * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
7729 prototype.
7730 (sel_print_to_dot): Remove macro.
7731 (sel_print): Likewise. New prototype.
7732 * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
7733 (sel_print): New function.
7734
7735 2010-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7736
7737 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
7738 __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
7739
7740 2010-06-21 Nick Clifton <nickc@redhat.com>
7741
7742 * config/rx/rx.h (PTRDIFF_TYPE): Define.
7743 (SMALL_REGISTER_CLASS): Define (to zero).
7744 (PRINT_OPERAND): Delete.
7745 (PRINT_OPERAND_ADDRESS): Delete.
7746 * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
7747 (rx_print_operand_address): Delete prototype.
7748 * config/rx/rx.c (rx_print_operand): Make static.
7749 Allow %H and %L to handle CONST_DOUBLEs.
7750 (rx_print_operand_address): Make static.
7751 (rx_gen_move_template): Rename local variable 'template' to
7752 out_template.
7753 (rx_function_arg): Do not pass unknown sized objects in registers.
7754 (TARGET_PRINT_OPERAND): Define.
7755 (TARGET_PRINT_OPERAND_ADDRESS): Define.
7756
7757 2010-06-21 Jan Kratochvil <jan.kratochvil@redhat.com>
7758
7759 * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
7760
7761 2010-06-21 Kai Tietz <kai.tietz@onevision.com>
7762
7763 * config/i386/i386.c (ix86_compute_frame_layout): Avoid
7764 stack-alignment for simple leaf-functions.
7765
7766 2010-06-20 Alexandre Oliva <aoliva@redhat.com>
7767
7768 * doc/install.texi: Document bootstrap-lto.
7769
7770 2010-06-20 Alexandre Oliva <aoliva@redhat.com>
7771
7772 PR debug/44248
7773 * lto-streamer-in.c (input_bb): Leave debug stmts alone.
7774 (input_function): Drop them here, if VTA is disabled.
7775
7776 2010-06-20 Uros Bizjak <ubizjak@gmail.com>
7777
7778 PR target/44546
7779 * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
7780 New predicate.
7781 * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
7782 ix86_swapped_fp_comparsion_operator instead of
7783 ix86_fp_comparison_operator.
7784
7785 (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
7786 (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
7787 (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
7788 (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
7789 (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
7790 (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
7791
7792 2010-06-20 Joseph Myers <joseph@codesourcery.com>
7793
7794 PR other/32998
7795 * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
7796 OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
7797 * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
7798 (decode_cmdline_option): Update for this return value. Set
7799 orig_option_with_args_text field. Set arg field for unknown
7800 options. Make static.
7801 (decode_cmdline_options_to_array): New.
7802 (prune_options): Update handling of find_opt return value.
7803 * opts.c (read_cmdline_option): Take decoded option. Return void.
7804 (read_cmdline_options): Take decoded options.
7805 (decode_options): Add parameters for decoded options. Use
7806 decode_cmdline_options_to_array. Use decoded options for -O
7807 scan. Use integral_argument for -O parameters. Update call to
7808 read_cmdline_options.
7809 (enable_warning_as_error): Update handling of find_opt return value.
7810 * opts.h: Update comment on unknown options.
7811 (struct cl_decoded_option): Update comments on opt_index and arg.
7812 Add orig_option_with_args_text.
7813 (decode_cmdline_option): Remove.
7814 (decode_cmdline_options_to_array): Declare.
7815 (decode_options): Update prototype.
7816 * toplev.c (save_argv): Remove.
7817 (save_decoded_options, save_decoded_options_count): New.
7818 (read_integral_parameter): Remove.
7819 (print_switch_values): Use decoded options.
7820 (toplev_main): Don't set save_argv. Update call to decode_options.
7821 * toplev.h (read_integral_parameter): Remove.
7822 * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
7823
7824 2010-06-19 Richard Earnshaw <rearnsha@arm.com>
7825
7826 PR target/44072
7827 * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
7828 immediate.
7829 * constraints.md (Pw, Px): New constraints.
7830 * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
7831
7832 2010-06-19 H.J. Lu <hongjiu.lu@intel.com>
7833
7834 * config/i386/sse.md (fma4modesuffixf4): Removed.
7835 (ssemodesuffixf2s): Likewise.
7836 (ssemodesuffixf4): Likewise.
7837 (ssemodesuffixf2c): Likewise.
7838 (ssescalarmodesuffix2s): Likewise.
7839 (avxmodesuffixf2c): Likewise.
7840 (ssemodesuffix): New.
7841 (ssescalarmodesuffix): Likewise.
7842 Update patterns with ssemodesuffix and ssescalarmodesuffix.
7843
7844 2010-06-19 Philip Herron <herron.philip@googlemail.com>
7845
7846 * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
7847
7848 2010-06-18 H.J. Lu <hongjiu.lu@intel.com>
7849
7850 * stor-layout.c (debug_rli): Remove unused local variables.
7851
7852 2010-06-18 Eric Botcazou <ebotcazou@adacore.com>
7853
7854 PR rtl-optimization/40900
7855 * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line. Save the
7856 original expression for later reuse.
7857 <expand_decl_rtl>: Use promote_function_mode to compute the signedness
7858 of the promoted RTL for a SSA_NAME on the LHS of a call statement.
7859
7860 2010-06-18 Anatoly Sokolov <aesok@post.ru>
7861
7862 * double-int.h (double_int_to_shwi, double_int_to_uhwi,
7863 double_int_fits_in_uhwi_p): Implement as static inline.
7864 (double_int_xor): New inline function.
7865 (double_int_lrotate, double_int_rrotate, double_int_max,
7866 double_int_umax, double_int_smax, double_int_min, double_int_umin,
7867 double_int_smin): Declare.
7868 (lrotate_double, rrotate_double): Remove declaration.
7869 * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
7870 double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
7871 (double_int_lrotate, double_int_rrotate, double_int_max,
7872 double_int_umax, double_int_smax, double_int_min, double_int_umin,
7873 double_int_smin): New function.
7874 * fold-const.c (int_const_binop): Clean up, use double_int_*
7875 functions.
7876 * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
7877 double_int_* and immed_double_int_const functions.
7878
7879 2010-06-18 Nathan Froyd <froydnj@codesourcery.com>
7880
7881 * function.h (types_used_by_cur_var_decl): Change type to a VEC.
7882 * function.c (types_used_by_cur_var_decl): Likewise.
7883 (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
7884
7885 2010-06-18 Nathan Froyd <froydnj@codesourcery.com>
7886
7887 * tree.h (record_layout_info): Change type of pending_statics field
7888 to a VEC.
7889 * stor-layout.c (start_record_layout): Store NULL into
7890 pending_statics.
7891 (debug_rli): Call debug_vec_tree instead of debug_tree.
7892 (place_field): Likewise.
7893 (finish_record_layout): Likewise.
7894
7895 2010-06-18 Alan Modra <amodra@gmail.com>
7896
7897 * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
7898
7899 2010-06-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7900
7901 PR target/43740
7902 * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
7903 for SET source operand from SET destination operand.
7904
7905 2010-06-17 Bernd Schmidt <bernds@codesourcery.com>
7906
7907 PR rtl-optimization/39871
7908 * reload1.c (init_eliminable_invariants): For flag_pic, disable
7909 equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
7910 (function_invariant_p): Rule out a plus of frame or arg pointer with
7911 a SYMBOL_REF.
7912 * ira.c (find_reg_equiv_invariant_const): Likewise.
7913
7914 2010-06-17 Gunther Nikl <gnikl@users.sourceforge.net>
7915
7916 * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
7917 print_operand_address and puts to output the operand for CONST.
7918
7919 2010-06-17 Jakub Jelinek <jakub@redhat.com>
7920
7921 PR debug/44572
7922 * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
7923 hook.
7924
7925 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
7926
7927 * v850-protos.h (print_operand): Delete.
7928 (print_operand_address): Delete.
7929 * v850.h (PRINT_OPERAND): Delete.
7930 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
7931 (PRINT_OPERAND_ADDRESS): Delete.
7932 * v850.c (print_operand_address): Rename to...
7933 (v850_print_operand_address): ...this. Make static. Call
7934 v850_print_operand.
7935 (print_operand): Rename to...
7936 (v850_print_operand): ...this. Make static. Call
7937 v850_print_operand_address.
7938 (v850_print_operand_punct_valid_p): New function.
7939 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
7940 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
7941
7942 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
7943
7944 * config/sh/sh-protos.h (print_operand): Delete.
7945 (print_operand_address): Delete.
7946 * config/sh/sh.h (PRINT_OPERAND): Delete.
7947 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
7948 (PRINT_OPERAND_ADDRESS): Delete.
7949 * config/sh/sh.c (sh_print_operand_address): Make static.
7950 (sh_print_operand): Make static. Call sh_print_operand_address
7951 and sh_print_operand.
7952 (sh_print_operand_punct_valid_p): New function.
7953 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
7954 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
7955
7956 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
7957
7958 * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
7959 (mcore_print_operand_address): Delete.
7960 * config/mcore/mcore.h (PRINT_OPERAND): Delete.
7961 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
7962 (PRINT_OPERAND_ADDRESS): Delete.
7963 * config/mcore/mcore.c (mcore_print_operand_address): Make static.
7964 (mcore_print_operand): Make static.
7965 (mcore_print_operand_punct_valid_p): New function.
7966 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
7967 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
7968
7969 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
7970
7971 * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
7972 (print_operand_address): Delete.
7973 * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
7974 (PRINT_OPERAND_ADDRESS): Delete.
7975 * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
7976 static.
7977 (m68hc11_print_operand): Make static.
7978 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
7979
7980 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
7981
7982 * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
7983 (m32r_print_operand_address): Delete.
7984 * config/m32r/m32r.h (m32r_punct_chars): Delete.
7985 (PRINT_OPERAND): Delete.
7986 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
7987 (PRINT_OPERAND_ADDRESS): Delete.
7988 * config/m32r/m32r.c (m32r_punct_chars): Make static.
7989 (m32r_print_operand_address): Make static.
7990 (m32r_print_operand): Make static.
7991 (m32r_print_operand_punct_valid_p): New function.
7992 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
7993 (TARGET_PRINT_OPERAND_ADDRESS): Define.
7994
7995 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
7996
7997 * config/iq2000/iq2000-protos.h (print_operand): Delete.
7998 (print_operand_address): Delete.
7999 * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
8000 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
8001 (PRINT_OPERAND_ADDRESS): Delete.
8002 (iq2000_print_operand_punct): Delete.
8003 * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
8004 (iq2000_print_operand_address): Make static.
8005 (iq2000_print_operand): Make static.
8006 (iq2000_print_operand_punct_valid_p): New function.
8007 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
8008 (TARGET_PRINT_OPERAND_ADDRESS): Define.
8009
8010 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
8011
8012 * config/frv/frv-protos.h (frv_print_operand): Delete.
8013 (frv_print_operand_address): Delete.
8014 * config/frv/frv.h (PRINT_OPERAND): Delete.
8015 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
8016 (PRINT_OPERAND_ADDRESS): Delete.
8017 * config/frv/frv.c (frv_print_operand_address): Make static.
8018 (frv_print_operand): Make static.
8019 (frv_print_operand_punct_valid_p): New function.
8020 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
8021 (TARGET_PRINT_OPERAND_ADDRESS): Define.
8022
8023 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
8024
8025 * tree.h (vec_member): Declare.
8026 * tree.c (vec_member): Define.
8027
8028 2010-06-17 Richard Guenther <rguenther@suse.de>
8029
8030 * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
8031 * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
8032
8033 2010-06-17 Richard Guenther <rguenther@suse.de>
8034
8035 * tree-inline.c (declare_return_variable): Remove bogus code.
8036
8037 2010-06-17 Richard Guenther <rguenther@suse.de>
8038
8039 * gimplify.c (gimplify_bind_expr): Always promote complex
8040 and vector variables to registers if possible.
8041
8042 2010-06-17 Richard Guenther <rguenther@suse.de>
8043
8044 * expr.c (get_inner_reference): Use double_int for bit_offset
8045 calculation.
8046
8047 2010-06-16 DJ Delorie <dj@redhat.com>
8048
8049 * common.opt (-fstrict-volatile-bitfields): new.
8050 * doc/invoke.texi: Document it.
8051 * fold-const.c (optimize_bit_field_compare): For volatile
8052 bitfields, use the field's type to determine the mode, not the
8053 field's size.
8054 * expr.c (expand_assignment): Likewise.
8055 (get_inner_reference): Likewise.
8056 (expand_expr_real_1): Likewise.
8057 * expmed.c (store_fixed_bit_field): Likewise.
8058 (extract_bit_field_1): Likewise.
8059 (extract_fixed_bit_field): Likewise.
8060
8061 2010-06-16 Richard Guenther <rguenther@suse.de>
8062
8063 * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
8064
8065 2010-06-16 Douglas B Rupp <rupp@gnat.com>
8066
8067 * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
8068 (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
8069 * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
8070 * debug.c: Likewise.
8071 * sdbout.c: Likewise.
8072 * vmsdbgout.c: Likewise.
8073 * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
8074 * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
8075 * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
8076 (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
8077 * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
8078 * dwarf2out.c (dw_fde_struct): New fields
8079 dw_fde_vms_{end,begin}_prologue.
8080 (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
8081 (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
8082 (dwarf2out_vms_end_prologue): New function.
8083 (dwarf2out_vms_begin_epilogue): New function.
8084 (dw_val_struct): New value dw_val_class_vms_delta.
8085 (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
8086 begin_epilogue for VMS.
8087 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
8088 new static functions.
8089 (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
8090 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
8091 static functions.
8092 (print_die): New case dw_val_class_vms_delta.
8093 (attr_checksum): Likewise.
8094 (same_dw_val_p: Likewise.
8095 (size_of_die): Likewise.
8096 (value_format): Likewise.
8097 (output_die): Likewise.
8098 (gen_subprogram_die): Call add_AT_vms_delta on VMS.
8099 (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
8100 * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
8101 dwarf2out_cfi_begin_epilogue
8102 * final.c (final_scan_insn): Likewise. Call begin_epilogue.
8103
8104 2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
8105
8106 * config/cris/cris-protos.h (cris_print_operand): Delete.
8107 (cris_print_operand_address): Delete.
8108 * config/cris/cris.h (PRINT_OPERAND): Delete.
8109 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
8110 (PRINT_OPERAND_ADDRESS): Delete.
8111 * config/cris/cris.c (cris_print_operand_address): Make static.
8112 (cris_print_operand): Make static.
8113 (cris_print_operand_punct_valid_p): New function.
8114 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
8115 (TARGET_PRINT_OPERAND_ADDRESS): Define.
8116
8117 2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
8118
8119 * config/arm/arm-protos.h (arm_print_operand): Delete.
8120 (arm_print_operand_address): Delete.
8121 * config/arm/arm.h (PRINT_OPERAND): Delete.
8122 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
8123 (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
8124 (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
8125 * config/arm/arm.c (arm_print_operand_address): ...here. New function.
8126 (arm_print_operand): Make static.
8127 (arm_print_operand_punct_valid_p): New function.
8128 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
8129 (TARGET_PRINT_OPERAND_ADDRESS): Define.
8130
8131 2010-06-16 Nick Clifton <nickc@redhat.com>
8132
8133 * config/rx/constraints.md (NEGint4): New constraint.
8134 * config/rx/rx.md (attr cc): Add set_zsc.
8135 (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
8136 initialised.
8137 (cmpsf): Likewise.
8138 (call_internal): Clobber the cc0 register.
8139 (call_value_internal): Likewise.
8140 (cstoresi4): Likewise.
8141 (movsieq): Likewise.
8142 (movsine): Likewise.
8143 (addsi3): Add alternative to handle small negative constants.
8144 (sunsi3): Likewise.
8145 (addsi3): Do not set the O bit in the cc0 register.
8146 (adddi3): Likewise.
8147 (subsi3): Likewise.
8148 (subdi3): Likewise.
8149 (andsi3): Reorder alternatives to prefer shorter forms.
8150 (mulsi3): Likewise.
8151 (iorsi3): Likewise.
8152 (negsi2): Note that the cc0 flags are set.
8153 (rotlsi3): Note that only the Z and S bits are set in cc0.
8154 (lshrsi3): Likewise.
8155 (ashlsi3): Likewise.
8156 (subsf3): Use %Q for the MEM operand.
8157 (fix_truncsfsi2): Likewise.
8158 (floatsisf2): Likewise.
8159 (bitset): Remove early clobber from destination.
8160 (bitset_in_memory): Likewise.
8161 (lrintsf2): Clobber the cc0 register.
8162 * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
8163 (rx_print_operand): Handle %N.
8164
8165 2010-06-16 Jan Hubicka <jh@suse.cz>
8166
8167 * df-core.c (df_compact_blocks): Free problem_temps vector.
8168
8169 2010-06-16 Martin Jambor <mjambor@suse.cz>
8170
8171 PR tree-optimization/43905
8172 * tree-sra.c: Include tree-inline.h.
8173 (create_abstract_origin): Removed.
8174 (modify_function): Version the call graph node instead of creating
8175 abstract origins and dealing with same_body aliases.
8176 * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
8177 function is versionable.
8178 * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
8179
8180 2010-06-16 Maxim Kuvyrkov <maxim@codesourcery.com>
8181
8182 * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
8183 (CHOOSE_DYNAMIC_LINKER): Update.
8184
8185 2010-06-15 Uros Bizjak <ubizjak@gmail.com>
8186
8187 * config/i386/i386.c (*prefetch_sse_<mode>): Macroize insn from
8188 *prefetch_sse and *prefetch_sse_rex using P mode iterator.
8189 (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
8190 *prefetch_3dnow_rex.
8191
8192 2010-06-15 Anatoly Sokolov <aesok@post.ru>
8193
8194 * target.h (struct asm_out):Add declare_constant_name field.
8195 * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
8196 (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
8197 * output.h (default_asm_declare_constant_name): Declare.
8198 (assemble_label): Update prototype.
8199 * varasm.c (assemble_constant_contents): Use
8200 targetm.asm_out.declare_constant_name target hook.
8201 (assemble_label): Add 'file' argument.
8202 (default_asm_declare_constant_name): New function.
8203 * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
8204 * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
8205 (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
8206
8207 * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
8208 * config/darwin.c (darwin_asm_declare_constant_name): New function.
8209 (machopic_output_indirection): Update assemble_label argument list.
8210 * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
8211 (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
8212
8213 2010-06-15 Sebastian Pop <sebastian.pop@amd.com>
8214
8215 PR middle-end/44391
8216 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
8217 size_one_node for pointer types. Do not call gmp_cst_to_tree.
8218
8219 2010-06-15 Richard Guenther <rguenther@suse.de>
8220
8221 * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
8222
8223 2010-06-15 Paul Brook <paul@codesourcery.com>
8224
8225 * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
8226 hard-float ABI.
8227
8228 2010-06-15 Alexandre Oliva <aoliva@redhat.com>
8229
8230 * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
8231 don't get a vector type for output.
8232
8233 2010-06-15 Jakub Jelinek <jakub@redhat.com>
8234
8235 PR fortran/44536
8236 * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
8237 * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
8238 (LANG_HOOKS_DECLS): Add it.
8239 * gimplify.c (omp_notice_variable): Call
8240 lang_hooks.decls.omp_report_decl.
8241
8242 2010-06-15 Martin Jambor <mjambor@suse.cz>
8243
8244 PR lto/44464
8245 * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
8246 on the newly dead SSA name.
8247
8248 2010-06-15 Alan Modra <amodra@gmail.com>
8249
8250 * doc/invoke.texi: Add mcmodel to powerpc options.
8251 * configure.ac: Add HAVE_LD_LARGE_TOC test.
8252 * configure: Regenerate.
8253 * config.in: Regenerate.
8254 * config/rs6000/linux64.opt (mcmodel): New.
8255 * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
8256 (TARGET_CMODEL, SET_CMODEL): Define.
8257 (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
8258 select CMODEL_MEDIUM default.
8259 * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
8260 (TARGET_CMODEL): Define default.
8261 * config/rs6000/rs6000.c (cmodel): New variable.
8262 (rs6000_explicit_options): Add cmodel field.
8263 (rs6000_handle_option): Handle -mcmodel.
8264 (create_TOC_reference): Add largetoc_reg param. Generate high,
8265 lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE. Update all callers.
8266 (rs6000_delegitimize_address): Recognise new toc reference rtl
8267 and minimal-toc rtl.
8268 (rs6000_legitimize_reload_address): Handle new toc references.
8269 (print_operand_address): Handle legitimate_constant_pool_address_p
8270 match before lo_sum.
8271 (rs6000_eliminate_indexed_memrefs): Tidy.
8272 (rs6000_emit_move): Tweak threshold for inlining constants.
8273 Keep rs6000_emit_allocate_stack large stack frame offsets
8274 loaded into r0 inline.
8275 (rs6000_generate_compare <cmptf_internal2>): One more clobber.
8276 (tocrel_base, tocrel_offset): New variables.
8277 (toc_relative_expr_p): Set them here.
8278 (print_operand_address): Skip over any offset on constant pool address.
8279 (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
8280 (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
8281 (offsettable_ok_by_alignment): New function.
8282 (rs6000_emit_move): Address suitably aligned local symbol_refs
8283 relative to the toc pointer for -mcmodel=medium.
8284 (legitimate_constant_pool_address_p): Make param const_rtx. Add
8285 strict param. Allow lo_sum version of addressing. Verify reg
8286 used for -mminimal-toc and -mcmodel != small. Update all callers.
8287 * config/rs6000/constraints.md: Update for above change.
8288 * config/rs6000/predicates.md: Likewise.
8289 * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
8290 code.
8291 (tls_gd): Split for -mcmodel=medium/large.
8292 (tls_gd_high, tls_gd_low): New.
8293 (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
8294 (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
8295 (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
8296 (largetoc_high, largetoc_low): New.
8297 (cmptf_internal2): Add clobber.
8298 * config/rs6000/rs6000-protos.h: Update.
8299
8300 2010-06-14 Changpeng Fang <changpeng.fang@amd.com>
8301
8302 * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New. Return
8303 true if no prefetch is going to be generated for a given group.
8304 (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
8305 estimate the prefetch_count.
8306 (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
8307 prefetch count by considering the unroll_factor and prefetch_mod
8308 for is_loop_prefetching_profitable.
8309
8310 2010-06-14 Andreas Schwab <schwab@linux-m68k.org>
8311
8312 * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
8313 anything if the argument is not a MEM.
8314
8315 2010-06-14 Alexandre Oliva <aoliva@redhat.com>
8316
8317 PR debug/43650
8318 PR debug/44181
8319 PR debug/44247
8320 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
8321 debug stmts.
8322 (canonicalize_loop_ivs): Likewise.
8323
8324 2010-06-14 Alexandre Oliva <aoliva@redhat.com>
8325
8326 PR debug/43656
8327 * haifa-sched.c (setup_insn_reg_pressure_info,
8328 update_register_pressure): Reject debug insns.
8329 (ready_sort): Don't setup reg pressure for debug insns.
8330 (schedule_insn): Don't update reg pressure for debug insns.
8331
8332 2010-06-14 Richard Guenther <rguenther@suse.de>
8333
8334 * lto-streamer.c (cached_bp): Remove.
8335 (bitpack_delete): Likewise.
8336 (bitpack_create): Likewise.
8337 (bp_get_next_word): Likewise.
8338 (bp_pack_value, bp_unpack_value): Move ...
8339 * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
8340 Re-implement.
8341 (struct bitpack_d): Likewise.
8342 (bitpack_create, lto_output_bitpack, lto_input_bitpack):
8343 New inline functions.
8344 * lto-streamer-out.c (lto_output_bitpack): Remove.
8345 (pack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
8346 (pack_value_fields): Adjust.
8347 (lto_write_tree): Likewise.
8348 (output_gimple_stmt): Likewise.
8349 (output_function): Likewise.
8350 * lto-streamer-in.c (input_gimple_stmt): Adjust.
8351 (input_function): Likewise.
8352 (unpack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
8353 (lto_input_bitpack): Remove.
8354 (lto_materialize_tree): Adjust.
8355 * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
8356 * lto-cgraph.c (lto_output_edge): Adjust.
8357 (lto_output_node): Likewise.
8358 (lto_output_varpool_node): Likewise.
8359 (lto_output_ref): Likewise.
8360 (input_node): Likewise.
8361 (input_varpool_node): Likewise.
8362 (input_ref): Likewise.
8363 (input_edge): Likewise.
8364 (output_node_opt_summary): Likewise.
8365 (input_node_opt_summary): Likewise.
8366 * ipa-pure-const.c (pure_const_write_summary): Likewise.
8367 (pure_const_read_summary): Likewise.
8368 * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
8369 (ipa_read_indirect_edge_info): Likewise.
8370 (ipa_write_node_info): Likewise.
8371 (ipa_read_node_info): Likewise.
8372
8373 2010-06-14 H.J. Lu <hongjiu.lu@intel.com>
8374
8375 PR target/44534
8376 * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
8377 (vec_extract_lo_v16hi): Likewise.
8378 (vec_extract_lo_v32qi): Likewise.
8379
8380 2010-06-14 Jakub Jelinek <jakub@redhat.com>
8381
8382 PR bootstrap/44426
8383 * tree.h (build_call_expr): Don't define as vararg macro, instead
8384 add a prototype.
8385 * builtins.c (build_call_nofold): Remove.
8386 (expand_builtin_int_roundingfn, expand_builtin_pow,
8387 expand_builtin_mempcpy_args, expand_builtin_stpcpy,
8388 expand_builtin_memset_args, expand_builtin_strcmp,
8389 expand_builtin_strncmp, expand_builtin_memory_chk): Use
8390 build_call_nofold_loc instead of build_call_nofold.
8391 (build_call_expr): New function.
8392
8393 PR tree-optimization/44508
8394 * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
8395 * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
8396 don't eliminate trivially dead stmts.
8397 * tree-vrp.c (vrp_finalize): Pass false as last argument
8398 to substitute_and_fold.
8399 * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
8400 to substitute_and_fold.
8401 * tree-ssa-ccp.c (ccp_finalize): Likewise.
8402
8403 PR bootstrap/44509
8404 * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
8405
8406 2010-06-14 Ira Rosen <irar@il.ibm.com>
8407
8408 PR tree-optimization/44507
8409 * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
8410 to build initial vector for BIT_AND_EXPR.
8411 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
8412
8413 2010-06-14 Jakub Jelinek <jakub@redhat.com>
8414
8415 * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
8416 adjust z10prop set_attr.
8417
8418 2010-06-13 Jan Hubicka <jh@suse.cz>
8419
8420 * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
8421 bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
8422 bitmap_ior_into, bitmap_xor, bitmap_xor_into,
8423 bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
8424 datastructure checks into checking asserts.
8425 * rtlanal.c (find_reg_note): Use gcc_checking_assert.
8426 * tree-ssa-sccvn.c (VN_INFO): Likewise.
8427 * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
8428 df_ref_create_structure): Likewise.
8429 * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
8430 pool_free): Use gcc_checking_assert.
8431 * alias.c (get_alias_set): Likewise.
8432 * var-tracking.c (variable_htab_free, shared_hash_copy,
8433 canonicalize_values_mark, variable_merge_over_cur): Likewise.
8434 * lto-streamer.c (bp_unpack_value): Likewise.
8435
8436 2010-06-13 Richard Guenther <rguenther@suse.de>
8437
8438 * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
8439 Do not stream but initialize TYPE_CANONICAL to NULL.
8440 (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
8441 * gimple.c (gimple_types_compatible_p): Disregard
8442 TYPE_STRUCTURAL_EQUALITY_P.
8443 (gimple_register_type): Use TYPE_CANONICAL as cache.
8444 * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
8445 before registering common types.
8446 * config/i386/i386.c (ix86_function_arg_boundary): Do not
8447 use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
8448 * tree.h (TYPE_CANONICAL): Clarify documentation.
8449
8450 2010-06-13 Anatoly Sokolov <aesok@post.ru>
8451
8452 * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
8453 LIBCALL_VALUE): Remove macros.
8454 * config/ia64/ia64-protos.h (ia64_function_value): Remove.
8455 * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8456 TARGET_FUNCTION_VALUE_REGNO_P): Define.
8457 (ia64_libcall_value, ia64_function_value_regno_p): New functions.
8458 (ia64_function_value): Make static. Handle receiving the function
8459 type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
8460
8461 2010-06-12 Jan Hubicka <jh@suse.cz>
8462
8463 * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
8464 at correct place.
8465
8466 2010-06-12 Bernd Schmidt <bernds@codesourcery.com>
8467
8468 * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
8469
8470 2010-06-12 Jan Hubicka <jh@suse.cz>
8471
8472 * df-core.c (df_clear_bb_info): New function.
8473 (df_set_blocks): bb_info is always allocated.
8474 (df_get_bb_info): Use block_info_elt_size.
8475 (df_set_bb_info): Likewise.
8476 (df_compact_blocks): Update for new block_info.
8477 (grow_bb_info): New function.
8478 * df-problems.c (df_grow_bb_info): Move to df-core.c
8479 (df_rd_set_bb_info): Remove.
8480 (df_rd_free_bb_info): Do not free block pool.
8481 (df_rd_alloc): Do not create pool, use check for
8482 obstack presence instead of NULL pointer for new blocks.
8483 (df_rd_free): DO not free alloc pool; clear block_info.
8484 (problem_RD): Add size of block info structure.
8485 (df_lr_set_bb_info): Remove.
8486 (df_lr_free_bb_info): Do not free block pool.
8487 (df_lr_alloc): Do not create pool, use check for
8488 obstack presence instead of NULL pointer for new blocks.
8489 (df_lr_free): DO not free alloc pool; clear block_info.
8490 (problem_LR): Add size of block info structure.
8491 (df_live_set_bb_info): Remove.
8492 (df_live_free_bb_info): Do not free block pool.
8493 (df_live_alloc): Do not create pool, use check for
8494 obstack presence instead of NULL pointer for new blocks.
8495 (df_live_free): DO not free alloc pool; clear block_info.
8496 (problem_LIVE): Add size of block info structure.
8497 (problem_CHAIN): Add size of block info structure.
8498 (df_byte_lr_set_bb_info): Remove.
8499 (df_byte_lr_free_bb_info): Do not free block pool.
8500 (df_byte_lr_alloc): Do not create pool, use check for
8501 obstack presence instead of NULL pointer for new blocks.
8502 (df_byte_lr_free): DO not free alloc pool; clear block_info.
8503 (problem_BYTE_LR): Add size of block info structure.
8504 (problem_NOTE): Add size of block info structure.
8505 (df_byte_MD_set_bb_info): Remove.
8506 (df_byte_MD_free_bb_info): Do not free block pool.
8507 (df_byte_MD_alloc): Do not create pool, use check for
8508 obstack presence instead of NULL pointer for new blocks.
8509 (df_byte_MD_free): DO not free alloc pool; clear block_info.
8510 (problem_BD): Add size of block info structure.
8511 * df-scan.c (df_scan_free_internal): Free block pool.
8512 (df_scan_set_bb_info): Remove.
8513 (df_scan_free_bb_info): Check for artificial_defs instead
8514 of bb_info being non-NULL.
8515 (df_scan_alloc): DO not create df_scan_block pool.
8516 (problem_SCAN): Set size of block info.
8517 (df_bb_refs_record): Do not allocate bb_info.
8518 * df.h (df_problem): Add block_info_elt_size.
8519 (struct dataflow): Change block_info to void *.
8520 (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
8521 df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
8522 in-line structures.
8523
8524 2010-06-12 Jan Hubicka <jh@suse.cz>
8525
8526 PR tree-optimize/44485
8527 * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
8528 containing use of return value of noreturn function.
8529
8530 2010-06-12 Anatoly Sokolov <aesok@post.ru>
8531
8532 * targhooks.c (default_function_value): Don't use
8533 FUNCTION_OUTGOING_VALUE.
8534 * system.h (FUNCTION_OUTGOING_VALUE): Poison.
8535 * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
8536
8537 2010-06-12 Kazu Hirata <kazu@codesourcery.com>
8538
8539 * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
8540 Add crtfastmath.o to extra_parts.
8541 * config/mips/crtfastmath.c: New.
8542 * config/mips/linux.h (ENDFILE_SPEC): New.
8543
8544 2010-06-12 Sebastian Pop <sebastian.pop@amd.com>
8545
8546 * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
8547 old_type in parameter.
8548 (gcc_type_for_value): Update call to gcc_type_for_interval.
8549 (compute_type_for_level_1): Renamed compute_type_for_level.
8550 Update call to gcc_type_for_interval.
8551
8552 2010-06-11 Joseph Myers <joseph@codesourcery.com>
8553
8554 * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
8555 flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
8556
8557 2010-06-11 Joseph Myers <joseph@codesourcery.com>
8558
8559 * opts-common.c: Include options.h.
8560 (integral_argument): Move from opts.c.
8561 (decode_cmdline_option): New. Based on read_cmdline_option.
8562 * opts.c (integral_argument): Move to opts-common.c.
8563 (read_cmdline_option): Move most contents to
8564 decode_cmdline_option. Use %qs in diagnostics.
8565 * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
8566 CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
8567 decode_cmdline_option): New.
8568
8569 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
8570
8571 PR target/44481
8572 * config/i386/i386.md (UNSPEC_PARITY): New unspec.
8573 (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
8574 (partiysi2_cmp): Ditto.
8575 (*partiyhi2_cmp): Ditto.
8576 (*parityqi2_cmp): Remove.
8577
8578 2010-06-11 Jan Hubicka <jh@suse.cz>
8579
8580 * bitmap.h (bmp_iter_next_bit): New.
8581 (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
8582
8583 2010-06-11 Sandra Loosemore <sandra@codesourcery.com>
8584 Eric Botcazou <ebotcazou@adacore.com>
8585
8586 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
8587 computed cost.
8588
8589 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
8590
8591 * config/i386/i386.md (unspec): New define_c_enum.
8592 (unspecv): Ditto.
8593
8594 2010-06-10 Jakub Jelinek <jakub@redhat.com>
8595
8596 * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
8597
8598 2010-06-11 Sebastian Pop <sebastian.pop@amd.com>
8599
8600 PR middle-end/44483
8601 * tree-if-conv.c (bb_predicate_s): New struct.
8602 (bb_predicate_p): New.
8603 (bb_has_predicate): New.
8604 (bb_predicate): New.
8605 (set_bb_predicate): New.
8606 (bb_predicate_gimplified_stmts): New.
8607 (set_bb_predicate_gimplified_stmts): New.
8608 (add_bb_predicate_gimplified_stmts): New.
8609 (init_bb_predicate): New.
8610 (free_bb_predicate): New.
8611 (is_predicated): Use bb_predicate.
8612 (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
8613 (predicate_bbs): Same. Gimplify the condition of the basic blocks
8614 before processing their successors.
8615 (clean_predicate_lists): Removed.
8616 (find_phi_replacement_condition): Use bb_predicate.
8617 (process_phi_nodes): Renamed ifconvert_phi_nodes. Avoid useless
8618 computations.
8619 (insert_gimplified_predicates): New.
8620 (combine_blocks): Call insert_gimplified_predicates.
8621 (tree_if_conversion): Call free_bb_predicate instead of
8622 clean_predicate_lists.
8623
8624 2010-10-11 Paul Brook <paul@codesourcery.com>
8625
8626 * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
8627 * config/arm/arm.c (all_architectures): Change v7e-m default to
8628 cortexm4.
8629 * config/arm/arm-cores.def: Add cortex-m4.
8630 * config/arm/arm-tune.md: Regenerate.
8631
8632 2010-06-11 Jan Hubicka <jh@suse.cz>
8633
8634 * ipa-pure-const.c (special_builtlin_state): New function.
8635 (check_call): Use it instead of special casign BUILT_IN_RETURN.
8636 (propagate_pure_const): Use it.
8637
8638 2010-06-11 Jan Hubicka <jh@suse.cz>
8639
8640 * df-problems.c (df_live_scratch): Convert to bitmap_head.
8641 (df_live_alloc): Initialize df_live_scratch when initializing
8642 problem_data.
8643 (df_live_transfer_function): Update uses of df_live_scratch.
8644 (df_live_free): Free problem_data; clear df_live_scratch before
8645 releasing the obstack.
8646 (df_md_free): Free problem data.
8647
8648 2010-06-11 Jan Hubicka <jh@suse.cz>
8649
8650 * doc/invoke.texi (Wsuggest-attribute): Document.
8651 (Wmissing-noreturn): Remove.
8652 * ipa-pure-const.c (warn_function_noreturn): New function.
8653 * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
8654 warn_missing_noreturn.
8655 * common.opt (Wsuggest-attribute=noreturn): New.
8656 * tree-flow.h (warn_function_noreturn): Declare.
8657 * tree-cfg.c (execute_warn_function_noreturn): Use
8658 warn_function_noreturn.
8659 (gate_warn_function_noreturn): New.
8660 (pass_warn_function_noreturn): Update.
8661
8662 2010-06-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
8663
8664 * c-typeck.c (handle_warn_cast_qual): Add loc
8665 parameter. Improve warning message.
8666 (build_c_cast): Pass location to handle_warn_cast_qual.
8667
8668 2010-06-11 Uros Bizjak <ubizjak@gmail.com>
8669
8670 * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
8671 that operand 0 == operand 1. Use x86_maybe_negate_const_int to output
8672 insn mnemonic.
8673 (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
8674
8675 2010-06-10 Dodji Seketeli <dodji@redhat.com>
8676
8677 Fix bootstap on mips
8678 * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
8679 be naming typedefs.
8680
8681 2010-06-11 Kai Tietz <kai.tietz@onevision.com>
8682
8683 * system.h (helper_const_non_const_cast): New inline for
8684 gcc version <= 4.0.
8685 (CONST_CAST2): For gcc version <= 4.0 use
8686 new helper to do const/non-const casting.
8687
8688 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
8689
8690 * doc/md.texi: Document the "unspec" and "unspecv" enum names.
8691 * Makefile.in (OBJS-common): Include insn-enums.o.
8692 (insn-enums.o): New rule.
8693 (simple_generated_c): Add insn-enums.c.
8694 (build/genenums.o): New rule.
8695 (genprogmd): Add "enums".
8696 * genconstants.c (print_enum_type): Declare a C string array
8697 for each enum.
8698 * genenums.c: New file.
8699 * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
8700 for UNSPEC_VOLATILE. If defined, use the "unspec" enum for both
8701 UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
8702
8703 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
8704
8705 * doc/md.texi (define_enum_attr): Document.
8706 * rtl.def (DEFINE_ENUM_ATTR): New rtx.
8707 * read-md.h (lookup_enum_type): Declare.
8708 * read-md.c (lookup_enum_type): New function.
8709 * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
8710 * genattrtab.c (attr_desc): Add an enum_name field.
8711 (evaluate_eq_attr): Take the associated attribute as argument.
8712 Get the enum prefix from the enum_name field, if defined.
8713 Use ACONCAT rather than a fixed-length buffer. Update recursive calls.
8714 (simplify_test_exp): Pass attr to evaluate_eq_attr.
8715 (add_attr_value): New function, split out from...
8716 (gen_attr): ...here. Handle DEFINE_ENUM_ATTR.
8717 (write_test_expr): Pass attr to evaluate_eq_attr.
8718 (write_attr_get): Use the enum_name as the enum tag, if defined.
8719 (write_attr_valueq): Use the enum_name as a prefix, if defined.
8720 (find_attr): Initialize enum_name.
8721 (main): Handle DEFINE_ENUM_ATTR.
8722 * gensupport.c (process_rtx): Likewise.
8723 * config/mips/mips.h (mips_tune_attr): Delete.
8724 * config/mips/mips.md (cpu): Use define_attr_enum.
8725
8726 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
8727
8728 * doc/md.texi (define_c_enum, define_enum): Document.
8729 * read-md.h (md_constant): Add a parent_enum field.
8730 (enum_value, enum_type): New structures.
8731 (upcase_string, traverse_enum_types): Declare.
8732 * read-md.c (enum_types): New variable.
8733 (upcase_string, add_constant): New functions.
8734 (handle_constants): Don't create the hash table here.
8735 Use add_constant.
8736 (traverse_md_constants): Don't check for a null md_constants.
8737 (decimal_string, handle_enum, traverse_enum_types): New functions.
8738 (read_md_files): Initialize md_constants and md_enums.
8739 * genconstants.c (print_md_constant): Ignore info argument.
8740 Only print constants that belong to no enum.
8741 (print_enum_type): New function.
8742 (main): Don't pass stdout to print_md_constant. Call print_enum_type
8743 for each defined enum type.
8744 * config/mips/mips.md (processor): New define_enum.
8745 (unspec): New define_c_enum.
8746 (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
8747 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
8748 (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
8749 (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
8750 (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
8751 (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
8752 (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
8753 (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
8754 (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
8755 (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
8756 (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
8757 (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
8758 (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
8759 (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
8760 (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
8761 (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
8762 (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
8763 (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
8764 (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
8765 (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
8766 (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
8767 (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
8768 (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
8769 (UNSPEC_RDDSP): Move to mips-dsp.md.
8770 (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
8771 (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
8772 (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
8773 (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
8774 (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
8775 (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
8776 (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
8777 (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
8778 (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
8779 (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
8780 (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
8781 (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
8782 (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
8783 Moved to mips-dspr2.md.
8784 (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
8785 (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
8786 (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
8787 (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
8788 (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
8789 (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
8790 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
8791 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
8792 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
8793 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
8794 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
8795 UNSPEC_LOONGSON_PSADBH)
8796 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
8797 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
8798 (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
8799 (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
8800 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
8801 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
8802 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
8803 (cpu): Update comment.
8804 * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
8805 (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
8806 (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
8807 (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
8808 * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
8809 UNSPEC_LOONGSON_PCMPEQ)
8810 (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
8811 UNSPEC_LOONGSON_PINSR_0)
8812 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
8813 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
8814 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
8815 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
8816 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
8817 UNSPEC_LOONGSON_PSADBH)
8818 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
8819 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
8820 (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
8821 * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
8822 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
8823 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
8824 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
8825 * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
8826 (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
8827 (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
8828 (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
8829 (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
8830 (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
8831 (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
8832 (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
8833 (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
8834 (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
8835 (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
8836 (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
8837 (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
8838 (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
8839 (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
8840 (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
8841 (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
8842 (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
8843 (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
8844 (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
8845 (UNSPEC_RDDSP): Moved from mips.md.
8846 * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
8847 (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
8848 (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
8849 (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
8850 (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
8851 (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
8852 (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
8853 (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
8854 (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
8855 (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
8856 (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
8857 (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
8858 (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
8859 (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
8860 * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
8861 (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
8862 (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
8863 (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
8864 (UNSPEC_SCC): Moved from mips.md.
8865 * config/mips/mips.c (mips_arch, mips_tune): Change enum from
8866 "processor_type" to "processor".
8867 (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
8868 * config/mips/mips.h (processor_type): Delete.
8869 (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
8870 "processor_type" to "processor".
8871
8872 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
8873
8874 * configure.ac (tm_include_list): Add insn-constants.h.
8875 * configure: Regenerate.
8876 * Makefile.in (GTM_H): Move insn-constants.h here from...
8877 (TM_H): ...here.
8878 * mkconfig.sh: Remove special handling for insn-constants.h.
8879
8880 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
8881
8882 * Makefile.in (BUILD_RTL): Move build/read-md.o to...
8883 (BUILD_MD): ...this new variable.
8884 (simple_generated_rtl_h, simple_generated_rtl_c): New variables
8885 that include the old contents of simple_generated_h and
8886 simple_generated_c.
8887 (simple_generated_h, simple_generated_c): Include them. Add
8888 insn-constants.h.
8889 (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
8890 and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
8891 Remove these dependencies from the main rule and include
8892 insn-conditions.md in the command line only if it appears
8893 in the dependency list.
8894 (insn-constants.h, s-constants): Delete.
8895 (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
8896 or gensupport.h.
8897 (build/genmddeps.o): Likewise.
8898 (genprogrtl): New variable that contains everything from genprogmd
8899 except mddeps and constants.
8900 (genprogmd): Redefine in terms of genprogrtl. Make these programs
8901 depend on $(BUILD_MD)
8902 (genprog): New variable. Make these programs depend on
8903 $(BUILD_ERRORS).
8904 * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
8905 (main): Use read_md_files instead of init_rtx_reader_args.
8906 * genconstants.c: As for genmddeps.c.
8907 * read-md.h (read_skip_construct): Declare.
8908 * read-md.c (read_skip_construct): New function.
8909 (handle_file): Allow a null handle_directive, skipping the
8910 construct if so.
8911 (parse_include): Update the comment accordingly.
8912
8913 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
8914
8915 * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
8916 * genmddeps.c: Include read-md.h.
8917 (main): Call init_rtx_reader_args instead of init_md_reader_args.
8918 * genattr.c (main): Likewise.
8919 * genattrtab.c (main): Likewise.
8920 * genautomata.c (main): Likewise.
8921 * gencodes.c (main): Likewise.
8922 * genconditions.c (main): Likewise.
8923 * genconfig.c (main): Likewise.
8924 * genconstants.c (main): Likewise.
8925 * genemit.c (main): Likewise.
8926 * genextract.c (main): Likewise.
8927 * genflags.c (main): Likewise.
8928 * genopinit.c (main): Likewise.
8929 * genoutput.c (main): Likewise.
8930 * genpeep.c (main): Likewise.
8931 * genrecog.c (main): Likewise.
8932 * genpreds.c (main): Likewise.
8933 * gensupport.h (in_fname): Move to read-md.h.
8934 (init_md_reader_args_cb): Rename to...
8935 (init_rtx_reader_args_cb): ...this and return a bool.
8936 (init_md_reader_args): Rename to...
8937 (init_rtx_reader_args): ...this and return a bool.
8938 (include_callback): Move to read-md.h.
8939 * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
8940 (file_name_list, first_dir_md_include): Move to read-md.c
8941 (first_bracket_include): Delete unused variable.
8942 (last_dir_md_include): Move to read-md.c.
8943 (process_include): Delete, moving code to read-md.c:handle_include.
8944 (process_rtx): Don't handle INCLUDE.
8945 (save_string): Delete.
8946 (rtx_handle_directive): New function.
8947 (init_md_reader_args_cb): Rename to...
8948 (init_rtx_reader_args_cb): ...this and return a boolean success value.
8949 Use read_md_args.
8950 (init_md_reader_args): Rename to...
8951 (init_rtx_reader_args): ...this and return a boolean success value.
8952 * rtl.def (INCLUDE): Delete.
8953 * rtl.h (read_rtx): Remove "int *" argument. Add "const char *"
8954 argument.
8955 * read-rtl.c (read_conditions): Don't gobble ')' here.
8956 (read_mapping): Likewise.
8957 (read_rtx): Remove LINENO argument. Add RTX_NAME argument.
8958 Handle top-level non-rtx constructs here rather than in read_rtx_1.
8959 Store the whole queue in *X. Remove call to init_md_reader.
8960 (read_rtx_1): Rename to...
8961 (read_rtx_code): ...this. Call read_nested_rtx to read subrtxes.
8962 Don't handle top-level non-rtx constructs here. Don't handle (nil)
8963 here.
8964 (read_nested_rtx): New function. Handle (nil) here rather than
8965 in read_rtx_code.
8966 (read_rtx_variadic): Call read_nested_rtx to read subrtxes. Don't
8967 gobble ')' here.
8968 * read-md.h (directive_handler_t): New type.
8969 (in_fname, include_callback): Moved from read-md.h.
8970 (read_constants, init_md_reader): Delete.
8971 (read_md_files): Declare.
8972 * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
8973 (last_dir_md_include_ptr, include_callback, max_include_len): Moved
8974 from gensupport.c.
8975 (read_constants): Rename to...
8976 (handle_constants): ...this. Don't gobble ')' here.
8977 (handle_include, handle_file, handle_toplevel_file)
8978 (parse_include): New functions, mostly taken from gensupport.c.
8979 (init_md_reader): Subsume into...
8980 (read_md_files): ...this new function.
8981
8982 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
8983
8984 * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
8985 (unread_char): Decrement read_md_lineno after putting back '\n'.
8986 * read-md.c (fatal_with_file_and_line): Push back any characters
8987 that we decide not to add to the context.
8988 (read_skip_spaces): Don't increment read_md_lineno here. Avoid using
8989 fatal_expected_char in cases where '/' ends a line (for example).
8990 (read_name): Don't increment read_md_lineno here.
8991 (read_escape): Likewise.
8992 (read_quoted_string): Likewise.
8993 (read_braced_string): Likewise.
8994
8995 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
8996
8997 * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
8998 (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
8999 * genconstants.c: Include read-md.h.
9000 * read-rtl.c (md_constants): Move to read-md.c.
9001 (md_name): Move to read-md.h.
9002 (initialize_iterators): Use leading_string_hash instead of def_hash
9003 and leading_string_eq_p instead of def_name_eq_p.
9004 (read_name): Move to read-md.c.
9005 (def_hash, def_name_eq_p): Delete.
9006 (read_constants, traverse_md_constants): Move to read-md.c.
9007 * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
9008 * read-md.h: Include hashtab.h.
9009 (md_name): Moved from read-rtl.c.
9010 (md_constant): Moved from read-md.h.
9011 (leading_string_hash, leading_string_eq_p, read_name)
9012 (read_constants, traverse_md_constants): Declare.
9013 * read-md.c (md_constants): Moved from read-rtl.c.
9014 (leading_string_hash, leading_string_eq_p): New functions.
9015 (read_name, read_constants, traverse_md_constants): Moved from
9016 read-rtl.c.
9017
9018 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
9019
9020 * read-rtl.c (md_name): New structure.
9021 (read_name): Take an md_name instead of a buffer pointer.
9022 Use the "string" field instead of strcpy when expanding constants.
9023 (read_constants): Remove the tmp_char argument. Update the calls
9024 to read_name, using two local name buffers instead of the tmp_char
9025 argument. Merge the constant-creation code.
9026 (read_conditions): Remove the tmp_char argument. Update the calls
9027 to read_name, using a local name buffer instead of the tmp_char
9028 argument.
9029 (read_mapping): Replace tmp_char variable with a local name buffer.
9030 Update the calls to read_name.
9031 (read_rtx_1): Likewise. Update the calls to read_constants and
9032 read_conditions.
9033
9034 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
9035
9036 * Makefile.in (build/read-md.o): Depend on errors.h.
9037 * read-md.h (error_with_line): Declare.
9038 * read-md.c: Include errors.h.
9039 (message_with_line_1): New function, extracted from...
9040 (message_with_line): ...here.
9041 (error_with_line): New function.
9042 * genattrtab.c: If a call to message_with_line is followed by
9043 "have_error = 1;", replace both statements with a call to
9044 error_with_line.
9045 * genoutput.c: Likewise.
9046 * genpreds.c: Likewise.
9047 * genrecog.c: If a call to message_with_line is followed by
9048 "error_count++;", replace both statements with a call to
9049 error_with_line.
9050 (errorcount): Delete.
9051 (main): Don't check it.
9052 * gensupport.c: If a call to message_with_line is followed by
9053 "errors = 1;", replace both statements with a call to error_with_line.
9054 (errors): Delete.
9055 (process_define_cond_exec): Check have_error instead of errors.
9056 (init_md_reader_args_cb): Likewise. Don't set errors.
9057
9058 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
9059
9060 * read-md.h (read_md_file): Declare.
9061 (read_char, unread_char): New functions.
9062 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
9063 (read_quoted_string, read_string): Remove FILE * argument.
9064 * read-md.c (read_md_file): New variable.
9065 (read_md_filename, read_md_lineno): Update comments and remove
9066 unnecessary initialization.
9067 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
9068 (read_escape, read_quoted_string, read_braced_string, read_string):
9069 Remove FILE * argument. Update calls accordingly, using read_char
9070 and unread_char instead of getc and ungetc.
9071 * rtl.h (read_rtx): Remove FILE * argument.
9072 * read-rtl.c (iterator_group): Remove FILE * argument from
9073 "find_builtin".
9074 (iterator_traverse_data): Remove "infile" field.
9075 (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
9076 (add_mapping, read_name, read_constants, read_conditions)
9077 (validate_const_int, find_iterator, read_mapping, check_code_iterator)
9078 (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
9079 Remove file arguments from all calls, using read_char and unread_char
9080 instead of getc and ungetc.
9081 * gensupport.c (process_include): Preserve read_md_file around
9082 the include. Set read_md_file to the handle of the included file.
9083 Update call to read_rtx.
9084 (init_md_reader_args_cb): Set read_md_file to the handle of the file
9085 and remove local FILE *. Update calls to read_rtx.
9086
9087 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
9088
9089 * read-md.h (read_rtx_lineno): Rename to...
9090 (read_md_lineno): ...this.
9091 (read_rtx_filename): Rename to...
9092 (read_md_filename): ...this.
9093 (copy_rtx_ptr_loc): Rename to...
9094 (copy_md_ptr_loc): ...this.
9095 (print_rtx_ptr_loc): Rename to...
9096 (print_md_ptr_loc): ...this.
9097 * read-md.c: Likewise. Update references after renaming.
9098 (string_obstack): Replace RTL with MD in comment.
9099 (set_rtx_ptr_loc): Rename to...
9100 (set_md_ptr_loc): ...this.
9101 (get_rtx_ptr_loc): Rename to...
9102 (get_md_ptr_loc): ...this.
9103 * genconditions.c: Update references after renaming.
9104 * genemit.c: Likewise.
9105 * genoutput.c: Likewise.
9106 * genpreds.c: Likewise.
9107 * gensupport.c: Likewise.
9108 * read-rtl.c: Likewise.
9109
9110 2010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
9111
9112 * Makefile.in (READ_MD_H): New variable.
9113 (BUILD_RTL): Add build/read-md.o.
9114 (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
9115 (build/gensupport.o, build/read-rtl.o, build/genattr.o)
9116 (build/genattrtab.o, build/genconditions.o build/genemit.o)
9117 (build/genextract.o, build/genflags.o, build/genoutput.o)
9118 (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
9119 (build/read-md.o): New rule.
9120 * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
9121 (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
9122 * coretypes.h: ...here.
9123 * lto-wrapper.c: Include coretypes.h instead of defaults.h.
9124 * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
9125 * genattr.c: Include read-md.h.
9126 * genattrtab.c: Likewise.
9127 * genconditions.c: Likewise.
9128 * genemit.c: Likewise.
9129 * genextract.c: Likewise.
9130 * genflags.c: Likewise.
9131 * genoutput.c: Likewise.
9132 * genpreds.c: Likewise.
9133 * genrecog.c: Likewise.
9134 * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
9135 (join_c_conditions, print_c_condition, read_rtx_filename)
9136 (read_rtx_lineno): Move to read-md.h.
9137 * read-rtl.c: Include read-md.h.
9138 (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
9139 (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
9140 (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
9141 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
9142 (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
9143 (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
9144 (read_braced_string, read_string): Move to read-md.c.
9145 (read_rtx): Move some initialization to init_md_reader and call
9146 init_md_reader here.
9147 * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
9148 Move to read-md.h.
9149 * gensupport.c: Include read-md.h.
9150 (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
9151 * read-md.h, read-md.c: New files.
9152
9153 2010-06-10 Anatoly Sokolov <aesok@post.ru>
9154
9155 * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
9156 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
9157 * config/moxie/moxie-protos.h (moxie_function_value): Remove.
9158 * config/moxie/moxie.c (moxie_function_value): Make static.
9159 (moxie_libcall_value, moxie_function_value_regno_p): New functions.
9160 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9161
9162 2010-06-10 Martin Jambor <mjambor@suse.cz>
9163
9164 * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
9165 * dbgcnt.def (tree_sra): New counter.
9166 * tree-sra.c: Include dbgcnt.h.
9167 (gate_intra_sra): Check tree_sra debug counter.
9168
9169 2010-06-10 Martin Jambor <mjambor@suse.cz>
9170
9171 PR tree-optimization/44258
9172 * tree-sra.c (build_access_subtree): Return false iff there is a
9173 partial overlap.
9174 (build_access_trees): Likewise.
9175 (analyze_all_variable_accesses): Disqualify candidates if
9176 build_access_trees returns true for them.
9177
9178 2010-06-10 Alexandre Oliva <aoliva@redhat.com>
9179
9180 PR debug/41371
9181 * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
9182 tail-recurse into canonical node. Fast-forward over
9183 non-canonical VALUEs.
9184
9185 2010-06-10 H.J. Lu <hongjiu.lu@intel.com>
9186
9187 PR boostrap/44470
9188 * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
9189 (*addsi_1_zext) <TYPE_LEA>: Likewise.
9190 (add lea splitter): Likewise.
9191 (add_zext lea splitter): Likewise.
9192
9193 2010-06-10 Joseph Myers <joseph@codesourcery.com>
9194
9195 * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
9196
9197 2010-06-10 Jan Hubicka <jh@suse.cz>
9198
9199 * df-problems.c (df_live_problem_data): Add live_bitmaps.
9200 (df_live_alloc): Initialize problem data and live_osbtacks.
9201 (df_live_finalize): Remove obstack, problem data; do not
9202 clear all bitmaps.
9203 (df_live_top_dump, df_live_bottom_dump): Do not dump old
9204 data when not allocated.
9205 (df_live_verify_solution_start): Do not allocate problem data.
9206 (df_live_verify_solution_end): Check if out is allocated.
9207 (struct df_md_problem_data): New structure.
9208 (df_md_alloc): Allocate problem data.
9209 (df_md_free): Free problem data; do not clear bitmaps.
9210
9211 2010-06-10 Jan Beulich <jbeulich@novell.com>
9212
9213 PR bootstrap/37304
9214 * configure.ac: Replace $() with ${} when intending to expand
9215 variables rather than invoking commands.
9216 * configure: Re-generate.
9217
9218 2010-06-10 Jan Hubicka <jh@suse.cz>
9219
9220 PR rtl-optimization/44460
9221 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
9222 TYPE_NEEDS_CONSTRUCTING sanity check.
9223
9224 2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
9225
9226 * doc/include/fdl.texi: Move to GFDL version 1.3.
9227
9228 * doc/cpp.texi: Move to GFDL version 1.3.
9229 * doc/gcc.texi: Move to GFDL version 1.3. Fix copyright years.
9230 * doc/gccint.texi: Move to GFDL version 1.3.
9231 * doc/gcov.texi: Move to GFDL version 1.3. Update copyright years.
9232 * doc/install.texi: Move to GFDL version 1.3. Fix copyright years.
9233 * doc/invoke.texi: Move to GFDL version 1.3.
9234
9235 2010-06-09 Jan Hubicka <jh@suse.cz>
9236
9237 * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
9238 Break out from ...
9239 (propagate) ... here; swap the order.
9240
9241 2010-06-09 Jan Hubicka <jh@suse.cz>
9242
9243 * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
9244 bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
9245 bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
9246 bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
9247
9248 2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
9249
9250 * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
9251 Do not the gather memory reference in the outer loop if the step
9252 is not a constant.
9253
9254 2010-06-09 Changpeng Fang <changpeng.fang@amd.com>
9255
9256 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
9257 Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
9258 8 to 4. Minor change of the related comments.
9259
9260 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
9261
9262 * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
9263 the scev analysis when the variable is not used outside the loop
9264 in a close phi node: call compute_overall_effect_of_inner_loop.
9265
9266 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
9267
9268 * graphite-sese-to-poly.c (single_pred_cond): Renamed
9269 single_pred_cond_non_loop_exit. Return NULL for loop exit edges.
9270 (build_sese_conditions_before): Renamed call to single_pred_cond.
9271 (build_sese_conditions_after): Same.
9272
9273 2010-06-09 Sebastian Pop <sebastian.pop@amd.com>
9274
9275 * graphite-poly.h: Fix comments and indentation.
9276 * graphite-sese-to-poly.c: Same.
9277 (build_sese_conditions_before): Compute stmt and gbb only when needed.
9278 * tree-chrec.c: Fix comments and indentation.
9279 (tree-ssa-loop-niter.c): Same.
9280
9281 2010-06-09 Eric Botcazou <ebotcazou@adacore.com>
9282
9283 PR rtl-optimization/42461
9284 * dce.c (deletable_insn_p): Return true for const or pure calls again.
9285 * except.c (insn_could_throw_p): Return false if !flag_exceptions.
9286
9287 2010-06-09 Jan Hubicka <jh@suse.cz>
9288
9289 * bitmap.c (bitmap_and): Walk array forward.
9290 (bitmap_and_compl_into): Likewise.
9291 (bitmap_xor): Likewise.
9292 (bitmap_xor_into): Likewise.
9293 (bitmap_equal_p): Likewise.
9294 (bitmap_intersect_p): Likewise.
9295 (bitmap_intersect_compl_p): Likewise.
9296 (bitmap_ior_and_into): Likewise.
9297 (bitmap_elt_copy): Likewise.
9298 (bitmap_and_compl): Likewise.
9299 (bitmap_elt_ior): Likewise.
9300
9301 2010-06-09 Dave Korn <dave.korn.cygwin@gmail.com>
9302
9303 * opts-common.c (prune_options): Ensure replacement argv array
9304 is correctly terminated by a NULL entry.
9305
9306 2010-06-09 Jan Hubicka <jh@suse.cz>
9307
9308 * cgraph.h (varpool_first_static_initializer,
9309 varpool_next_static_initializer): Make checking only when
9310 checking enabled.
9311 * tree-vectorizer.h (vinfo_for_stmt): Remove check.
9312 (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
9313 gcc_assert to gcc_checking_assert.
9314 * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
9315 phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
9316 op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
9317 op_iter_init_phiuse, op_iter_init_phidef,
9318 array_ref_contains_indirect_ref, ref_contains_array_ref): Use
9319 gcc_checking_assert.
9320 * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
9321 * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
9322 partition_is_global, live_on_entry, live_on_exit,
9323 live_merge_and_clear): Likewise.
9324 * system.h (gcc_checking_assert): New macro.
9325 * gimple.h (set_bb_seq): Use gcc_checking_assert.
9326
9327 2010-06-09 Jason Merrill <jason@redhat.com>
9328
9329 * Makefile.in (TAGS): Collect tags info from c-family.
9330
9331 2010-06-09 Jan Hubicka <jh@suse.cz>
9332
9333 * gimple.h (gcc_gimple_checking_assert): New macro.
9334 (gimple_set_def_ops, gimple_set_use_ops,
9335 gimple_set_vuse, gimple_set_vdef,
9336 gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
9337 gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
9338 gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
9339 gimple_asm_output_op, gimple_asm_output_op_ptr,
9340 gimple_asm_set_output_op, gimple_asm_clobber_op,
9341 gimple_asm_set_clobber_op, gimple_asm_label_op,
9342 gimple_asm_set_label_op, gimple_try_set_kind,
9343 gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
9344 gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
9345 gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
9346 gimple_omp_for_index_ptr, gimple_omp_for_set_index,
9347 gimple_omp_for_initial, gimple_omp_for_initial_ptr,
9348 gimple_omp_for_set_initial, gimple_omp_for_final,
9349 gimple_omp_for_final_ptr, gimple_omp_for_set_final,
9350 gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
9351 gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
9352 conditional with ENABLE_GIMPLE_CHECKING.
9353 (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
9354
9355 2010-06-09 Sandra Loosemore <sandra@codesourcery.com>
9356
9357 * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
9358 (get_computation_cost_at): Use it.
9359 (determine_use_iv_cost_condition): Likewise.
9360 (determine_iv_cost): Likewise.
9361
9362 2010-06-09 Richard Guenther <rguenther@suse.de>
9363
9364 * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
9365 replace constants.
9366
9367 2010-06-09 Kai Tietz <kai.tietz@onevision.com>
9368
9369 * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
9370
9371 2010-06-09 Martin Jambor <mjambor@suse.cz>
9372
9373 PR tree-optimization/44423
9374 * tree-sra.c (dump_access): Dump also grp_assignment_read.
9375 (analyze_access_subtree): Pass negative allow_replacements to children
9376 if the current type is scalar.
9377
9378 2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
9379
9380 PR testsuite/42843
9381 * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
9382 * doc/plugins.texi (Plugin license check): Update information
9383 on type of plugin_is_GPL_compatible.
9384 * Makefile.in (PLUGINCC): Define as $(COMPILER).
9385 (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
9386
9387 2010-06-09 Bernd Schmidt <bernds@codesourcery.com>
9388
9389 * config/arm/arm.c (thumb2_reorg): New function.
9390 (arm_reorg): Call it.
9391 * config/arm/thumb2.md (define_peephole2 for flag clobbering
9392 arithmetic operations): Delete.
9393
9394 2010-06-09 Edmar Wienskoski <edmar@freescale.com>
9395
9396 PR target/44067
9397 * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
9398 e500v2 target.
9399
9400 2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
9401
9402 PR plugins/44459
9403 * gcc-plugin.h: Encapsulate all declarations in extern "C".
9404
9405 2010-06-08 Jan Hubicka <jh@suse.cz>
9406
9407 * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
9408 ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
9409
9410 2010-06-08 Sandra Loosemore <sandra@codesourcery.com>
9411
9412 PR tree-optimization/39874
9413 PR middle-end/28685
9414 * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
9415 Declare.
9416 * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
9417 same_bool_result_p): New.
9418 (and_var_with_comparison, and_var_with_comparison_1,
9419 and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
9420 (or_var_with_comparison, or_var_with_comparison_1,
9421 or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
9422 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
9423 maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
9424 of combine_comparisons.
9425 * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
9426
9427 2010-06-08 Anatoly Sokolov <aesok@post.ru>
9428
9429 * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
9430 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
9431 * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
9432 pdp11_function_value_regno_p): New functions.
9433 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9434 TARGET_FUNCTION_VALUE_REGNO_P): Define.
9435
9436 2010-06-08 Kazu Hirata <kazu@codesourcery.com>
9437
9438 * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
9439 Thumb-2 in the MINUS case.
9440
9441 2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
9442
9443 * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
9444
9445 * doc/gty.texi (GTY Options): Document typed GC allocation and
9446 variable_size GTY option.
9447
9448 * ggc-internal.h: New.
9449
9450 * ggc.h: Update copyright year.
9451 (digit_string): Move to stringpool.c.
9452 (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
9453 (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
9454 (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
9455 (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
9456 (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
9457 (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
9458 (ggc_force_collect, ggc_get_size, ggc_statistics)
9459 (ggc_print_common_statistics): Move to ggc-internal.h.
9460 (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
9461 (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
9462 (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
9463 (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
9464 (ggc_min_heapsize_heuristic, ggc_alloc_zone)
9465 (ggc_alloc_zone_pass_stat): Remove.
9466 (ggc_internal_alloc_stat, ggc_internal_alloc)
9467 (ggc_internal_cleared_alloc_stat): New.
9468 (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
9469 (ggc_internal_vec_alloc_stat)
9470 (ggc_internal_cleared_vec_alloc_stat)
9471 (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
9472 (ggc_alloc_atomic_stat, ggc_alloc_atomic)
9473 (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
9474 (ggc_cleared_alloc_ptr_array_two_args): New.
9475 (htab_create_ggc, splay_tree_new_ggc): Redefine.
9476 (ggc_splay_alloc): Change the type of the first argument to
9477 enum gt_types_enum.
9478 (ggc_alloc_string): Make macro.
9479 (ggc_alloc_string_stat): New.
9480 (ggc_strdup): Redefine.
9481 (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
9482 (ggc_alloc_rtvec_sized): New.
9483 (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
9484 (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
9485 (ggc_internal_cleared_alloc_zone_stat)
9486 (ggc_internal_zone_alloc_stat)
9487 (ggc_internal_zone_cleared_alloc_stat)
9488 (ggc_internal_zone_vec_alloc_stat)
9489 (ggc_alloc_zone_rtx_def_stat)
9490 (ggc_alloc_zone_tree_node_stat)
9491 (ggc_alloc_zone_cleared_tree_node_stat)
9492 (ggc_alloc_cleared_gimple_statement_d_stat): New.
9493
9494 * ggc-common.c: Include ggc-internal.h.
9495 (ggc_internal_cleared_alloc_stat): Rename from
9496 ggc_alloc_cleared_stat.
9497 (ggc_realloc_stat): Use ggc_internal_alloc_stat.
9498 (ggc_calloc): Remove.
9499 (ggc_cleared_alloc_htab_ignore_args): New.
9500 (ggc_cleared_alloc_ptr_array_two_args): New.
9501 (ggc_splay_alloc): Add obj_type parameter.
9502 (init_ggc_heuristics): Formatting fixes.
9503
9504 * ggc-none.c: Update copyright year.
9505 (ggc_alloc_stat): Rename to ggc_alloc_stat.
9506 (ggc_alloc_cleared_stat): Rename to
9507 ggc_internal_cleared_alloc_stat.
9508 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
9509
9510 * ggc-page.c: Update copyright year. Include ggc-internal.h.
9511 Remove references to ggc_alloc in comments.
9512 (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
9513 (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
9514 (new_ggc_zone, destroy_ggc_zone): Remove.
9515 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
9516
9517 * ggc-zone.c: Include ggc-internal.h. Remove references to
9518 ggc_alloc in comments.
9519 (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
9520 (ggc_internal_alloc_zone_pass_stat): New.
9521 (ggc_internal_cleared_alloc_zone_stat): New.
9522 (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
9523 (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
9524 (new_ggc_zone, destroy_ggc_zone): Remove.
9525
9526 * stringpool.c: Update copyright year. Include ggc-internal.h
9527 (digit_vector): Make static.
9528 (digit_string): Moved from ggc.h.
9529 (stringpool_ggc_alloc): Use ggc_alloc_atomic.
9530 (ggc_alloc_string): Rename to ggc_alloc_string_stat.
9531
9532 * Makefile.in (GGC_INTERNAL_H): New.
9533 (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
9534 $(GGC_INTERNAL_H) to dependencies.
9535
9536 * gentype.c: Update copyright year.
9537 (walk_type): Accept variable_size GTY option.
9538 (USED_BY_TYPED_GC_P): New macro.
9539 (write_enum_defn): Use USED_BY_TYPED_GC_P. Do not output
9540 whitespace at the end of strings.
9541 (get_type_specifier, variable_size_p): New functions.
9542 (alloc_quantity, alloc_zone): New enums.
9543 (write_typed_alloc_def): New function.
9544 (write_typed_struct_alloc_def): Likewise.
9545 (write_typed_typed_typedef_alloc_def): Likewise.
9546 (write_typed_alloc_defns): Likewise.
9547 (output_typename, write_splay_tree_allocator_def): Likewise.
9548 (write_splay_tree_allocators): Likewise.
9549 (main): Call write_typed_alloc_defns and
9550 write_splay_tree_allocators.
9551
9552 * lto-streamer.h (lto_file_decl_data_ptr): New.
9553
9554 * passes.c (order): Define using cgraph_node_ptr.
9555
9556 * strinpool.c (struct string_pool_data): Declare nested_ptr using
9557 ht_identifier_ptr.
9558
9559 * gimple.h (union gimple_statement_d): Likewise.
9560
9561 * rtl.h (struct rtx_def): Likewise.
9562 (struct rtvec_def): Likewise.
9563
9564 * tree.h (union tree_node): Likewise.
9565
9566 * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
9567
9568 * cfgloop.c (record_loop_exits): Use htab_create_ggc.
9569
9570 * tree-scalar-evolution.c (scev_initialize): Likewise.
9571
9572 * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
9573
9574 * dwarf2asm.c (dw2_force_const_mem): Likewise.
9575
9576 * omp-low.c (lower_omp_critical): Likewise.
9577
9578 * bitmap.h (struct bitmap_head_def): Update comment to not
9579 reference ggc_alloc.
9580
9581 * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
9582
9583 * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
9584
9585 * ipa-prop.c (duplicate_ggc_array): Rename to
9586 duplicate_ipa_jump_func_array. Use typed GC allocation.
9587 (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
9588
9589 * gimple.c (gimple_alloc_stat): Use
9590 ggc_alloc_cleared_gimple_statement_d_stat.
9591
9592 * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
9593
9594 * tree.c (make_node_stat): Use
9595 ggc_alloc_zone_cleared_tree_node_stat.
9596 (make_tree_vec_stat): Likewise.
9597 (build_vl_exp_stat): Likewise.
9598 (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
9599 (make_tree_binfo_stat): Likewise.
9600 (tree_cons_stat): Likewise.
9601
9602 * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
9603 (shallow_copy_rtx_stat): Likewise.
9604 (make_node_stat): Likewise.
9605
9606 * lto-symtab.c: Fix comment.
9607
9608 * tree-cfg.c (create_bb): Update comment to not reference
9609 ggc_alloc_cleared.
9610 * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
9611
9612 * varpool.c (varpool_node): Use typed GC allocation.
9613 (varpool_extra_name_alias): Likewise.
9614
9615 * varasm.c (emutls_decl): Likewise.
9616 (get_unnamed_section): Likewise.
9617 (get_noswitch_section): Likewise.
9618 (get_section): Likewise.
9619 (get_block_for_section): Likewise.
9620 (build_constant_desc): Likewise.
9621 (create_constant_pool): Likewise.
9622 (force_const_mem): Likewise.
9623
9624 * tree.c (build_vl_exp_stat): Likewise.
9625 (build_real): Likewise.
9626 (build_string): Likewise.
9627 (decl_debug_expr_insert): Likewise.
9628 (decl_value_expr_insert): Likewise.
9629 (type_hash_add): Likewise.
9630 (build_omp_clause): Likewise.
9631
9632 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
9633
9634 * tree-ssa.c (init_tree_ssa): Likewise.
9635
9636 * tree-ssa-structalias.c (heapvar_insert): Likewise.
9637
9638 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
9639
9640 * tree-ssa-loop-niter.c (record_estimate): Likewise.
9641
9642 * tree-ssa-alias.c (get_ptr_info): Likewise.
9643
9644 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
9645
9646 * tree-phinodes.c (allocate_phi_node): Likewise.
9647
9648 * tree-iterator.c (tsi_link_before): Likewise.
9649 (tsi_link_after): Likewise.
9650
9651 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
9652
9653 * tree-dfa.c (create_var_ann): Likewise.
9654
9655 * tree-cfg.c (create_bb): Likewise.
9656
9657 * toplev.c (alloc_for_identifier_to_locale): Likewise.
9658 (general_init): Likewise.
9659
9660 * stringpool.c (stringpool_ggc_alloc): Likewise.
9661 (gt_pch_save_stringpool): Likewise.
9662
9663 * sese.c (if_region_set_false_region): Likewise.
9664
9665 * passes.c (do_per_function_toporder): Likewise.
9666
9667 * optabs.c (set_optab_libfunc): Likewise.
9668 (set_conv_libfunc): Likewise.
9669
9670 * lto-symtab.c (lto_symtab_register_decl): Likewise.
9671
9672 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
9673 (input_eh_region): Likewise.
9674 (input_eh_lp): Likewise.
9675 (make_new_block): Likewise.
9676 (unpack_ts_real_cst_value_fields): Likewise.
9677
9678 * lto-section-in.c (lto_new_in_decl_state): Likewise.
9679
9680 * lto-cgraph.c (input_node_opt_summary): Likewise.
9681
9682 * loop-init.c (loop_optimizer_init): Likewise.
9683
9684 * lambda.h (lambda_vector_new): Likewise.
9685
9686 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
9687
9688 * ira.c (update_equiv_regs): Likewise.
9689
9690 * ipa.c (cgraph_node_set_new): Likewise.
9691 (cgraph_node_set_add): Likewise.
9692 (varpool_node_set_new): Likewise.
9693 (varpool_node_set_add): Likewise.
9694
9695 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
9696 (duplicate_ipa_jump_func_array): Likewise.
9697 (ipa_read_node_info): Likewise.
9698
9699 * ipa-cp.c (ipcp_create_replace_map): Likewise.
9700
9701 * integrate.c (get_hard_reg_initial_val): Likewise.
9702
9703 * gimple.c (gimple_alloc_stat): Likewise.
9704 (gimple_build_omp_for): Likewise.
9705 (gimple_seq_alloc): Likewise.
9706 (gimple_copy): Likewise.
9707
9708 * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
9709 (gsi_insert_after_without_update): Likewise.
9710
9711 * function.c (add_frame_space): Likewise.
9712 (insert_temp_slot_address): Likewise.
9713 (assign_stack_temp_for_type): Likewise.
9714 (allocate_struct_function): Likewise.
9715 (types_used_by_var_decl_insert): Likewise.
9716
9717 * except.c (init_eh_for_function): Likewise.
9718 (gen_eh_region): Likewise.
9719 (gen_eh_region_catch): Likewise.
9720 (gen_eh_landing_pad): Likewise.
9721 (add_call_site): Likewise.
9722
9723 * emit-rtl.c (get_mem_attrs): Likewise.
9724 (get_reg_attrs): Likewise.
9725 (start_sequence): Likewise.
9726 (init_emit): Likewise.
9727
9728 * dwarf2out.c (new_cfi): Likewise.
9729 (queue_reg_save): Likewise.
9730 (dwarf2out_frame_init): Likewise.
9731 (new_loc_descr): Likewise.
9732 (find_AT_string): Likewise.
9733 (new_die): Likewise.
9734 (add_var_loc_to_decl): Likewise.
9735 (clone_die): Likewise.
9736 (clone_as_declaration): Likewise.
9737 (break_out_comdat_types): Likewise.
9738 (new_loc_list): Likewise.
9739 (loc_descriptor): Likewise.
9740 (add_loc_descr_to_each): Likewise.
9741 (add_const_value_attribute): Likewise.
9742 (tree_add_const_value_attribute): Likewise.
9743 (add_comp_dir_attribute): Likewise.
9744 (add_name_and_src_coords_attributes): Likewise.
9745 (lookup_filename): Likewise.
9746 (store_vcall_insn): Likewise.
9747 (dwarf2out_init): Likewise.
9748
9749 * dbxout.c (dbxout_init): Likewise.
9750
9751 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
9752
9753 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
9754
9755 * config/score/score7.c (score7_output_external): Likewise.
9756
9757 * config/score/score3.c (score3_output_external): Likewise.
9758
9759 * config/s390/s390.c (s390_init_machine_status): Likewise.
9760
9761 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
9762 (rs6000_init_machine_status): Likewise.
9763 (output_toc): Likewise.
9764
9765 * config/pa/pa.c (pa_init_machine_status): Likewise.
9766 (get_deferred_plabel): Likewise.
9767
9768 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
9769
9770 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
9771
9772 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
9773
9774 * config/mep/mep.c (mep_init_machine_status): Likewise.
9775 (mep_note_pragma_flag): Likewise.
9776
9777 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
9778
9779 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
9780
9781 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
9782
9783 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
9784 (i386_pe_maybe_record_exported_symbol): Likewise.
9785
9786 * config/i386/i386.c (get_dllimport_decl): Likewise.
9787 (ix86_init_machine_status): Likewise.
9788 (assign_386_stack_local): Likewise.
9789
9790 * config/frv/frv.c (frv_init_machine_status): Likewise.
9791
9792 * config/darwin.c (machopic_indirection_name): Likewise.
9793
9794 * config/cris/cris.c (cris_init_machine_status): Likewise.
9795
9796 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
9797
9798 * config/avr/avr.c (avr_init_machine_status): Likewise.
9799
9800 * config/arm/arm.c (arm_init_machine_status): Likewise.
9801
9802 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
9803 (alpha_need_linkage): Likewise.
9804 (alpha_use_linkage): Likewise.
9805
9806 * cgraph.c (cgraph_allocate_node): Likewise.
9807 (cgraph_create_edge_1): Likewise.
9808 (cgraph_create_indirect_edge): Likewise.
9809 (cgraph_add_asm_node): Likewise.
9810
9811 * cfgrtl.c (init_rtl_bb_info): Likewise.
9812
9813 * cfgloop.c (alloc_loop): Likewise.
9814 (rescan_loop_exit): Likewise.
9815
9816 * cfg.c (init_flow): Likewise.
9817 (alloc_block): Likewise.
9818 (unchecked_make_edge): Likewise.
9819
9820 * c-parser.c (c_parse_init): Likewise.
9821 (c_parse_file): Likewise.
9822
9823 * c-decl.c (bind): Likewise.
9824 (record_inline_static): Likewise.
9825 (push_scope): Likewise.
9826 (make_label): Likewise.
9827 (lookup_label_for_goto): Likewise.
9828 (finish_struct): Likewise.
9829 (finish_enum): Likewise.
9830 (c_push_function_context): Likewise.
9831
9832 * bitmap.c (bitmap_element_allocate): Likewise.
9833 (bitmap_gc_alloc_stat): Likewise.
9834
9835 * alias.c (record_alias_subset): Likewise.
9836 (init_alias_analysis): Likewise.
9837
9838 2010-06-08 Shujing Zhao <pearly.zhao@oracle.com>
9839
9840 * fold-const.c (fold_comparison): Remove redundant parenthesis.
9841 * tree-inline.c (expand_call_inline): Pass translated return value of
9842 cgraph_inline_failed_string to diagnostic function.
9843
9844 2010-06-08 Andrew Pinski <pinskia@gmail.com>
9845 Shujing Zhao <pearly.zhao@oracle.com>
9846
9847 PR c/37724
9848 * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
9849 implicit bad conversions is initialization.
9850 (error_init): Use gmsgid instead of msgid for argument name and change
9851 the call for error.
9852 (pedwarn_init): Use gmsgid instead of msgid for argument name and
9853 change the call for pedwarn.
9854 (warning_init): Use gmsgid instead of msgid for argument name and
9855 change the call for warning.
9856
9857 2010-06-07 Nathan Froyd <froydnj@codesourcery.com>
9858
9859 * config/mips/mips-protos.h (mips_print_operand): Delete.
9860 (mips_print_operand_address): Delete.
9861 * config/mips/mips.h (mips_print_operand_punct): Delete.
9862 (PRINT_OPERAND): Delete.
9863 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9864 (PRINT_OPERAND_ADDRESS): Delete.
9865 * config/mips/mips.c (mips_print_operand_punct): Make static.
9866 (mips_print_operand_address): Make static.
9867 (mips_print_operand): Make static. Call
9868 mips_print_operand_punct_valid_p.
9869 (mips_print_operand_punct_valid_p): New function.
9870 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
9871 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
9872
9873 2010-06-07 Jan Hubicka <jh@suse.cz>
9874
9875 PR middle-end/44454
9876 (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
9877 are allocated.
9878
9879 2010-06-07 Kaz Kojima <kkojima@gcc.gnu.org>
9880
9881 * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
9882 name of RECORD.
9883
9884 2010-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9885
9886 * doc/sourcebuild.texi (Effective-Target Keywords, Other
9887 attributes): Document gas.
9888
9889 2010-06-07 Uros Bizjak <ubizjak@gmail.com>
9890
9891 * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
9892 <TYPE_LEA>: Split instruction.
9893 <default>: Remove alternative 2 handling.
9894 (*addsi_1_zext) <TYPE_LEA>: Split instruction.
9895 (add lea splitter): Generate SImode lea for mode sizes <= SImode.
9896 (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
9897
9898 (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
9899 (ashift_zext lea splitter): Use DImode for multiplication.
9900
9901 * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
9902 to generate addition.
9903
9904 2010-06-07 Joseph Myers <joseph@codesourcery.com>
9905
9906 * common.opt (fira-verbose): Use Var.
9907 (fpcc-struct-return): Use Init instead of VarExists.
9908 * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
9909 toplev.c.
9910 * flags.h (flag_signed_char, flag_short_enums,
9911 flag_pcc_struct_return, flag_ira_verbose,
9912 flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
9913 * toplev.c (flag_detailed_statistics, flag_signed_char,
9914 flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
9915 (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
9916 * toplev.h (flag_crossjumping, flag_if_conversion,
9917 flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
9918 flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
9919 flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
9920 flag_cprop_registers, time_report, flag_ira_loop_pressure,
9921 flag_ira_coalesce, flag_ira_move_spills,
9922 flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
9923
9924 2010-06-07 Jan Hubicka <jh@suse.cz>
9925
9926 * df-core.c (df_analyze_problem): Do verification after allocation.
9927
9928 * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
9929 (df_lr_alloc): Initialize problem data; move bitmaps to
9930 lr_bitmaps obstack.
9931 (df_lr_finalize): Free problem data; do not bother to free bitmaps.
9932 (df_lr_verify_solution_start): Do not initialize problem data;
9933 allocate bitmaps in lr_bitmaps.
9934 (df_lr_verify_solution_end): Do not free problem data.
9935
9936 2010-06-07 Jan Hubicka <jh@suse.cz>
9937
9938 * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
9939 if caller is noreturn.
9940 * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
9941 * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
9942 * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
9943 * ipa-pure-const.c (check_decl): Add IPA parameter.
9944 (state_from_flags): New function.
9945 (better_state, worse_state): New functions.
9946 (check_call): When in IPA mode, do not care about callees.
9947 (check_load, check_store): Update.
9948 (check_ipa_load, check_ipa_store): New.
9949 (check_stmt): When in IPA mode, use IPA checkers.
9950 (analyze_function): Use state_from_flags.
9951 (propagate): Check indirect edges and references.
9952
9953 2010-06-07 Kazu Hirata <kazu@codesourcery.com>
9954
9955 PR rtl-optimization/44404
9956 * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
9957 of count_occurrences to see if it's safe to modify mem_insn.
9958
9959 2010-06-07 Richard Guenther <rguenther@suse.de>
9960
9961 * gimplify.c (gimplify_cleanup_point_expr): For empty body
9962 and EH-only cleanup drop the cleanup instead of inserting it
9963 unconditionally.
9964
9965 2010-06-07 Ira Rosen <irar@il.ibm.com>
9966
9967 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
9968 documentation.
9969 * targhooks.c (default_builtin_vectorization_cost): New function.
9970 * targhooks.h (default_builtin_vectorization_cost): Declare.
9971 * target.h (enum vect_cost_for_stmt): Define.
9972 (builtin_vectorization_cost): Change argument and comment.
9973 * tree-vectorizer.h: Remove cost model macros.
9974 * tree-vect-loop.c: Include target.h.
9975 (vect_get_cost): New function.
9976 (vect_estimate_min_profitable_iters): Replace cost model macros with
9977 calls to vect_get_cost.
9978 (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
9979 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
9980 default implementation.
9981 * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
9982 calls to target hook builtin_vectorization_cost.
9983 (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
9984 Likewise.
9985 * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
9986 * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
9987 implementation to return costs.
9988 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
9989 * config/spu/spu.h: Remove vectorizer cost model macros.
9990 * config/i386/i386.h: Likewise.
9991 * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
9992 a call to target hook builtin_vectorization_cost.
9993
9994 2010-06-06 Sriraman Tallam <tmsriram@google.com>
9995
9996 PR target/44319
9997 * config/i386/i386.c (override_options): Turn zee pass on for level 2
9998 and above and defer till target is known.
9999 (optimization_options): Turn on zee pass if TARGET_64BIT is set and
10000 turn off otherwise.
10001
10002 2010-05-25 Jan Hubicka <jh@suse.cz>
10003
10004 * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
10005 (df_compact_blocks): Likewise.
10006 * df.h (struct df): Turn hardware_regs_used,
10007 regular_block_artificial_uses, eh_block_artificial_uses,
10008 insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
10009 bitmap_head.
10010 * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
10011 df_byte_lr_alloc, df_simulate_fixup_sets): Update.
10012 * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
10013 df_scan_blocks, df_insn_delete, df_insn_rescan,
10014 df_insn_rescan_debug_internal, df_insn_rescan_all,
10015 df_process_deferred_rescans, df_process_deferred_rescans,
10016 df_notes_rescan, df_get_call_refs, df_get_call_refs,
10017 regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
10018 df_record_entry_block_defs, df_record_exit_block_uses,
10019 df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
10020 df_scan_verify): Update.
10021
10022 2010-05-25 Dodji Seketeli <dodji@redhat.com>
10023
10024 PR c++/44188
10025 * c-common.c (is_typedef_decl): Move this definition ...
10026 * tree.c (is_typedef_decl): ... here.
10027 (typdef_variant_p): Move definition here from gcc/cp/tree.c.
10028 * c-common.h (is_typedef_decl): Move this declaration ...
10029 * tree.h (is_typedef_decl): ... here.
10030 (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
10031 * dwarf2out.c (is_naming_typedef_decl): New function.
10032 (gen_tagged_type_die): Split out of ...
10033 (gen_type_die_with_usage): ... this function. When an anonymous
10034 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
10035 is emitted for the typedef.
10036 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
10037 anonymous tagged types.
10038
10039 2010-06-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
10040
10041 PR c/20000
10042 * c-decl.c (grokdeclarator): Delete warning.
10043
10044 2010-06-06 Eric Botcazou <ebotcazou@adacore.com>
10045
10046 * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
10047 newly built CALL_EXPR.
10048 * tree-profile.c (tree_profiling): Don't profile functions produced
10049 for built-in stuff.
10050
10051 2010-06-06 Segher Boessenkool <segher@kernel.crashing.org>
10052
10053 PR bootstrap/44427
10054 PR bootstrap/44428
10055 * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
10056 endianness-independent.
10057
10058 2010-06-05 Steven Bosscher <steven@gcc.gnu.org>
10059
10060 * c-common.c: Move to c-family/.
10061 * c-common.def: Likewise.
10062 * c-common.h: Likewise.
10063 * c-cppbuiltin.c: Likewise.
10064 * c-dump.c: Likewise.
10065 * c-format.c: Likewise.
10066 * c-format.h : Likewise.
10067 * c-gimplify.c: Likewise.
10068 * c-lex.c: Likewise.
10069 * c-omp.c: Likewise.
10070 * c.opt: Likewise.
10071 * c-opts.c: Likewise.
10072 * c-pch.c: Likewise.
10073 * c-ppoutput.c: Likewise.
10074 * c-pragma.c: Likewise.
10075 * c-pragma.h: Likewise.
10076 * c-pretty-print.c: Likewise.
10077 * c-pretty-print.h: Likewise.
10078 * c-semantics.c: Likewise.
10079 * stub-objc.c: Likewise.
10080
10081 * gengtype.c (get_file_langdir): Special-case files in c-family/.
10082 (get_output_file_with_visibility): Fix name for c-common.h.
10083 * c-config-lang.in: Update paths in gtfiles for files in c-family/.
10084
10085 * c-tree.h: Update include path for moved files.
10086 * c-lang.c: Likewise.
10087 * c-lang.h: Likewise.
10088 * c-parser.c: Likewise.
10089 * c-convert.c: Likewise.
10090 * c-decl.c: Likewise.
10091 * c-objc-common.c: Likewise.
10092 * configure.ac: Make sure c-family/ exists in the build directory.
10093 * configure: Regenerate.
10094 * Makefile.in: Update paths for moved files. Regroup files per
10095 location and update dependencies. Move generated_files down after
10096 ALL_GTFILES_H.
10097
10098 * config/spu/spu-c.c: Update paths for moved files.
10099 * config/mep/mep-pragma.c: Likewise.
10100 * config/darwin-c.c: Likewise.
10101 * config/i386/msformat-c.c: Likewise.
10102 * config/i386/i386-c.c: Likewise.
10103 * config/avr/avr-c.c: Likewise.
10104 * config/sol2-c.c: Likewise.
10105 * config/ia64/ia64-c.c: Likewise.
10106 * config/rs6000/rs6000-c.c: Likewise.
10107 * config/arm/arm.c: Likewise.
10108 * config/arm/arm-c.c: Likewise.
10109 * config/h8300/h8300.c: Likewise.
10110 * config/v850/v850-c.c: Likewise.
10111
10112 * config/t-darwin: Fix dependencies for moved files.
10113 * config/t-sol2: Fix dependencies for moved files.
10114 * config/mep/t-mep: Fix dependencies for moved files.
10115 * config/ia64/t-ia64: Fix dependencies for moved files.
10116 * config/rs6000/t-rs6000: Fix dependencies for moved files.
10117 * config/v850/t-v850: Fix dependencies for moved files.
10118 * config/v850/t-v850e: Fix dependencies for moved files.
10119
10120 * config/m32c/m32c-pragma.c
10121
10122 * po/exgettext: Look in c-family/ also.
10123
10124 2010-06-05 Eric Botcazou <ebotcazou@adacore.com>
10125
10126 * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
10127 (mark_control_dependent_edges_necessary): Call it instead of marking
10128 the last statement manually.
10129 (propagate_necessity): Likewise.
10130
10131 2010-06-05 Jan Hubicka <jh@suse.cz>
10132
10133 * basic-block.h (compute_dominance_frontiers): Updated.
10134 (compute_idf): Likewise.
10135
10136 * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
10137 for dominance frontiers.
10138 (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
10139 (insert_updated_phi_nodes_for): Likewise.
10140 (update_ssa): Likewise.
10141 * cfganal.c (compute_dominance_frontiers_1): Likewise.
10142 (compute_dominance_frontiers): Likewise.
10143 (compute_idf): Likewise.
10144 * df-problems.c (df_md_local_compute): Likewise.
10145
10146 2010-06-05 Anatoly Sokolov <aesok@post.ru>
10147
10148 * target.h (struct gcc_target): Add memory_move_cost field.
10149 * target-def.h (TARGET_MEMORY_MOVE_COST): New.
10150 (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
10151 * targhooks.c (default_memory_move_cost): New function.
10152 * targhooks.h (default_memory_move_cost): Declare function.
10153 * reload.h (memory_move_cost): Declare.
10154 (memory_move_secondary_cost): Change type of 'in' argument to bool.
10155 * reginfo.c (memory_move_cost): New function.
10156 (memory_move_secondary_cost): Change type of 'in' argument to bool.
10157 * ira.h (ira_memory_move_cost): Update comment.
10158 * ira.c (ira_memory_move_cost): Update comment.
10159 (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
10160 with memory_move_cost.
10161 * postreload.c (reload_cse_simplify_set): (Ditto.).
10162 * reload1.c (choose_reload_regs): (Ditto.).
10163 * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
10164 (MEMORY_MOVE_COST): Revise documentation.
10165
10166 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
10167 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
10168 * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
10169 type of 'in' argument to bool.
10170 (TARGET_MEMORY_MOVE_COST): Define.
10171
10172 2010-06-05 Jan Hubicka <jh@suse.cz>
10173
10174 * ipa-pure-const.c (propagate): Fix typo in handling of functions
10175 that cannot return. Be more careful when merging the results with
10176 previously known ones.
10177
10178 2010-06-05 Matthias Klose <doko@ubuntu.com>
10179
10180 * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
10181 function to add the -iplugindir option.
10182 (find_plugindir_spec_function): Add new declaration and function.
10183 (static_spec_func): Use it for "find-plugindir".
10184
10185 2010-06-05 Jakub Jelinek <jakub@redhat.com>
10186
10187 PR c++/44361
10188 * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
10189 * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
10190 statement expression.
10191
10192 2010-06-05 Jan Hubicka <jh@suse.cz>
10193
10194 * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
10195 (df_rd_problem_data): Convert sparse_invalidated_by_call,
10196 dense_invalidated_by_call to bitmap head.
10197 (df_rd_alloc, df_rd_bb_local_compute_process_def,
10198 df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
10199 df_rd_start_dump, df_lr_verify_transfer_functions,
10200 df_live_verify_transfer_functions, df_chain_create_bb,
10201 df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
10202 df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
10203 df_simulate_one_insn_forwards, df_md_alloc,
10204 df_md_bb_local_compute_process_def,
10205 df_md_bb_local_compute_process_def, df_md_local_compute,
10206 df_md_transfer_function df_md_free): Update.
10207
10208 2010-06-05 Joseph Myers <joseph@codesourcery.com>
10209
10210 PR c/44322
10211 * c-typeck.c (build_unary_op): Merge qualifiers into pointer
10212 target type for ADDR_EXPR; require no changes to qualifiers except
10213 for function types.
10214 * c-tree.h (c_build_type_variant): Remove.
10215
10216 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
10217
10218 * genautomata.c (get_excl_set): Do work per element, not per char.
10219 (check_presence_pattern_sets): Similar.
10220 (check_absence_pattern_sets): Similar.
10221
10222 2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
10223
10224 * genautomata.c (curr_state_pass_num): Delete.
10225 (min_issue_delay_pass_states): Delete.
10226 (min_issue_delay): Delete.
10227 (initiate_min_issue_delay_pass_states): Delete.
10228 (output_min_issue_delay_table): Compute min_issue_delay_vect
10229 using a breadth-first search variant.
10230 (output_tables): Don't call initiate_min_issue_delay_pass_states.
10231
10232 2010-06-04 H.J. Lu <hongjiu.lu@intel.com>
10233
10234 PR boostrap/44421
10235 * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
10236 (df_byte_lr_bb_local_compute): Likewise.
10237
10238 2010-06-03 Jason Merrill <jason@redhat.com>
10239
10240 Implement noexcept operator (5.3.7)
10241 * c-common.c (c_common_reswords): Add noexcept.
10242 * c-common.h (enum rid): Add RID_NOEXCEPT.
10243
10244 2010-06-04 Joseph Myers <joseph@codesourcery.com>
10245
10246 * config/darwin-driver.c (darwin_default_min_version): Use
10247 GCC-specific formats in diagnostics.
10248 * cppspec.c (lang_specific_driver): Use GCC-specific formats in
10249 diagnostics.
10250 * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
10251 execute, process_command, end_going_arg, do_self_spec, do_spec_1,
10252 eval_spec_function, handle_braces, process_brace_body, main,
10253 perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
10254 getenv_spec_function, compare_version_strings,
10255 version_compare_spec_function): Use GCC-specific formats in
10256 diagnostics.
10257
10258 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
10259
10260 * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
10261 that operand 0 and operand 1 are equal.
10262 (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
10263 (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
10264 and operand 1 are equal.
10265 <default>: Ditto. Remove ??? comment.
10266 (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
10267 and operand 1 are equal.
10268 <default>: Ditto. Remove ??? comment.
10269 (*adddi_4) <default>: Remove assert that operand 0 and operand 1
10270 are equal.
10271 (*add<mode>_4) <default>: Ditto.
10272 (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
10273
10274 2010-06-04 Nathan Froyd <froydnj@codesourcery.com>
10275
10276 * config/i386/i386-protos.h (ix86_print_operand): Declare.
10277 * config/i386/i386.c (ix86_print_operand): Make non-static.
10278 * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
10279 * output.h (output_operand): Declare.
10280 * final.c (output_operand): Make non-static.
10281
10282 2010-06-04 Alexandre Oliva <aoliva@redhat.com>
10283
10284 PR rtl-optimization/44013
10285 * sched-deps.c (add_dependence_list_and_free): Don't free lists
10286 when processing debug insns.
10287
10288 PR debug/41371
10289 * var-tracking.c (find_loc_in_1pdv): Mark initial value before
10290 recursing. Check that recursion is bounded. Rename inner var
10291 to avoid hiding incoming argument.
10292
10293 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
10294
10295 * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
10296 operands[2] == 255.
10297 (*addqi_3): Ditto.
10298 (*addqi_4): Ditto.
10299 (*addqi_5): Ditto.
10300 (*addqi_ext_1_rex64): Ditto.
10301 (*addqi_ext_1): Ditto.
10302
10303 (*addqi_4): Check for incdec_operand in QImode.
10304
10305 (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
10306 using SWI mode iterator.
10307 (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
10308 (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
10309 mode iterator.
10310 (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
10311 using SWI mode iterator.
10312
10313 2010-06-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
10314
10315 PR c/25880
10316 * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
10317 * c-format.c (gcc_diag_flag_specs): Add hash.
10318 (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
10319 (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
10320 * c-pretty-print.c (pp_c_cv_qualifier): Rename as
10321 pp_c_cv_qualifiers. Handle qualifiers spelling here.
10322 (pp_c_type_qualifier_list): Call the function above.
10323 * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
10324 * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
10325 (WARN_FOR_QUALIFIERS): New macro.
10326 (convert_for_assignment): Use it.
10327
10328 2010-06-04 Kai Tietz <kai.tietz@onevision.com>
10329
10330 * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
10331
10332 2010-06-04 Jan Hubicka <jh@suse.cz>
10333
10334 * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
10335 df_byte_lr_bb_info): Embedd bitmap_head into the structure.
10336 (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
10337 DF_BYTE_LR_OUT): Update for embedded bitmaps.
10338 * fwprop.c (single_def_use_enter_block): Likewise.
10339 * ddg.c (create_ddg_dep_from_intra_loop_link,
10340 add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
10341 * loop-iv.c (latch_dominating_def): Likewise.
10342 * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
10343 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
10344 df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
10345 df_rd_transfer_function, df_rd_top_dump,
10346 df_rd_bottom_dump): Update.
10347 (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
10348 df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
10349 df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
10350 df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
10351 df_lr_verify_solution_start, df_lr_verify_solution_end,
10352 df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
10353 df_live_free_bb_info, df_live_alloc, df_live_reset,
10354 df_live_bb_local_compute, df_live_init, df_live_transfer_function,
10355 df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
10356 df_live_verify_solution_start, df_live_verify_solution_end,
10357 df_live_verify_transfer_functions, df_chain_create_bb,
10358 df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
10359 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
10360 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
10361 df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
10362 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
10363 df_byte_lr_transfer_function, df_byte_lr_top_dump,
10364 df_byte_lr_bottom_dump, df_create_unused_note,
10365 df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
10366 df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
10367 df_md_transfer_function, df_md_init, df_md_confluence_0,
10368 df_md_confluence_n,
10369 df_md_top_dump, df_md_bottom_dump): Update.
10370 (struct df_lr_problem_data): Embedd bitmap headers.
10371
10372 2010-06-04 Jan Hubicka <jh@suse.cz>
10373
10374 * dce.c (dce_process_block): Do not re-scan already marked
10375 instructions.
10376
10377 2010-06-04 Bernd Schmidt <bernds@codesourcery.com>
10378
10379 PR rtl-optimization/39871
10380 PR rtl-optimization/40615
10381 PR rtl-optimization/42500
10382 PR rtl-optimization/42502
10383 * ira.c (init_reg_equiv_memory_loc: New function.
10384 (ira): Call it twice.
10385 * reload.h (calculate_elim_costs_all_insns): Declare.
10386 * ira-costs.c: Include "reload.h".
10387 (regno_equiv_gains): New static variable.
10388 (init_costs): Allocate it.
10389 (finish_costs): Free it.
10390 (ira_costs): Call calculate_elim_costs_all_insns.
10391 (find_costs_and_classes): Take estimated elimination costs
10392 into account.
10393 (ira_adjust_equiv_reg_cost): New function.
10394 * ira.h (ira_adjust_equiv_reg_cost): Declare it.
10395 * reload1.c (init_eliminable_invariants, free_reg_equiv,
10396 elimination_costs_in_insn, note_reg_elim_costly): New static functions.
10397 (elim_bb): New static variable.
10398 (reload): Move code out of here into init_eliminable_invariants and
10399 free_reg_equiv. Call them.
10400 (calculate_elim_costs_all_insns): New function.
10401 (eliminate_regs_1): Declare. Add extra arg FOR_COSTS;
10402 all callers changed. If FOR_COSTS is true, don't call alter_reg,
10403 but call note_reg_elim_costly if we turned a valid memory address
10404 into an invalid one.
10405 * Makefile.in (ira-costs.o): Depend on reload.h.
10406
10407 2010-06-04 Julian Brown <julian@codesourcery.com>
10408
10409 * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
10410 for pool ranges.
10411
10412 2010-06-04 Richard Guenther <rguenther@suse.de>
10413
10414 PR lto/41584
10415 * cgraph.h (struct varpool_node): Add lto_file_data field.
10416 * lto-cgraph.c (input_varpool_node): Initialize it.
10417
10418 2010-06-04 Uros Bizjak <ubizjak@gmail.com>
10419
10420 * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
10421 * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
10422 predicate in "type" attribute calculation.
10423 (*addsi_1_zext): Ditto.
10424 (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
10425 (*addsi_2_zext): Ditto.
10426 (*add<mode>_3): Ditto.
10427 (*addsi_3_zext): Ditto.
10428 (*add<mode>_5): Ditto.
10429
10430 2010-06-03 Jan Hubicka <jh@suse.cz>
10431
10432 * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
10433 of bitmap_bit_p.
10434 * cfganal.c (compute_dominance_frontiers_1): Likewise.
10435
10436 2010-06-03 Jan Hubicka <jh@suse.cz>
10437
10438 * df-problems.c (df_create_unused_note, df_note_bb_compute):
10439 micro-optimize the checks when to add new note.
10440
10441 2010-06-03 Nathan Froyd <froydnj@codesourcery.com>
10442
10443 * final.c (output_asm_insn): Call
10444 targetm.asm_out.print_operand_punct_valid_p. Update comments.
10445 (output_operand): Call targetm.asm_out.print_operand. Update comments.
10446 (output_address): Call targetm.asm_out.print_operand_address.
10447 Update comments.
10448 * target.h (struct gcc_target): Add print_operand,
10449 print_operand_address, and print_operand_punct_valid_p fields.
10450 * targhooks.h (default_print_operand): Declare.
10451 (default_print_operand_address): Declare.
10452 (default_print_operand_punct_valid_p): Declare.
10453 * targhooks.c (default_print_operand): Define.
10454 (default_print_operand_address): Define.
10455 (default_print_operand_punct_valid_p): Define.
10456 * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
10457 (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
10458 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
10459 (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
10460 TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
10461 * vmsdbgout.c (addr_const_to_string): Update comment.
10462 * config/i386/i386.c (print_operand): Rename to...
10463 (ix86_print_operand): ...this. Make static.
10464 (print_operand_address): Rename to...
10465 (ix86_print_operand_address): ...this. Make static. Call
10466 ix86_print_operand instead of PRINT_OPERAND.
10467 (ix86_print_operand_punct_valid_p): New function.
10468 (TARGET_PRINT_OPERAND): Define.
10469 (TARGET_PRINT_OPERAND_ADDRESS): Define.
10470 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
10471 * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
10472 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
10473 (PRINT_OPERAND): Delete.
10474 (PRINT_OPERAND_ADDRESS): Delete.
10475 * config/i386/i386-protos.h (print_operand): Delete prototype.
10476 (print_operand_address): Delete prototype.
10477
10478 2010-06-03 Richard Guenther <rguenther@suse.de>
10479
10480 PR tree-optimization/44403
10481 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
10482 Preserve pointer qualifiers.
10483 (vect_create_data_ref_ptr): Likewise.
10484
10485 2010-06-03 H.J. Lu <hongjiu.lu@intel.com>
10486
10487 PR c++/44294
10488 * defaults.h (MAX_FIXED_MODE_SIZE): New.
10489
10490 * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
10491
10492 2010-06-03 Jakub Jelinek <jakub@redhat.com>
10493
10494 PR debug/44375
10495 * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
10496 return false if merging the bbs would lead to goto_locus
10497 location being lost from the IL.
10498
10499 2010-06-03 Jan Hubicka <jh@suse.cz>
10500 Jakub Jelinek <jakub@redhat.com>
10501
10502 * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
10503 set->regs[i] is NULL or has just one entry.
10504
10505 2010-06-03 Jan Hubicka <jh@suse.cz>
10506
10507 * lto-cgraph.c (lto_varpool_encoder_size): Remove.
10508 * lto-streamer.h (lto_varpool_encoder_size): New inline function.
10509
10510 2010-06-03 Paul Brook <paul@codesourcery.com>
10511
10512 * config/arm/arm.c (FL_TUNE): Define.
10513 (arm_default_cpu, arm_cpu_select): Remove.
10514 (all_cores): Populate core field.
10515 (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
10516 (arm_find_cpu): New function.
10517 (arm_handle_option): Lookup cpu/architecture names.
10518 (arm_override_options): Cleanup mcpu/march/mtune handling.
10519 (arm_file_start): Ditto.
10520
10521 2010-06-03 Alan Modra <amodra@gmail.com>
10522
10523 PR target/44169
10524 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
10525 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
10526 rtx to gen_load_toc_v4_PIC_1b. Tidy.
10527 (rs6000_emit_load_toc_table): Likewise.
10528
10529 2010-06-02 Jan Hubicka <jh@suse.cz>
10530
10531 * passes.c (init_optimization_passes): Put ipa reference
10532 after ipa pure-const.
10533
10534 2010-06-02 Jan Hubicka <jh@suse.cz>
10535
10536 * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
10537 calls_read_all and calls_write_all.
10538 (get_reference_optimization_summary): Fix formatting.
10539 (is_proper_for_analysis): Check that decl is not readonly.
10540 (propagate_bits): Check CONST/PURE/noreturn flags.
10541 (ipa_init): Move all_module_statics to optimization_summary_obstack.
10542 (analyze_function): Ignore indirect edges.
10543 (copy_global_bitmap): For all module statics, do nothing.
10544 (generate_summary): Do not print calls_read_all/calls_write_all.
10545 (read_write_all_from_decl): Take node as argument; check
10546 cgraph_node_cannot_return.
10547 (propagate): Reorganize read_all/write_all computation;
10548 check indirect edges; check ecf flags; use all_module_statics
10549 in the results; do not free all_module_statics.
10550 (stream_out_bitmap): Handle all_module_statics.
10551 (ipa_reference_write_optimization_summary): Likewise; use
10552 varpool/cgraph encoders to get boundaries.
10553 (ipa_reference_read_optimization_summary): Read in all_module_statics;
10554 use it when possible.
10555
10556 2010-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
10557
10558 PR target/44218
10559 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
10560 -mswdiv option. Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
10561
10562 * doc/extend.texi (powerpc builtins): Document vec_recip,
10563 vec_rsqrt, vec_rsqrte altivec/vsx builtins.
10564
10565 * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
10566 (rs6000_emit_swrsqrt): Ditto.
10567 (rs6000_emit_swdivsf): Delete.
10568 (rs6000_emit_swdivdf): Ditto.
10569 (rs6000_emit_swrsqrtsf): Ditto.
10570
10571 * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
10572 describe the reciprocal estimate support for each type.
10573 (recip_options): Map -mrecip=<opt> into option bits.
10574 (gen_2arg_fn_t): New typedef for binary rtx gen function.
10575 (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
10576 reciprocal estimate instructions.
10577 (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
10578 debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
10579 Set up rs6000_recip_bits based on the -mrecip* options. Print the
10580 cost information if -mdebug=cost or -mdebug=reg.
10581 (rs6000_override_options): Set -mrecip-precision for power6, and
10582 power7 machines. If -mvsx or -mdfp, enable various options that
10583 came in previous instruction set ISAs, unless the option was
10584 explicitly disabled by the command line option. Parse
10585 -mrecip=<opt> options.
10586 (rs6000_builtin_vectorized_function): Add support for vectorizing
10587 the reciprocal estimate builtins and expansions.
10588 (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
10589 (bdesc_2arg): Add reciprocal estimate builtins.
10590 (bdesc_1arg): Add reciprocal square root estimate builtins.
10591 (rs6000_expand_builtin): Rewrite to use a switch statement,
10592 instead of multiple if/then/elses. Add reciprocal estimate builtins.
10593 (rs6000_init_builtins): Create declarations for reciprocal
10594 estimate builtins.
10595 (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
10596 sized, prefer traditional floating point registers, if integer
10597 vector types, prefer altivec registers. Don't actually look at
10598 the memory address any more.
10599 (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
10600 builtins.
10601 (rs6000_load_constant_and_splat): New helper function to load up
10602 the constant for reciprocal estimate instructions.
10603 (rs6000_emit_madd): New helper function for generating
10604 multiply/add type instructions, based on the current switches.
10605 (rs6000_emit_msub): Ditto.
10606 (rs6000_emit_mnsub): Ditto.
10607 (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
10608 replace a divide with a reciprocal estimate and fixup, adding
10609 support for machines with high precision and vectors.
10610 (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
10611 low precision machines.
10612 (rs6000_emit_swdiv): New common function to be called to replace a
10613 division with reciprocal estimate and fixup.
10614 (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf. Add support
10615 for double and vector types. Add support for high precision machines.
10616
10617 * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
10618 the reciprocal estimate instructions can be generated.
10619 (TARGET_FRE): Ditto.
10620 (TARGET_FRSQRTES): Ditto.
10621 (TARGET_FRSQRTE): Ditto.
10622 (RS6000_RECIP_*): New macros for reciprocal estimate support.
10623
10624 * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
10625 square root estimate on vectors.
10626 (re<mode>2): New insn for reciprocal division estimate on vectors.
10627
10628 * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
10629 New builtin.
10630 (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
10631 (ALTIVEC_BUITLIN_VEC_RE): Ditto.
10632 (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
10633 (VSX_BUILTIN_RSQRT_V4SF): Ditto.
10634 (VSX_BUITLIN_RSQRT_V2DF): Ditto.
10635 (RS6000_BUILTIN_RSQRT): Ditto.
10636 (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
10637 floating point builtin.
10638
10639 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
10640 macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
10641 __RECIP_PRECISION__ based on the command line switches.
10642 (altivec_overloaded_builtins): Add reciprocal estimate builtins.
10643
10644 * config/rs6000/rs6000.opt (-mrecip): Document add support for
10645 replacing division instructions with reciprocal estimate and fixup.
10646 (-mrecip=<opt>): New option.
10647 (-mrecip-precision): Ditto.
10648
10649 * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
10650 (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
10651 (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
10652 precision scalar.
10653
10654 * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
10655 (UNSPEC_VREFP): Ditto.
10656 (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
10657 conterparts with regard to support of -mno-fused-madd and -ffast-math.
10658 (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
10659 reciprocal estimate instructions to be generated.
10660 (altivec_vrefp): Ditto.
10661
10662 * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
10663 estimate support.
10664 (rreg): New mode attribute for reciprocal estimate support.
10665 (recip<mode>3): New insn for division using reciprocal estimate
10666 and fixup builtins.
10667 (divide define_split): New define_split to convert floating point
10668 division to use reciprocal estimate if the user used the
10669 appropriate options and the split is run when we can add new
10670 pseudo registers for the fixup.
10671 (rsqrt<mode>2): New insn for reciprocal square root support.
10672 (recipsf3): Move into recip<mode>3.
10673 (recipdf3): Ditto.
10674 (fres): Use TARGET_FRES.
10675 (rsqrtsf2): Move into rsqrt<mode>2.
10676 (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
10677 (copysignsf3): Add support for VSX.
10678 (fred): Use TARGET_FRE.
10679 (fred_fpr): Ditto.
10680 (rsqrtdf_internal1): New function for frsqrte instruciton.
10681
10682 * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
10683 (vec_rsqrt): Ditto.
10684
10685 2010-06-03 Richard Guenther <rguenther@suse.de>
10686
10687 PR middle-end/44291
10688 * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
10689 (set_user_assembler_libfunc): Likewise.
10690
10691 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
10692
10693 * mkconfig.sh: Include insn-flags.h and insn-constants.h before
10694 defaults.h.
10695 * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
10696 to defaults.h
10697 * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
10698 DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
10699 FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
10700 STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
10701 STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
10702 STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
10703 STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
10704 STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
10705 * defaults.h: Updated for above mentioned changes.
10706
10707 2010-06-02 Kai Tietz <kai.tietz@onevision.com>
10708
10709 * c-common.c: Remove header include of tm_p.h.
10710 * Makefile.in (c-common.o): Remove TM_P_H dependency.
10711
10712 2010-06-02 Jakub Jelinek <jakub@redhat.com>
10713
10714 * tree.h (struct tree_decl_map): New type.
10715 (tree_decl_map_eq, tree_decl_map_marked_p): Define.
10716 (tree_decl_map_hash): New prototype.
10717 (debug_expr_for_decl, value_expr_for_decl): Change into
10718 tree_decl_map hashtab from tree_map.
10719 (init_ttree): Adjust initialization.
10720 (tree_decl_map_hash): New function.
10721 (decl_debug_expr_lookup, decl_debug_expr_insert,
10722 decl_value_expr_lookup, decl_value_expr_insert): Adjust.
10723
10724 2010-06-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10725
10726 * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
10727 linker emulations.
10728 * configure: Regenerate.
10729 * config.in: Regenerate.
10730
10731 * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
10732 (X86_64_EMULATION): Define.
10733 (TARGET_LD_EMULATION): Use them.
10734
10735 * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
10736 (SPARC64_EMULATION): Define.
10737 (LINK_ARCH_SPEC): Use them.
10738
10739 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
10740
10741 * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
10742 smallest_mode_for_size for computing the precision types of new
10743 graphite IVs. Do not call lang_hooks.types.type_for_size.
10744
10745 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
10746
10747 * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
10748 information.
10749 (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
10750
10751 2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
10752
10753 PR middle-end/44363
10754 * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
10755 return false instead.
10756
10757 2010-06-02 Jan Hubicka <jh@suse.cz>
10758
10759 PR middle-end/44295
10760 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
10761 create new cgraph node to check callee.
10762
10763 2010-06-02 Richard Guenther <rguenther@suse.de>
10764
10765 * lto-streamer-in.c (input_gimple_stmt): Fix typo.
10766
10767 2010-06-02 Richard Guenther <rguenther@suse.de>
10768
10769 * lto-wrapper.c (lto_wrapper_exit): Rename to ...
10770 (lto_wrapper_cleanup): ... this. Do not exit.
10771 (fatal): Adjust. Exit here.
10772 (fatal_perror): Likewise.
10773 (fatal_signal): New function.
10774 (main): Set up signal handlers to cleanup temporary files.
10775 * Makefile.in (lto-wrapper.o): Adjust dependencies.
10776
10777 2010-06-02 Richard Guenther <rguenther@suse.de>
10778
10779 PR tree-optimization/44377
10780 * tree-ssa-structalias.c (find_func_aliases): Fix typo.
10781
10782 2010-06-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10783
10784 * config/s390/2097.md (z10_fhex): Remove insn reservation.
10785 * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
10786 (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
10787 *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
10788 instruction.
10789 * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
10790
10791 2010-06-02 Jan Hubicka <jh@suse.cz>
10792
10793 * bitmap.c (bitmap_descriptor): Add search_iter.
10794 (bitmap_find_bit): Increment it.
10795 (print_statistics): Print it.
10796
10797 2010-06-02 Nathan Froyd <froydnj@codesourcery.com>
10798
10799 * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
10800 instead of gimple_build_call_vec. Delete unnecessary local variable.
10801
10802 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
10803
10804 * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
10805 change from yesterday.
10806
10807 2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
10808
10809 * c-ada-spec.c: Clean up redundant includes.
10810
10811 2010-06-01 Steven Bosscher <steven@gcc.gnu.org>
10812
10813 * gimplify.c: Do not include except.h and optabs.h.
10814 (gimplify_body): Do not initialize RTL profiling.
10815 * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
10816 langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
10817 * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
10818 output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
10819 langhooks.h.
10820
10821 * tree-pretty-print.h: Include pretty-print.h.
10822 * gimple-pretty-print.h: Include pretty-print.h.
10823
10824 * tree-pretty-print.c: Do not include diagnostic.h.
10825 * tree-vrp.c: Likewise.
10826 * tree-tailcall.c: Likewise
10827 * tree-scalar-evolution.c: Likewise
10828 * tree-ssa-dse.c: Likewise
10829 * tree-chrec.c: Likewise
10830 * tree-ssa-sccvn.c: Likewise
10831 * tree-ssa-copyrename.c: Likewise
10832 * tree-nomudflap.c: Likewise
10833 * tree-call-cdce.c: Likewise
10834 * tree-stdarg.c: Likewise
10835 * tree-ssa-math-opts.c: Likewise
10836 * tree-nrv.c: Likewise
10837 * tree-ssa-sink.c: Likewise
10838 * tree-browser.c: Likewise
10839 * tree-ssa-loop-ivcanon.c: Likewise
10840 * tree-ssa-loop.c: Likewise
10841 * tree-parloops.c: Likewise
10842 * tree-ssa-address.c: Likewise
10843 * tree-ssa-ifcombine.c: Likewise
10844 * tree-if-conv.c: Likewise
10845 * tree-data-ref.c: Likewise
10846 * tree-affine.c: Likewise
10847 * tree-ssa-phiopt.c: Likewise
10848 * tree-ssa-coalesce.c: Likewise
10849 * tree-ssa-pre.c: Likewise
10850 * tree-ssa-live.c: Likewise
10851 * tree-predcom.c: Likewise
10852 * tree-ssa-forwprop.c: Likewise
10853 * tree-ssa-dce.c: Likewise
10854 * tree-ssa-ter.c: Likewise
10855 * tree-ssa-loop-prefetch.c: Likewise
10856 * tree-optimize.c: Likewise
10857 * tree-ssa-phiprop.c: Likewise
10858 * tree-object-size.c: Likewise
10859 * tree-outof-ssa.c: Likewise
10860 * tree-ssa-structalias.c: Likewise
10861 * tree-switch-conversion.c: Likewise
10862 * tree-ssa-reassoc.c: Likewise
10863 * tree-ssa-operands.c: Likewise
10864 * tree-vectorizer.c: Likewise
10865 * tree-vect-data-refs.c: Likewise
10866 * tree-vect-generic.c: Likewise
10867 * tree-vect-stmts.c: Likewise
10868 * tree-vect-patterns.c: Likewise
10869 * tree-vect-slp.c: Likewise
10870 * tree-vect-loop.c: Likewise
10871 * tree-ssa-loop-ivopts.c: Likewise
10872 * tree-ssa-loop-im.c: Likewise
10873 * tree-ssa-loop-niter.c: Likewise
10874 * tree-ssa-loop-unswitch.c: Likewise
10875 * tree-ssa-loop-manip.c: Likewise
10876 * tree-ssa-loop-ch.c: Likewise
10877 * tree-dump.c: Likewise
10878 * tree-complex.c: Likewise
10879
10880 * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
10881 * tree-ssa-uninit.c: Likewise
10882 * tree-ssa-threadupdate.c: Likewise
10883 * tree-ssa-uncprop.c: Likewise
10884 * tree-ssa-ccp.c: Likewise
10885 * tree-ssa-dom.c: Likewise
10886 * tree-ssa-propagate.c: Likewise
10887 * tree-ssa-alias.c: Likewise
10888 * tree-dfa.c: Likewise
10889 * tree-cfgcleanup.c: Likewise
10890 * tree-sra.c: Likewise
10891 * tree-ssa-copy.c: Likewise
10892 * tree-ssa.c: Likewise
10893 * tree-profile.c: Likewise
10894 * tree-cfg.c: Likewise
10895 * tree-ssa-threadedge.c: Likewise
10896 * tree-vect-loop-manip.c: Likewise
10897
10898 * tree-inline.c: Do not include diagnostic.h and expr.h.
10899 Include rtl.h.
10900 (copy_decl_for_dup_finish): Do not use NULL_RTX.
10901
10902 * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
10903 * tree-loop-distribution.c: Likewise.
10904
10905 2010-06-01 Jan Hubicka <jh@suse.cz>
10906
10907 * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
10908
10909 2010-06-01 Jan Hubicka <jh@suse.cz>
10910
10911 * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
10912 remove return value.
10913 (split_bbs_on_noreturn_calls) .... here.
10914 * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
10915 * tree-flow.h (fixup_noreturn_call): New.
10916
10917 2010-06-01 Jan Hubicka <jh@suse.cz>
10918
10919 * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
10920
10921 2010-06-01 Nathan Froyd <froydnj@codesourcery.com>
10922
10923 * tree.h (build_nt_call_list): Delete.
10924 * tree.c (build_nt_call_list): Delete.
10925
10926 2010-06-01 Jan Hubicka <jh@suse.cz>
10927
10928 * fwprop.c: Make emit-rtl.h include last.
10929 * rtlanal.c: Include emit-rtl.h.
10930 * genautomata.c: Output emit-rtl include into insn-automata.c
10931 * df-scan.c: Include emit-rtl.h.
10932 * haifa-sched.c: Indlude emit-rtl.h.
10933 * mode-switching.c: Indlude emit-rtl.h.
10934 * graph.c: Indlude emit-rtl.h.
10935 * sel-sched.c: Include emit-rtl.h.
10936 * sel-sched-ir.c: Include emit-rtl.h.
10937 * ira-build.c: Include emit-rtl.h.
10938 * emit-rtl.c (first_insn, last_insn): Remove defines.
10939 (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
10940 Move to emit-rtl.h.
10941 (set_new_first_and_last_insn, get_last_insn_anywhere,
10942 get_first_nonnote_insn, get_last_nonnote_insn, try_split,
10943 make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
10944 delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
10945 emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
10946 push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
10947 Use accessor functions.
10948 * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
10949 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
10950 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
10951 mem_expr_equal_p): Move here from rtl.h.
10952 (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
10953 Move here from emit-rtl.c; make inline.
10954 * cfglayout.h: Include emit-rtl.h.
10955 * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
10956 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
10957 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
10958 mem_expr_equal_p, get_insns, set_first-insn,
10959 get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
10960 * reg-stack.c: Include emit-rtl.h.
10961 * dce.c: Likewise.
10962
10963 2010-06-01 Jan Hubicka <jh@suse.cz>
10964
10965 * cgraph.h (tree_function_versioning): Update prototype.
10966 (cgraph_function_versioning): Update prototype.
10967 * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
10968 bitmap.
10969 (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
10970 (cgraph_materialize_clone, save_inline_function_body): Update use of
10971 tree_function_versioning.
10972 * tree-inline.c (copy_bb): Look for previous copied block to link
10973 after; fix debug output.
10974 (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
10975 (copy_body): Likewise.
10976 (expand_call_inline): Update use of copy_body.
10977 (tree_function_versioning): Update use of copy body; accept
10978 blocks_to_copy and new_entry.
10979
10980 2010-06-01 Jan Hubicka <jh@suse.cz>
10981
10982 * gegenrtl.c: Remove unnecesary prototypes.
10983 (gendecl): Remove.
10984 (gendef): Produce static inline.
10985 (gencode): Remove.
10986 (main): Do not decode parameters; generate header only.
10987 * Makefile.in (genrtl.c): Remove.
10988
10989 2010-06-01 Jan Hubicka <jh@suse.cz>
10990
10991 * tree-switch-conversion.c (build_one_array): Make it readonly.
10992
10993 2010-06-01 Richard Guenther <rguenther@suse.de>
10994
10995 * optabs.c (init_optabs): Guard all accesses to reinit.
10996 * ipa-pure-const.c (propagate): Fix another typo.
10997 * opts.c (common_handle_option): Split assignment to bool.
10998 * c-opts.c (c_common_handle_option): Likewise.
10999
11000 2010-06-01 Arnaud Charlet <charlet@adacore.com>
11001 Matthew Gingell <gingell@adacore.com>
11002
11003 * doc/invoke.texi: Mention -fdump-ada-spec.
11004 * tree-dump.c (dump_files): Add ada-spec.
11005 (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
11006 * tree-pass.h (tree_dump_index): Add TDI_ada.
11007 * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
11008 (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
11009 (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
11010 * c-decl.c: Include c-ada-spec.h.
11011 (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
11012 functions.
11013 (c_write_global_declarations): Add handling of -fdump-ada-spec.
11014 * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
11015 * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
11016 * c-ada-spec.h, c-ada-spec.c: New files.
11017
11018 2010-06-01 Richard Guenther <rguenther@suse.de>
11019
11020 PR lto/43853
11021 * ipa-pure-const.c (get_function_state): Hand back varying state
11022 if we do not have one.
11023 (has_function_state): New function.
11024 (duplicate_node_data): Adjust.
11025 (remove_node_data): Likewise.
11026 (pure_const_write_summary): Likewise.
11027 (propagate): Likewise. Fix typo.
11028
11029 2010-06-01 Jan Hubicka <jh@suse.cz>
11030
11031 * tree-cfg.c (verify_stmt): Do not skip could_throw test.
11032 * passes.c (execute_function_todo): Do not make implicit verify_ssa.
11033 (execute_all_ipa_transforms): Do not play with the states.
11034
11035 2010-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
11036
11037 * config/arm/t-linux-androideabi: New.
11038 * config.gcc (arm*-*-linux-androideabi): Include multilib config.
11039
11040 2010-06-01 Jan Hubicka <jh@suse.cz>
11041
11042 * tree-inline.c (estimate_num_insns): For stdarg functions look
11043 into call statement to count cost of argument passing.
11044
11045 2010-06-01 Kai Tietz <kai.tietz@onevision.com>
11046
11047 * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
11048 argument for fprintf.
11049 (ix86_output_addr_diff_elt): Likewise.
11050 (x86_function_profiler): Likewise.
11051 * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
11052 (LPREFIX): Likewise.
11053 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
11054
11055 2010-05-31 Jakub Jelinek <jakub@redhat.com>
11056
11057 PR target/44338
11058 * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
11059 fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
11060 fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
11061 fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
11062 fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
11063 fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
11064 fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
11065 Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
11066 TARGET_FUSED_MADD.
11067
11068 2010-05-31 Jan Hubicka <jh@suse.cz>
11069
11070 * tree.h (tree_range_check_failed): Declare noreturn.
11071
11072 2010-05-31 Jan Hubicka <jh@suse.cz>
11073
11074 * gimple.c (gimple_call_builtin_p): New function.
11075 * gimple.h (gimple_call_builtin_p): Declare.
11076 * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
11077 to exit.
11078 (execute_warn_function_return): BUILT_IN_RETURN is return.
11079 (split_critical_edges): Return edges are not critical.
11080 (is_ctrl_altering_stmt): Builtin_in_return is altering.
11081 (gimple_verify_flow_info): Handle built_in_return.
11082 (execute_warn_function_return): Handle built_in_return.
11083 * ipa-pure-const.c (check_call): Ignore builtin_return.
11084
11085 2010-05-31 Jakub Jelinek <jakub@redhat.com>
11086
11087 PR middle-end/44337
11088 * expr.c (expand_assignment): Don't store anything for out-of-bounds
11089 array accesses with non-MEM.
11090
11091 PR tree-optimization/44182
11092 * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
11093 newly needs to end a bb is followed by debug stmts, instead return
11094 true from the function at the end.
11095 (maybe_move_debug_stmts_to_successors): New function.
11096 (copy_cfg_body): Call it if copy_edges_for_bb returned true.
11097
11098 2010-05-31 Kai Tietz <kai.tietz@onevision.com>
11099
11100 PR target/44161
11101 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
11102
11103 2010-05-31 Eric Botcazou <ebotcazou@adacore.com>
11104
11105 * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
11106 for nested functions in non-optimized compilation.
11107
11108 2010-05-31 Richard Guenther <rguenther@suse.de>
11109
11110 * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
11111
11112 2010-05-30 Jan Hubicka <jh@suse.cz>
11113
11114 * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
11115
11116 2010-05-30 Richard Guenther <rguenther@suse.de>
11117
11118 PR lto/42975
11119 * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
11120 (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
11121 no longer needed.
11122
11123 2010-05-30 Iain Sandoe <iains@gcc.gnu.org>
11124
11125 * config/darwin.c (output_objc_section_asm_op): Add comment.
11126 (name_needs_quotes): Add '_' to list of valid comment chars.
11127 (machopic_output_function_base_name): Remove unneeded quotes.
11128 (darwin_encode_section_info): Adjust asm whitespace.
11129 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
11130 (ASM_OUTPUT_LOCAL): Ditto.
11131 * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
11132 * config/darwin.h (GLOBAL_ASM_OP): Ditto.
11133 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
11134
11135 2010-05-30 Eric Botcazou <ebotcazou@adacore.com>
11136
11137 * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
11138 RS6000_OUTPUT_BASENAME unconditionally.
11139 (rs6000_output_function_epilogue): Likewise.
11140
11141 2010-05-30 Jan Hubicka <jh@suse.cz>
11142
11143 * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
11144 nodes.
11145
11146 2010-05-30 Richard Guenther <rguenther@suse.de>
11147
11148 * tree-cfg.c (verify_gimple_assign_single): Implement
11149 verification for COND_EXPR rhs.
11150
11151 2010-05-30 Jan Hubicka <jh@suse.cz>
11152
11153 * cgraph.h (cgraph_dump_file): Declare.
11154 * cgraphunit.c (cgraph_dump_file): Export.
11155 * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
11156
11157 2010-05-30 Jan Hubicka <jh@suse.cz>
11158
11159 * dwarf2out.c (reference_to_unused,
11160 premark_types_used_by_global_vars_helper): Avoid creation of new
11161 varpool nodes.
11162
11163 2010-05-30 Jan Hubicka <jh@suse.cz>
11164
11165 * cgraph.h (cgraph_node_cannot_return,
11166 cgraph_edge_cannot_lead_to_return): New functions.
11167 * cgraph.c (cgraph_node_cannot_return,
11168 cgraph_edge_cannot_lead_to_return): Use them.
11169 * ipa-pure-const.c (pure_const_names): New static var.
11170 (check_call): Handle calls not leading to return.
11171 (pure_const_read_summary): Dump info read.
11172 (propagate): Dump info about propagation process; ignore side effects
11173 of functions not leading to exit; fix handling of pure functions.
11174
11175 2010-05-30 Jan Hubicka <jh@suse.cz>
11176
11177 * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
11178 for tail call epilogues.
11179
11180 2010-05-30 Jan Hubicka <jh@suse.cz>
11181
11182 * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
11183 ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
11184 dump files.
11185
11186 2010-05-29 Jan Hubicka <jh@suse.cz>
11187
11188 * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
11189 node; remove references in node we no longer keep in cgrpah but need
11190 body of.
11191
11192 2010-05-29 Jan Hubicka <jh@suse.cz>
11193
11194 * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
11195
11196 2010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11197
11198 PR target/44165
11199 * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
11200
11201 2010-05-29 Jan Hubicka <jh@suse.cz>
11202
11203 * tree-vrp.c (debug_value_range, debug_all_value_ranges,
11204 debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
11205 * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
11206 debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
11207 debug_names_replaced_by, debug_update_ssa): Likewise.
11208 * sbitmap.c (debug_sbitmap): Likewise.
11209 * genrecog.c (debug_decision, debug_decision_list): Likewise.
11210 * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
11211 debug_tree_chain): Likewise.
11212 * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
11213 * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
11214 * optabs.c (debug_optab_libfuncs): Likewise.
11215 (verify_loop_closed_ssa): Likewise.
11216 * value-prof.c (verify_histograms): Likewise.
11217 * reload.c (debug_reload_to_stream, debug_reload): Likewise.
11218 * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
11219 * cfghooks.c (verify_flow_info): Likewise.
11220 * fold-const.c (debug_fold_checksum): Likewise.
11221 * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
11222 * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
11223 Likewise.
11224 * omega.c (debug_omega_problem): Likewise.
11225 * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
11226 * tree-ssa-ccp.c (debug_lattice_value): Likewise.
11227 * dominance.c (verify_dominators, debug_dominance_info,
11228 debug_dominance_tree): Likewise.
11229 * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
11230 * df_regno_debug, df_ref_debug,
11231 debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
11232 debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
11233 * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
11234 * sel-sched.c (debug_state): Likewise.
11235 * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
11236 Likewise.
11237 * cfganal.c (print_edge_list, verify_edge_list): Likewise.
11238 * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
11239 * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
11240 * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
11241 Likewise.
11242 * c-pretty-print.c (debug_c_tree): Likewise.
11243 * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
11244 debug_av_set, debug_lv_set, debug_ilist, debug_blist,
11245 debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
11246 * ebitmap.c (debug_ebitmap): Likewise.
11247 * function.c (debug_find_var_in_block_tree): Likewise.
11248 * print-rtl.c (debug_rtx): Likewise.
11249 (debug_rtx_count): Likewise.
11250 (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
11251 * stor-layout.c (debug_rli): Likewise.
11252 * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
11253 * tree-data-ref.c (debug_data_references,
11254 debug_data_dependence_relations, debug_data_reference,
11255 debug_data_dependence_relation, debug_rdg_vertex,
11256 debug_rdg_component, debug_rdg): Likewise.
11257 * tree-affine.c (debug_aff): Likewise.
11258 * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
11259 Likewise.
11260 * except.c (debug_eh_tree, verify_eh_tree): Likewise.
11261 * emit-rtl.c (verify_rtl_sharing): Likewise.
11262 * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
11263 debug_value_expressions): Likewise.
11264 * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
11265 * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
11266 * print-tree.c (debug_tree, debug_vec_tree): Likewise.
11267 * cfglayout.c (verify_insn_chain): Likewise.
11268 * graphite-clast-to-gimple.c (debug_clast_name_indexes,
11269 debug_clast_stmt, debug_generated_program): Likewise.
11270 * ggc-page.c (debug_print_page_list): Likewise.
11271 * tree-ssa-ter.c (debug_ter): Likewise.
11272 * graphite-dependences.c (debug_pddr): Likewise.
11273 * sched-deps.c (debug_ds): Likewise.
11274 * tree-ssa.c (verify_ssa): Likewise.
11275 * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
11276 debug_scattering_functions, debug_iteration_domains, debug_pdr,
11277 debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
11278 debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
11279 * tree-inline.c (debug_find_tree): Likewise.
11280 * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
11281 debug_ppl_powerset_matrix): Likewise.
11282 * var-tracking.c (debug_dv): Likewise.
11283 * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
11284 * cfgloop.c (verify_loop_structure): Likewise.
11285 * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
11286 * c-common.c (verify_sequence_points): Likewise.
11287 * sched-rgn.c (debug_regions, debug_region, debug_candidate,
11288 debug_candidates, debug_rgn_dependencies): Likewise.
11289 * tree-ssa-structalias.c (debug_constraint, debug_constraints,
11290 * debug_constraint_graph, debug_solution_for_var,
11291 debug_sa_points_to_info): Likewise.
11292 * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
11293 Likewie.
11294 * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
11295 debug_loops, debug_loop, debug_loop_num): Likewise.
11296 * passes.c (debug_pass): Likewise.
11297 (dump_properties): Likewise; add cfglayout property.
11298 (debug_properties): Likewise.
11299 * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
11300 * varpool.c (debug_varpool): Likewise.
11301 * regcprop.c (debug_value_data): Likewise.
11302 * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
11303 debug_immediate_uses_for): Likewise.
11304
11305 2010-05-29 H.J. Lu <hongjiu.lu@intel.com>
11306
11307 PR bootstrap/44315
11308 * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
11309 Filter out insn-flags.h.
11310
11311 2010-05-29 Jan Hubicka <jh@suse.cz>
11312
11313 * cgraph.h (struct varpool_node_set_def,
11314 struct cgraph_node_set_def): Remove unused AUX pointer.
11315 (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
11316 VEC_empty macro.
11317
11318 2010-05-29 Jan Hubicka <jh@suse.cz>
11319
11320 PR middle-end/44324
11321 * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
11322
11323 2010-05-29 Richard Guenther <rguenther@suse.de>
11324
11325 * lto-streamer.c (cached_bp): New global variable.
11326 (bitpack_create): Return the cached bitpack, if available.
11327 (bitpack_delete): Clear and cache the bitpack, if appropriate.
11328 (bp_pack_value): Remove redundant asserts.
11329
11330 2010-05-29 Sebastian Pop <sebastian.pop@amd.com>
11331
11332 PR middle-end/44306
11333 * tree-if-conv.c (is_true_predicate): New.
11334 (is_predicated): Use is_true_predicate.
11335 (add_to_predicate_list): Same. Do not use unshare_expr.
11336 (add_to_dst_predicate_list): Same.
11337
11338 2010-05-29 Sebastian Pop <sebastian.pop@amd.com>
11339
11340 * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
11341 field on edges.
11342 (predicate_bbs): Same.
11343 (clean_predicate_lists): Same.
11344 (find_phi_replacement_condition): Do not AND the predicate from
11345 edge->aux.
11346
11347 2010-05-29 H.J. Lu <hongjiu.lu@intel.com>
11348
11349 PR bootstrap/44315
11350 * Makefile.in (build/gencondmd.o): Add a missing `\'.
11351
11352 2010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11353
11354 PR target/44261
11355 config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
11356 (negdf2): Adjust expander pattern and use negdf2_slow.
11357 (negsf2): Likewise.
11358
11359 2010-05-29 Nathan Froyd <froydnj@codesourcery.com>
11360
11361 * basic-block.h (struct control_flow_graph): Move last_label_uid field
11362 up.
11363 * df.h (struct df_base_ref): Move regno field up.
11364 * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
11365 * expr.h (struct separate_ops): Move location field up.
11366 * optabs.h (struct optab_d): Move libcall_basename field down.
11367 * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
11368 * config/i386/i386.h (struct machine_function): Convert call_abi field
11369 into a bitfield. Move cfa field to the end of the structure.
11370
11371 2010-05-29 Jan Hubicka <jh@suse.cz>
11372
11373 * varpool.c (varpool_get_node): Fix lookup.
11374
11375 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
11376
11377 * config/spu/spu-protos.h: Do not include rtl.h. Protect
11378 RTL specific prototypes with #ifdef RTX_CODE.
11379 * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
11380 * config/spu/t-spu-elf: Fix dependencies.
11381
11382 * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
11383
11384 2010-05-29 Mike Stump <mikestump@comcast.net>
11385
11386 PR bootstrap/44315
11387 * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
11388 TM_H when building to avoid dependency loops.
11389
11390 2010-05-29 Jan Hubicka <jh@suse.cz>
11391
11392 * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
11393 refs and body; not the whole node for masters of materialized clones.
11394
11395 2010-05-29 Mike Stump <mikestump@comcast.net>
11396
11397 * config/rs6000/rs6000-c.c: Remove c-tree.h include.
11398
11399 2010-05-29 Jan Hubicka <jh@suse.cz>
11400
11401 * cgraph.c (clone_function_name): Take SUFFIX argument; export.
11402 (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
11403 use of clone_function_name.
11404 * cgraph.h (cgraph_create_virtual_clone,
11405 cgraph_function_versioning): update prototypes.
11406 (clone_function_name): Declare.
11407 * ipa-cp.c (ipcp_insert_stage): Update call of
11408 cgraph_create_virtual_clone.
11409 * omp-low.c (create_omp_child_function_name): Use
11410 cgraph_create_virtual_clone.
11411 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
11412 (cgraph_function_versioning): Take SUFFIX argument; produce new name
11413 and make decl local.
11414
11415 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
11416
11417 * vec.h: Include statistics.h
11418 * Makefile.in: Introduce VEC_H. Replace all vec.h dependencies
11419 with VEC_H.
11420
11421 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
11422
11423 * c-lex.c: Do not include c-tree.h.
11424 * c-pretty-print.c: Likewise.
11425 * c-opts.c: Likewise.
11426 * c-gimplify.c: Likewise.
11427 * c-common.c: Likewise.
11428 * c-dump.c: Likewise. Include c-common.h.
11429
11430 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
11431
11432 * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
11433 before including diagnostic-core.h.
11434 (c_cpp_error): New prototype moved from c-tree.h.
11435 Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
11436 * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
11437 (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
11438 (c_cpp_error): Prototype moved to c-common.h.
11439 * Makefile.in: Update dependency for C_COMMON_H.
11440
11441 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
11442
11443 * c-common.h: Add FIXME for awkward split of c_register_addr_space.
11444 * c-common.c (c_register_addr_space): Remove here.
11445 * c-decl.c (c_register_addr_space): Re-add here.
11446
11447 2010-05-28 Mike Stump <mikestump@comcast.net>
11448
11449 * config/darwin-c.c: Remove c-tree.h include.
11450
11451 2010-05-28 Joseph Myers <joseph@codesourcery.com>
11452
11453 * gcc.c: Include diagnostic.h.
11454 (error_count): Remove. All users changed to use errorcount.
11455 (programname): Remove. All users changed to use progname.
11456 (fancy_abort, internal_error, fatal_error, error, warning, inform,
11457 fnotice): Remove.
11458 (execute): Don't include "Internal error" and bug reporting
11459 information in argument of internal_error call.
11460 (process_command): Don't increment error_count after calling
11461 perror_with_name.
11462 (input_filename): Rename to gcc_input_filename. All users
11463 changed.
11464 (main): Call diagnostic_initialize. Register delete_temp_files
11465 with atexit. Use seen_error to test for errors.
11466 * gcc.h: Include diagnostic-core.h.
11467 (fatal_error, error, warning): Remove.
11468 * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
11469 (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
11470 (gcc.o): Update dependencies.
11471
11472 2010-05-28 Jeff Law <law@redhat.com>
11473
11474 * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
11475 functions.
11476 * ira.h (ira_bad_reload_regno): Declare
11477 * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
11478
11479 * ira-color.c (update_curr_costs): Free updated hard reg costs.
11480 (ira_reassign_conflict_allocnos): Remove bogus asserts.
11481 (allocno_reload_assign): Likewise.
11482
11483 2010-05-28 Nathan Froyd <froydnj@codesourcery.com>
11484
11485 * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
11486 build1_stat.
11487
11488 2010-05-28 Richard Guenther <rguenther@suse.de>
11489
11490 PR lto/44312
11491 * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
11492 Stream fixed-point constants mode.
11493 (unpack_ts_type_value_fields): Fix width of TYPE_MODE
11494 and TYPE_PRECISION.
11495 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
11496 Stream fixed-point constants mode.
11497 (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
11498 and TYPE_PRECISION.
11499
11500 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
11501
11502 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
11503 only place it was called from.
11504 (number_of_latch_executions): Do not return chrec_dont_know when the
11505 may_be_zero is a runtime condition: instead, return a COND_EXPR
11506 including the may_be_zero condition.
11507 * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
11508 of nb_iterations.
11509 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
11510 COND_EXPRs.
11511
11512 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
11513
11514 * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
11515 generate COND_EXPRs for degenerate_phi_result.
11516
11517 2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
11518
11519 PR middle-end/44293
11520 * tree-if-conv.c (if_convertible_loop_p): Check the
11521 if-convertibility of phi nodes in non predicated BBs.
11522
11523 2010-05-28 Joseph Myers <joseph@codesourcery.com>
11524
11525 * gcc.c (error, warning, inform): Remove duplicate ": " in output.
11526
11527 2010-05-28 Joseph Myers <joseph@codesourcery.com>
11528
11529 PR driver/15303
11530 * gcc.c (inform, warning, inform): New functions.
11531 (fatal_ice): Rename to internal_error; change cmsgid parameter to
11532 gmsgid. All callers changed.
11533 (notice): Rename to fnotice; add parameter fp. All callers changed.
11534 (fatal_error): Rename to fatal_signal. All users changed.
11535 (fatal): Rename to fatal_error; change cmsgid parameter to
11536 gmsgid. All callers changed.
11537 (process_command): Use warning instead of error for warnings.
11538 (end_going_arg): Don't use _() around argument of error.
11539 (do_spec_1): Use inform for message from %n specs. Use warning
11540 instead of error for warnings.
11541 (main): Use inform for comparison messages. Use warning for
11542 message about unused linker input.
11543 (error): Increment error_count. Print "error: ".
11544 * gcc.h (fatal): Change to fatal_error.
11545 (warning): Declare.
11546 * config/darwin-driver.c (darwin_default_min_version): Use warning
11547 instead of fprintf for warnings.
11548 * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
11549
11550 2010-05-28 Julian Brown <julian@codesourcery.com>
11551
11552 * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
11553 (*thumb2_addsi3_compare0_scratch): New.
11554 * config/arm/constraints.md (Pv): New.
11555 * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
11556 for ARM mode only.
11557 (*addsi3_compare0_scratch): Likewise.
11558
11559 2010-05-28 Jan Hubicka <jh@suse.cz>
11560
11561 * ipa-reference.c (add_static_var): Remove redundant all_module_statics
11562 check.
11563 (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
11564 only on local statics.
11565
11566 2010-05-28 Iain Sandoe <iains@gcc.gnu.org>
11567
11568 * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
11569
11570 2010-05-28 Maxim Kuvyrkov <maxim@codesourcery.com>
11571
11572 PR bootstrap/44314
11573 * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
11574 (OPTION_GLIBC): Define.
11575
11576 2010-05-28 Jakub Jelinek <jakub@redhat.com>
11577
11578 PR debug/41048
11579 * dwarf2out.c (double_int_type_size_in_bits): New function.
11580 (round_up_to_align): Change first argument and return value to
11581 double_int.
11582 (field_byte_offset): Work internally on double_ints.
11583
11584 PR target/43636
11585 * builtins.c (expand_movstr): Use a temporary pseudo instead
11586 of target even when target is not NULL and not const0_rtx, but
11587 fails movstr predicate.
11588 * config/m32c/blkmov.md (movstr): Add predicate to first operand.
11589
11590 2010-05-28 Joseph Myers <joseph@codesourcery.com>
11591
11592 * final.c (rest_of_clean_state): Use %m in errors instead of
11593 strerror (errno).
11594 * gengtype.c (read_input_list, close_output_files): Use xstrerror
11595 instead of strerror.
11596 * toplev.c (process_options): Use %m in errors instead of strerror
11597 (errno).
11598 * tree-dump.c (dump_begin): Use %m in errors instead of strerror
11599 (errno).
11600
11601 2010-05-28 Uros Bizjak <ubizjak@gmail.com>
11602
11603 * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
11604 (ix86_canonical_va_list_type): Make static. Add declaration.
11605 (ix86_enum_va_list): Make static. Reindent.
11606 * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
11607 (ix86_canonical_va_list_type): Ditto.
11608 (ix86_enum_va_list): Ditto.
11609
11610 2010-05-28 Richard Guenther <rguenther@suse.de>
11611
11612 * lto-wrapper.c (run_gcc): With -save-temps generate a
11613 user-visible ltrans filename. Fixup ltrans unit numbering.
11614
11615 2010-05-28 Kai Tietz <kai.tietz@onevision.com>
11616
11617 * c-common.c (c_common_nodes_and_builtins): Replace use
11618 of TARGET_ENUM_VA_LIST by target hook enum_va_list.
11619 * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
11620 to ix86_enum_va_list.
11621 * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
11622 * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
11623 (TARGET_ENUM_VA_LIST_P): Add hook description.
11624 * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
11625 * target.h (gcc_target): Add enum_va_list hook.
11626
11627 PR bootstrap/44299
11628 * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
11629 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
11630 * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
11631
11632 2010-05-28 Alan Modra <amodra@gmail.com>
11633
11634 PR target/44266
11635 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
11636 emit_library_call machinery to set up __tls_get_addr calls.
11637
11638 2010-05-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11639
11640 * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
11641
11642 2010-05-28 Dodji Seketeli <dodji@redhat.com>
11643
11644 Revert fix for PR c++/44188
11645 * c-common.c (is_typedef_decl): Revert the moving of this
11646 definition ...
11647 * tree.c (is_typedef_decl): ... here.
11648 (typdef_variant_p): Revert the moving of this definition
11649 here from gcc/cp/tree.c.
11650 * c-common.h (is_typedef_decl): Revert the moving of this
11651 declaration ...
11652 * tree.h (is_typedef_decl): ... here.
11653 (typedef_variant_p): Revert the moving of this declaration here
11654 from gcc/cp/cp-tree.h
11655 * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
11656 (gen_tagged_type_die): Revert the splitting out of ...
11657 (gen_type_die_with_usage): ... this function. Revert the anonymous
11658 tagged type handling.
11659 (gen_typedef_die): Revert emitting DW_TAG_typedef for
11660 typedefs naming anonymous tagged types.
11661
11662 2010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
11663
11664 * config/rs6000/rs6000-modes.def (PSImode): Delete.
11665
11666 2010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
11667
11668 * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
11669 * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
11670 throughout.
11671 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
11672 "xer" to "ca".
11673 Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
11674 XER_REGS to CA_REGS throughout.
11675 * config/rs6000/rs6000.h: Same.
11676 (ADDITIONAL_REGISTER_NAMES): Add "xer".
11677 * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO. Document
11678 that mode_iterator "P" is the size for arithmetic carries as well.
11679 * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
11680
11681 2010-05-28 Jakub Jelinek <jakub@redhat.com>
11682
11683 PR bootstrap/44255
11684 * combine.c (struct rtx_subst_pair): Define unconditionally.
11685 (propagate_for_debug_subst): Likewise. If not AUTO_INC_DEC,
11686 copy_rtx pair->to instead of cleanup_auto_inc_dec it.
11687 Call make_compound_operation on pair->to.
11688 (propagate_for_debug): Don't call make_compound_operation here.
11689 Always use simplify_replace_fn_rtx.
11690
11691 2010-05-27 Sterling Augustine <sterling@tensilica.com>
11692
11693 * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
11694 * config/xtensa/xtensa.c (override_options): Check
11695 TARGET_FORCE_NO_PIC and set flag_pic.
11696 * config/xtensa/xtensa.opt: Document -mforce-no-pic
11697
11698 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
11699
11700 PR bootstrap/44299
11701 * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
11702 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
11703
11704 2010-05-27 Joseph Myers <joseph@codesourcery.com>
11705
11706 * diagnostic-core.h: New. Contents moved from diagnostic.h and
11707 toplev.h.
11708 * diagnostic.c: Don't include toplev.h.
11709 (progname): Define. Moved from toplev.c.
11710 (seen_error): New function.
11711 * diagnostic.h: Include diagnostic-core.h.
11712 (diagnostic_t, emit_diagnostic): Don't declare here.
11713 * toplev.c (progname): Move to toplev.c.
11714 (emit_debug_global_declarations, compile_file, finalize,
11715 do_compile, toplev_main): Use seen_error.
11716 * toplev.h: Include diagnostic-core.h.
11717 (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
11718 internal_error, warning, warning_at, error, error_n, error_at,
11719 fatal_error, pedwarn, permerror, sorry, inform, inform_n,
11720 verbatim, fnotice, progname): Move to diagnostic-core.h.
11721 * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
11722 (expand_builtin_expect): Use seen_error.
11723 * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
11724 (c_make_fname_decl, c_write_global_declarations): Use seen_error.
11725 * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
11726 * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
11727 * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
11728 * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
11729 errorcount for errors.
11730 * c-opts.c (c_common_finish): Use seen_error.
11731 * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11732 * cgraphunit.c (verify_cgraph_node, verify_cgraph,
11733 cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
11734 * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
11735 (get_coverage_counts): Use seen_error.
11736 * dwarf2out.c (dwarf2out_finish): Use seen_error.
11737 * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
11738 gimplify_body): Use seen_error.
11739 * ipa-inline.c (cgraph_early_inlining): Use seen_error.
11740 * ipa-pure-const.c (gate_pure_const): Use seen_error.
11741 * ipa-reference.c (gate_reference): Use seen_error.
11742 * jump.c: Include diagnostic-core.h instead of diagnostic.h.
11743 * lambda-code.c: Include diagnostic-core.h instead of
11744 diagnostic.h.
11745 * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11746 * lto-compress.c: Include diagnostic-core.h instead of
11747 diagnostic.h.
11748 * lto-section-in.c: Include diagnostic-core.h instead of
11749 diagnostic.h.
11750 * lto-streamer-out.c: Include diagnostic-core.h instead of
11751 diagnostic.h.
11752 * lto-streamer.c: Include diagnostic-core.h instead of
11753 diagnostic.h.
11754 (gate_lto_out): Use seen_error.
11755 * matrix-reorg.c: Include diagnostic-core.h instead of
11756 diagnostic.h.
11757 * omega.c: Include diagnostic-core.h instead of diagnostic.h.
11758 * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
11759 (gate_expand_omp, lower_omp_1): Use seen_error.
11760 * passes.c: Include diagnostic-core.h instead of diagnostic.h.
11761 (rest_of_decl_compilation, rest_of_type_compilation,
11762 gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
11763 * tree-cfg.c (label_to_block_fn): Use seen_error.
11764 * tree-inline.c (optimize_inline_calls): Use seen_error.
11765 * tree-mudflap.c (mudflap_finish_file): Use
11766 seen_error.
11767 * tree-optimize.c (gate_all_optimizations,
11768 gate_all_early_local_passes, gate_all_early_optimizations): Use
11769 seen_error.
11770 * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
11771 * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
11772 (varpool_remove_unreferenced_decls,
11773 varpool_assemble_pending_decls): Use seen_error.
11774 * Makefile.in (DIAGNOSTIC_CORE_H): Define.
11775 (TOPLEV_H, DIAGNOSTIC_H): Update.
11776 (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
11777 lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
11778 c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
11779 builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
11780 coverage.o, lambda-code.o): Update dependencies.
11781
11782 2010-05-25 Dodji Seketeli <dodji@redhat.com>
11783
11784 PR c++/44188
11785 * c-common.c (is_typedef_decl): Move this definition ...
11786 * tree.c (is_typedef_decl): ... here.
11787 (typdef_variant_p): Move definition here from gcc/cp/tree.c.
11788 * c-common.h (is_typedef_decl): Move this declaration ...
11789 * tree.h (is_typedef_decl): ... here.
11790 (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
11791 * dwarf2out.c (is_naming_typedef_decl): New function.
11792 (gen_tagged_type_die): Split out of ...
11793 (gen_type_die_with_usage): ... this function. When an anonymous
11794 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
11795 is emitted for the typedef.
11796 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
11797 anonymous tagged types.
11798
11799 2010-05-27 Jason Merrill <jason@redhat.com>
11800
11801 * print-tree.c (debug_vec_tree): New fn.
11802 (print_vec_tree): New fn.
11803 * tree.h: Declare them.
11804 * gdbinit.in (pvt): New command.
11805
11806 * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
11807
11808 * gdbinit.in (pdd): New command.
11809
11810 2010-05-27 Jan Hubicka <jh@suse.cz>
11811
11812 * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
11813 (update_caller_keys): Return early if there are no callers;
11814 only update fibheap when decresing the key.
11815 (update_callee_keys): Avoid recursion.
11816 (decide_inlining_of_small_functions): When badness does not match;
11817 re-insert into fibheap.
11818
11819 2010-05-27 Steven Bosscher <steven@gcc.gnu.org>
11820
11821 * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
11822 (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
11823 (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
11824 (ALL_HOST_OBJS): Now a union of the above two.
11825 <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
11826 all files in ALL_HOST_FRONTEND_OBJS.
11827 * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
11828
11829 * c-common.c: Pretend to be a backend file by undefining
11830 IN_GCC_FRONTEND (still need rtl.h here).
11831
11832 2010-05-27 Jan Hubicka <jh@suse.cz>
11833
11834 * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
11835 * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
11836
11837 2010-05-27 Jan Hubicka <jh@suse.cz>
11838
11839 * sched-ebb.c: Rename struct deps to struct deps_desc.
11840 * ddg.c: Likewise.
11841 * sel-sched-ir.c: Likewise.
11842 * sched-deps.c: Likewise.
11843 * sched-int.h: Likewise.
11844 * sched-rgn.c: Likewise.
11845
11846 2010-05-27 Jon Beniston <jon@beniston.com>
11847
11848 PR 43726
11849 * config/lm32/lm32.h: Remove definition of
11850 GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
11851
11852 2010-05-27 Eric Botcazou <ebotcazou@adacore.com>
11853
11854 PR lto/44230
11855 * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
11856
11857 2010-05-27 Richard Guenther <rguenther@suse.de>
11858
11859 PR tree-optimization/44284
11860 * tree-vect-stmts.c (vectorizable_assignment): Handle
11861 sign-changing conversions as simple copy.
11862
11863 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11864
11865 * gthr-posix.h (pthread_cancel): Don't declare if compiling against
11866 Bionic C library.
11867 (__gthread_active_p): Check for pthread_create if compiling against
11868 Bionic C library.
11869
11870 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11871
11872 Support compilation for Android platform. Reimplement -mandroid.
11873
11874 * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
11875 (*android*): Set ANDROID_DEFAULT.
11876 (arm*-*-linux*): Include linux-android.h.
11877 (arm*-*-eabi*): Don't include previous -mandroid implementation.
11878 * config/arm/eabi.h: Remove, move Android-specific parts ...
11879 * config/linux-android.h: ... here. New file.
11880 * config/arm/eabi.opt: Rename to ...
11881 * config/linux-android.opt: ... this.
11882 (mandroid): Allow -mno-android option. Initialize based on
11883 ANDROID_DEFAULT.
11884 * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
11885 Move logic to corresponding LINUX_TARGET_* macros.
11886 (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
11887 * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
11888 (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
11889 Android definitions.
11890 (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
11891 * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
11892 Document.
11893
11894 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11895
11896 Add support for Bionic C library
11897
11898 * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
11899 macro.
11900 (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
11901 (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
11902
11903 * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
11904 (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
11905 (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
11906 to support multiple C libraries. Handle Bionic.
11907 (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
11908 (BIONIC_DYNAMIC_LINKER64): Define.
11909 (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
11910 Update.
11911 (TARGET_HAS_SINCOS): Enable for Bionic.
11912
11913 * config/linux.opt: Rewrite to handle more than 2 C libraries. Make
11914 the last option specified on command line take effect.
11915 (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
11916 (mbionic): New.
11917 (mglibc, muclibc): Update.
11918
11919 * config/alpha/linux-elf.h, config/rs6000/linux64.h,
11920 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
11921 DEFAULT_LIBC.
11922
11923 * doc/invoke.texi (-mglibc, -muclibc): Update.
11924 (-mbionic): Document.
11925
11926 2010-05-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11927
11928 * c-common.h (c_register_addr_space): Add prototype.
11929 (ADDR_SPACE_KEYWORD): Remove.
11930 * c-common.c (c_register_addr_space): New function.
11931 (c_addr_space_name): Reimplement.
11932 (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
11933
11934 * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
11935 (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
11936
11937 * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
11938 Remove TARGET_ADDR_SPACE_KEYWORDS.
11939
11940 2010-05-27 Joseph Myers <joseph@codesourcery.com>
11941
11942 * input.c: New file.
11943 * input.h (main_input_filename): Move declaration to toplev.h.
11944 * toplev.c (input_location, line_table): Move to input.c
11945 * toplev.h (main_input_filename): Move declaration from input.h.
11946 * tree.c (expand_location): Move to input.c.
11947 * Makefile.in (OBJS-common): Add input.o.
11948 (input.o): Add dependencies.
11949
11950 2010-05-27 Richard Guenther <rguenther@suse.de>
11951
11952 * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
11953 for non-existant files.
11954 (fork_execute): Mark args_name file as deleted.
11955
11956 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
11957
11958 PR bootstrp/44287
11959 * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
11960 (narrow_signed_type): Likewise.
11961
11962 2010-05-26 Jan Hubicka <jh@suse.cz>
11963
11964 * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
11965 edge only when checking is enabled; check using former_clone_of;
11966 check inline clones too.
11967 (cgraph_materialize_clone): Record former_clone_of pointer.
11968 (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
11969 combining redirections; dump args_to_skip bitmap
11970 (cgraph_materialize_all_clones): Do no redirection here.
11971 * ipa-inline.c (inline_transform): Do redirection here.
11972 * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
11973 cheking only).
11974
11975 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
11976
11977 * config/avr/avr-c.c: Do not include regs.h.
11978 Include cpplib.h for cpp_define and tree.h for c-common.h.
11979 * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
11980 * config/avr/t-avr: Fix dependencies for avr-c.o.
11981
11982 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
11983
11984 * explow.c (set_stack_check_libfunc): Adjust to accept name as a
11985 string instead of SYMBOL_REF rtx.
11986 * rtl.h (set_stack_check_libfunc): Move prototype from here...
11987 * libfuncs.h: ...to here. Adjust for explow.c change.
11988
11989 2010-05-26 Joseph Myers <joseph@codesourcery.com>
11990
11991 * pretty-print.c: Don't include ggc.h.
11992 (identifier_to_locale_alloc, identifier_to_locale_free): Define.
11993 (identifier_to_locale): Use them for allocation.
11994 * pretty-print.h (identifier_to_locale_alloc,
11995 identifier_to_locale_free): Declare.
11996 * toplev.c (alloc_for_identifier_to_locale): New.
11997 (general_init): Set identifier_to_locale_alloc and
11998 identifier_to_locale_free.
11999 * Makefile.in (pretty-print.o): Update dependencies.
12000
12001 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
12002
12003 * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
12004 pointer types if they have different alignment or mode.
12005
12006 2010-05-26 Anatoly Sokolov <aesok@post.ru>
12007
12008 * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
12009 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
12010 * config/sparc/sparc-protos.h (function_value): Remove declaration.
12011 * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
12012 sparc_function_value_regno_p): New functions.
12013 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12014 TARGET_FUNCTION_VALUE_REGNO_P): Define.
12015 (function_value): Rename to...
12016 (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
12017 argument to 'outgoing'.
12018 (function_arg_record_value, function_arg_union_value,
12019 function_arg_vector_value): Update comment.
12020
12021 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
12022
12023 * dwarf2out.c (struct dw_fde_struct): Reorder flags.
12024 (fde_needed_for_eh_p): New predicate.
12025 (output_call_frame_info): Use it throughout to decide whether FDEs
12026 are needed for EH purpose.
12027 (dwarf2out_begin_prologue): Reorder assignments.
12028
12029 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
12030
12031 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
12032 special case loop->header.
12033 (is_predicated): New.
12034 (if_convertible_loop_p): Call it.
12035
12036 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
12037
12038 * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
12039 iterator in parameter. Do not generate code during the analysis.
12040 (tree_if_convert_cond_stmt): Removed.
12041 (tree_if_convert_stmt): Removed.
12042 (predicate_bbs): New.
12043 (if_convertible_loop_p): Call predicate_bbs.
12044 (tree_if_conversion): Simplify the top-level logic as predicate_bbs
12045 now contains all the analysis part.
12046
12047 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
12048
12049 * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
12050 statements in the analysis part.
12051 (tree_if_convert_stmt): Update comment.
12052 (remove_conditions_and_labels): New.
12053 (combine_blocks): Call remove_conditions_and_labels.
12054 (tree_if_conversion): Update comment.
12055
12056 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
12057
12058 * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
12059 than 2 predecessors or more than 2 successors.
12060
12061 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
12062
12063 * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
12064 of loops in which the data dependence analysis fails.
12065
12066 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
12067
12068 * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
12069 CDI_POST_DOMINATORS.
12070 (tree_if_conversion): Same.
12071
12072 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
12073
12074 * tree-if-conv.c (tree_if_conversion): Do not return a bool.
12075
12076 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
12077
12078 * tree-if-conv.c: Update copyright years. Fix comments.
12079 Fix indentation.
12080
12081 2010-05-26 Kai Tietz <kai.tietz@onevision.com>
12082
12083 * builtin-types.def (BT_INT128): New primitive type.
12084 (BT_UINT128): Likewise.
12085 * c-common.c (c_common_r): Add __int128 keyword.
12086 (c_common_type_for_size): Handle __int128.
12087 (c_common_type_for_mode): Likewise.
12088 (c_common_signed_or_unsigned_type): Likewise.
12089 (c_common_nodes_and_builtins): Add builtin type
12090 if target supports 128-bit integer scalar.
12091 * c-common.h (enum rid): Add RID_INT128.
12092 * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
12093 if target supports 128-bit integer scalar.
12094 * c-decl.c (declspecs_add_type): Handle new keyword __int128.
12095 (finish_declspecs): Likewise.
12096 * c-parser.c (c_token_starts_typename): Handle RID_INT128.
12097 (c_token_starts_declspecs): Likewise.
12098 (c_parser_declspecs): Likewise.
12099 (c_parser_attributes): Likewise.
12100 (c_parser_objc_selector): Likewise.
12101 * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
12102 * c-tree.h (enum c_typespec_keyword): Add cts_int128.
12103 * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
12104 * tree.c (make_or_reuse_type): Likewise.
12105 (make_unsigned_type): Likewise.
12106 (build_common_tree_nodes_2): Likewise.
12107 * tree.h (enum integer_type_kind): Add itk_int128 and
12108 itk_unsigned_int128.
12109 (int128_integer_type_node): New define.
12110 (int128_unsigned_type_node): New define.
12111 * doc/extend.texi: Add documentation about __int128 type.
12112
12113 2010-05-26 Richard Guenther <rguenther@suse.de>
12114
12115 * tree-ssa-sccvn.c (copy_nary): Adjust.
12116 (copy_phis): Rename to ...
12117 (copy_phi): ... this. Adjust.
12118 (copy_references): Rename to ...
12119 (copy_reference): ... this. Adjust.
12120 (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
12121 result into the valid table.
12122
12123 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
12124
12125 * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
12126 insn-config.h, insn-codes.h, recog.h, and optabs.h.
12127
12128 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
12129
12130 * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
12131
12132 2010-05-26 Richard Guenther <rguenther@suse.de>
12133
12134 * opts.c (common_handle_option): Handle OPT_Ofast.
12135
12136 2010-05-26 Joseph Myers <joseph@codesourcery.com>
12137
12138 * diagnostic.c: Don't include opts.h.
12139 (permissive_error_option): Define.
12140 (diagnostic_initialize): Take n_opts parameter. Allocate memory
12141 for classify_diagnostic. Don't use memset for
12142 classify_diagnostic. Initialize new and recently added fields.
12143 (diagnostic_classify_diagnostic): Use context->n_opts instead of
12144 N_OPTS.
12145 (diagnostic_report_diagnostic): Pass context parameter to
12146 diagnostic_report_warnings_p. Use option_enabled and option_name
12147 hooks from context.
12148 (emit_diagnostic): Use permissive_error_option.
12149 (permerror): Likewise.
12150 * diagnostic.h: Don't include options.h.
12151 (struct diagnostic_context): Add n_opts, opt_permissive,
12152 inhibit_warnings, warn_system_headers, option_enabled and
12153 option_name fields. Change classify_diagnostic to a pointer.
12154 * opts-diagnostic.h: New file.
12155 * opts.c: Include opts-diagnostic.h.
12156 (common_handle_option): Set global_dc fields for -Wfatal-errors,
12157 -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
12158 (option_name): New function.
12159 * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
12160 (c_common_handle_option): Set global_dc->permissive for
12161 -fpermissive.
12162 * c-common.c (c_cpp_error): Save and restore
12163 global_dc->warn_system_headers, not variable warn_system_headers.
12164 * toplev.c: Include opts-diagnostic.h.
12165 (general_init): Update call to diagnostic_initialize. Set
12166 global_dc->show_column, global_dc->option_enabled and
12167 global_dc->option_name.
12168 (process_options): Don't set global_dc fields here.
12169 * Makefile.in (DIAGNOSTIC_H): Remove options.h.
12170 (diagnostic.o, opts.o, toplev.o): Update dependencies.
12171
12172 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
12173
12174 * config/picochip/picochip.md (movsi): Split a movsi from a
12175 const after reload.
12176
12177 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
12178
12179 * ggc-zone.c: Update copyright year.
12180 (poison_region): Mark memory for Valgrind as undefined before
12181 memset () call and inaccessible afterwards.
12182 (ggc_pch_total_size): Change type of i to int.
12183
12184 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
12185
12186 * ggc-common.c (ggc_free_overhead): Allow empty slot.
12187
12188 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
12189
12190 * ggc-common.c: Update copyright year.
12191 (ggc_rlimit_bound): Remove prototype. Compile only if
12192 !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
12193 (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
12194 && !ENABLE_GC_ALWAYS_COLLECT. Make static.
12195 (ggc_min_heapsize_heuristic): Likewise.
12196
12197 2010-05-26 Richard Guenther <rguenther@suse.de>
12198
12199 PR rtl-optimization/44164
12200 * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
12201 no-common access-path disambiguation.
12202 (indirect_ref_may_alias_decl_p): Adjust.
12203 (indirect_refs_may_alias_p): Likewise.
12204 (refs_may_alias_p_1): Likewise.
12205
12206 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
12207
12208 * c-typeck.c: Do not include expr.h.
12209
12210 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
12211
12212 * rtl.h (decl_default_tls_model): Move prototype from here...
12213 * output.h: ...to here.
12214 * c-decl.c: Do not include rtl.h.
12215 * c-pragma.c: Likewise.
12216 * c-parser.c: Likewise.
12217 * c-gimplify.c: Likewise. And also not hard-reg-set.
12218 * c-common.c: Do not include rtl.h. Include tm_p.h and add a
12219 FIXME note for it. Add a FIXME note for expr.h.
12220 * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
12221 ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
12222 defined.
12223
12224 2010-05-26 Jakub Jelinek <jakub@redhat.com>
12225
12226 PR target/44199
12227 * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
12228 or total_size is larger than red zone size for non-V4 ABI, emit a
12229 stack_tie resp. frame_tie insn before stack pointer restore.
12230 * config/rs6000/rs6000.md (frame_tie): New insn.
12231
12232 2010-05-25 Eric Botcazou <ebotcazou@adacore.com>
12233
12234 * function.h (struct function): Add can_throw_non_call_exceptions bit.
12235 * lto-streamer-in.c (input_function): Stream it in.
12236 * lto-streamer-out.c (output_function): Stream it out.
12237 * function.c (allocate_struct_function): Set it.
12238 (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
12239 for flag_non_call_exceptions.
12240 * cfgbuild.c (control_flow_insn_p): Likewise.
12241 (make_edges): Likewise.
12242 * cfgexpand.c (expand_stack_alignment): Likewise.
12243 * combine.c (distribute_notes): Likewise.
12244 * cse.c (cse_extended_basic_block): Likewise.
12245 * except.c (insn_could_throw_p): Likewise.
12246 * gcse.c (simple_mem): Likewise.
12247 * ipa-pure-const.c (check_call): Likewise.
12248 (check_stmt ): Likewise.
12249 * lower-subreg.c (lower-subreg.c): Likewise.
12250 * optabs.c (emit_libcall_block): Likewise.
12251 (prepare_cmp_insn): Likewise.
12252 * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
12253 * postreload.c (rest_of_handle_postreload): Likewise.
12254 * reload1.c (reload_as_needed): Likewise.
12255 (emit_input_reload_insns): Likewise.
12256 (emit_output_reload_insns): Likewise.
12257 (fixup_abnormal_edges): Likewise.
12258 * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
12259 * store-motion.c (find_moveable_store): Likewise.
12260 * tree-eh.c (stmt_could_throw_p): Likewise.
12261 (tree_could_throw_p): Likewise.
12262 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
12263 * config/arm/arm.c (arm_expand_prologue): Likewise.
12264 (thumb1_expand_prologue): Likewise.
12265 * config/rx/rx.md (cbranchsf4): Likewise.
12266 (cmpsf): Likewise.
12267 * config/s390/s390.c (s390_emit_prologue): Likewise.
12268 * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
12269 (inline_forbidden_into_p): New predicate.
12270 (expand_call_inline): Use it to forbid inlining.
12271 (tree_can_inline_p): Likewise.
12272
12273 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
12274
12275 * config/i386/i386-c.c: Do not include rtl.h.
12276 * config/i386/t-i386: Update dependencies.
12277
12278 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
12279
12280 * attribs.c: Do not include rtl.h.
12281 * Makefile.in: Update dependencies.
12282
12283 2010-05-25 Anatoly Sokolov <aesok@post.ru>
12284
12285 * double-int.h (double_int_and): New.
12286 * combine.c (try_combine): Clean up, use double_int_* and
12287 immed_double_int_const functions.
12288
12289 2010-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12290
12291 * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
12292 stderr to /dev/null instead of grep -q.
12293 * configure: Regenerate.
12294
12295 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
12296
12297 * Makefile.in (EXCEPT_H): Fix typo.
12298
12299 2010-05-25 Vladimir Makarov <vmakarov@redhat.com>
12300
12301 * ira-build.c (update_conflict_hard_reg_costs): New.
12302 (ira_build): Call update_conflict_hard_reg_costs.
12303
12304 2010-05-25 Jakub Jelinek <jakub@redhat.com>
12305
12306 PR debug/41371
12307 * var-tracking.c (find_loc_in_1pdv): Guard asserts with
12308 ENABLE_CHECKING.
12309 (intersect_loc_chains): Walk the s2var's loc_chain together
12310 with s1node chain as long as the locations are equal, don't
12311 call find_loc_in_1pdv in that case.
12312
12313 PR debug/42801
12314 * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
12315 (copy_bind_expr): ... instead of here.
12316 (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
12317 if the block hasn't been remapped.
12318 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
12319 emitting concrete instance of abstract VLA, add DW_AT_type attribute.
12320
12321 2010-05-25 Richard Guenther <rguenther@suse.de>
12322
12323 PR middle-end/44069
12324 * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
12325 out-of-bounds array accesses.
12326
12327 2010-05-25 Richard Guenther <rguenther@suse.de>
12328
12329 * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
12330 (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
12331 (run_gcc): Re-organize to make cleanup easier.
12332
12333 2010-05-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12334
12335 * config/s390/s390.c (optimization_options): Fix and move the
12336 flag_prefetch_loop_arrays override ...
12337 (override_options): ... here.
12338
12339 2010-05-25 Joseph Myers <joseph@codesourcery.com>
12340
12341 * diagnostic.c: Don't include plugin.h.
12342 (diagnostic_report_diagnostic): Don't handle plugins specially
12343 here. Pass context to internal_error callback.
12344 * diagnostic.h (struct diagnostic_context): Add context parameter
12345 to internal_error callback.
12346 * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
12347 * plugin.h (struct diagnostic_context): Declare.
12348 (warn_if_plugins, plugins_internal_error_function): Declare.
12349 * toplev.c (general_init): Set global_dc->internal_error.
12350 * Makefile.in (diagnostic.o): Update dependencies.
12351
12352 2010-05-25 Iain Sandoe <iains@gcc.gnu.org>
12353
12354 * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
12355 * config/rs6000/t-darwin64: New.
12356 * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
12357 build crt2.
12358
12359 2010-05-25 Christian Borntraeger <borntraeger@de.ibm.com>
12360
12361 PR 44203
12362 * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
12363 match the original (and intended) behaviour before r159557. This
12364 changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
12365 in two ways.
12366
12367 2010-05-25 Richard Guenther <rguenther@suse.de>
12368
12369 * doc/invoke.texi: Document -Ofast.
12370 * target.h (struct gcc_target): Add handle_ofast.
12371 * target-def.h (TARGET_HANDLE_OFAST): Add.
12372 (TARGET_INITIALIZER): Adjust.
12373 * opts.c (decode_options): Handle -Ofast. Enable -ffast-math with it.
12374 * common.opt (Ofast): Add.
12375
12376 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
12377
12378 * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
12379 * doc/md.texi (cstoreXX4): Update for cond-optab changes.
12380
12381 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
12382
12383 PR target/43610
12384 * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
12385 even if !FLOAT_LIB_COMPARE_RETURNS_BOOL. Always compute true_rtx and
12386 false_rtx. Use false_rtx to compute the correct *ptest for reversed
12387 comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
12388
12389 2010-05-25 Jakub Jelinek <jakub@redhat.com>
12390
12391 * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
12392 DW_OP_minus with negated offset instead of DW_OP_plus.
12393 (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
12394
12395 2010-05-25 Wei Guozhi <carrot@google.com>
12396
12397 * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
12398 tst instruction and a new alternative.
12399 * config/arm/constraints.md (Pu): New constraint.
12400
12401 2010-05-24 Sebastian Pop <sebastian.pop@amd.com>
12402
12403 * function.c (assign_stack_local_1): Initialize variable
12404 to avoid warning when bootstrapping at -O3.
12405
12406 2010-05-24 Steven Bosscher <steven@gcc.gnu.org>
12407
12408 * configure.ac (all_lang_makefiles): Remove everything related to it.
12409 * configure: Regenerate.
12410 * Makefile.in: Fix reference to ada Make-lang.in.
12411 Remove support for LANG_MAKEFILES.
12412
12413 2010-05-24 Daniel Jacobowitz <dan@codesourcery.com>
12414 Sandra Loosemore <sandra@codesourcery.com>
12415
12416 * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
12417 * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
12418 description. Add arm_neon_fp16_ok.
12419 (Add Options): Add arm_neon and arm_neon_fp16.
12420
12421 2010-05-24 Joseph Myers <joseph@codesourcery.com>
12422
12423 * diagnostic.c: Don't include flags.h.
12424 (pedantic_warning_kind, permissive_error_kind): Take diagnostic
12425 context parameters. Check flags in the context passed as a parameter.
12426 (diagnostic_build_prefix): Add context parameter. Check
12427 show_column flag in context.
12428 (diagnostic_action_after_output): Check fatal_errors flag in context.
12429 (diagnostic_report_current_module): Check show_column flag in context.
12430 (default_diagnostic_starter): Update call to
12431 diagnostic_build_prefix.
12432 (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
12433 (emit_diagnostic): Pass context to permissive_error_kind.
12434 (permerror): Pass context to permissive_error_kind.
12435 * diagnostic.h (struct diagnostic_context): Add show_column,
12436 pedantic_errors, permissive and fatal_errors fields.
12437 (diagnostic_build_prefix): Update prototype.
12438 * langhooks.c
12439 * toplev.c (process_options): Set flags in global_dc from
12440 flag_show_column, flag_pedantic_errors, flag_permissive,
12441 flag_fatal_errors.
12442 * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
12443 to diagnostic_build_prefix.
12444 * Makefile.in (diagnostic.o): Update dependencies.
12445
12446 2010-05-24 H.J. Lu <hongjiu.lu@intel.com>
12447
12448 * config/i386/ia32intrin.h (__crc32q): Define only if
12449 __SSE4_2__ is defined.
12450
12451 2010-05-24 Iain Sandoe <iains@gcc.gnu.org>
12452
12453 PR target/44132
12454 PR middle-end/43602
12455 * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
12456 DECL_VISIBILITY_SPECIFIED.
12457 (emutls_decl): Set DECL_PRESERVE_P and copy
12458 DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
12459 (emutls_finalize_control_var): New callback.
12460 (emutls_finish): Finalize emutls control variables.
12461 * toplev.c (compile_file): Move the call to emutls_finish ()
12462 before varpool_assemble_pending_decls ().
12463
12464 2010-05-24 Daniel Gutson <dgutson@codesourcery.com>
12465
12466 * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
12467 added to the preprocessor condition.
12468
12469 2010-05-24 Paul Brook <paul@codesourcery.com>
12470
12471 * gengtype-lex.l: Add HARD_REG_SET.
12472 * expr.c (expand_expr_real_1): Record writes to hard registers.
12473 * function.c (rtl_data): Add asm_clobbers.
12474 * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
12475 (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
12476 Use crtl->asm_clobbers.
12477
12478 2010-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12479
12480 * doc/makefile.texi (Makefile): Mention stages 'profile'
12481 and 'feedback' for profiledbootstrap.
12482
12483 2010-05-23 H.J. Lu <hongjiu.lu@intel.com>
12484
12485 PR target/44245
12486 * config/i386/i386.c (def_builtin): Properly check
12487 OPTION_MASK_ISA_64BIT.
12488
12489 2010-05-23 Joseph Myers <joseph@codesourcery.com>
12490
12491 * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
12492 typedefs with different but compatible types. Allow duplicate
12493 typedefs with the same type except for pedantic non-C1X, but give
12494 warning for variably modified types.
12495 * c-typeck.c (tagged_types_tu_compatible_p,
12496 function_types_compatible_p, type_lists_compatible_p,
12497 comptypes_internal): Add parameter different_types_p; set
12498 *different_types_p for different but compatible types. All
12499 callers changed.
12500 (comptypes_check_different_types): New.
12501 * c-tree.h (comptypes_check_different_types): Declare.
12502
12503 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
12504
12505 * regs.h: Do not include obstack.h, basic-block.h. Include machmode.h.
12506 * jump.c: Include basic-block.h.
12507 * profile.c: Likewise.
12508 * tree-profile.c: Likewise.
12509 * coverage.c: Likewise.
12510 * basic-block.h (optimize_function_for_size_p): Move to function.h.
12511 (optimize_function_for_speed_p): Likewise.
12512 * function.h (optimize_function_for_size_p,
12513 optimize_function_for_speed_p): Moved here from basic-block.h.
12514 * Makefile.in: Update dependencies.
12515
12516 2010-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12517
12518 * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
12519 before calling make; allow override through $MAKE.
12520 * doc/invoke.texi (Optimize Options): Document override.
12521
12522 2010-05-23 Anatoly Sokolov <aesok@post.ru>
12523
12524 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
12525 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12526 (rs6000_mode_dependent_address_ptr): Make static.
12527 * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12528 * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
12529 Remove.
12530
12531 2010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com>
12532
12533 PR target/43869
12534 * config/i386/i386.c: Make sure that the correct regparm is passed.
12535
12536 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
12537
12538 * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
12539 * sbitmap.c: ...to here to internalize sbitmap element access.
12540 Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
12541 Explain why basic-block.h is included.
12542 * function.h: Include tm.h for CUMULATIVE_ARGS.
12543 * Makefile.in: Update dependencies.
12544
12545 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
12546
12547 * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
12548 New core types.
12549 * sbitmap.h (struct sbitmap_def): Do not typedef here.
12550 * sbitmap.c: Include sbitmap.h.
12551 * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
12552 hard-reg-set.h. Split everything related to regsets out from here...
12553 * regset.h: ...to here. New file.
12554 * df.h: Include regset.h and sbitmap.h.
12555 * tree-flow.h: Likewise.
12556 * cfgloop.h: Likewise.
12557 * except.h: Do not include sbitmap.h. Include hashtab.h.
12558 * cgraph.h: Include vec.h and function.h.
12559 * reload.h (struct insn_chain): Change types of live_throughout
12560 and dead_or_set from regset_head to bitmap_head.
12561 (compute_use_by_pseudos): Be defined also if regset.h is not included.
12562 * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
12563 spilled_regs from regset_head to bitmap_head to avoid dependency
12564 in regset.h.
12565 * sel-sched-ir.h: Include regset.h.
12566 * reload.c: Include df.h before reload.h.
12567 * caller-save.c: Likewise.
12568 * reload1.c: Likewise.
12569 * ira.c: Likewise.
12570 (mark_elimination): Update type of r to bitmap, consistent with
12571 DF_LR_IN.
12572 * dominance.c: Include bitmap.h.
12573 * modulo-sched.c: Include df.h.
12574 * cfganal.c: Include bitmap.h and sbitmap.h.
12575 * cfgbuild.c: Include sbitmap.h.
12576 * lcm.c: Include sbitmap.h.
12577 * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
12578 * domwalk.c: Include sbitmap.h, exclude ggc.h.
12579 * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
12580 * cselib.c: Include bitmap.h.
12581 * tree-optimize.c: Include regset.h.
12582 * stmt.c: Include bitmap.h.
12583 * Makefile.in: Update dependencies.
12584
12585 2010-05-22 Jan Hubicka <jh@suse.cz>
12586
12587 * cgraph.h (struct varpool_node): Add same_comdat_group.
12588 * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
12589 pointer.
12590 (output_varpool): Update call of lto_output_varpool_node.
12591 (input_varpool): Read same_comdat_group pointer.
12592 (input_varpool_1): Fixup same_comdat_group pointer.
12593 * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
12594 group is needed, all are.
12595 * varpool.c (varpool_remove_node): Remove node from same comdat group
12596 linklist too.
12597 (varpool_analyze_pending_decls): Walk same comdat groups.
12598
12599 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
12600
12601 * rtl.h (union rtunion_def): Remove rt_bit member.
12602 (XBITMAP, X0BITMAP, XCBITMAP): Remove.
12603 * print-rtl (print_rtx): Do not print the member.
12604 * gengtype.c (adjust_field_rtx_def): Do not handle it.
12605 * gengenrtl.c (type_from_format): Likewise.
12606 (accessor_from_format): Likewise.
12607
12608 2010-05-22 Joseph Myers <joseph@codesourcery.com>
12609
12610 * dbgcnt.c: Include toplev.h instead of errors.h.
12611 * ira-emit.c: Don't include errors.h.
12612 * ira.c: Include toplev.h instead of errors.h.
12613 * lto-compress.c: Include toplev.h instead of errors.h.
12614 * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
12615 ira.o, dbgcnt.o): Update dependencies.
12616
12617 2010-05-22 Richard Guenther <rguenther@suse.de>
12618
12619 * gimple.c (gimple_types_compatible_p): Check type qualifications
12620 before merging pointer to complete and pointer to incomplete type.
12621 * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
12622 we use our own resolution algorithm. The gold linker plugin
12623 doesn't do the job we want it to do here.
12624
12625 2010-05-22 Anatoly Sokolov <aesok@post.ru>
12626
12627 * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12628 * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12629 (sparc_mode_dependent_address_p): New function.
12630
12631 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
12632
12633 * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
12634
12635 * timevar.c: Do not include any core headers.
12636 (timevar_print): De-i18n-ize.
12637 (print_time): Likewise.
12638 * timevar.h (timevar_push, timevar_pop): Make inline functions.
12639
12640 2010-05-21 Joseph Myers <joseph@codesourcery.com>
12641
12642 * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
12643 langhooks-def.h.
12644 (diagnostic_initialize): Initialize x_data not last_function.
12645 (diagnostic_report_current_function): Move to tree-diagnostic.c.
12646 (default_diagnostic_starter): Call
12647 diagnostic_report_current_module not
12648 diagnostic_report_current_function.
12649 (diagnostic_report_diagnostic): Initialize x_data not
12650 abstract_origin.
12651 (verbatim): Likewise.
12652 * diagnostic.h (struct diagnostic_info): Change abstract_origin to
12653 x_data.
12654 (struct diagnostic_context): Change last_function to x_data.
12655 (diagnostic_auxiliary_data): Replace with
12656 diagnostic_context_auxiliary_data and
12657 diagnostic_info_auxiliary_data.
12658 (diagnostic_last_function_changed, diagnostic_set_last_function,
12659 diagnostic_report_current_function): Move to tree-diagnostic.h.
12660 (print_declaration, dump_generic_node, print_generic_stmt,
12661 print_generic_stmt_indented, print_generic_expr,
12662 print_generic_decl, debug_c_tree, dump_omp_clauses,
12663 print_call_name, debug_generic_expr, debug_generic_stmt,
12664 debug_tree_chain, default_tree_printer): Move to
12665 tree-pretty-print.h.
12666 (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
12667 print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
12668 gimple-pretty-print.h.
12669 * pretty-print.c: Don't include tree.h
12670 (pp_base_format): Don't handle %K here.
12671 (pp_base_tree_identifier): Move to tree-pretty-print.c.
12672 * pretty-print.h (text_info): Change abstract_origin to x_data.
12673 (pp_tree_identifier, pp_unsupported_tree,
12674 pp_base_tree_identifier): Move to tree-pretty-print.h.
12675 * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
12676 tree-pretty-print.h: New files.
12677 * tree-pretty-print.c: Include tree-pretty-print.h.
12678 (percent_K_format): New. Moved from pretty-print.c.
12679 (pp_base_tree_identifier): Move from pretty-print.c.
12680 * c-objc-common.c: Include tree-pretty-print.h.
12681 (c_tree_printer): Handle %K here.
12682 * langhooks.c: Include tree-diagnostic.h.
12683 (lhd_print_error_function): Use diagnostic_abstract_origin macro.
12684 * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
12685 (default_tree_printer): Handle %K using percent_K_format.
12686 (general_init): Use default_tree_diagnostic_starter.
12687 * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
12688 (free_lang_data): Use default_tree_diagnostic_starter.
12689 * c-pretty-print.c: Include tree-pretty-print.h.
12690 * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12691 * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12692 * dwarf2out.c: Include tree-pretty-print.h.
12693 * except.c: Include tree-pretty-print.h.
12694 * gimple-pretty-print.c: Include tree-pretty-print.h and
12695 gimple-pretty-print.h.
12696 * gimplify.c: Include tree-pretty-print.h.
12697 * graphite-poly.c: Include tree-pretty-print.h and
12698 gimple-pretty-print.h.
12699 * ipa-cp.c: Include tree-pretty-print.h.
12700 * ipa-inline.c: Include gimple-pretty-print.h.
12701 * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12702 * ipa-pure-const.c: Include gimple-pretty-print.h.
12703 * ipa-struct-reorg.c: Include tree-pretty-print.h and
12704 gimple-pretty-print.h.
12705 * ipa-type-escape.c: Include tree-pretty-print.h.
12706 * print-rtl.c: Include tree-pretty-print.h.
12707 * print-tree.c: Include gimple-pretty-print.h.
12708 * sese.c: Include tree-pretty-print.h.
12709 * tree-affine.c: Include tree-pretty-print.h.
12710 * tree-browser.c: Include tree-pretty-print.h.
12711 * tree-call-cdce.c: Include gimple-pretty-print.h.
12712 * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12713 * tree-chrec.c: Include tree-pretty-print.h.
12714 * tree-data-ref.c: Include tree-pretty-print.h and
12715 gimple-pretty-print.h.
12716 * tree-dfa.c: Include tree-pretty-print.h.
12717 * tree-if-conv.c: Include tree-pretty-print.h and
12718 gimple-pretty-print.h.
12719 * tree-inline.c: Include tree-pretty-print.h.
12720 * tree-into-ssa.c: Include tree-pretty-print.h and
12721 gimple-pretty-print.h.
12722 * tree-nrv.c: Include tree-pretty-print.h.
12723 * tree-object-size.c: Include tree-pretty-print.h and
12724 gimple-pretty-print.h.
12725 * tree-outof-ssa.c: Include tree-pretty-print.h and
12726 gimple-pretty-print.h.
12727 * tree-parloops.c: Include tree-pretty-print.h and
12728 gimple-pretty-print.h.
12729 * tree-predcom.c: Include tree-pretty-print.h and
12730 gimple-pretty-print.h.
12731 * tree-scalar-evolution.c: Include tree-pretty-print.h and
12732 gimple-pretty-print.h.
12733 * tree-sra.c: Include tree-pretty-print.h.
12734 * tree-ssa-address.c: Include tree-pretty-print.h.
12735 * tree-ssa-alias.c: Include tree-pretty-print.h.
12736 * tree-ssa-ccp.c: Include tree-pretty-print.h and
12737 gimple-pretty-print.h.
12738 * tree-ssa-coalesce.c: Include tree-pretty-print.h.
12739 * tree-ssa-copy.c: Include tree-pretty-print.h and
12740 gimple-pretty-print.h.
12741 * tree-ssa-copyrename.c: Include tree-pretty-print.h.
12742 * tree-ssa-dce.c: Include tree-pretty-print.h and
12743 gimple-pretty-print.h.
12744 * tree-ssa-dom.c: Include tree-pretty-print.h and
12745 gimple-pretty-print.h.
12746 * tree-ssa-dse.c: Include gimple-pretty-print.h.
12747 * tree-ssa-forwprop.c: Include tree-pretty-print.h.
12748 * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
12749 * tree-ssa-live.c: Include tree-pretty-print.h and
12750 gimple-pretty-print.h.
12751 * tree-ssa-loop-im.c: Include tree-pretty-print.h and
12752 gimple-pretty-print.h.
12753 * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
12754 gimple-pretty-print.h.
12755 * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
12756 gimple-pretty-print.h.
12757 * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
12758 gimple-pretty-print.h.
12759 * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
12760 * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
12761 * tree-ssa-operands.c: Include tree-pretty-print.h and
12762 gimple-pretty-print.h.
12763 * tree-ssa-phiprop.c: Include tree-pretty-print.h and
12764 gimple-pretty-print.h.
12765 * tree-ssa-pre.c: Include tree-pretty-print.h and
12766 gimple-pretty-print.h.
12767 * tree-ssa-propagate.c: Include gimple-pretty-print.h.
12768 * tree-ssa-reassoc.c: Include tree-pretty-print.h and
12769 gimple-pretty-print.h.
12770 * tree-ssa-sccvn.c: Include tree-pretty-print.h and
12771 gimple-pretty-print.h.
12772 * tree-ssa-sink.c: Include gimple-pretty-print.h.
12773 * tree-ssa-ter.c: Include tree-pretty-print.h and
12774 gimple-pretty-print.h.
12775 * tree-ssa-uninit.c: Include gimple-pretty-print.h.
12776 * tree-ssa.c: Include tree-pretty-print.h and
12777 gimple-pretty-print.h.
12778 * tree-stdarg.c: Include gimple-pretty-print.h.
12779 * tree-switch-conversion.c: Include gimple-pretty-print.h.
12780 * tree-tailcall.c: Include tree-pretty-print.h and
12781 gimple-pretty-print.h.
12782 * tree-vect-data-refs.c: Include tree-pretty-print.h and
12783 gimple-pretty-print.h.
12784 * tree-vect-loop-manip.c: Include tree-pretty-print.h and
12785 gimple-pretty-print.h.
12786 * tree-vect-loop.c: Include tree-pretty-print.h and
12787 gimple-pretty-print.h.
12788 * tree-vect-patterns.c: Include gimple-pretty-print.h.
12789 * tree-vect-slp.c: Include tree-pretty-print.h and
12790 gimple-pretty-print.h.
12791 * tree-vect-stmts.c: Include tree-pretty-print.h and
12792 gimple-pretty-print.h.
12793 * tree-vectorizer.c: Include tree-pretty-print.h.
12794 * tree-vrp.c: Include tree-pretty-print.h and
12795 gimple-pretty-print.h.
12796 * value-prof.c: Include tree-pretty-print.h and
12797 gimple-pretty-print.h.
12798 * var-tracking.c: Include tree-pretty-print.h.
12799 * Makefile.in (OBJS-common): Add tree-diagnostic.o.
12800 (tree-diagnostic.o): New dependencies.
12801 (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
12802 tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
12803 tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
12804 tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
12805 tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
12806 tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
12807 tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
12808 tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
12809 tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
12810 tree-ssa-address.o, tree-ssa-loop-niter.o,
12811 tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
12812 tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
12813 tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
12814 gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
12815 tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
12816 tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
12817 tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
12818 tree-parloops.o, tree-stdarg.o, tree-object-size.o,
12819 gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
12820 toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
12821 ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
12822 ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
12823 tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
12824 tree-switch-conversion.o, var-tracking.o, value-prof.o,
12825 cfgexpand.o, pretty-print.o): Update dependencies.
12826
12827 2010-05-22 Andreas Tobler <andreast@fgznet.ch>
12828
12829 * tree-ssa-structalias.c: Remove tm_p.h from include.
12830
12831 2010-05-21 Jeff Law <law@redhat.com>
12832
12833 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
12834
12835 2010-05-21 Jason Merrill <jason@redhat.com>
12836
12837 * tree-eh.c (cleanup_is_dead_in): New.
12838 (lower_try_finally): Don't generate a dead cleanup region.
12839 (lower_cleanup): Likewise.
12840
12841 2010-05-21 Jakub Jelinek <jakub@redhat.com>
12842
12843 PR debug/44223
12844 * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
12845 unchain each use from the cyclic next_regno_use chain first.
12846
12847 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
12848
12849 * real: Do not include gmp.h, mpfr.h, and mpc.h.
12850 (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
12851 (real_value_negate, real_value_abs): New prototypes.
12852 (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
12853 * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
12854 new include file for interface between MPFR and REAL_VALUE_TYPE.
12855 * real.c: Include realmpfr.h.
12856 (real_arithmetic2): Remove legacy function.
12857 (real_value_negate): New.
12858 (real_value_abs): New.
12859 (mfpr_from_real, real_from_mpfr): Move from here...
12860 * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
12861 * builtins.c: Include realmpfr.h.
12862 * fold-const.c: Include realmpfr.h.
12863 (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
12864 (fold_negate_const): Likewise.
12865 (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
12866 * toplev.c: Include realmpfr.h.
12867 * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
12868 and real_value_negate.
12869 * fixed-value.c (check_real_for_fixed_mode): Likewise.
12870 * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
12871 (vfp3_const_double_index): Likewise.
12872 (arm_print_operand): Likewise.
12873 * Makefile.in: Update dependencies.
12874
12875 2010-05-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12876
12877 * config/s390/s390.c (override_options): Increase the default
12878 of max-completely-peel-times.
12879
12880 2010-05-21 Julian Brown <julian@codesourcery.com>
12881 Mark Mitchell <mark@codesourcery.com>
12882
12883 * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
12884 sibling calls for Thumb-1.
12885 * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
12886 * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
12887 Thumb-2.
12888 (*call_insn, *call_value_insn): Don't use for Thumb-2.
12889 (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
12890 for Thumb-2.
12891 (return): New expander.
12892 (*arm_return): New name for ARM return insn.
12893 * config/arm/thumb2.md (*thumb2_return): New insn pattern.
12894
12895 2010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
12896
12897 * config.gcc (sparc64-*-rtems*): New target.
12898
12899 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
12900
12901 * tree.c (build_function_decl_skip_args): Fix grammar.
12902 (build_function_type_list_1): Fix typos, adjust formatting.
12903
12904 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
12905
12906 * tree.h: Include real.h and fixed-value.h as basic datatypes.
12907 * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
12908 tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
12909 tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
12910 tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
12911 genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
12912 tree-pretty-print.c, tree-loop-distribution.c,
12913 tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
12914 tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
12915 tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
12916 tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
12917 tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
12918 tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
12919 tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
12920 tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
12921 tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
12922 tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
12923 genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
12924 tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
12925 gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
12926 tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
12927 tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
12928 store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
12929 tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
12930 tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
12931 tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
12932 tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
12933 fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
12934 tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
12935 config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
12936 config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
12937 config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
12938 config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
12939 config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
12940 config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
12941 config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
12942 config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
12943 config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
12944 config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
12945 config/score/score7.c, config/score/score.c, config/arm/arm.c,
12946 config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
12947 config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
12948 config/bfin/bfin.c: Clean up redundant includes.
12949 * Makefile.in: Update accordingly.
12950
12951 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
12952
12953 PR middle-end/44204
12954 * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
12955 statement has no arguments.
12956
12957 2010-05-21 Kai Tietz <kai.tietz@onevision.com>
12958
12959 PR/44139
12960 * varasm.c (emutls_decl): Merge attributes to new decl.
12961
12962 2010-05-21 Eric Botcazou <ebotcazou@adacore.com>
12963
12964 PR middle-end/44101
12965 * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
12966 around the uniquized constructor if its type requires a conversion.
12967
12968 2010-05-21 Jakub Jelinek <jakub@redhat.com>
12969
12970 PR debug/44205
12971 * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
12972 at -O0 goto_locus of any of the incoming edges differs from
12973 goto_locus of outgoing edge, or gimple_location of any of the
12974 labels differs.
12975
12976 2009-09-14 Vladimir Makarov <vmakarov@redhat.com>
12977
12978 * ira.c (ira_non_ordered_class_hard_regs): Define.
12979 (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
12980 * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
12981 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
12982 cost of unaligned hard regs when allocating multi-reg pseudos.
12983
12984 2010-05-20 Richard Sandiford <rdsandiford@googlemail.com>
12985
12986 * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
12987 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
12988 for TARGET_NO_FLOAT.
12989 * config/mips/mips.c (mips_file_start): Expand conditional expression
12990 into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
12991 (mips_override_options): Move -mno-float override -msoft-float and
12992 -mhard-float.
12993 * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
12994 Condition(TARGET_SUPPORTS_NO_FLOAT).
12995 * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
12996 __mips_no_float here.
12997 (SUBTARGET_OVERRIDE_OPTIONS): Delete.
12998 (TARGET_SUPPORTS_NO_FLOAT): Define.
12999 * config/mips/sdemtk.opt: Delete.
13000
13001 2010-05-20 Segher Boessenkool <segher@kernel.crashing.org>
13002
13003 * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
13004
13005 2010-05-20 Uros Bizjak <ubizjak@gmail.com>
13006
13007 PR target/43733
13008 * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
13009 * configure: Regenerate.
13010 * config.in: Regenerate.
13011 * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
13012 instead of sahf only for 64bit targets.
13013
13014 2010-05-20 Jakub Jelinek <jakub@redhat.com>
13015
13016 PR debug/44178
13017 * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
13018 setup_ref_regs for DEBUG_INSNs.
13019
13020 2010-05-20 Jan Hubicka <jh@suse.cz>
13021
13022 PR middle-end/44197
13023 * varpool.c (varpool_remove_node): Handle in-varpool aliases.
13024
13025 2010-05-20 Kenneth Zadeck <zadeck@naturalbridge.com>
13026
13027 PR bootstrap/43870
13028 * df-scan.c (df_ref_compare): Stabilize sort.
13029
13030 2010-05-20 Jakub Jelinek <jakub@redhat.com>
13031
13032 * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
13033 argument. Don't use DW_OP_piece if offset is non-zero,
13034 put offset into second DW_OP_bit_piece argument.
13035 (dw_sra_loc_expr): Adjust callers. For memory expressions
13036 compute offset.
13037
13038 2010-05-20 Hans-Peter Nilsson <hp@axis.com>
13039
13040 PR target/44202
13041 * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
13042 settings for 16-bit-constant "addo" alternative.
13043
13044 2010-05-19 James E. Wilson <wilson@codesourcery.com>
13045
13046 * config/mips/mips-dsp.md (add<DSPV:mode>3,
13047 mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
13048
13049 PR target/43764
13050 * mips.c (mips_call_expr_from_insn): New arg second_call. Set it.
13051 (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
13052 Use it.
13053
13054 2010-05-19 Joseph Myers <joseph@codesourcery.com>
13055
13056 * diagnostic.c (FLOAT, FFS): Don't undefine.
13057 * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
13058 * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
13059 include ordering.
13060
13061 2010-05-19 Richard Sandiford <rdsandiford@googlemail.com>
13062
13063 * combine.c (propagate_for_debug): Call make_compound_operation
13064 on the source value.
13065 (try_combine): When implementing a split chosen by find_split_point,
13066 either copy i2src or set it to null. Assert that i2src is not null
13067 before substituting into CALL_INSN_FUNCTION_USAGE.
13068
13069 2010-05-19 Anatoly Sokolov <aesok@post.ru>
13070
13071 * double-int.h (double_int_ior): New function.
13072 * tree.h (build_int_cst_wide_type): Remove.
13073 * tree.c (build_int_cst_wide_type): Remove.
13074 * fold-const.c (native_interpret_int): Use double_int_to_tree instead
13075 of build_int_cst_wide_type.
13076 * stor-layout.c (set_sizetype): (Ditto.).
13077 * dojump.c (do_jump): Use build_int_cstu instead of
13078 build_int_cst_wide_type.
13079
13080 2010-05-19 Eric Botcazou <ebotcazou@adacore.com>
13081
13082 * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
13083 * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
13084 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
13085 * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
13086 TARGET_EXPR nodes, but only once, if instructed to do so. Do not
13087 propagate the 'data' argument to copy_tree_r.
13088 (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
13089 Propagate 'data' argument to walk_tree.
13090 (copy_if_shared): New function.
13091 (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
13092 (unmark_visited): New function.
13093 (unshare_body): Call copy_if_shared instead of doing it manually.
13094 (unvisit_body): Call unmark_visited instead of doing it manually.
13095
13096 2010-05-19 Nathan Froyd <froydnj@codesourcery.com>
13097
13098 * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
13099 (hook_tree_tree_int_treep_bool_null): ...this. Update signature.
13100 * hooks.c: Likewise.
13101 * target-def.h (TARGET_FOLD_BUILTIN): Define to
13102 hook_tree_tree_int_treep_bool_null.
13103 * target.h (struct gcc_target): Update signature of fold_builtin
13104 field.
13105 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
13106 * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
13107 instead of the call expression.
13108 (fold_builtin_call_array): Pass n and argarray directly.
13109 (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
13110 consing a list.
13111 * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift
13112 MAX_ARGS check out of the loop. Delete declaration of `arity', declare
13113 `i' and use it in place of `arity'.
13114 * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
13115 Dereference `args' directly.
13116 * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
13117
13118 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13119
13120 * doc/sourcebuild.texi (Effective-Target Keywords): Document
13121 3dnow, sse3, sse2.
13122 (Directives): Document optional dg-require-effective-target
13123 selector.
13124
13125 2010-05-19 Richard Guenther <rguenther@suse.de>
13126
13127 PR lto/44196
13128 * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
13129
13130 2010-05-19 Richard Guenther <rguenther@suse.de>
13131
13132 * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
13133 * common.opt (fwhopr=): New.
13134 * opts.c (common_handle_option): Handle OPT_fwhopr.
13135 * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
13136 * collect2.c (main): Match -fwhopr*.
13137 * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
13138 Execute ltrans stage in parallel when jobs is bigger than 1.
13139
13140 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13141
13142 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
13143 pentiumpro on Solaris 8/x86 with Sun as.
13144 * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
13145 hidden alias bug.
13146 (gcc_cv_as_ix86_quad): Check for .quad directive.
13147 * configure: Regenerate.
13148 * config.in: Regenerate.
13149 * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
13150
13151 2010-05-19 Martin Jambor <mjambor@suse.cz>
13152
13153 * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
13154 also for indirect edges. Actual printing moved...
13155 (ipa_print_node_jump_functions_for_edge): ...here.
13156 (ipa_compute_jump_functions): Renamed to
13157 ipa_compute_jump_functions_for_edge and made static.
13158 (ipa_compute_jump_functions): New function.
13159 (make_edge_direct_to_target): Check if the number of arguments on
13160 the newly direct edge is the same as the number of parametrs of
13161 the callee.
13162 * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
13163 ipa_compute_jump_functions. Call ipa_analyze_params_uses.
13164 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
13165 analysis functions unconditionally, call the new
13166 ipa_analyze_params_uses on the node instead of every edge.
13167
13168 2010-05-19 Christian Borntraeger <borntraeger@de.ibm.com>
13169
13170 * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
13171 to tree.
13172 (dump_mem_ref): Adopt debug code to handle a tree as step. This
13173 also checks for a constant int vs. non-constant but
13174 loop-invariant steps.
13175 (find_or_create_group): Change the sort algorithm to only consider
13176 steps that are constant ints.
13177 (idx_analyze_ref): Adopt code to handle a tree instead of a
13178 HOST_WIDE_INT for step.
13179 (gather_memory_references_ref): Handle tree instead of int and be
13180 prepared to see a NULL_TREE.
13181 (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
13182 prefetches if the step cannot be calculated at compile time.
13183 (issue_prefetch_ref): Issue prefetches for non-constant but
13184 loop-invariant steps.
13185
13186 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
13187
13188 Revert:
13189 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
13190
13191 * tree.h (build_call_list): Remove.
13192 * tree.c (build_call_list): Remove.
13193
13194 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
13195
13196 * tree.h (build_call_list): Remove.
13197 * tree.c (build_call_list): Remove.
13198
13199 2010-05-18 Jan Hubicka <jh@suse.cz>
13200
13201 * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
13202
13203 2010-05-18 Vladimir Makarov <vmakarov@redhat.com>
13204
13205 PR rtl-optimization/43332
13206 * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
13207
13208 2010-05-18 Anatoly Sokolov <aesok@post.ru>
13209
13210 * tree.h (build_int_cstu): Implement as static inline.
13211 * tree.c (build_int_cstu): Remove function.
13212 (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
13213 sign extended.
13214
13215 2010-05-18 Richard Guenther <rguenther@suse.de>
13216
13217 PR lto/44143
13218 * lto-wrapper.c (verbose): New variable. Initialize from -v.
13219 (debug): Initialize from -save-temps.
13220 (collect_execute): Print command-line when verbose.
13221 (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute
13222 for ltrans invocation. Produce -dumpbase flag again.
13223 (process_args): Remove.
13224 (main): Simplify.
13225 * collect2.c (maybe_run_lto_and_relink): Only pass object
13226 files to lto-wrapper.
13227 * gcc.c (LINK_COMMAND_SPEC): Likewise.
13228
13229 2010-05-18 Jan Hubicka <jh@suse.cz>
13230
13231 * opts.c (decode_options): Do not disable whopr at ipa_cp.
13232 * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
13233
13234 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
13235
13236 PR lto/44184
13237 * lto-streamer-out.c (output_gimple_stmt): Output number of labels
13238 in a GIMPLE_ASM.
13239 * lto-streamer-in.c (input_gimple_stmt): Read number of labels
13240 in a GIMPLE_ASM.
13241
13242 2010-05-18 Jakub Jelinek <jakub@redhat.com>
13243
13244 PR debug/41371
13245 * var-tracking.c (find_loc_in_1pdv): Add a few checks from
13246 rtx_equal_p inline.
13247
13248 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
13249
13250 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
13251 lto-macho as lto_binary_reader.
13252
13253 * darwin.c (darwin_asm_named_section): Do not add assembler comment
13254 after .section directive; just print it before the directive instead.
13255
13256 2010-05-17 Jan Hubicka <jh@suse.cz>
13257
13258 * cgraph.c (cgraph_create_virtual_clone): Only check
13259 versionable_function_p when not in wpa and checking is enabled.
13260 * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
13261 there are no more functions to materialize.
13262
13263 2010-05-17 Jan Hubicka <jh@suse.cz>
13264
13265 * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
13266 * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
13267 New functions.
13268 (output_cgraph): Call output_cgraph_opt_summary.
13269 (input_cgrpah): Call input_cgraph_opt_summary.
13270 (output_cgraph_opt_summary_p, output_node_opt_summary,
13271 input_node_opt_summary, input_cgraph_opt_section): New functions.
13272 * lto-section-in.c (lto_section_name): Add cgraphopt.
13273 * tree-inline.c (tree_function_versioning): Handle parm_num.
13274 * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
13275 * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
13276
13277 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
13278
13279 * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
13280 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
13281 the insn to prefetch ratio heuristic to loops with known trip count.
13282
13283 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
13284
13285 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
13286 (schedule_prefetches): Do not generate a prefetch if the unroll factor
13287 is far from what is required by the prefetch.
13288
13289 2010-05-17 Jan Hubicka <jh@suse.cz>
13290
13291 * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
13292 (ipcp_estimate_growth): Likewise.
13293 (ipcp_const_param_count): Likewise.
13294 (ipcp_insert_stage): Likewise.
13295 * ipa-prop.c (visit_load_for_mod_analysis): New function.
13296 (visit_store_addr_for_mod_analysis): Set used flag.
13297 (ipa_detect_param_modifications): Set used flag for SSE params;
13298 update use of walk_stmt_load_store_addr_ops.
13299 (ipa_print_node_params): Print used flag.
13300 (ipa_write_node_info): Stream used flag.
13301 (ipa_read_node_info): Likewise.
13302 * ipa-prop.h (struct ipa_param_descriptor): Add used field.
13303 (ipa_is_param_used): New function.
13304 (lto_ipa_fixup_call_notes): Remove unused declaration.
13305
13306 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13307
13308 PR target/44074
13309 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
13310 * configure: Regenerate.
13311 * config.in: Regenerate.
13312 * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
13313 !HAVE_AS_IX86_REP_LOCK_PREFIX.
13314 Don't emit whitespace.
13315 * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
13316 (*rep_movsi): Likewise.
13317 (*rep_movsi_rex64): Likewise.
13318 (*rep_movqi): Likewise.
13319 (*rep_movqi_rex64): Likewise.
13320 (*rep_stosdi_rex64): Likewise.
13321 (*rep_stossi): Likewise.
13322 (*rep_stossi_rex64): Likewise.
13323 (*rep_stosqi): Likewise.
13324 (*rep_stosqi_rex64): Likewise.
13325 (*cmpstrnqi_nz_1): Use {%;} after repz.
13326 (*cmpstrnqi_nz_rex_1): Likewise.
13327 (*cmpstrnqi_1): Likewise.
13328 (*cmpstrnqi_rex_1): Likewise.
13329 (*strlenqi_1): Use {%;} after repnz.
13330 (*strlenqi_rex_1): Likewise.
13331 * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
13332 (*sync_compare_and_swap<mode>): Likewise.
13333 (sync_double_compare_and_swap<mode>): Likewise.
13334 (*sync_double_compare_and_swapdi_pic): Likewise.
13335 (sync_old_add<mode>): Likewise.
13336 (sync_add<mode>): Likewise.
13337 (sync_sub<mode>): Likewise.
13338 (sync_<code><mode>): Likewise.
13339
13340 2010-05-17 Martin Jambor <mjambor@suse.cz>
13341
13342 * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
13343 otr_token and polymorphic.
13344 * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
13345 (cgraph_clone_edge): Copy the above fields.
13346 * tree.c (get_binfo_at_offset): New function.
13347 * tree.h (get_binfo_at_offset): Declare.
13348 * ipa-prop.h (enum jump_func_type): Added known_type jump function
13349 type, reordered items, updated comments.
13350 (union jump_func_value): Added base_type field, reordered fields.
13351 (enum ipa_lattice_type): Moved down in the file.
13352 (struct ipa_param_descriptor): New field polymorphic.
13353 (ipa_is_param_polymorphic): New function.
13354 * ipa-prop.c: Include gimple.h and gimple-fold.h.
13355 (ipa_print_node_jump_functions): Print known type jump functions.
13356 (compute_complex_pass_through): Renamed to...
13357 (compute_complex_assign_jump_func): this.
13358 (compute_complex_ancestor_jump_func): New function.
13359 (compute_known_type_jump_func): Likewise.
13360 (compute_scalar_jump_functions): Create known type and complex ancestor
13361 jump functions.
13362 (ipa_note_param_call): New parameter polymorphic, set the corresponding
13363 flag in the call note accordingly.
13364 (ipa_analyze_call_uses): Renamed to...
13365 (ipa_analyze_indirect_call_uses): this. New parameter target, define
13366 variable var only in the block where it is used.
13367 (ipa_analyze_virtual_call_uses): New function.
13368 (ipa_analyze_call_uses): Likewise.
13369 (combine_known_type_and_ancestor_jfs): Likewise.
13370 (update_jump_functions_after_inlining): Implemented handling of a
13371 number of new jump function types combination.
13372 (print_edge_addition_message): Removed.
13373 (make_edge_direct_to_target): New function.
13374 (try_make_edge_direct_simple_call): Likewise.
13375 (try_make_edge_direct_virtual_call): Likewise.
13376 (update_call_notes_after_inlining): Renamed to...
13377 (update_indirect_edges_after_inlining): this. Moved edge creation for
13378 indirect calls to try_make_edge_direct_simple_call, also calls
13379 try_make_edge_direct_virtual_call for virtual calls.
13380 (ipa_print_node_params): Changed the header message.
13381 (ipa_write_jump_function): Stream also known type jump functions.
13382 (ipa_read_jump_function): Likewise.
13383 (ipa_write_indirect_edge_info): Stream new fields in
13384 cgraph_indirect_call_info.
13385 (ipa_read_indirect_edge_info): Likewise.
13386 * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
13387 GIMPLE_FOLD_H.
13388
13389 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13390
13391 * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
13392
13393 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
13394
13395 * tree.h (CALL_EXPR_ARGS): Delete.
13396 (call_expr_arglist): Delete.
13397 * tree.c (call_expr_arglist): Delete.
13398 * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
13399 targetm.fold_builtin.
13400 * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
13401 Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
13402 * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
13403 arglist parameter. Use CALL_EXPR_ARG.
13404 (picochip_expand_builtin_3op): Likewise.
13405 (picochip_expand_builtin_2opvoid): Likewise.
13406 (picochip_expand_array_get): Likewise.
13407 (picochip_expand_array_put): Likewise.
13408 (picochip_expand_array_testport): Likewise.
13409 (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
13410 rather than arglist.
13411 * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
13412 CALL_EXPR_ARGS.
13413 * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
13414 than TREE_VALUE and TREE_CHAIN.
13415 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
13416 * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
13417 the arglist.
13418
13419 2010-05-17 Jakub Jelinek <jakub@redhat.com>
13420
13421 PR bootstrap/42347
13422 * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
13423 to have no fallthru edge.
13424
13425 PR middle-end/44102
13426 * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
13427 bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
13428 mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
13429 add BARRIER after previous bb if needed.
13430
13431 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
13432
13433 * tree.c (build_function_type_list_1): Remove bogus assert condition.
13434
13435 2010-05-17 Alan Modra <amodra@gmail.com>
13436
13437 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
13438 unnecessary prototype. Replace copy_r12 and copy_r11 flag params
13439 with copy_reg rtx param.
13440 (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
13441 Correct cases where code for ABI_V4 did not initialise the reg
13442 used to access frame. Also leave frame_reg_rtx as sp for large
13443 frames that save no regs.
13444
13445 2010-05-17 Martin Jambor <mjambor@suse.cz>
13446
13447 PR middle-end/44133
13448 * tree-sra.c (create_access_replacement): New parameter rename, mark
13449 the replaement for renaming only when it is true.
13450 (get_access_replacement): Pass true in the rename parameter of
13451 create_access_replacement.
13452 (get_unrenamed_access_replacement): New function.
13453 (replace_uses_with_default_def_ssa_name): New parameter racc, get the
13454 replacement declaration from it.
13455
13456 2010-05-17 Bernd Schmidt <bernds@codesourcery.com>
13457
13458 * function.c (try_fit_stack_local, add_frame_space): New static
13459 functions.
13460 (assign_stack_local_1): Use them. Look for opportunities to use
13461 space previously wasted on alignment.
13462 * function.h (struct frame_space): New.
13463 (struct rtl_data): Add FRAME_SPACE_LIST member.
13464 * reload1.c (something_was_spilled): New static variable.
13465 (alter_reg): Set it.
13466 (reload): Test it in addition to testing if the frame size changed.
13467
13468 2010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
13469
13470 * config/s390/s390.c: Define sane prefetch settings and activate
13471 flag_prefetch_loop_arrays on -O3.
13472 * config/s390/s390.h: Declare that read can use write prefetch.
13473
13474 2010-05-17 Jakub Jelinek <jakub@redhat.com>
13475
13476 * lto-streamer-out.c (lto_output): Fix --enable-checking=release
13477 build.
13478
13479 2010-05-16 Jan Hubicka <jh@suse.cz>
13480
13481 * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
13482 function body; do not check stdarg field of struct function.
13483
13484 2010-05-16 Jan Hubicka <jh@suse.cz>
13485
13486 * cgraph.c (dump_cgraph_node): Dump versionable flag.
13487 * cgraph.h (cgraph_local_info): Add versionable flag.
13488 * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
13489 (ipcp_versionable_function_p): Use it.
13490 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
13491 versionable flag.
13492
13493 2010-05-16 Jan Hubicka <jh@suse.cz>
13494
13495 * cgraph.c (cgraph_clone_node): Take decl argument and insert
13496 clone into hash when it is different from orig.
13497 (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
13498 * cgraph.h (cgraph_clone_node): Update prototype.
13499 * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
13500 (lto_cgraph_encoder_delete): Delete body map.
13501 (lto_cgraph_encoder_size): Move to header.
13502 (lto_cgraph_encoder_encode_body_p,
13503 lto_set_cgraph_encoder_encode_body): New.
13504 (lto_output_node): Do not take written_decls argument; output clone_of
13505 pointer.
13506 (add_node_to): Add include_body_argument; call
13507 lto_set_cgraph_encoder_encode_body on master of the clone.
13508 (add_references): Update use of add_node_to.
13509 (compute_ltrans_boundary): Likewise.
13510 (output_cgraph): Do not create written_decls bitmap.
13511 (input_node): Take nodes argument; stream in clone_of correctly.
13512 (input_cgraph_1): Update use of input_node.
13513 * lto-streamer-out.c (lto_output): Use encoder info to decide
13514 what bodies to output.
13515 * ipa-inline.c (cgraph_clone_inlined_nodes,
13516 cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
13517 * lto-streamer.h (lto_cgraph_encoder_d): Add body.
13518 (lto_cgraph_encoder_size): Define here.
13519 (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
13520 Declare.
13521
13522 2010-05-16 Richard Guenther <rguenther@suse.de>
13523
13524 * doc/invoke.texi (-fipa-struct-reorg): Do not mention
13525 -fipa-type-escape.
13526 * ipa-type-escape.c (gate_type_escape_vars): Run when
13527 -fipa-struct-reorg runs.
13528 * opts.c (decode_options): Do not unset flag_ipa_type_escape.
13529 * common.opt (fipa-type-escape): Remove.
13530
13531 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
13532
13533 * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
13534 (decode_options): Likewise.
13535 * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
13536
13537 2010-05-16 Jan Hubicka <jh@suse.cz>
13538
13539 * ipa.c (function_and_variable_visibility): Also bring local all
13540 aliases.
13541
13542 2010-05-16 Richard Guenther <rguenther@suse.de>
13543
13544 * alias.c (nonoverlapping_memrefs_p): Remove use of
13545 IPA type-escape information.
13546
13547 2010-05-16 Joseph Myers <joseph@codesourcery.com>
13548
13549 * c-common.c (c_common_reswords): Add _Static_assert for C.
13550 * c-parser.c (c_token_starts_declaration,
13551 c_parser_next_token_starts_declaration,
13552 c_parser_static_assert_declaration_no_semi,
13553 c_parser_static_assert_declaration): New.
13554 (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
13555 Handle static assertions if static_assert_ok.
13556 (c_parser_external_declaration, c_parser_declaration_or_fndef,
13557 c_parser_compound_statement_nostart, c_parser_label,
13558 c_parser_for_statement, c_parser_objc_methodprotolist,
13559 c_parser_omp_for_loop): All callers of
13560 c_parser_declaration_or_fndef changed.
13561 (c_parser_struct_declaration): Handle static assertions.
13562 (c_parser_compound_statement_nostart): Use
13563 c_parser_next_token_starts_declaration and
13564 c_token_starts_declaration to detect start of declarations.
13565 (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
13566 Likewise.
13567
13568 2010-05-16 Anatoly Sokolov <aesok@post.ru>
13569
13570 * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13571 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13572 * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13573 TARGET_FUNCTION_VALUE_REGNO_P): Define.
13574 (mmix_function_outgoing_value): Rename to...
13575 (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
13576 (mmix_function_value_regno_p): Make static.
13577 (mmix_libcall_value): New function.
13578 * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
13579 mmix_function_value_regno_p): Remove declaration.
13580
13581 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
13582
13583 * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
13584 BUILT_IN_ALLOCA if stack checking is enabled.
13585
13586 2010-05-16 Richard Guenther <rguenther@suse.de>
13587
13588 * var-tracking.c (vars_copy_1): Inline ...
13589 (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
13590 (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
13591 (variable_merge_over_cur): Adjust. Merge asserts.
13592 (variable_merge_over_src): Likewise.
13593 (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
13594 (variable_post_merge_new_vals): Merge asserts.
13595 (variable_post_merge_perm_vals): Likewise.
13596 (find_mem_expr_in_1pdv): Likewise.
13597 (dataflow_set_different_value): Remove.
13598 (onepart_variable_different_p): Merge asserts.
13599 (variable_different_p): Likewise.
13600 (dataflow_set_different_1): Inline ...
13601 (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
13602 (emit_notes_for_differences_1): Merge asserts.
13603
13604 2010-05-16 Richard Guenther <rguenther@suse.de>
13605
13606 * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
13607 * optabs.c (libfunc_decl_hash): Likewise.
13608 * varasm.c (emutls_decl): Likewise.
13609
13610 2010-05-16 Steven Bosscher <steven@gcc.gnu.org>
13611
13612 * c-decl.c: Don't include gimple.h.
13613 (merge_decls): Do not copy gimple_body.
13614
13615 2010-05-15 Jason Merrill <jason@redhat.com>
13616
13617 * c.opt: Add -fnothrow-opt.
13618
13619 2010-05-15 Jan Hubicka <jh@suse.cz>
13620
13621 * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
13622 analyzed.
13623 * passes.c (ipa_write_summaries): Write all analyzed nodes.
13624
13625 2010-05-15 Steven Bosscher <steven@gcc.gnu.org>
13626
13627 * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
13628 * Makefile.in: Add it.
13629 Fix all other Makefile dependencies for changes below.
13630 * tree.h: Include it instead of defining VEC primitives here.
13631 * gimple.h: Likewise.
13632 * rtl.h: Likewise.
13633 * tree-inline.h: Inlclude vecir.h instead of gimple.h.
13634 * except.h: Include vecir.h, break dependence on tree.h.
13635
13636 * gimplify.c (append_to_statement_list_1, append_to_statement_list):
13637 Move from here...
13638 * tree-iterator.c: ...to here.
13639 * tree-iterator.h: Fix file introduction comment. Add extern markers.
13640
13641 * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
13642 tm_p.h.
13643 * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
13644 * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
13645 integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
13646 tree-mudflap.h, and target.h.
13647 * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
13648 predict.h, tree-inline.h, gimple.h, and langhooks.h.
13649 * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
13650 Add FIXME for why gimple.h is still included (should be unnecessary
13651 since GCC 4.5 gimplification unit-at-a-time).
13652 * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
13653 * c-pragma.c: Add FIXME for why function.h needs to be included just
13654 for cfun, at front-end level.
13655 Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
13656 Do not include ggc.h, but include vecprim.h for VEC(char).
13657 * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
13658 Explain why target.h is included.
13659 * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
13660 Explain why gimple.h is included.
13661 * c-ppoutput.c: Do not include tm.h.
13662 * c-common.c: Do not include gimple.h. Explain why expr.h is included.
13663 * c-parses.c: Explain why rtl.h is included, and that this (and only
13664 this) is also why tm.h must be included.
13665 Do not include except.h.
13666 * c-lang.c: Do not include ggc.h.
13667
13668 2010-05-15 Uros Bizjak <ubizjak@gmail.com>
13669
13670 * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
13671
13672 2010-05-15 Joseph Myers <joseph@codesourcery.com>
13673
13674 * c-decl.c (grokfield): Allow typedefs for anonymous structs and
13675 unions by default if those structs and unions have no tags. Do
13676 not condition anonymous struct and unions handling on flag_iso.
13677 Allow anonymous structs and unions for C1X.
13678 (finish_struct): Do not diagnose lack of named fields when
13679 anonymous structs and unions present for C1X. Accept flexible
13680 array members in structure with anonymous structs or unions but no
13681 directly named fields.
13682 * doc/extend.texi (Unnamed Fields): Update.
13683
13684 2010-05-15 Eric Botcazou <ebotcazou@adacore.com>
13685
13686 * gimple.h (compare_field_offset): Rename into...
13687 (gimple_compare_field_offset): ...this.
13688 * gimple.c (compare_field_offset): Rename into...
13689 (gimple_compare_field_offset): ...this. Compare the full access if
13690 the offset is self-referential.
13691 (gimple_types_compatible_p): Adjust for above renaming.
13692 * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
13693 DECL_NONADDRESSABLE_P flag of fields before merging them.
13694
13695 2010-05-15 Nathan Froyd <froydnj@codesourcery.com>
13696
13697 * tree.h (ctor_to_list): Delete.
13698 * tree.c (ctor_to_list): Delete.
13699
13700 2010-05-15 Jan Hubicka <jh@suse.cz>
13701
13702 * ipa-reference.c: Include toplev.h
13703 (is_proper_for_analysis): Only add to all_module_statics
13704 if it is allocated.
13705 (write_node_summary_p, stream_out_bitmap,
13706 ipa_reference_write_optimization_summary,
13707 ipa_reference_read_optimization_summary): New.
13708 (struct ipa_opt_pass_d pass_ipa_reference): Add
13709 optimization summary streaming.
13710 * lto-cgraph.c (referenced_from_this_partition_p,
13711 reachable_from_this_partition_p): New functions.
13712 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
13713 call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
13714 * opts.c (decode_options): Enable ipa_reference.
13715 * Makefile.in (ipa-reference.o): Add toplev.h dependency.
13716 * lto-streamer.h (referenced_from_this_partition_p,
13717 reachable_from_this_partition_p): Declare.
13718
13719 2010-05-15 Richard Guenther <rguenther@suse.de>
13720
13721 PR tree-optimization/44038
13722 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
13723 taking the address of a V_C_E of a constant.
13724
13725 2010-05-14 Jan Hubicka <jh@suse.cz>
13726
13727 * tree.h (memory_identifier_string): Remove.
13728 * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
13729 (ipa_reference_global_vars_info_d): Remove statics_not_read and
13730 statics_not_written.
13731 (ipa_reference_optimization_summary_d): New structure.
13732 (ipa_reference_optimization_summary_t): New type and vector.
13733 (ipa_reference_vars_info_d): Embedd structures instead of using
13734 pointers.
13735 (reference_vars_to_consider): Remove out of GGC space.
13736 (module_statics_escape): Remove.
13737 (global_info_obstack): Rename to ...
13738 (optimization_summary_obstack): ... this one.
13739 (initialization_status_t): Remove.
13740 (memory_identifier_string): Remove.
13741 (get_reference_vars_info): Fix indenting.
13742 (set_reference_vars_info): Likewise.
13743 (get_reference_optimization_summary): New.
13744 (set_reference_optimization_summary): New.
13745 (get_global_reference_vars_info): Remove.
13746 (ipa_reference_get_read_global): Remove.
13747 (ipa_reference_get_written_global): Remove.
13748 (ipa_reference_get_not_read_global): Update.
13749 (ipa_reference_get_not_written_global): Update.
13750 (is_proper_for_analysis): Outlaw addressable.
13751 (propagate_bits): Update for new datastructures.
13752 (analyze_variable): Remove.
13753 (init_function_info): Update for new datastructures.
13754 (clean_function_local_data): Remove.
13755 (clean_function): Remove.
13756 (copy_global_bitmap): Use optimizations_summary_obstack.
13757 (duplicate_node_data): Duplicate optimization summary only.
13758 (remove_node_data): Remove optimization summary only.
13759 (generate_summary): Do not analyze variables; do not compute
13760 module_statics_escape; do not prune solutions by it.
13761 (read_write_all_from_decl): Fix typos in comments.
13762 (propagate): Doscover readonly and nonaddressable first;
13763 update for new datastructures; share global bitmaps.
13764 * ipa-reference.h (ipa_reference_get_read_global,
13765 ipa_reference_get_written_global): Remove.
13766 * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
13767 * Makefile.in: Remove ipa-refereference from GT files.
13768
13769 2010-05-14 Jakub Jelinek <jakub@redhat.com>
13770
13771 PR debug/44112
13772 * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
13773 for all SYMBOL_REF_DECLs.
13774
13775 2010-05-14 Jan Hubicka <jh@suse.cz>
13776
13777 * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
13778 (varpool_all_refs_explicit_p): New inline function.
13779 * ipa-reference.c: Update comment.
13780 (module_statics_written): Remove.
13781 (get_static_decl): Remove.
13782 (ipa_init): Do not initialize module_statics_written.
13783 (analyze_function): Likewise.
13784 (generate_summary): Likewise; do not compute module_statics_readonly
13785 and do not update variable flags.
13786 (propagate): Call ipa_discover_readonly_nonaddressable_vars.
13787 * ipa.c: Inlucde flags.h
13788 (cgraph_local_node_p): New.
13789 (cgraph_remove_unreachable_nodes): Return early when not optimizing;
13790 promote functions to local.
13791 (ipa_discover_readonly_nonaddressable_vars): New function.
13792 (function_and_variable_visibility): Use cgraph_local_node_p.
13793 * varpool.c (varpool_finalize_decl): Set force_output for
13794 DECL_PRESERVE_P vars.
13795
13796 2010-05-14 Jan Hubicka <jh@suse.cz>
13797
13798 * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
13799
13800 2010-05-14 Richard Guenther <rguenther@suse.de>
13801
13802 PR tree-optimization/44119
13803 * tree-ssa-pre.c (eliminate): Properly mark replacement of
13804 a PHI node necessary.
13805
13806 2010-05-14 Eric Botcazou <ebotcazou@adacore.com>
13807
13808 * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
13809
13810 2010-05-14 Jason Merrill <jason@redhat.com>
13811
13812 PR c++/44127
13813 * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
13814 (gimple_call_set_nothrow): New.
13815 * gimple.c (gimple_build_call_from_tree): Call it.
13816 (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
13817
13818 PR c++/44127
13819 * gimplify.c (gimplify_seq_add_stmt): No longer static.
13820 * gimple.h: Declare it.
13821 * gimple.c (gimple_build_eh_filter): No ops.
13822
13823 2010-05-14 Jan Hubicka <jh@suse.cz>
13824
13825 * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
13826 nodes already in queue.
13827 (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
13828 re-enqueueing node.
13829
13830 2010-05-14 Jakub Jelinek <jakub@redhat.com>
13831
13832 PR debug/44136
13833 * cfgexpand.c (expand_debug_expr): If non-memory op0
13834 has BLKmode, return NULL.
13835
13836 2010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
13837
13838 * config.gcc: Add support for --with-cpu option for bdver1.
13839 * config/i386/i386.h (TARGET_BDVER1): New macro.
13840 (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
13841 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13842 (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
13843 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13844 Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
13845 (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
13846 (processor_type): Add PROCESSOR_BDVER1.
13847 * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
13848 processor_type in config/i386/i386.h.
13849 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
13850 movaps <reg, reg> instead of movapd <reg, reg> when replacing
13851 movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
13852 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
13853 to emit packed xor instead of packed double/packed integer
13854 xor for SSE and AVX when moving a zero value.
13855 * config/i386/sse.md: Add check for
13856 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
13857 movapd/movdqa for SSE and AVX.
13858 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
13859 single logical operations i.e and, or and xor instead of packed double
13860 logical operations for SSE and AVX.
13861 * config/i386/i386-c.c (ix86_target_macros_internal):
13862 Add PROCESSOR_BDVER1.
13863 * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
13864 (has_fma4, has_xop): New.
13865 * config/i386/i386.c (bdver1_cost): New variable.
13866 (m_BDVER1): New macro.
13867 (m_AMD_MULTIPLE): Add m_BDVER1.
13868 (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
13869 x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
13870 x86_tune_use_simode_fiop, x86_tune_promote_qimode,
13871 x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
13872 x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
13873 x86_tune_sse_partial_reg_dependency,
13874 x86_tune_sse_unaligned_load_optimal,
13875 x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
13876 x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
13877 x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
13878 x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
13879 x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
13880 Enable/disable for bdver1.
13881 (processor_target_table): Add bdver1_cost.
13882 (cpu_names): Add bdver1.
13883 (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
13884 processor_alias_table.
13885 (ix86_expand_vector_move_misalign): Change.
13886 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
13887 Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
13888 Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
13889 of movupd/movdqu for SSE and AVX.
13890 (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
13891 (ix86_tune_adjust_cost): Add code for bdver1.
13892 (standard_sse_constant_opcode): Add check for
13893 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
13894 of packed double xor for SSE and AVX.
13895
13896 2010-05-14 Pat Haugen <pthaugen@us.ibm.com>
13897
13898 * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
13899 result to unsigned.
13900
13901 2010-05-14 Tristan Gingold <gingold@adacore.com>
13902
13903 * toplev.c (default_debug_hooks): Remove this variable.
13904 (process_options): Remove assignments to default_debug_hooks.
13905
13906 2010-05-14 Martin Jambor <mjambor@suse.cz>
13907
13908 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
13909 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
13910 * langhooks.h (struct lang_hooks_for_decls): Removed field
13911 fold_obj_type_ref.
13912 * tree.c (free_lang_data): Remove assignment to
13913 lang_hooks.fold_obj_type_ref.
13914 * tree.def (OBJ_TYPE_REF): Update comment.
13915
13916 2010-05-14 Richard Guenther <rguenther@suse.de>
13917
13918 PR tree-optimization/44124
13919 * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
13920
13921 2010-05-14 Alan Modra <amodra@gmail.com>
13922
13923 PR target/44075
13924 * config/rs6000/rs6000.c (struct machine_function): Reorder
13925 fields for better packing. Add lr_save_state.
13926 (rs6000_ra_ever_killed): Return lr_save_state if set.
13927 (rs6000_emit_eh_reg_restore): Set lr_save_state.
13928
13929 2010-05-13 Jan Hubicka <jh@suse.cz>
13930
13931 * varpool.c (decide_is_variable_needed): Drop code checking
13932 TREE_SYMBOL_REFERENCED.
13933
13934 2010-05-13 Jan Hubicka <jh@suse.cz>
13935
13936 * final.c (output_addr_const): Do not call mark_decl_referenced.
13937 * cgraphunit.c (process_function_and_variable_attributes): Use
13938 mark_needed_node dirrectly.
13939 (assemble_thunk): Do not call mark_decl_referenced.
13940
13941 2010-05-13 Anatoly Sokolov <aesok@post.ru>
13942
13943 * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
13944
13945 2010-05-13 Jeff Law <law@redhat.com>
13946
13947 * ira-conflicts.c (print_allocno_conflicts): New function broken out
13948 from...
13949 (print_conflicts): Call print_allocno_conflicts.
13950
13951 2010-05-13 Jakub Jelinek <jakub@redhat.com>
13952
13953 PR debug/44104
13954 * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
13955 if it is NULL.
13956
13957 2010-05-13 Kai Tietz <kai.tietz@onevision.com>
13958
13959 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
13960 t-mingw-w64 or t-mingw-w32 for multilib configuration.
13961 * config/i386/t-mingw-w32: New.
13962 * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
13963
13964 2010-05-13 Martin Jambor <mjambor@suse.cz>
13965
13966 * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
13967 gimple-fold.c).
13968 * gimple-fold.c (get_base_binfo_for_type): New function.
13969 (gimple_get_relevant_ref_binfo): Likewise.
13970 (gimple_fold_obj_type_ref_known_binfo): Likewise.
13971 (gimple_fold_obj_type_ref): Likewise.
13972 (fold_gimple_call): Simplify condition for folding virtual calls
13973 and call gimple_fold_obj_type_ref.
13974 * gimple.h (gimple_get_relevant_ref_binfo): Declare.
13975 (gimple_fold_obj_type_ref_known_binfo): Likewise.
13976
13977 2010-05-13 Andreas Schwab <schwab@linux-m68k.org>
13978
13979 * config/rs6000/rs6000-protos.h
13980 (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
13981 * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
13982 (rs6000_debug_mode_dependent_address)
13983 (rs6000_mode_dependent_address_ptr): Likewise.
13984
13985 2010-05-13 Jakub Jelinek <jakub@redhat.com>
13986
13987 PR debug/43983
13988 * var-tracking.c (track_expr_p): Allow tracking of variables optimized
13989 by SRA.
13990 * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
13991 * tree-sra.c (create_access_replacement): Call unshare_expr before
13992 passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
13993 * dwarf2out.c: Include tree-flow.h.
13994 (struct var_loc_node): Rename var_loc_note field to loc, add comment.
13995 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
13996 Handle DW_OP_bit_piece.
13997 (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
13998 construct_piece_list, adjust_piece_list): New functions.
13999 (add_var_loc_to_decl): Handle SRA optimized variables.
14000 Adjust for var_loc_note to loc field renaming.
14001 (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
14002 in VAR_LOCATION note.
14003 (new_loc_descr_op_bit_piece): New function.
14004 (dw_sra_loc_expr): New function.
14005 (dw_loc_list): Use it. Don't handle the last range after the
14006 loop, handle it inside of the loop. Adjust for var_loc_note
14007 to loc field renaming.
14008 (add_location_or_const_value_attribute): Only special case
14009 single entry loc lists if loc is NOTE_P. Adjust for
14010 var_loc_note to loc field renaming.
14011 (dwarf2out_var_location): Don't set newloc->var_loc_note
14012 and newloc->next here.
14013
14014 2010-05-12 Jan Hubicka <jh@suse.cz>
14015
14016 * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
14017 flag.
14018 * cgraph.h (cgraph_only_called_directly_p,
14019 cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
14020 (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
14021 * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
14022 (assemble
14023 * ipa.c (cgraph_remove_unreachable_nodes): Use
14024 cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
14025 flags.
14026 * tree-inline.c (copy_bb): Check address_taken flag.
14027 * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
14028 externally_visible flag.
14029
14030 2010-05-12 Jason Merrill <jason@redhat.com>
14031
14032 PR bootstrap/44048
14033 PR target/44099
14034 * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
14035 * sdbout.c (plain_type_1): Likewise.
14036 * dwarf2out.c (is_base_type): Likewise.
14037 (gen_type_die_with_usage): Likewise. Generate
14038 DW_TAG_unspecified_type for any LANG_TYPE.
14039
14040 2010-05-12 Jan Hubicka <jh@suse.cz>
14041
14042 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
14043 indrect edges too.
14044 * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
14045 (cgraph_clone_edge): Update.
14046 (cgraph_node_remove_callees): Remove indirect calls too.
14047 * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
14048 (cgraph_create_indirect_edge): Update prototype.
14049 * ipa-reference.c (has_proper_scope_for_analysis): Rename to
14050 is_proper_for_analysis.
14051 (add_new_function, visited_nodes, function_insertion_hook_holder,
14052 get_local_reference_vars_info, mark_address_taken, mark_address,
14053 mark_load, mark_store, check_asm_memory_clobber, check_call,
14054 scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
14055 (ipa_init): Do not initialize visited_nodes;
14056 function_insertion_hook_holder.
14057 (analyze_variable): Rewrite.
14058 (analyze_function): Rewrite.
14059 (copy_local_bitmap): Remove.
14060 (duplicate_node_dat): Do not duplicate local info.
14061 (generate_summary): Simplify to only walk cgraph.
14062 (write_node_summary_p, ipa_reference_write_summary,
14063 ipa_reference_read_summary): Remove.
14064 (propagate): Do not remove function insertion;
14065 generate summary.
14066 (pass_ipa_reference): NULLify summary handling fields.
14067 * lto-cgraph.c (lto_output_edge): Output ecf_flags.
14068 (input_edge): Input ecf_flags.
14069 * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
14070 (update_indirect_edges_after_inlining): Ignore edges with unknown
14071 param.
14072
14073 2010-05-12 Sriraman Tallam <tmsriram@google.com>
14074
14075 * implicit-zee.c: New file.
14076 * tree-pass.h (pass_implicit_zee): Declare.
14077 * passes.c (init_optimization_passes): Add zee pass.
14078 * common.opt (fzee): New flag.
14079 * timevar.def (TV_ZEE): Define.
14080 * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
14081 and beyond.
14082 * Makefile.in (implicit-zee.o): Add new build file.
14083
14084 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
14085 Nathan Froyd <froydnj@codesourcery.com>
14086
14087 * c-common.c (sync_resolve_params): Remove write-only variable.
14088
14089 2010-05-12 Anatoly Sokolov <aesok@post.ru>
14090
14091 * target.h (struct gcc_target): Add mode_dependent_address_p field.
14092 * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14093 (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
14094 * targhooks.c (default_mode_dependent_address_p): New function.
14095 * targhooks.h (default_mode_dependent_address_p): Declare function.
14096 * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14097 (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
14098 * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
14099 target hook. Change return type to bool.
14100 * recog.h (mode_dependent_address_p): Change return type to bool.
14101
14102 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
14103 Nathan Froyd <froydnj@codesourcery.com>
14104
14105 * tree-mudflap.c (build_function_type_0, build_function_type_1,
14106 build_function_type_2, build_function_type_3): Remove.
14107 (mudflap_init): Use build_function_type_list.
14108
14109 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
14110 Nathan Froyd <froydnj@codesourcery.com>
14111
14112 * coverage.c (build_fn_info_value): Call build_constructor instead of
14113 build_constructor_from_list.
14114 (build_ctr_info_value): Likewise.
14115 (build_gcov_info): Likewise.
14116
14117 2010-05-12 Nathan Froyd <froydnj@codesourcery.com>
14118
14119 * tree.c (build_constructor): Compute TREE_CONSTANT for the
14120 resultant constructor.
14121 (build_constructor_single): Don't set TREE_CONSTANT.
14122 (build_constructor_from_list): Don't compute TREE_CONSTANT.
14123
14124 2010-05-12 Jan Hubicka <jh@suse.cz>
14125
14126 * cgraph.h (struct varpool_node): Add aux.
14127 * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
14128 * varpool.c (varpool_remove_node): Do not remove initializer.
14129 (varpool_reset_queue): Export.
14130 (varpool_finalize_decl): Volatile vars are forced to be output.
14131 * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
14132 replaced decl.
14133 * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
14134 process_references, varpool_can_remove_if_no_refs): New functions.
14135 (cgraph_remove_unreachable_nodes): Handle variables too.
14136
14137 2010-05-12 H.J. Lu <hongjiu.lu@intel.com>
14138
14139 PR target/44088
14140 * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
14141
14142 2010-05-12 Jakub Jelinek <jakub@redhat.com>
14143
14144 PR middle-end/44085
14145 * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
14146 change value of ORT_TASK.
14147 (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
14148 (omp_notice_threadprivate_variable): New function.
14149 (omp_notice_variable): Call it for threadprivate variables.
14150 If enclosing ctx is a task, print enclosing task rather than
14151 enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK.
14152 (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
14153 if task has untied clause.
14154
14155 PR debug/42278
14156 * dwarf2out.c (base_type_die): Don't add name attribute here.
14157 (modified_type_die): Instead of sizetype use
14158 its underlying original type. If a DW_TAG_base_type doesn't
14159 have name added, add __unknown__.
14160 (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
14161 always call force_type_die instead.
14162
14163 2010-05-12 Maxim Kuvyrkov <maxim@codesourcery.com>
14164
14165 * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
14166 for __stack_chk_guard.
14167
14168 2010-05-11 Jakub Jelinek <jakub@redhat.com>
14169
14170 * c-opts.c (c_common_parse_file): If start_end_main_source_file,
14171 don't call start_source_file debug hook here...
14172 (finish_options): ... but here, after outputting predefined and
14173 command line defines and undefs.
14174
14175 PR middle-end/44071
14176 * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
14177 no fallthru edge.
14178 * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
14179 optimizing away empty bb with no successors, move over its
14180 footer chain to fallthru predecessor.
14181 * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
14182 (rtl_split_edge): For asm goto call patch_jump_insn even if
14183 splitting fallthru edge.
14184
14185 PR c++/44059
14186 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
14187 even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
14188 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
14189 * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
14190 on DW.ref.* decls.
14191
14192 PR c++/44062
14193 * c-parser.c (c_parser_expression): Mark LHS of a comma
14194 expression as read if it is a decl, handled component or
14195 COMPOUND_EXPR with that on the RHS.
14196 * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
14197 if it is a decl or handled component.
14198
14199 2010-05-11 Jan Hubicka <jh@suse.cz>
14200
14201 * lto-symtab.c (lto_symtab_free): New function.
14202 * lto-streamer.h (lto_symtab_free): Declare.
14203
14204 2010-05-11 Jan Hubicka <jh@suse.cz>
14205
14206 * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
14207 that if function is needed it is reachable.
14208 (lto_output_node): See if it the function is reachable or referenced.
14209 (output_cgraph): Update call of lto_output_node.
14210 * lto-streamer.h (reachable_from_other_partition_p): Declare.
14211
14212 2010-05-11 Jan Hubicka <jh@suse.cz>
14213
14214 * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
14215 Mark as used.
14216
14217 2010-05-11 Jan Hubicka <jh@suse.cz>
14218
14219 PR tree-optimize/44063
14220 * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
14221 queue.
14222 (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
14223 limits.
14224 (estimate_function_body_sizes): Compute sizes even when disregarding.
14225
14226 2010-05-11 Kai Tietz <kai.tietz@onevision.com>
14227
14228 * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
14229
14230 2010-05-11 Jan Hubicka <jh@suse.cz>
14231
14232 * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
14233 into every boundary.
14234
14235 2010-05-11 Jan Hubicka <jh@suse.cz>
14236
14237 * matrix-reorg.c (matrix_reorg): Rebuild edges.
14238
14239 2010-05-11 Jan Hubicka <jh@suse.cz>
14240
14241 * lto-streamer.c (lto_streamer_cache_add_to_node_array,
14242 lto_streamer_cache_delete): Put nodes into heap.
14243 * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
14244 heap.
14245
14246 2010-05-11 Jan Hubicka <jh@suse.cz>
14247
14248 * cgraphbuild.c (cgraph_rebuild_references): New.
14249 * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
14250 out extern inlines.
14251 * cgraph.h (cgraph_rebuild_references): Declare.
14252 * tree-inline.c (tree_function_versioning): Use it.
14253 * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
14254
14255 2010-05-11 Jan Hubicka <jh@suse.cz>
14256
14257 * cgraph.c: Include ipa-utils.h
14258 (cgraph_create_virtual_clone): Update references.
14259 * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
14260
14261 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
14262
14263 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
14264 prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
14265 cache size.
14266
14267 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
14268
14269 * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
14270
14271 2010-05-11 Jakub Jelinek <jakub@redhat.com>
14272
14273 * gcc.c (execute): For -### don't quote arguments that
14274 contain just alphanumerics and _/-. characters.
14275 * doc/invoke.texi: Document that change for -###.
14276
14277 PR debug/44023
14278 * df-problems.c (struct dead_debug): Add to_rescan field.
14279 (dead_debug_init): Clear to_rescan field.
14280 (dead_debug_finish): Rescan all debug insns in to_rescan
14281 bitmap and free the bitmap.
14282 (dead_debug_insert_before): Instead of rescanning debug insns
14283 immediately queue their rescanning until dead_debug_finish.
14284 (df_note_bb_compute): After dead_debug_add do continue instead
14285 of break.
14286
14287 2010-05-10 Jakub Jelinek <jakub@redhat.com>
14288
14289 PR debug/44028
14290 * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
14291 clear also INSN_REG_USE_LIST.
14292
14293 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14294
14295 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
14296
14297 2010-05-10 Jan Hubicka <jh@suse.cz>
14298
14299 * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
14300 commited change.
14301
14302 2010-05-10 Jan Hubicka <jh@suse.cz>
14303
14304 * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
14305 Allocate encoders.
14306 * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
14307 * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
14308 (lto_streamer_cache_create): Init alloc pool.
14309 (lto_streamer_cache_delete): Free alloc pool.
14310 * lto-streamer.h: Include alloc pool.
14311 (lto_streamer_cache_d): Use alloc pool.
14312 * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
14313
14314 2010-05-10 Jan Hubicka <jh@suse.cz>
14315
14316 * Makefile.in (cgraphbuild.o): Add dependency on except.h.
14317 * cgraphbuild.c: Include except.h
14318 (record_type_list, record_eh_tables): New function.
14319 (build_cgraph_edges, rebuild_cgraph_edges): Use it.
14320
14321 2010-05-10 Jan Hubicka <jh@suse.cz>
14322
14323 * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
14324 __frame_dummy_init_array_entry, force_to_data): Attribute as used
14325 rather than unused.
14326
14327 2010-05-10 Michael Matz <matz@suse.de>
14328
14329 * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
14330 (can_reassociate_p): Use FLOAT_TYPE_P.
14331 * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
14332 (vect_force_simple_reduction): ... this.
14333 * tree-parloops.c (gather_scalar_reductions): Use
14334 vect_force_simple_reduction.
14335 * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
14336 vect_is_simple_reduction, add modify argument, if true rewrite
14337 "a-b" into "a+(-b)".
14338 (vect_is_simple_reduction, vect_force_simple_reduction): New
14339 functions.
14340 (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
14341
14342 2010-05-10 H.J. Lu <hongjiu.lu@intel.com>
14343 Vladimir Makarov <vmakarov@redhat.com>
14344
14345 PR rtl-optimization/44012
14346 * ira-build.c (remove_unnecessary_allocnos): Nullify
14347 regno_allocno_map of the removed allocno.
14348
14349 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14350
14351 * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
14352 to /dev/null.
14353 * configure: Regenerate.
14354
14355 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14356
14357 * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
14358 unused.
14359 Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
14360 * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
14361 support in Sun ld.
14362 * configure: Regenerate.
14363
14364 2010-05-10 Richard Guenther <rguenther@suse.de>
14365
14366 * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
14367 marked if the entry identifier is marked.
14368
14369 2010-05-10 Richard Guenther <rguenther@suse.de>
14370
14371 * c-common.c (struct c_common_attributes): Add fnspec attribute.
14372 (handle_fnspec_attribute): New function.
14373 * gimple.h (gimple_call_return_flags): Declare.
14374 (gimple_call_arg_flags): Likewise.
14375 * gimple.c (gimple_call_arg_flags): New function.
14376 (gimple_call_return_flags): Likewise.
14377 * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
14378 New argument flags.
14379 (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
14380 return value flags.
14381 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
14382 * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
14383 main work to ...
14384 (make_heapvar_for): ... this new function.
14385 (handle_rhs_call): Handle fnspec attribute argument specifiers.
14386 (handle_lhs_call): Likewise.
14387 (find_func_aliases): Adjust.
14388
14389 2010-05-10 Richard Guenther <rguenther@suse.de>
14390
14391 PR tree-optimization/44050
14392 * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
14393
14394 2010-05-10 Wei Guozhi <carrot@google.com>
14395
14396 PR target/42879
14397 * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
14398
14399 2010-05-09 Joseph Myers <joseph@codesourcery.com>
14400
14401 PR c/10676
14402 * c-typeck.c (lookup_field): Take a type directly. Update
14403 recursive calls.
14404 (build_component_ref): Update call to lookup_field.
14405 (set_init_label): Use lookup_field to find initialized field.
14406 Handle returned list of fields like a sequence of designators.
14407
14408 2010-05-09 Richard Guenther <rguenther@suse.de>
14409
14410 PR middle-end/44024
14411 * fold-const.c (tree_single_nonzero_warnv_p): Properly
14412 handle &FUNCTION_DECL.
14413
14414 2010-05-09 Joseph Myers <joseph@codesourcery.com>
14415
14416 PR c/4784
14417 * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous
14418 structures and unions recursively.
14419 (detect_field_duplicates): Move duplicate detection with a hash to
14420 detect_field_duplicates_hash. Always use a hash if anonymous
14421 structures or unions are present.
14422 * doc/extend.texi (Unnamed Fields): Document that duplicate fields
14423 give errors.
14424
14425 2010-05-09 H.J. Lu <hongjiu.lu@intel.com>
14426
14427 PR target/44046
14428 * config/i386/driver-i386.c (host_detect_local_cpu): Properly
14429 detect Atom, Core 2 and Core i7.
14430
14431 2010-05-09 Richard Guenther <rguenther@suse.de>
14432
14433 * gcc.c (store_arg): Handle temporary file deletion for
14434 joined arguments.
14435
14436 2010-05-09 Richard Guenther <rguenther@suse.de>
14437
14438 PR middle-end/44043
14439 * ipa-inline.c (estimate_function_body_sizes): Return after
14440 disregarding inline limits.
14441
14442 2010-05-09 Richard Guenther <rguenther@suse.de>
14443
14444 * gcc.c (store_arg): Revert last change.
14445
14446 2010-05-08 Sandra Loosemore <sandra@codesourcery.com>
14447
14448 PR middle-end/28685
14449 * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
14450 (optimize_ops_list): Call it.
14451
14452 2010-05-08 Richard Guenther <rguenther@suse.de>
14453
14454 PR tree-optimization/44030
14455 * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set
14456 NECESSARY flag if we propagate from a inserted expression.
14457
14458 2010-05-08 Eric Botcazou <ebotcazou@adacore.com>
14459
14460 * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
14461 domain types as equal if they are both PLACEHOLDER_EXPRs.
14462
14463 2010-05-08 Richard Guenther <rguenther@suse.de>
14464
14465 * lto-wrapper.c (run_gcc): Remove linker output from
14466 command line for LTRANS invocation.
14467
14468 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
14469
14470 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
14471 lto-macho as lto_binary_reader.
14472 * target.h (struct gcc_target): New hooks lto_start and lto_end.
14473 * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
14474 * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
14475 in lto_start and lto_end calls.
14476 (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
14477 magic numbers.
14478 (scan_prog_file): Update is_elf_or_coff call.
14479 * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
14480
14481 * collect2.c (main): Fix enum comparison.
14482
14483 * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
14484 Add prototypes.
14485 * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
14486 * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
14487 and TARGET_ASM_LTO_END.
14488 * darwin.c: Include obstack.h and lto-streamer.h.
14489 (lto_section_names_offset, lto_section_names_obstack,
14490 lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
14491 global variables.
14492 (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
14493 (darwin_asm_lto_start): New function. Redirect output to asm_out_file
14494 to a temporary file.
14495 (darwin_asm_lto_end): New function. Restore asm_out_file.
14496 (darwin_asm_named_section): For LTO sections, replace the name with
14497 the offset of the section name in a string table, and build this
14498 table.
14499 (darwin_file_start): Initialize global vars for LTO support.
14500 (darwin_file_end): If output to asm_out_file was redirected, append it
14501 to the proper asm_out_file here. Add the section names section.
14502
14503 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
14504
14505 * c-pragma.c (pending_weak_d, pending_weak): New.
14506 (pending_weaks): Change the type to VEC((pending_weak,gc) *.
14507 (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
14508 handle_pragma_weak): Update the uses of pending_weaks.
14509
14510 2010-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14511
14512 PR documentation/44016
14513 * doc/standards.texi (Standards): Link to unversioned
14514 cxx0x_status.html page.
14515
14516 2010-05-07 Iain Sandoe <iains@gcc.gnu.org>
14517
14518 PR target/43708
14519 * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
14520 in addition to TREE_USED, to avoid "set but unused" warnings.
14521
14522 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
14523
14524 * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
14525 (is_loop_prefetching_profitable): Do not insert prefetches
14526 when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
14527 times the prefetch ahead distance.
14528
14529 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
14530
14531 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
14532 Account for loop unrolling in the insn-to-prefetch ratio heuristic.
14533 (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
14534 the unroll_factor.
14535
14536 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
14537
14538 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
14539 a diagnostic info when the insn-to-mem ratio is too small.
14540
14541 2010-05-07 Richard Guenther <rguenther@suse.de>
14542
14543 * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
14544 the linker plugin.
14545 (store_arg): Queue temp_filename for deletion instead of
14546 the whole argument.
14547
14548 2010-05-07 Richard Guenther <rguenther@suse.de>
14549
14550 * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
14551 (run_gcc): Handle LTRANS phase invocation.
14552 * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
14553
14554 2010-05-07 Jakub Jelinek <jakub@redhat.com>
14555
14556 * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
14557 this is also meaningful on PARM_DECLs and RESULT_DECLs.
14558
14559 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14560
14561 * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
14562
14563 2010-05-07 Richard Guenther <rguenther@suse.de>
14564
14565 PR tree-optimization/44020
14566 * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
14567 code when PRE is not yet initialized.
14568
14569 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14570
14571 * config/mips/dbxmdebug.h: Remove.
14572 * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
14573
14574 2010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
14575
14576 * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
14577 with null pointer and also warn about ordered comparison of zero with
14578 pointer if -Wextra.
14579
14580 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
14581
14582 * graphite-blocking.c
14583 (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
14584 * graphite-clast-to-gimple.c
14585 (clast_to_gcc_expression): Same.
14586 (precision_for_value): Same.
14587 (precision_for_interval): Same.
14588 (gcc_type_for_interval): Same.
14589 (graphite_create_new_guard): Same.
14590 (compute_bounds_for_level): Same.
14591 (graphite_create_new_loop_guard): Same.
14592 * graphite-interchange.c
14593 (build_linearized_memory_access): Same.
14594 (pdr_stride_in_loop): Same.
14595 (memory_strides_in_loop_1): Same.
14596 (memory_strides_in_loop): Same.
14597 (extend_scattering): Same.
14598 (psct_scattering_dim_for_loop_depth): Same.
14599 (pbb_number_of_iterations): Same.
14600 * graphite-poly.h
14601 (debug_iteration_domains): Same.
14602 * graphite-ppl.c
14603 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14604 (ppl_set_inhomogeneous_gmp): Same.
14605 (ppl_strip_loop): Same.
14606 (ppl_lexico_compare_linear_expressions): Same.
14607 (ppl_read_polyhedron_matrix): Same.
14608 (ppl_max_for_le_pointset): Same.
14609 * graphite-ppl.h
14610 (ppl_read_polyhedron_matrix): Same.
14611 (tree_int_to_gmp): Same.
14612 (gmp_cst_to_tree): Same.
14613 (ppl_set_inhomogeneous): Same.
14614 (ppl_set_inhomogeneous_tree): Same.
14615 (ppl_set_coef): Same.
14616 (ppl_set_coef_tree): Same.
14617 * graphite-sese-to-poly.c
14618 (build_pbb_scattering_polyhedrons): Same.
14619 (build_scop_scattering): Same.
14620 (scan_tree_for_params_right_scev): Same.
14621 (scan_tree_for_params): Same.
14622 (find_params_in_bb): Same.
14623 (find_scop_parameters): Same.
14624 (add_upper_bounds_from_estimated_nit): Same.
14625 (build_loop_iteration_domains): Same.
14626 (add_condition_to_domain): Same.
14627 (pdr_add_memory_accesses): Same.
14628
14629 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
14630
14631 * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
14632 CLooG's value_* macros to their respective mpz_* counterparts.
14633 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
14634 (graphite_create_new_loop_guard): Same.
14635 * graphite-interchange.c (build_linearized_memory_access): Same.
14636 (pdr_stride_in_loop): Same.
14637 (memory_strides_in_loop_1): Same.
14638 (1st_interchange_profitable_p): Same.
14639 * graphite-poly.c (extend_scattering): Same.
14640 (psct_scattering_dim_for_loop_depth): Same.
14641 (pbb_number_of_iterations): Same.
14642 (pbb_number_of_iterations_at_time): Same.
14643 * graphite-poly.h (new_1st_loop): Same.
14644 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
14645 (oppose_constraint): Same.
14646 (insert_constraint_into_matrix): Same.
14647 (ppl_set_inhomogeneous_gmp): Same.
14648 (ppl_set_coef_gmp): Same.
14649 (ppl_strip_loop): Same.
14650 (ppl_lexico_compare_linear_expressions): Same.
14651 (ppl_max_for_le_pointset): Same.
14652 (ppl_min_for_le_pointset): Same.
14653 (ppl_build_realtion): Same.
14654 * graphite-ppl.h (gmp_cst_to_tree): Same.
14655 (ppl_set_inhomogeneous): Same.
14656 (ppl_set_inhomogeneous_tree): Same.
14657 (ppl_set_coef): Same.
14658 (ppl_set_coef_tree): Same.
14659 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
14660 (build_scop_scattering): Same.
14661 (add_value_to_dim): Same.
14662 (scan_tree_for_params_right_scev): Same.
14663 (scan_tree_for_params_int): Same.
14664 (scan_tree_for_params): Same.
14665 (find_params_in_bb): Same.
14666 (find_scop_parameters): Same.
14667 (add_upper_bounds_from_estimated_nit): Same.
14668 (build_loop_iteration_domains): Same.
14669 (create_linear_expr_from_tree): Same.
14670 (add_condition_to_domain): Same.
14671 (pdr_add_memory_accesses): Same.
14672
14673 2010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
14674 Jason Merrill <jason@redhat.com>
14675
14676 * c-common.c (c_common_reswords): Add nullptr.
14677 * c-common.h: Add RID_NULLPTR. Reorganize C++0x rids.
14678 * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
14679 (gen_type_die_with_usage): Likewise.
14680 * dbxout.c (dbxout_type): Likewise.
14681 * sdbout.c (plain_type_1): Likewise.
14682
14683 2010-05-06 Jason Merrill <jason@redhat.com>
14684
14685 * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
14686 Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
14687 ret appropriately.
14688 (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
14689
14690 * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
14691 stripping WITH_SIZE_EXPR.
14692 (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
14693 change.
14694
14695 2010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14696
14697 * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
14698 list of obsolete configurations.
14699 Disabled check for obsolete configurations.
14700 (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
14701 Removed support for previous versions.
14702 * config/mips/iris.h: Removed.
14703 * config/mips/iris5.h: Removed.
14704 * config/mips/iris6.h: Merged old iris.h contents.
14705 (TARGET_IRIX): Removed.
14706 (DRIVER_SELF_SPECS): Removed mabi=32.
14707 (IDENT_ASM_OP): Removed undef.
14708 (STARTFILE_SPEC): Removed mabi=32.
14709 (ENDFILE_SPEC): Likewise.
14710 (IRIX_SUBTARGET_LINK_SPEC): Likewise.
14711 (MACHINE_TYPE): Update for IRIX 6.5.
14712 * config/mips/mips.c (mips_build_builtin_va_list): Replaced
14713 TARGET_IRIX by TARGET_IRIX6.
14714 (mips_file_start): Likewise.
14715 (mips_output_external): Remove IRIX 5/6 O32 support.
14716 (mips_output_function_prologue): Likewise.
14717 * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
14718 TARGET_IRIX6.
14719 (TARGET_CPU_CPP_BUILTINS): Likewise.
14720 (TARGET_IRIX): Removed.
14721 * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
14722 (MULTILIB_DIRNAMES): Removed 32.
14723 (MULTILIB_OSDIRNAMES): Removed ../lib.
14724 * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
14725 (Specific, mips-sgi-irix5): Document removal.
14726 (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
14727 Remove references to older IRIX 6 releases and the O32 ABI.
14728
14729 2010-05-06 Jakub Jelinek <jakub@redhat.com>
14730
14731 PR bootstrap/43994
14732 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
14733 instead of DF_REF_REAL_REG.
14734
14735 2010-05-06 Dave Korn <dave.korn.cygwin@gmail.com>
14736
14737 PR target/43888
14738 * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
14739 handling to still return true for x64 targets.
14740
14741 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
14742
14743 * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
14744
14745 2010-05-06 Jan Hubicka <jh@suse.cz>
14746
14747 PR tree-optimization/43791
14748 * ipa-inline.c (update_caller_keys): Remove bogus
14749 disregard_inline_limits check.
14750
14751 2010-05-06 Michael Matz <matz@suse.de>
14752
14753 PR tree-optimization/43984
14754 * tree-ssa-pre.c (inserted_phi_names): Remove.
14755 (inserted_exprs): Change to bitmap.
14756 (create_expression_by_pieces): Set bits, don't append to vector.
14757 (insert_into_preds_of_block): Don't handle inserted_phi_names.
14758 (eliminate): Don't look at inserted_phi_names, remove deleted
14759 insns from inserted_exprs.
14760 (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
14761 (init_pre, fini_pre): Allocate and free bitmaps.
14762 (execute_pre): Insert insns on edges before elimination.
14763
14764 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
14765
14766 * tree.c (initializer_zerop): Handle STRING_CST.
14767
14768 2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
14769
14770 PR 40989
14771 * doc/invoke.texi (Wimplicit): Document as C only.
14772 * opts.c (common_handle_option): Add argument kind.
14773 (handle_option): Rename as read_cmdline_option. Factor out code to...
14774 (handle_option): ... here. New.
14775 (handle_options): Rename as read_cmdline_options.
14776 (decode_options): Update call.
14777 (set_option): Use option index instead of option pointer. Classify
14778 diagnostics correctly.
14779 (enable_warning_as_error): Call handle_option.
14780 * opts.h (set_option): Update declaration.
14781 (handle_option): Declare.
14782 * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
14783 * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
14784 * c-opts.c (set_Wimplicit): Delete.
14785 (c_family_lang_mask): New static constant.
14786 (c_common_handle_option): Add argument kind. Use handle_option
14787 instead of set_Wimplicit.
14788 (c_common_post_options): warn_implicit and warn_implicit_int
14789 are disabled by default.
14790 * c-common.c (warn_implicit): Do not define here.
14791 * c-common.h (warn_implicit): Do not declare here.
14792 (c_common_handle_option): Update declaration.
14793 * lto-opts.c (lto_reissue_options): Update call to set_option.
14794
14795 2010-05-06 Richard Guenther <rguenther@suse.de>
14796
14797 PR tree-optimization/43571
14798 * domwalk.c (walk_dominator_tree): Walk the dominator
14799 sons in more optimal order.
14800
14801 2010-05-06 Richard Guenther <rguenther@suse.de>
14802
14803 PR tree-optimization/43934
14804 * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
14805 (stmt_cost): Likewise.
14806 (extract_true_false_args_from_phi): New helper.
14807 (determine_max_movement): For PHI nodes verify we can hoist them
14808 and compute their cost.
14809 (determine_invariantness_stmt): Handle PHI nodes.
14810 (move_computations_stmt): Likewise. Hoist PHI nodes in
14811 if-converted form using COND_EXPRs.
14812 (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
14813 (tree_ssa_lim): Likewise.
14814 * tree-flow.h (tree_ssa_lim): Adjust prototype.
14815 * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
14816
14817 2010-05-06 Richard Guenther <rguenther@suse.de>
14818
14819 PR tree-optimization/43987
14820 * tree-ssa-structalias.c (could_have_pointers): For possibly
14821 address-taken variables force pointers to be recorded.
14822 (create_variable_info_for_1): Likewise.
14823 (push_fields_onto_fieldstack): Pass in wheter all fields
14824 must have pointers.
14825 (find_func_aliases): Query types instead of vars whether
14826 they contain pointers where appropriate.
14827
14828 2010-05-06 Jan Hubicka <jh@suse.cz>
14829
14830 * cgraphbuild.c (record_reference_ctx): Add varpool_node.
14831 (record_reference, mark_address, mark_load, mark_store): Record
14832 references.
14833 (record_references_in_initializer): Update call of record_references.
14834 (rebuild_cgraph_edges): Remove all references before rebuiding.
14835 * cgraph.c (cgraph_create_node): Clear ref list.
14836 (cgraph_remove_node): Remove references.
14837 (dump_cgraph_node): Dump references.
14838 (cgraph_clone_node): Clone references.
14839 * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
14840 (struct cgraph_node, varpool_node): Add ref_lst.
14841 * ipa-ref.c: New file.
14842 * ipa-ref.h: New file.
14843 * ipa-ref-inline.h: New file.
14844 * lto-cgraph.c (output_varpool): Take cgrag node set argument.
14845 (referenced_from_other_partition_p): New function.
14846 (lto_output_varpool_node): Take set arugment; call
14847 referenced_from_other_partition.
14848 (lto_output_ref): New.
14849 (add_references): New.
14850 (output_refs): New.
14851 (output_cgraph): Compute boundary based on references; output refs.
14852 (output_varpool): Accept cgraph_node_set argument.
14853 (input_ref): New.
14854 (input_refs): New.
14855 (input_cgraph): Call input_refs.
14856 * lto-section-in.c (lto_section_name): Add refs.
14857 * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
14858 (ipa-ref.o): New file.
14859 * varpool.c (varpool_node): Clear ipa ref list.
14860 (varpool_remove_node): Remove references.
14861 (dump_varpool_node): Dump references.
14862 (varpool_assemble_decl): Only compile finalized ones.
14863 (varpool_extra_name_alias): Initialize ref list.
14864 * lto-streamer.c (lto-get_section_name): Add .refs section.
14865 * lto-streamer.h (lto_section_type): Add LTO_section_refs.
14866 (referenced_from_other_partition_p): Declared.
14867
14868 2010-05-06 Ira Rosen <irar@il.ibm.com>
14869
14870 PR tree-optimization/43901
14871 * tree-vect-stmts.c (vectorizable_call): Assert that vector
14872 type is not NULL if it's transformation phase, and return
14873 FALSE if it's analysis.
14874 (vectorizable_conversion, vectorizable_operation,
14875 vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
14876
14877 2010-05-05 Andrew Pinski <andrew.pinski@caviumnetworks.com>
14878
14879 * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14880 Delete.
14881 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14882 New define.
14883 * config/mips/mips-protos.h
14884 (mips_small_register_classes_for_mode_p): Delete prototype.
14885
14886 2010-05-06 Bernd Schmidt <bernds@codesourcery.com>
14887
14888 * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
14889 * config/arm/arm.c (multiple_operation_profitable_p,
14890 compute_offset_order): New static functions.
14891 (load_multiple_sequence, store_multiple_sequence): Use them.
14892 Replace constant 4 with MAX_LDM_STM_OPS. Compute order[0] from
14893 memory offsets, not register numbers.
14894 (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
14895
14896 2010-05-05 Steven Bosscher <steven@gcc.gnu.org>
14897
14898 * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
14899 (get_pending_sizes, put_pending_size, put_pending_sizes):
14900 Update the uses of pending_sizes.
14901 * c-decl.c (store_parm_decls): Likewise.
14902 * c-tree.h (struct c_arg_info): Likewise.
14903 * tree.h: Update the prototype for get_pending_sizes and
14904 put_pending_sizes.
14905
14906 2010-05-05 Jason Merrill <jason@redhat.com>
14907
14908 PR debug/43370
14909 * c-common.c (handle_aligned_attribute): Respect
14910 ATTR_FLAG_TYPE_IN_PLACE.
14911
14912 PR testsuite/43758
14913 * target.h (struct gcc_target): Add attribute_takes_identifier_p.
14914 * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
14915 (TARGET_INITIALIZER): Use it.
14916 * c-common.c (attribute_takes_identifier_p): Call it.
14917 * c-common.h: Update prototype.
14918 * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
14919 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
14920
14921 2010-05-05 Jakub Jelinek <jakub@redhat.com>
14922
14923 PR debug/43950
14924 * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
14925 DW_ID_down_case for Fortran compilation units.
14926
14927 2010-05-05 Jan Hubicka <jh@suse.cz>
14928
14929 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
14930 handle aliases.
14931
14932 2010-05-05 Eric Botcazou <ebotcazou@adacore.com>
14933
14934 * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
14935 a variable-sized RESULT_DECL.
14936
14937 2010-05-05 Maxim Kuvyrkov <maxim@codesourcery.com>
14938
14939 * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
14940
14941 2010-05-05 Jason Merrill <jason@redhat.com>
14942
14943 PR c++/43787
14944 * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
14945 returns GS_OK.
14946 (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
14947
14948 2010-05-05 Alexandre Oliva <aoliva@redhat.com>
14949 Jakub Jelinek <jakub@redhat.com>
14950
14951 PR debug/43478
14952 * df-problems.c (struct dead_debug_use, struct dead_debug): New.
14953 (dead_debug_init, dead_debug_finish): New functions.
14954 (dead_debug_add, dead_debug_insert_before): Likewise.
14955 (df_note_bb_compute): Initialize a dead_debug object, add dead
14956 debug uses to it, insert debug bind insns before death insns,
14957 reset debug insns that refer to pending uses at the end.
14958 * rtl.h (make_debug_expr_from_rtl): New prototype.
14959 * varasm.c (make_debug_expr_from_rtl): New function.
14960
14961 2010-05-05 Jan Hubicka <jh@suse.cz>
14962
14963 * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
14964 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
14965 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
14966 lto_varpool_encoder_deref, lto_varpool_encoder_size,
14967 lto_varpool_encoder_encode_initializer_p,
14968 lto_set_varpool_encoder_encode_initializer): New functions.
14969 (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
14970 call output_varpool.
14971 (input_varpool_node): Do not always set analyzed.
14972 (input_cgraph_1): Return vector of cgraph nodes.
14973 (input_varpool_1): Return vector of varpools.
14974 (input_cgraph): Free the vectors.
14975 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
14976 output only initializers needed.
14977 (lto_output): Only call output_cgraph.
14978 (produce_asm_for_decls): Call lto_varpool_encoder_delete.
14979 * lto-section-out.c (lto_new_out_decl_state): Initialize
14980 state->varpool_node_encoder.
14981 * lto-streamer.h (lto_varpool_encoder_d): New.
14982 (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
14983 (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
14984 (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
14985 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
14986 lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
14987 Declare.
14988 (output_varpool, input_varpool): Remove declarations.
14989
14990 2010-05-05 Jan Hubicka <jh@suse.cz>
14991
14992 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
14993 with body can prevail.
14994
14995 2010-05-05 Jan Hubicka <jh@suse.cz>
14996
14997 * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
14998 size.
14999
15000 2010-05-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
15001
15002 * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
15003
15004 * gengtype.h (erro_at_line): Constify pos argument.
15005
15006 * gengtype.c: Include hashtab.h.
15007 (enum gc_used): Document GC_MAYBE_POINTED_TO.
15008 (error_at_line): Constify pos argument.
15009 (do_typedef): Initialize p->opt field.
15010 (get_file_gtfilename): Fix comment typo.
15011 (struct walk_type_data): Constify line field.
15012 (get_output_file_for_structure): New function.
15013 (write_local_func_for_structure): Constify orig_s argument.
15014 Use get_output_file_for_structure.
15015 (write_func_for_structure): Use get_output_file_for_structure.
15016 (INDENT): New define.
15017 (dump_pair, dump_type, dump_type_list, dump_typekind)
15018 (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
15019 (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
15020 functions.
15021 (seen_types): New variable.
15022 (main): New variable do_dump. Process "-d" command line option.
15023 Call dump_everything if dump requested.
15024
15025 2010-05-05 Jakub Jelinek <jakub@redhat.com>
15026
15027 * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
15028 in a temporary instead of invoking the macro multiple times.
15029 (track_expr_p): Likewise.
15030
15031 2010-05-04 Neil Vachharajani <nvachhar@google.com>
15032
15033 * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
15034 per new semantics.
15035 * opts.c (decode_options): Enable -Werror=coverage-mismatch.
15036 * coverage.c (get_coverage_counts): Always emit a warning. Adjust
15037 conditions for printing notes.
15038 * common.opt (-Wcoverage-mismatch): Allow negative, default to
15039 true, update documentation.
15040 * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
15041
15042 2010-05-04 Jakub Jelinek <jakub@redhat.com>
15043
15044 PR c/43981
15045 * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
15046 on dimen.
15047
15048 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
15049
15050 PR target/43799
15051 * config/i386/i386.md (sse_prologue_save): Clobber CC register.
15052 (*sse_prologue_save_insn1): Likewise.
15053 (SSE prologue save splitter): Likewise.
15054
15055 2010-05-04 Eric Botcazou <ebotcazou@adacore.com>
15056
15057 * tree.c (free_lang_data_in_one_sizepos): New inline function.
15058 (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
15059 types. Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
15060 (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
15061 all decls. Call it on DECL_FIELD_OFFSET of fields.
15062 (find_decls_types_r): Follow DECL_VALUE_EXPR.
15063 (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
15064
15065 2010-05-04 Martin Jambor <mjambor@suse.cz>
15066
15067 * tree-sra.c (build_access_from_expr_1): The first parameter type
15068 changed to simple tree.
15069 (build_access_from_expr): Likewise, gsi parameter was eliminated.
15070 (scan_assign_result): Renamed to assignment_mod_result, enum elements
15071 renamed as well.
15072 (build_accesses_from_assign): Removed all parameters except for a
15073 simple gimple statement. Now returns a simple bool.
15074 (scan_function): All non-analysis parts moved to separate functions
15075 sra_modify_function_body and ipa_sra_modify_function_body. Removed all
15076 parameters and updated both callers.
15077 (sra_modify_expr): Removed parameter data.
15078 (sra_modify_function_body): New function.
15079 (perform_intra_sra): Call sra_modify_function_body to modify the
15080 function body.
15081 (replace_removed_params_ssa_names): Parameter data changed into
15082 adjustments vector.
15083 (sra_ipa_modify_expr): Likewise. Also removed unused parameter gsi and
15084 changed the parameter dont_convert to convert with the opposite
15085 meaning.
15086 (sra_ipa_modify_assign): Parameter data changed into adjustments
15087 vector, return value changed to bool.
15088 (ipa_sra_modify_function_body): New function.
15089 (sra_ipa_reset_debug_stmts): Updated a comment.
15090 (modify_function): Use ipa_sra_modify_function_body to modify function
15091 body.
15092
15093 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
15094
15095 PR middle-end/43671
15096 * alias.c (true_dependence): Handle the same VALUE in x and mem.
15097 (canon_true_dependence): Likewise.
15098 (write_dependence_p): Likewise.
15099
15100 2010-05-04 Jan Hubicka <jh@suse.cz>
15101
15102 * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
15103 * cgraphbuild.c: Include ipa-utils.h
15104 (record_reference_ctx): New struct.
15105 (record_reference): Simplify to work on initializers; not statements.
15106 (mark_address, mark_load, mark_store): New.
15107 (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15108 walk PHI nodes too.
15109 (record_references_in_initializer): Update use of record_reference.
15110 (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15111 walk PHI nodes too.
15112
15113 2010-05-04 Jan Hubicka <jh@suse.cz>
15114
15115 * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
15116 node will be removed anyway.
15117 (lto_varpool_replace_node): Allow also unanalyzed nodes;
15118 relink aliases of node into prevailing node.
15119 * varpool.c (varpool_remove_node): Remove aliases properly;
15120 when removing node, remove all its aliases too; remove DECL_INITIAL
15121 of removed node; ggc_free the varpool node.
15122
15123 2010-05-04 Richard Guenther <rguenther@suse.de>
15124
15125 PR tree-optimization/43879
15126 * tree-ssa-structalias.c (alias_get_name): Use
15127 DECL_ASSEMBLER_NAME if available.
15128 (create_function_info_for): Return the varinfo node.
15129 (ipa_pta_execute): Associate same-body aliases and extra names
15130 with their origin nodes varinfo. Dump DECL_ASSEMBLER_NAME.
15131
15132 2010-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
15133
15134 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
15135
15136 2010-05-04 Mikael Pettersson <mikpe@it.uu.se>
15137
15138 PR bootstrap/43964
15139 * ira-color.c (assign_hard_reg): Declare rclass and add_cost
15140 only if HONOR_REG_ALLOC_ORDER is not defined.
15141
15142 2010-05-04 Richard Guenther <rguenther@suse.de>
15143
15144 PR tree-optimization/43949
15145 * tree-vrp.c (extract_range_from_binary_expr): Only handle
15146 TRUNC_MOD_EXPR.
15147
15148 2010-04-26 Jason Merrill <jason@redhat.com>
15149
15150 * c.opt (-fstrict-enums): New.
15151 * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
15152
15153 2010-05-03 David Ung <davidu@mips.com>
15154 James E. Wilson <wilson@codesourcery.com>
15155
15156 * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
15157 emit the trap instruction before the divide for TUNE_74K.
15158
15159 2010-05-03 Steven Bosscher <steven@gcc.gnu.org>
15160
15161 * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
15162 (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
15163 based on the above, for new target hook.
15164
15165 * hooks.c (hook_bool_mode_true): New generic hook.
15166 * hooks.h (hook_bool_mode_true): Add prototype.
15167
15168 * target.h (struct gcc_target): Add small_register_classes_for_mode_p
15169 target hook.
15170 * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
15171 target hook, set to hook_bool_mode_false.
15172 * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
15173 * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
15174 with targetm.small_register_classes_for_mode_p.
15175 (find_reusable_reload): Likewise.
15176 (combine_reloads): Likewise.
15177 * reload1.c (reload_as_needed): Likewise.
15178 * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
15179 * ifcvt.c (noce_process_if_block, check_cond_move_block,
15180 dead_or_predicable): Likewise.
15181 * regmove.c (optimize_reg_copy_1): Likewise.
15182 * calls.c (prepare_call_address): Likewise.
15183 (precompute_register_parameters): Likewise.
15184
15185 * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
15186 hook definition.
15187 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
15188 implementation of the hook that considers all register classes
15189 small except for SH64.
15190 (sh_override_options): Use the new hook.
15191 * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
15192 Add prototype.
15193
15194 * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
15195 hook definition.
15196 * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
15197 implementation of the hook that considers all register classes
15198 small for THUMB1.
15199 * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
15200 Add prototype.
15201
15202 * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
15203 hook definition.
15204 * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
15205 implementation of the hook that considers all register classes
15206 small for MIPS16.
15207 * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
15208 Add prototype.
15209
15210 * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
15211 hook definition.
15212 * config/m32c/m32c.h: Likewise.
15213 * config/pdp11/pdp11.h: Likewise.
15214 * config/avr/avr.h: Likewise.
15215 * config/xtensa/xtensa.h: Likewise.
15216 * config/m68hc11/m68hc11.h: Likewise.
15217 * config/mn10300/mn10300.h: Likewise.
15218 * config/mcore/mcore.h: Likewise.
15219 * config/h8300/h8300.h: Likewise.
15220 * config/bfin/bfin.h: Likewise.
15221
15222 * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
15223 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
15224
15225 2010-05-03 Anatoly Sokolov <aesok@post.ru>
15226
15227 * double-int.h (tree_to_double_int): Remove macro.
15228 (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
15229 * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15230 (tree_to_double_int): New function.
15231 * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
15232 Move ...
15233 * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15234
15235 2010-05-03 Richard Guenther <rguenther@suse.de>
15236
15237 PR tree-optimization/43971
15238 * tree-ssa-structalias.c (get_constraint_for_1): Fix
15239 constraints in the !flag_delete_null_pointer_checks case.
15240
15241 2010-05-03 Jakub Jelinek <jakub@redhat.com>
15242
15243 PR debug/43972
15244 * config/i386/i386.c (ix86_delegitimize_address): Make sure the
15245 result mode matches original rtl mode.
15246
15247 2010-05-03 Dave Korn <dave.korn.cygwin@gmail.com>
15248
15249 PR target/43888
15250 * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
15251
15252 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
15253
15254 * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
15255 when processing flag options.
15256
15257 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
15258
15259 * gcov-iov.c (main): Change format string placeholder
15260 from %#08x to 0x%08x.
15261 * genchecksum.c (dosum): Change format string placeholder
15262 from %#02x to 0x%02x.
15263
15264 2010-05-02 Richard Guenther <rguenther@suse.de>
15265
15266 PR tree-optimization/43879
15267 * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
15268
15269 2010-05-02 Bruno Haible <bruno@clisp.org>
15270
15271 * doc/extend.texi (Function Attributes): Fix a typo.
15272
15273 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
15274
15275 Revert:
15276 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
15277 placeholder from 0x%x to %#x.
15278 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15279 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
15280 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
15281 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
15282 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
15283 * config/i386/i386.c (ix86_target_string): Ditto.
15284 * config/i386/i386.c (output_pic_addr_const): Ditto.
15285 (print_operand): Ditto.
15286
15287 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
15288
15289 * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
15290 placeholder from 0x%x to %#x.
15291 (ASM_OUTPUT_DEBUG_DATA1): Ditto.
15292 (ASM_OUTPUT_DEBUG_DATA4): Ditto.
15293 (ASM_OUTPUT_DEBUG_DATA): Ditto.
15294 (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
15295 (ASM_OUTPUT_DEBUG_DATA8): Ditto.
15296 * optc-gen.awk: Ditto.
15297 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
15298 (HOST_WIDE_INT_PRINT_HEX): Ditto.
15299 (HOST_WIDEST_INT_PRINT_HEX): Ditto.
15300 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15301
15302 2010-05-01 Anatoly Sokolov <aesok@post.ru>
15303
15304 * target.h (struct calls): Add function_value_regno_p field.
15305 * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
15306 (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
15307 * targhooks.c (default_function_value_regno_p): New function.
15308 * targhooks.h (default_function_value_regno_p): Declare function.
15309 * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
15310 * builtins.c. (apply_result_size): (Ditto.).
15311 * combine.c. (likely_spilled_retval_p): (Ditto.).
15312 * mode-switching.c. Include 'target.h'.
15313 (create_pre_exit): Use function_value_regno_p hook.
15314 * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
15315 * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
15316 TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
15317
15318 * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
15319 * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
15320 (ix86_function_value_regno_p): Declare as static, change argument
15321 type to const unsigned int.
15322 * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
15323
15324 2010-05-01 Richard Guenther <rguenther@suse.de>
15325
15326 PR tree-optimization/43949
15327 * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
15328 types.
15329 (extract_range_from_binary_expr): Handle *_MOD_EXPR.
15330
15331 2010-05-01 Anatoly Sokolov <aesok@post.ru>
15332
15333 * rtl.h (CONST_DOUBLE_P): Define.
15334 (rtx_to_double_int): Declare.
15335 * emit-rtl.c (rtx_to_double_int): New function.
15336 * dwarf2out.c (insert_double): New function.
15337 (loc_descriptor, add_const_value_attribute): Clean up, use
15338 rtx_to_double_int and insert_double functions.
15339
15340 2010-05-01 Jonathan Wakely <jwakely.gcc@gmail.com>
15341
15342 * doc/extend.texi (Inline): Add missing return keyword to examples.
15343 (Function Attributes, Variable Attributes, Pragmas): Hyphenate
15344 "command-line".
15345
15346 2010-04-30 Eric Botcazou <ebotcazou@adacore.com>
15347
15348 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
15349 the variable part of the offset as well. Use highest_pow2_factor for
15350 all alignment checks.
15351
15352 2010-04-30 Richard Guenther <rguenther@suse.de>
15353
15354 PR tree-optimization/43879
15355 * tree-ssa-structalias.c (type_could_have_pointers): Functions
15356 can have pointers.
15357
15358 2010-04-30 Jan Hubicka <jh@suse.cz>
15359
15360 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
15361 varpool.
15362 (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
15363
15364 2010-04-30 Jan Hubicka <jh@suse.cz>
15365
15366 * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
15367 New.
15368 * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
15369 * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
15370 (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
15371 cgraph_node_set_needs_ltrans_p): Remove.
15372
15373 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
15374
15375 * sdbout.c: Include vec.h, do not include varray.h.
15376 (deferred_global_decls, sdbout_global_decl,
15377 sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
15378 * toplev.c: Do not include varray.h.
15379 (dump_memory_report): Do not dump VARRAY statistics.
15380 * gengtype.c (open_base_file): Ignore varray.h.
15381 * Makefile.in: Update for abovementioned changes.
15382 Remove all traces of varray.c and varray.h.
15383 * varray.c: Remove file.
15384 * varray.h: Remove file.
15385
15386 2010-04-30 Jan Hubicka <jh@suse.cz>
15387
15388 * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
15389 references.
15390
15391 2010-04-30 Jan Hubicka <jh@suse.cz>
15392
15393 * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
15394 needed.
15395
15396 2010-04-30 Richard Guenther <rguenther@suse.de>
15397
15398 * tree-ssa-structalias.c (get_constraint_for_1): Generate
15399 constraints for CONSTRUCTOR.
15400
15401 2010-04-30 Richard Guenther <rguenther@suse.de>
15402
15403 PR lto/43946
15404 * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
15405 first after all lowering passes.
15406
15407 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
15408
15409 * toplev.c: Include varray.h for statistics dumping.
15410 * tree.h: Do not declare varray_head_tag.
15411 * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
15412 regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
15413 c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
15414 gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
15415 lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
15416 tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
15417 c-common.c, c-common.h, reg-stack.c, basic-block.h,
15418 tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
15419 include varray.h.
15420 * Makefile.in: Update for abovementioned changes.
15421
15422 2010-04-30 Jakub Jelinek <jakub@redhat.com>
15423
15424 PR debug/43942
15425 * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
15426
15427 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
15428
15429 * config/picochip/picochip.c (picochip_legitimize_address): Define.
15430 Use this function to do machine-specific conversion.
15431 (picochip_legitimize_reload_address): Likewise.
15432 (picochip_legitimate_address_p): Check valid base register only if
15433 strict.
15434 (picochip_check_conditional_copy): Check for modw only if opnd is
15435 register.
15436 * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
15437 to call the function in c.
15438 * config/picochip/picochip-protos.h
15439 (picochip_legitimize_reload_address): Define.
15440 * config/picochip/picochip.md (supported_compare1): Define.
15441
15442 2010-04-30 Jan Hubicka <jh@suse.cz>
15443
15444 * cgraph.h (cgraph_local_info): Remove for_functions_valid.
15445 (cgraph_global_info): Remove inlined.
15446 (LTO_cgraph_tag_names): Remove.
15447 (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
15448 * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
15449 simplify cgraph tags and document.
15450 (lto_output_node): Use only LTO_cgraph_unavail_node and
15451 LTO_cgraph_analyzed_node; Do not save analzed, reachable,
15452 for_functions_valid, global info, process and output flags.
15453 (input_overwrite_node): Initialize estimated stack size and
15454 estimated growth. Do not read flags we no longer store.
15455 (input_node): Likewise do not read info no longer stored.
15456 * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
15457 flag.
15458
15459 2010-04-30 Richard Guenther <rguenther@suse.de>
15460
15461 PR tree-optimization/43879
15462 * tree-ssa-structalias.c (get_constraint_for_1): Properly
15463 handle non-zero initializers.
15464
15465 2010-04-30 Richard Guenther <rguenther@suse.de>
15466
15467 * builtins.c (fold_builtin_1): Delete free (0).
15468
15469 2010-04-29 Jan Hubicka <jh@suse.cz>
15470
15471 * gengtype.c (open_base_files): Add lto-streamer.h
15472 * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
15473 (pass_ipa_cp): GGC collect.
15474 * toplev. (compile_file): Do not output symbols.
15475 * ipa-inline.c (pass_ipa_inline): Add ggc collect.
15476 * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
15477 TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
15478 * lto-section-in.c: Include ggc.h
15479 (lto_new_in_decl_state): Alloc in GGC.
15480 (lto_delete_in_decl_state): Likewise.
15481 * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
15482 Collect.
15483
15484 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
15485
15486 PR target/42895
15487 * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
15488 ORDER_REGS_FOR_LOCAL_ALLOC. All instances of this macro changed.
15489 (HONOR_REG_ALLOC_ORDER): Describe new macro.
15490 * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
15491 * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
15492 account only if HONOR_REG_ALLOC_ORDER is not defined.
15493 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
15494 * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
15495
15496 2010-04-29 Jon Grant <04@jguk.org>
15497
15498 * collect2.c (vflag): Change type from int to bool.
15499 (debug): Likewise.
15500 (helpflag): New global bool.
15501 (main): Set vflag and debug with boolean, not integer truth values.
15502 Accept new "--help" option and output usage text if found.
15503 * collect2.h (vflag): Update prototype.
15504 (debug): Likewise.
15505
15506 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
15507
15508 PR bootstrap/43936
15509 * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
15510
15511 2010-04-29 Richard Guenther <rguenther@suse.de>
15512
15513 PR bootstrap/43935
15514 * plugin.h (invoke_plugin_callbacks): Annotate arguments
15515 with ATTRIBUTE_UNUSED.
15516
15517 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
15518
15519 PR target/43921
15520 * config/i386/i386.c (get_some_local_dynamic_name): Replace
15521 INSN_P with NONDEBUG_INSN_P.
15522 (distance_non_agu_define): Likewise.
15523 (distance_agu_use): Likewise.
15524
15525 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
15526
15527 From Dominique d'Humieres <dominiq@lps.ens.fr>
15528 PR bootstrap/43858
15529 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
15530 test_set.
15531
15532 2010-04-29 Brian Hackett <bhackett1024@gmail.com>
15533
15534 * plugin.h (invoke_plugin_callbacks): New inline function.
15535 * plugin.c (flag_plugin_added): New global flag.
15536 (add_new_plugin): Initialize above flag.
15537 (invoke_plugin_callbacks): Rename to ...
15538 (invoke_plugin_callbacks_full): ... this.
15539
15540 2010-04-28 Jan Hubicka <jh@suse.cz>
15541
15542 * lto-symtab.c (lto_symtab_entry_def) Add vnode.
15543 (lto_varpool_replace_node): New.
15544 (lto_symtab_resolve_symbols): Resolve varpool nodes.
15545 (lto_symtab_merge_decls_1): Prefer decls with varpool node.
15546 (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
15547 * cgraph.h (varpool_node_ptr): New type.
15548 (varpool_node_ptr): New vector.
15549 (varpool_node_set_def): New structure.
15550 (varpool_node_set): New type.
15551 (varpool_node_set): New vector.
15552 (varpool_node_set_element_def): New structure.
15553 (varpool_node_set_element, const_varpool_node_set_element): New types.
15554 (varpool_node_set_iterator): New type.
15555 (varpool_node): Add prev pointers, add used_from_other_partition,
15556 in_other_partition.
15557 (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
15558 varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
15559 varpool_get_node, varpool_remove_node): Declare.
15560 (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
15561 varpool_node_set_size): New inlines.
15562 * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
15563 * tree-pass.h (varpool_node_set_def): Forward declare.
15564 (ipa_opt_pass_d): Summary writting takes vnode sets too.
15565 (ipa_write_optimization_summaries): Update prototype.
15566 * ipa-cp.c (ipcp_write_summary): Update.
15567 * ipa-reference.c (ipa_reference_write_summary): Update.
15568 * lto-cgraph.c (lto_output_varpool_node): New static function.
15569 (output_varpool): New function.
15570 (input_varpool_node): New static function.
15571 (input_varpool_1): New function.
15572 (input_cgraph): Input varpool.
15573 * ipa-pure-const.c (pure_const_write_summary): Update.
15574 * lto-streamer-out.c (lto_output): Update, output varpool too.
15575 (write_global_stream): Kill WPA hack.
15576 (produce_asm_for_decls): Update.
15577 (output_alias_pair_p): Handle variables.
15578 (output_unreferenced_globals): Output only needed partition of varpool.
15579 * ipa-inline.c (inline_write_summary): Update.
15580 * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
15581 cgraph.
15582 * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
15583 * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
15584 varpool_node_set_new, varpool_node_set_add,
15585 varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
15586 debug_varpool_node_set): New functions.
15587 * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
15588 (execute_one_pass): Process new decls too.
15589 (ipa_write_summaries_2): Pass around vsets.
15590 (ipa_write_summaries_1): Likewise.
15591 (ipa_write_summaries): Build vset; be more selective about cgraph nodes
15592 to add.
15593 (ipa_write_optimization_summaries_1): Pass around vsets.
15594 (ipa_write_optimization_summaries): Likewise.
15595 * varpool.c (varpool_get_node): New.
15596 (varpool_node): Update doubly linked lists.
15597 (varpool_remove_node): New.
15598 (dump_varpool_node): More dumping.
15599 (varpool_enqueue_needed_node): Update doubly linked lists.
15600 (decide_is_variable_needed): Kill ltrans hack.
15601 (varpool_finalize_decl): Kill lto hack.
15602 (varpool_assemble_decl): Skip decls in other partitions.
15603 (varpool_assemble_pending_decls): Update doubly linkes lists.
15604 (varpool_empty_needed_queue): Likewise.
15605 (varpool_extra_name_alias): Likewise.
15606 * lto-streamer.c (lto_get_section_name): Add vars section.
15607 * lto-streamer.h (lto_section_type): Update.
15608 (output_varpool, input_varpool): Declare.
15609
15610 2010-04-28 Mike Stump <mikestump@comcast.net>
15611
15612 * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
15613
15614 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
15615
15616 * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
15617 record or union type with RECORD_OR_UNION_TYPE_P predicate.
15618 (lto_input_ts_type_tree_pointers): Likewise.
15619 * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
15620 (lto_output_ts_type_tree_pointers): Likewise.
15621
15622 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
15623
15624 Uniquization of constants at the Tree level
15625 * tree.h (DECL_IN_CONSTANT_POOL): New macro.
15626 (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
15627 bit to the end.
15628 (tree_output_constant_def): Declare.
15629 * gimplify.c (gimplify_init_constructor): When using block copy, first
15630 uniquize the constant constructor on the RHS.
15631 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
15632 DECL_IN_CONSTANT_POOL flag.
15633 * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
15634 * varasm.c (make_decl_rtl): Deal with variables belonging to the global
15635 constant pool.
15636 (assemble_variable): Deal with symbols belonging to the tree constant
15637 pool.
15638 (get_constant_section): Add ALIGN parameter and simplify.
15639 (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
15640 (assemble_constant_contents): Use the expression of the VAR_DECL.
15641 (output_constant_def_contents): Use the alignment of the VAR_DECL.
15642 (tree_output_constant_def): New global function.
15643 (mark_constant): Use the expression of the VAR_DECL.
15644 (place_block_symbol): Use the alignment of the VAR_DECL and the size of
15645 its expression.
15646 (output_object_block): Likewise and assemble the expression.
15647
15648 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
15649
15650 * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
15651 hash_tree, eq_tree): New tree hash table.
15652 (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
15653 [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
15654 lto_orig_address_remove): Reimplement.
15655
15656 2010-04-28 Xinliang David Li <davidxl@google.com>
15657
15658 PR c/42643
15659 * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
15660 (compute_uninit_opnds_pos): New function.
15661 (is_non_loop_exit_postdominating): New function.
15662 (compute_control_dep_chain): New function.
15663 (find_pdom): New function.
15664 (convert_control_dep_chain_into_preds): New function.
15665 (find_predicates): New function.
15666 (find_control_equiv_block): New function.
15667 (collect_phi_def_edges): New function.
15668 (find_def_preds): New function.
15669 (find_dom): New function.
15670 (dump_predicates): New function.
15671 (get_cmp_code): New function.
15672 (is_value_included_in): New function.
15673 (find_matching_predicate_in_rest_chains): New function.
15674 (use_pred_not_overlap_with_undef_path_pred): New function.
15675 (is_use_properly_guarded): New function.
15676 (normalize_cond_1): New function.
15677 (is_and_or_or): New function.
15678 (normalize_cond): New function.
15679 (is_gcond_subset_of): New function.
15680 (is_subset_of_any): New function.
15681 (is_or_set_subset_of): New function.
15682 (is_and_set_subset_of): New function.
15683 (is_norm_cond_subset_of): New function.
15684 (is_pred_expr_subset_of): New function.
15685 (is_pred_chain_subset_of): New function.
15686 (is_included_in): New function.
15687 (is_superset_of): New function.
15688 (find_uninit_use): New function.
15689 (warn_uninitialized_phi): New function.
15690 (compute_possibly_undefined_names): New function.
15691 (ssa_undefined_value_p): New function.
15692 (execute_late_warn_uninitialized): New function.
15693 * tree-ssa.c (ssa_undefined_value_p): Removed.
15694 (warn_uninit): Changed to extern.
15695 (warn_uninitialized_phi): Removed.
15696 (warn_uninitialized_vars): Changed to extern.
15697 (execute_late_warn_uninitialized): Removed
15698 * tree-flow.h: Add new prototypes.
15699 * timevar.def: Add new time variable.
15700 * Makefile.in: Add new build file.
15701
15702 2010-04-28 Uros Bizjak <ubizjak@gmail.com>
15703
15704 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
15705 type if available.
15706
15707 2010-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15708
15709 PR target/22224
15710 * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
15711
15712 2010-04-28 Martin Jambor <mjambor@suse.cz>
15713
15714 * cgraph.h (struct cgraph_node): New field indirect_calls.
15715 (struct cgraph_indirect_call_info): New type.
15716 (struct cgraph_edge): Removed field indirect_call. New fields
15717 indirect_info, indirect_inlining_edge and indirect_unknown_callee.
15718 (cgraph_create_indirect_edge): Declare.
15719 (cgraph_make_edge_direct): Likewise.
15720 (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
15721 * ipa-prop.h (struct ipa_param_call_note): Removed.
15722 (struct ipa_node_params): Removed field param_calls.
15723 (ipa_create_all_structures_for_iinln): Declare.
15724 * cgraph.c: Described indirect edges and uids in initial comment.
15725 (cgraph_add_edge_to_call_site_hash): New function.
15726 (cgraph_edge): Search also among the indirect edges, use
15727 cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
15728 (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
15729 one, use cgraph_add_edge_to_call_site_hash to add edges to the call
15730 site hash.
15731 (initialize_inline_failed): Assign a reason to indirect edges.
15732 (cgraph_create_edge_1): New function.
15733 (cgraph_create_edge): Moved some functionality to
15734 cgraph_create_edge_1.
15735 (cgraph_create_indirect_edge): New function.
15736 (cgraph_edge_remove_callee): Add an assert checking for
15737 non-indirectness.
15738 (cgraph_edge_remove_caller): Special-case indirect edges.
15739 (cgraph_remove_edge): Likewise.
15740 (cgraph_set_edge_callee): New function.
15741 (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
15742 (cgraph_make_edge_direct): New function.
15743 (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
15744 the declaration of the call statement matches.
15745 (cgraph_node_remove_callees): Special-case indirect edges.
15746 (cgraph_clone_edge): Likewise.
15747 (cgraph_clone_node): Clone also the indirect edges.
15748 (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
15749 indirect_call, dump count of indirect_calls edges.
15750 * ipa-prop.c (iinlining_processed_edges): New variable.
15751 (ipa_note_param_call): Create indirect edges instead of
15752 creating notes. New parameter node.
15753 (ipa_analyze_call_uses): New parameter node, pass it on to
15754 ipa_note_param_call.
15755 (ipa_analyze_stmt_uses): Likewise.
15756 (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
15757 (print_edge_addition_message): Work on edges rather than on notes.
15758 (update_call_notes_after_inlining): Likewise, renamed to
15759 update_indirect_edges_after_inlining.
15760 (ipa_create_all_structures_for_iinln): New function.
15761 (ipa_free_node_params_substructures): Do not free notes.
15762 (ipa_edge_duplication_hook): Propagate bits within
15763 iinlining_processed_edges bitmap.
15764 (ipa_node_duplication_hook): Do not duplicate notes.
15765 (free_all_ipa_structures_after_ipa_cp): Renamed to
15766 ipa_free_all_structures_after_ipa_cp.
15767 (free_all_ipa_structures_after_iinln): Renamed to
15768 ipa_free_all_structures_after_iinln.
15769 (ipa_write_param_call_note): Removed.
15770 (ipa_read_param_call_note): Removed.
15771 (ipa_write_indirect_edge_info): New function.
15772 (ipa_read_indirect_edge_info): Likewise.
15773 (ipa_write_node_info): Do not stream notes, do stream information
15774 in indirect edges.
15775 (ipa_read_node_info): Likewise.
15776 (lto_ipa_fixup_call_notes): Removed.
15777 * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
15778 * ipa-inline.c (pass_ipa_inline): Likewise.
15779 * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
15780 * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
15781 * tree-inline.c (copy_bb): Removed an unnecessary double check for
15782 is_gimple_call.
15783 * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
15784 edges.
15785 * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
15786 (output_cgraph): Stream also indirect edges.
15787 (lto_output_edge): Added capability to stream indirect edges.
15788 (input_edge): Likewise.
15789 (input_cgraph_1): Likewise.
15790 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
15791 of indirect edges.
15792
15793 2010-04-28 Richard Guenther <rguenther@suse.de>
15794
15795 PR tree-optimization/43879
15796 PR tree-optimization/43909
15797 * tree-ssa-structalias.c (struct variable_info): Add
15798 only_restrict_pointers flag.
15799 (new_var_info): Initialize it. Increment stats.total_vars here.
15800 (create_function_info_for): Do not increment stats.total_vars here.
15801 (get_function_part_constraint): Fix build with C++.
15802 (insert_into_field_list): Remove.
15803 (push_fields_onto_fieldstack): Properly merge fields.
15804 (create_variable_info_for): Split and simplify.
15805 (create_variable_info_for_1): New piece.
15806 (intra_create_variable_infos): Properly make restrict constraints
15807 from parameters.
15808
15809 2010-04-28 Richard Guenther <rguenther@suse.de>
15810
15811 PR c++/43880
15812 * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
15813
15814 2010-04-27 Manuel López-Ibáñez <manu@gcc.gnu.org>
15815 Jan Hubicka <hubicka@ucw.cz>
15816
15817 * doc/invoke.texi (-Wsuggest-attribute=const,
15818 -Wsuggest-attribute=pure): Document.
15819 * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
15820 (function_always_visible_to_compiler_p,
15821 suggest_attribute, warn_function_pure, warn_function_const):
15822 New functions.
15823 (check_call): Improve debug info.
15824 (analyze_function): Do not check availability.
15825 (add_new_function): Check availability.
15826 (propagate): Output warnings.
15827 (skip_function_for_local_pure_const): New function.
15828 (local_pure_const): Use it; output warnings.
15829 * common.opt (Wsuggest-attribute=const,
15830 Wsuggest-attribute=pure): New.
15831
15832 2010-04-27 Jakub Jelinek <jakub@redhat.com>
15833
15834 * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
15835 force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
15836 or DW_CFA_def_cfa_offset{,_sf}.
15837
15838 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
15839
15840 * tree.h: Fix truncated long macros.
15841
15842 2010-04-27 Kai Tietz <kai.tietz@onevision.com>
15843
15844 * collect2.c (TARGET_64BIT): Redefine to target's default.
15845 * tlink.c: Likewise.
15846 * config/i386/cygming.h (USER_LABEL_PREFIX): Define
15847 dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
15848 * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
15849 for underscoring __USER_LABEL_PREFIX__.
15850 * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
15851 (SUB_LINK_ENTRY32): New.
15852 (SUB_LINK_ENTRY64): New.
15853 (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
15854 * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
15855 (SUB_LINK_ENTRY64): New.
15856 (SUB_LINK_ENTRY): New.
15857 (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
15858 (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
15859 x64 target is choosen.
15860 * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
15861 * configure: Regenerated.
15862 * configure.ac (leading-mingw64-underscores): Option added.
15863
15864 2010-04-27 Jan Hubicka <jh@suse.cz>
15865
15866 * doc/invoke.texi (-fipa-profile): Document.
15867 * opts.c (decode_options): Enable ipa-profile at -O1.
15868 * timevar.def (TV_IPA_PROFILE): Define.
15869 * common.opt (fipa-profile): Add.
15870 * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
15871 flag for clones.
15872 (cgraph_propagate_frequency): Handle only local ones.
15873 * tree-pass.h (pass_ipa_profile): Declare.
15874 * ipa-profile.c (gate_profile): Use flag_ipa_profile.
15875 (pass_ipa_profile): Use TV_IPA_PROFILE.
15876 * ipa.c (ipa_profile): New function.
15877 (gate_ipa_profile): Likewise.
15878 (pass_ipa_profile): New global variable.
15879 * passes.c (pass_ipa_profile): New.
15880
15881 2010-04-27 Nathan Froyd <froydnj@codesourcery.com>
15882
15883 * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
15884
15885 2010-04-27 Martin Jambor <mjambor@suse.cz>
15886
15887 PR middle-end/43812
15888 * ipa.c (dissolve_same_comdat_group_list): New function.
15889 (function_and_variable_visibility): Call
15890 dissolve_same_comdat_group_list when comdat group contains external or
15891 newly local nodes.
15892 * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
15893 lists are circular and that they contain only DECL_ONE_ONLY nodes.
15894
15895 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
15896
15897 * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
15898 (const_hash_1) <VECTOR_CST>: New case.
15899 (compare_constant) <VECTOR_CST>: Likewise.
15900 <ADDR_EXPR>: Deal with LABEL_REFs.
15901 (copy_constant) <VECTOR_CST>: New case.
15902
15903 2010-04-27 Jan Hubicka <jh@suse.cz>
15904
15905 * cgraph.c (cgraph_propagate_frequency): New function.
15906 * cgraph.h (cgraph_propagate_frequency): Declare.
15907 * ipa-inline.c (cgraph_clone_inlined_nodes): Call
15908 cgraph_propagate_frequency.
15909
15910 2010-04-27 Jakub Jelinek <jakub@redhat.com>
15911
15912 * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
15913
15914 2010-04-27 Bernd Schmidt <bernds@codesourcery.com>
15915
15916 PR target/40657
15917 * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
15918 (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
15919 here to determine which regs to push and how much stack to reserve.
15920
15921 2010-04-27 Jie Zhang <jie@codesourcery.com>
15922
15923 * doc/gimple.texi (gimple_statement_with_ops): Remove
15924 addresses_taken field.
15925 (gimple_statement_with_memory_ops): Likewise.
15926
15927 2010-04-27 Jan Hubicka <jh@suse.cz>
15928
15929 * tree-inline.c (eni_inlining_weights): Remove.
15930 (estimate_num_insns): Special case more builtins.
15931
15932 2010-04-27 Shujing Zhao <pearly.zhao@oracle.com>
15933
15934 PR c/32207
15935 * c-typeck.c (build_binary_op): Move forward check for comparison
15936 pointer with null pointer constant and adjust the diagnostic message.
15937
15938 2010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
15939
15940 PR lto/42776
15941 * configure.ac (gcc_cv_as_section_has_align): Set if installed
15942 binutils supports extended .section directive needed by LTO, or
15943 warn if older binutils found.
15944 (LTO_BINARY_READER): New AC_SUBST'd variable.
15945 (LTO_USE_LIBELF): Likewise.
15946 * gcc/config.gcc (lto_binary_reader): New target-specific configure
15947 variable.
15948 * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
15949 (LTO_USE_LIBELF): Likewise.
15950 * configure: Regenerate.
15951
15952 * collect2.c (is_elf): Rename from this ...
15953 (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
15954 object files in addition to ELF-formatted ones.
15955 (scan_prog_file): Caller updated. Also allow for LTO info marker
15956 symbol to be prefixed or not by an extra underscore.
15957
15958 * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
15959 * config/i386/winnt.c: Also #include lto-streamer.h
15960 (i386_pe_asm_named_section): Specify 1-byte section alignment for
15961 LTO named sections.
15962 (i386_pe_asm_output_aligned_decl_common): Add comment.
15963 (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
15964
15965 2010-04-27 Hans-Peter Nilsson <hp@bitrange.com>
15966
15967 PR target/43889
15968 * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
15969 Add missing earlyclobber for second alternative.
15970
15971 2010-04-26 Bernd Schmidt <bernds@codesourcery.com>
15972
15973 * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
15974 bits for artificial defs at the top of the block.
15975 * fwprop.c (single_def_use_enter_block): Don't call it.
15976
15977 2010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
15978
15979 PR 43715
15980 * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
15981 instead of "$gcc_cv_objdump -T".
15982 Use "-undefined dynamic_lookup" on darwin.
15983 * gcc/configure: Regenerate.
15984
15985 2010-04-26 Jakub Jelinek <jakub@redhat.com>
15986
15987 PR c/43893
15988 * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
15989
15990 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
15991
15992 * c-parser.c (struct c_token): Move location field up.
15993 * c-tree.h (struct c_typespec): Move expr_const_operands field up.
15994 (struct c_declspecs): Convert typespec_word, storage_class, and
15995 default_int_p into bitfields.
15996 (struct c_declarator): Move loc field up.
15997
15998 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
15999
16000 * cfgloop.h (struct loop): Move can_be_parallel field up.
16001 * ipa-prop.h (struct ip_node_params): Move bitfields up.
16002 * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
16003 down.
16004 (struct iv_cand): Convert pos field into a bitfield.
16005 * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
16006 field up.
16007 (struct _stmt_vec_info): Shuffle fields for better packing.
16008
16009 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
16010
16011 * varasm.c (IN_NAMED_SECTION): Remove guard.
16012 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
16013 (IN_NAMED_SECTION_P): ...this.
16014 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
16015 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
16016
16017 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
16018
16019 * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
16020 Use VOID_TYPE_P for all void type tests. Adjust TYPE variable instead
16021 of shadowing it. Fix comments.
16022
16023 2010-04-26 Jan Hubicka <jh@suse.cz>
16024
16025 * cgraph.c (cgraph_create_node): Set node frequency to normal.
16026 (cgraph_clone_node): Copy function frequency.
16027 * cgraph.h (node_frequency): New enum
16028 (struct cgraph_node): Add.
16029 * final.c (rest_of_clean_state): Update.
16030 * lto-cgraph.c (lto_output_node): Output node frequency.
16031 (input_overwrite_node): Input node frequency.
16032 * tre-ssa-loop-ivopts (computation_cost): Update.
16033 * lto-streamer-out.c (output_function): Do not output function
16034 frequency.
16035 * predict.c (maybe_hot_frequency_p): Update and handle functions
16036 executed once.
16037 (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
16038 attribute lookup.
16039 (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
16040 (compute_function_frequency): Set noreturn functions to be executed
16041 once.
16042 (choose_function_section): Update.
16043 * lto-streamer-in.c (input_function): Do not input function frequency.
16044 * function.c (allocate_struct_function): Do not initialize function
16045 frequency.
16046 * function.h (function_frequency): Remove.
16047 (struct function): Remove function frequency.
16048 * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
16049 (try_update): Update.
16050 * tree-inline.c (initialize_cfun): Do not update function frequency.
16051 * passes.c (pass_init_dump_file): Update.
16052 * i386.c (ix86_compute_frame_layout): Update.
16053 (ix86_pad_returns): Update.
16054
16055 2010-04-26 Jie Zhang <jie@codesourcery.com>
16056
16057 PR tree-optimization/43833
16058 * tree-vrp.c (range_int_cst_p): New.
16059 (range_int_cst_singleton_p): New.
16060 (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
16061 when both operands are constants. Use range_int_cst_p in
16062 BIT_IOR_EXPR case.
16063
16064 2010-04-26 Jan Hubicka <jh@suse.cz>
16065
16066 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
16067
16068 2010-04-26 Richard Guenther <rguenther@suse.de>
16069
16070 PR lto/43080
16071 * gimple.c (gimple_decl_printable_name): Deal gracefully
16072 with a NULL DECL_NAME.
16073
16074 2010-04-26 Richard Guenther <rguenther@suse.de>
16075
16076 PR lto/42425
16077 * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
16078 if emitting debug information and it is either a function
16079 or a namespace decl.
16080
16081 2010-04-26 Ira Rosen <irar@il.ibm.com>
16082
16083 * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
16084 determine if the statement is vectorizable, and a macro to access it.
16085 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16086 Skip statements that can't be vectorized. If the analysis fails,
16087 mark the statement as unvectorizable if vectorizing basic block.
16088 (vect_compute_data_refs_alignment): Likewise.
16089 (vect_verify_datarefs_alignment): Skip statements marked as
16090 unvectorizable. Add print.
16091 (vect_analyze_group_access): Skip statements that can't be
16092 vectorized. If the analysis fails, mark the statement as
16093 unvectorizable if vectorizing basic block.
16094 (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
16095 * tree-vect-stmts.c (vectorizable_store): Fix the number of
16096 generated stmts for SLP.
16097 (new_stmt_vec_info): Initialize the new field.
16098 * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
16099 statements marked as unvectorizable.
16100
16101 2010-04-25 Joseph Myers <joseph@codesourcery.com>
16102
16103 * c-common.c (flag_isoc1x): New.
16104 (flag_isoc99): Update comment.
16105 * c-common.h (flag_isoc1x): New.
16106 (flag_isoc99): Update comment.
16107 * c-cppbuiltin.c (builtin_define_float_constants): Also define
16108 __<type>_DECIMAL_DIG__.
16109 * c-opts.c (set_std_c1x): New.
16110 (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
16111 (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
16112 * c.opt (-std=c1x, -std=gnu1x): New options.
16113 * doc/cpp.texi: Mention -std=c1x.
16114 * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
16115 * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
16116 * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
16117 * doc/standards.texi: Mention C1X.
16118 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
16119 LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
16120 LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
16121 Define for C1X.
16122
16123 2010-04-25 Uros Bizjak <ubizjak@gmail.com>
16124
16125 * config/i386/gmon-sol2.c (_mcleanup): Change format string
16126 placeholder from 0x%x to %#x.
16127 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
16128 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
16129 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
16130 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
16131 * config/i386/i386.c (ix86_target_string): Ditto.
16132 (output_pic_addr_const): Ditto.
16133 (print_operand): Ditto.
16134
16135 2010-04-25 Paolo Bonzini <bonzini@gnu.org>
16136
16137 * combine.c (find_split_point): Add third argument. Use it
16138 to find nested multiply-accumulate instructions. Adjust calls.
16139 (try_combine): Adjust call to find_split_point.
16140
16141 2010-04-24 Gerald Pfeifer <gerald@pfeifer.com>
16142
16143 * doc/contrib.texi (Contributors): Add Dodji Seketeli.
16144
16145 2010-04-24 Bernd Schmidt <bernds@codesourcery.com>
16146
16147 PR tree-optimization/41442
16148 * fold-const.c (merge_truthop_with_opposite_arm): New function.
16149 (fold_binary_loc): Call it.
16150
16151 2010-04-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
16152
16153 * toplev.c (general_init): Set default for fdiagnostics-show-option.
16154 * opts.c (common_handle_option): Allow disabling it.
16155 * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
16156
16157 2010-04-23 Eric Botcazou <ebotcazou@adacore.com>
16158
16159 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
16160 between modes if both types are integral.
16161
16162 2010-04-23 Richard Guenther <rguenther@suse.de>
16163
16164 PR tree-optimization/43572
16165 * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
16166
16167 2010-04-23 Richard Guenther <rguenther@suse.de>
16168
16169 PR lto/43455
16170 * tree-inline.c (tree_can_inline_p): Also check compatibility
16171 of return types.
16172
16173 2010-04-23 Martin Jambor <mjambor@suse.cz>
16174
16175 PR tree-optimization/43846
16176 * tree-sra.c (struct access): New flag grp_assignment_read.
16177 (build_accesses_from_assign): Set grp_assignment_read.
16178 (sort_and_splice_var_accesses): Propagate grp_assignment_read.
16179 (enum mark_read_status): New type.
16180 (analyze_access_subtree): Propagate grp_assignment_read, create
16181 accesses also if both direct_read and root->grp_assignment_read.
16182
16183 2010-04-23 Martin Jambor <mjambor@suse.cz>
16184
16185 PR middle-end/43835
16186 * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
16187 function does not have type attributes.
16188
16189 2010-04-23 Richard Guenther <rguenther@suse.de>
16190
16191 PR lto/42653
16192 * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
16193 of FUNCTION_DECLs.
16194
16195 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
16196
16197 * sese.h (create_if_region_on_edge): Remove.
16198
16199 * sese.c (create_if_region_on_edge): Make static.
16200
16201 * tree-inline.c: Do not include ggc.h.
16202
16203 * expr.c: Do not include ggc.h.
16204
16205 * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
16206 dependencies.
16207
16208 2010-04-22 Kaz Kojima <kkojima@gcc.gnu.org>
16209
16210 PR target/43744
16211 * config/sh/sh.c (find_barrier): Don't emit a constant pool
16212 in the middle of insns for casesi_worker_2.
16213
16214 2010-04-22 David Edelsohn <edelsohn@gnu.org>
16215
16216 * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
16217
16218 2010-04-22 Ira Rosen <irar@il.ibm.com>
16219
16220 PR tree-optimization/43842
16221 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
16222 loop unrolling in update of exit phis. Fix comment.
16223 * tree-vect-slp.c (vect_analyze_slp): Check that there are at
16224 least two reduction statements in the loop before starting SLP
16225 analysis.
16226
16227 2010-04-22 Nick Clifton <nickc@redhat.com>
16228
16229 * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
16230
16231 2010-04-22 Alexander Monakov <amonakov@ispras.ru>
16232
16233 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
16234 to simplify a + ~a.
16235
16236 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
16237
16238 * tree-parloops.c (loop_parallel_p): New argument
16239 parloop_obstack. Pass it down.
16240 (parallelize_loops): New variable parloop_obstack. Initialize it,
16241 pass it down, free it.
16242
16243 * tree-loop-linear.c (linear_transform_loops): Pass down
16244 lambda_obstack.
16245
16246 * tree-data-ref.h (lambda_compute_access_matrices): New argument
16247 of type struct obstack *.
16248
16249 * tree-data-ref.c (analyze_subscript_affine_affine): New variable
16250 scratch_obstack. Initialize it, pass down, free it.
16251
16252 * lambda.h (lambda_loop_new): Remove.
16253 (lambda_matrix_new, lambda_matrix_inverse)
16254 (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
16255 argument of type struct obstack *.
16256
16257 * lambda-trans.c (lambda_trans_matrix_new): New argument
16258 lambda_obstack. Pass it down, use obstack allocation for ret.
16259 (lambda_trans_matrix_inverse): New argument lambda_obstack. Pass
16260 it down.
16261
16262 * lambda-mat.c (lambda_matrix_get_column)
16263 (lambda_matrix_project_to_null): Remove.
16264 (lambda_matrix_new): New argument lambda_obstack. Use obstack
16265 allocation for mat.
16266 (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
16267 lambda_obstack.
16268
16269 * lambda-code.c (lambda_loop_new): New function.
16270 (lambda_lattice_new, compute_nest_using_fourier_motzkin)
16271 (lambda_compute_auxillary_space, lambda_compute_target_space)
16272 (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
16273 (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
16274 (build_access_matrix): New argument lambda_obstack. Use obstack
16275 allocation for am.
16276 (lambda_compute_step_signs, lambda_compute_access_matrices): New
16277 argument lambda_obstack. Pass it down.
16278
16279 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
16280
16281 * optabs.h (expand_widening_mult): Declare.
16282
16283 2010-04-22 Richard Guenther <rguenther@suse.de>
16284
16285 PR tree-optimization/43845
16286 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
16287 lookup the CALL_EXPR function and arguments.
16288
16289 2010-04-22 Nick Clifton <nickc@redhat.com>
16290
16291 * config/stormy16/stormy16.c
16292 (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
16293 * config/stormy16/stormy16.h: Tidy up formatting.
16294 (DONT_USE_BUILTIN_SETJMP): Remove definition.
16295 * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
16296 (ineqbranchsi): Delete pattern.
16297 * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
16298 * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
16299 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
16300 stormy16-lib2-ucmpsi2.c.
16301
16302 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
16303
16304 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
16305 df_simulate_find_noclobber_defs as appropriate. Keep track of an
16306 extra set merge_set_noclobber, and use it to relax the final test
16307 slightly.
16308 * df.h (df_simulate_find_noclobber_defs): Declare.
16309 * df-problems.c (df_simulate_find_defs): Don't ignore partial or
16310 conditional defs.
16311 (df_simulate_find_noclobber_defs): New function.
16312
16313 2010-04-22 Uros Bizjak <ubizjak@gmail.com>
16314
16315 * config/i386/i386.md: Use {} around multi-line preparation statements.
16316
16317 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
16318
16319 * c-tree.h (push_init_level, pop_init_level, set_init_index)
16320 (process_init_element): New argument of type struct obstack *.
16321
16322 * c-typeck.c (push_init_level, pop_init_level, set_designator)
16323 (set_init_index, set_init_label, set_nonincremental_init)
16324 (set_nonincremental_init_from_string, find_init_member)
16325 (output_init_element, output_pending_init_elements)
16326 (process_init_element): New argument braced_init_obstack. Pass it
16327 down.
16328 (push_range_stack, add_pending_init): New argument
16329 braced_init_obstack. Use obstack allocation.
16330
16331 * c-parser.c (c_parser_initelt, c_parser_initval): New argument
16332 braced_init_obstack. Pass it down.
16333 (c_parser_braced_init): New variables ret, braced_init_obstack.
16334 Initialize obstack, pass it down and finally free it.
16335
16336 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
16337
16338 PR middle-end/29274
16339 * tree-pass.h (pass_optimize_widening_mul): Declare.
16340 * tree-ssa-math-opts.c (execute_optimize_widening_mul,
16341 gate_optimize_widening_mul): New static functions.
16342 (pass_optimize_widening_mul): New.
16343 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
16344 <case MULT_EXPR>: Remove support for widening multiplies.
16345 * tree.def (WIDEN_MULT_EXPR): Tweak comment.
16346 * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
16347 simplify_gen_unary rather than directly building extensions.
16348 * tree-cfg.c (verify_gimple_assign_binary): Add tests for
16349 WIDEN_MULT_EXPR.
16350 * expmed.c (expand_widening_mult): New function.
16351 * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
16352
16353 2010-04-21 Jan Hubicka <jh@suse.cz>
16354
16355 * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
16356 * lto-section-in.c (lto_section_name): Remove wpa_fixup.
16357 * lto-wpa-fixup.c: Remove.
16358 * Makefile.in (lto-wpa-fixup.o): Remove.
16359 * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
16360 (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
16361 * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
16362
16363 2010-04-21 Jan Hubicka <jh@suse.cz>
16364
16365 * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
16366 add write_optimization_summary, read_optimization_summary.
16367 (ipa_write_summaries_of_cgraph_node_set): Remove.
16368 (ipa_write_optimization_summaries): Declare.
16369 (ipa_read_optimization_summaries): Declare.
16370 * ipa-cp.c (pass_ipa_cp): Update.
16371 * ipa-reference.c (pass_ipa_reference): Update.
16372 * ipa-pure-const.c (pass_ipa_pure_const): Update.
16373 * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
16374 Update.
16375 * ipa-inline.c (pass_ipa_inline): Update.
16376 * ipa.c (pass_ipa_whole_program): Update.
16377 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
16378 * passes.c (ipa_write_summaries_1): Do not test wpa.
16379 (ipa_write_optimization_summaries_1): New.
16380 (ipa_write_optimization_summaries): New.
16381 (ipa_read_summaries): Do not test ltrans.
16382 (ipa_read_optimization_summaries_1): New.
16383 (ipa_read_optimization_summaries): New.
16384
16385 2010-04-21 Jan Hubicka <jh@suse.cz>
16386
16387 * lto-cgraph.c (lto_output_node): Do not output comdat groups
16388 for boundary nodes.
16389 (output_cgraph): Do not arrange comdat groups for boundary nodes.
16390
16391 2010-04-21 Jakub Jelinek <jakub@redhat.com>
16392
16393 PR debug/40040
16394 * dwarf2out.c (add_name_and_src_coords_attributes): Add
16395 DW_AT_{,MIPS_}linkage_name even for Fortran decls.
16396
16397 2010-04-21 Jan Hubicka <jh@suse.cz>
16398
16399 * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
16400
16401 2010-04-21 Jan Hubicka <jh@suse.cz>
16402
16403 * varpool.c (decide_is_variable_needed): Variable is always needed
16404 during ltrans.
16405
16406 2010-04-21 Jan Hubicka <jh@suse.cz>
16407
16408 * opts.c (decode_options): Enable pure-const pass for whopr.
16409
16410 2010-04-21 Jan Hubicka <jh@suse.cz>
16411
16412 * cgraph.c (dump_cgraph_node): Dump also assembler name.
16413 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
16414 at WPA dumping.
16415 (cgraph_decide_inlining): Do not expect callee to be removed in all
16416 cases.
16417
16418 2010-04-21 Eric B. Weddington <eric.weddington@atmel.com>
16419
16420 * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
16421
16422 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
16423
16424 * config/i386/i386.md (x86_shrd): Add athlon_decode and
16425 amdfam10_decode attributes.
16426
16427 2010-04-21 Jakub Jelinek <jakub@redhat.com>
16428
16429 PR middle-end/43570
16430 * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
16431 OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
16432 (lower_copyprivate_clauses): Use private var in outer
16433 context instead of original var. Make sure the types
16434 are correct for VLAs.
16435
16436 2010-04-21 Richard Guenther <rguenther@suse.de>
16437
16438 * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
16439 to non-pointer objects.
16440
16441 2010-04-21 Jakub Jelinek <jakub@redhat.com>
16442
16443 * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop
16444 last chain entry if it starts with the still current label.
16445 (add_location_or_const_value_attribute): Check that
16446 loc_list->first->next is NULL instead of comparing ->first with ->last.
16447 (dwarf2out_var_location): Pass last_label resp. last_postcall_label
16448 to add_var_loc_to_decl.
16449
16450 * dwarf2out.c (output_call_frame_info): For dw_cie_version
16451 >= 4 add also address size and segment size fields into CIE header.
16452
16453 * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
16454 long as address size is the same as sizeof (void *) and
16455 segment size is 0.
16456 * unwind-dw2-fde.c (get_cie_encoding): Likewise. If
16457 address size or segment size is unexpected, return DW_EH_PE_omit.
16458 (classify_object_over_fdes): If get_cie_encoding returned
16459 DW_EH_PE_omit, return -1.
16460 (init_object): If classify_object_over_fdes returned -1,
16461 pretend there were no FDEs at all.
16462
16463 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
16464
16465 * config/i386/i386.md (bswap<mode>2): Macroize expander from
16466 bswap{si,di}2 using SWI48 mode iterator.
16467 (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
16468 SWI48 mode iterator. Set type attribute of bswap insn to bitmanip,
16469 set modrm attribute of bswap insn to 0 and remove length attribute.
16470 (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
16471 iterator. Set type attribute to bitmanip, set modrm attribute to 0,
16472 set mode attribute to <MODE> and remove length attribute.
16473
16474 2010-04-20 James E. Wilson <wilson@codesourcery.com>
16475
16476 PR rtl-optimization/43520
16477 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
16478 zero available registers.
16479
16480 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16481
16482 * builtins.c (fold_builtin_cproj): Fold more cases.
16483
16484 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16485
16486 * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
16487 (fold_builtin_1): Fold builtin cproj.
16488 * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
16489 Use ATTR_CONST_NOTHROW_LIST.
16490
16491 2010-04-20 Uros Bizjak <ubizjak@gmail.com>
16492
16493 * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
16494 and ffsdi2 using SWI48 mode iterator. Expand SImode insn through
16495 ffsi2_no_cmove for !TARGET_CMOVE.
16496 (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public.
16497 (ffssi2): Remove expander.
16498 (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
16499 mode iterator.
16500 (ctz<mode>2): Ditto from ctz{si,di}2.
16501 (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
16502 mode iterator.
16503 (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
16504 mode iterator.
16505
16506 2010-04-20 Jakub Jelinek <jakub@redhat.com>
16507
16508 * dwarf2out.c (AT_linkage_name): Define.
16509 (clone_as_declaration): Handle DW_AT_linkage_name.
16510 (add_name_and_src_coords_attributes): Use AT_linkage_name instead
16511 of DW_AT_MIPS_linkage_name.
16512 (move_linkage_attr): Likewise.
16513 (dwarf2out_finish): Likewise.
16514
16515 2010-04-20 Xinliang David Li <davidxl@gcc.gnu.org>
16516
16517 PR middle-end/41952
16518 * fold-const.c (fold_comparison): New folding rule.
16519
16520 2010-04-20 Anatoly Sokolov <aesok@post.ru>
16521
16522 * double-int.h (double_int_setbit): Declare.
16523 * double-int.c (double_int_setbit): New function.
16524 * rtl.h (immed_double_int_const): Declare.
16525 * emit-rtl.c (immed_double_int_const): New function.
16526 * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
16527 and immed_double_int_const functions.
16528 * optabs.c (expand_absneg_bit, expand_copysign_absneg,
16529 expand_copysign_bit): (Ditto.).
16530 * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
16531 * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
16532 * dojump.c (prefer_and_bit_test): (Ditto.).
16533 * expr.c (convert_modes, reduce_to_bit_field_precision,
16534 const_vector_from_tree): (Ditto.).
16535 * expmed.c (mask_rtx, lshift_value): (Ditto.).
16536
16537 2010-04-20 Jan Hubicka <jh@suse.cz>
16538
16539 * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
16540 (dump_cgraph_node): Dump new flags.
16541 * cgraph.h (struct cgraph_node): Add flags
16542 reachable_from_other_partition and in_other_partition.
16543 (cgraph_can_remove_if_no_direct_calls_p): Functions used by
16544 other partition can not be removed.
16545 * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
16546 the other partition must be output; silence sanity checking on
16547 leaking functions bodies from other paritition.
16548 * lto-cgraph.c (reachable_from_other_partition_p): New function.
16549 (lto_output_node): Output new flags; do not sanity check that inline
16550 clones are output; drop lto_forced_extern_inline_p code; do not mock
16551 visibility flags at partition boundaries.
16552 (add_node_to): New function.
16553 (output_cgraph): Use it to sort functions so masters appear before
16554 clones.
16555 (input_overwrite_node): Input new flags.
16556 * passes.c (ipa_write_summaries): Do not call
16557 lto_new_extern_inline_states.
16558 * lto-section-out.c (forced_extern_inline,
16559 lto_new_extern_inline_states lto_delete_extern_inline_states,
16560 lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
16561 * lto-streamer.h (lto_new_extern_inline_states,
16562 * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
16563 lto_forced_extern_inline_p): Kill.
16564
16565 2010-04-20 Richard Guenther <rguenther@suse.de>
16566
16567 * tree-ssa-structalias.c (do_sd_constraint): Add edges only
16568 from vars that can have pointers.
16569 (process_constraint): Dump useless constraints.
16570
16571 2010-04-20 Richard Guenther <rguenther@suse.de>
16572
16573 * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
16574 (dump_sa_points_to_info): Remove asserts.
16575 (init_base_vars): nothing_id isn't an escape point nor does it
16576 have pointers.
16577
16578 2010-04-20 Jakub Jelinek <jakub@redhat.com>
16579
16580 * tree.h (TYPE_REF_IS_RVALUE): Define.
16581 * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
16582 should_move_die_to_comdat, prune_unused_types_walk): Handle
16583 DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
16584 (modified_type_die, gen_reference_type_die): Emit
16585 DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
16586 if TYPE_REF_IS_RVALUE and -gdwarf-4.
16587
16588 2010-04-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16589
16590 PR target/43635
16591 * config/s390/s390.c (s390_emit_call): Turn direct into indirect
16592 calls for -fpic -m31 if they have been sibcall optimized.
16593
16594 2010-04-19 James E. Wilson <wilson@codesourcery.com>
16595
16596 * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
16597 ar.lc fixed and call-used.
16598
16599 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
16600
16601 2010-04-19 Jan Hubicka <jh@suse.cz>
16602
16603 * opts.c (decode_options): Disable whpr incompatible passes.
16604 * lto/lto.c (lto_1_to_1_map): Skip clones.
16605 (read_cgraph_and_symbols): Do not mark everything as needed.
16606 (do_whole_program_analysis): Do map only after optimizing;
16607 set proper cgraph_state; use passmanager.
16608
16609 2010-04-19 DJ Delorie <dj@redhat.com>
16610
16611 * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
16612 POINTER_PLUS_EXPR and fix them.
16613
16614 2010-04-19 Eric B. Weddington <eric.weddington@atmel.com>
16615
16616 * config/avr/avr-devices.c (avr_mcu_types): Add support for new
16617 devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
16618 attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
16619 atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
16620 atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
16621 atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
16622 atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
16623 atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
16624 m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
16625 atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
16626 * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
16627
16628 2010-04-19 Eric Botcazou <ebotcazou@adacore.com>
16629
16630 * ifcvt.c (noce_try_cmove_arith): Fix long lines.
16631 (check_cond_move_block): Likewise.
16632 (cond_move_process_if_block): Likewise.
16633 (noce_find_if_block): Improve formatting.
16634 (find_if_header): Pass 0 to memset and tweak conditions.
16635 (cond_exec_find_if_block): Fix long lines and tweak conditions.
16636
16637 2010-04-19 Jakub Jelinek <jakub@redhat.com>
16638
16639 * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
16640 for -gdwarf-4.
16641
16642 PR middle-end/43337
16643 * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
16644 with non-local decl doesn't need chain.
16645
16646 2010-04-19 Vladimir Makarov <vmakarov@redhat.com>
16647
16648 * ira-color.c (allocno_reload_assign): Avoid accumulating
16649 reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
16650
16651 2010-04-19 Martin Jambor <mjambor@suse.cz>
16652
16653 * gimple.h (create_tmp_reg): Declare.
16654 * gimplify.c (create_tmp_reg): New function.
16655 (gimplify_return_expr): Use create_tmp_reg.
16656 (gimplify_omp_atomic): Likewise.
16657 (gimple_regimplify_operands): Likewise.
16658 * tree-dfa.c (make_rename_temp): Likewise.
16659 * tree-predcom.c (predcom_tmp_var): Likewise.
16660 (reassociate_to_the_same_stmt): Likewise.
16661 * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
16662 (get_replaced_param_substitute): Likewise.
16663 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
16664 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
16665 * tree-ssa-pre.c (get_representative_for): Likewise.
16666 (create_expression_by_pieces): Likewise.
16667 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
16668 (create_tailcall_accumulator): Likewise.
16669
16670 2010-04-19 Martin Jambor <mjambor@suse.cz>
16671
16672 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
16673 new_stmt.
16674 (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
16675
16676 2010-04-19 Richard Guenther <rguenther@suse.de>
16677
16678 PR tree-optimization/43796
16679 * tree-vrp.c (adjust_range_with_scev): Lookup init and step
16680 from SCEV in the lattice.
16681 (vrp_visit_phi_node): Dump change.
16682
16683 2010-04-19 Richard Guenther <rguenther@suse.de>
16684
16685 * configure.ac: Fix quoting around elf_getshstrndx ABI check.
16686 * configure: Re-generated.
16687
16688 2010-04-19 Richard Guenther <rguenther@suse.de>
16689
16690 PR tree-optimization/43783
16691 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
16692 constant ARRAY_REF operands two and three if possible.
16693
16694 2010-04-19 Uros Bizjak <ubizjak@gmail.com>
16695
16696 PR target/43766
16697 * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
16698
16699 2010-04-19 Jie Zhang <jie@codesourcery.com>
16700
16701 PR target/43662
16702 * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
16703
16704 2010-04-19 Ira Rosen <irar@il.ibm.com>
16705
16706 PR tree-optimization/37027
16707 * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
16708 and macro to access it.
16709 (vectorizable_reduction): Add argument.
16710 (vect_get_slp_defs): Likewise.
16711 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
16712 statements for possible use in SLP.
16713 (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
16714 (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
16715 (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
16716 add new argument.
16717 (vectorizable_reduction): Likewise.
16718 * tree-vect-stmts.c (vect_get_vec_defs): Update call to
16719 vect_get_slp_defs.
16720 (vectorizable_type_demotion, vectorizable_type_promotion,
16721 vectorizable_store): Likewise.
16722 (vect_analyze_stmt): Update call to vectorizable_reduction.
16723 (vect_transform_stmt): Likewise.
16724 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
16725 (vect_build_slp_tree): Fix indentation. Check that there are no loads
16726 from different interleaving chains in same node.
16727 (vect_slp_rearrange_stmts): New function.
16728 (vect_supported_load_permutation_p): Allow load permutations for
16729 reductions. Call vect_slp_rearrange_stmts() to rearrange statements
16730 inside SLP nodes if necessary.
16731 (vect_analyze_slp_instance): Handle reductions.
16732 (vect_analyze_slp): Try to build SLP instances originating from groups
16733 of reductions.
16734 (vect_detect_hybrid_slp_stmts): Skip reduction statements.
16735 (vect_get_constant_vectors): Create initial vectors for reductions
16736 according to reduction code. Add new argument.
16737 (vect_get_slp_defs): Add new argument, pass it to
16738 vect_get_constant_vectors.
16739 (vect_schedule_slp_instance): Remove SLP tree root statements.
16740
16741 2010-04-19 Jakub Jelinek <jakub@redhat.com>
16742
16743 * tree.h (ENUM_IS_SCOPED): Define.
16744 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
16745 for ENUM_IS_SCOPED enums.
16746
16747 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
16748
16749 * fold-const.c (fold_comparison): Use ssizetype.
16750 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
16751 * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
16752 * tree-loop-distribution.c (build_size_arg_loc): Likewise.
16753 * tree-object-size.c (compute_object_sizes): Use size_type_node.
16754
16755 * tree.h (initialize_sizetypes): Remove parameter.
16756 (build_common_tree_nodes): Remove second parameter.
16757 * stor-layout.c (initialize_sizetypes): Remove parameter.
16758 Always create an unsigned type.
16759 (set_sizetype): Assert that the passed type is unsigned and simplify.
16760 * tree.c (build_common_tree_nodes): Remove second parameter.
16761 Adjust call to initialize_sizetypes.
16762 * c-decl.c (c_init_decl_processing): Remove second argument in call to
16763 build_common_tree_nodes.
16764
16765 2010-04-18 Matthias Klose <doko@ubuntu.com>
16766
16767 * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
16768
16769 2010-04-18 Ira Rosen <irar@il.ibm.com>
16770
16771 PR tree-optimization/43771
16772 * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
16773 load permutation doesn't have gaps.
16774
16775 2010-04-18 Jan Hubicka <jh@suse.cz>
16776
16777 * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
16778 (sse_prologue_save_insn expander): Use new pattern.
16779 (sse_prologue_save_insn1): New pattern and splitter.
16780 (sse_prologue_save_insn): Update to deal also with 64bit aligned
16781 blocks.
16782 * i386.c (setup_incoming_varargs_64): Do not compute jump
16783 destination here.
16784 (ix86_gimplify_va_arg): Update alignment needed.
16785 (ix86_local_alignment): Do not align all local arrays to 128bit.
16786
16787 2010-04-17 Jan Hubicka <jh@suse.cz>
16788
16789 * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
16790
16791 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
16792
16793 * arm.md (negdi2): Remove redundant code to force values into a
16794 register.
16795
16796 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
16797
16798 * arm/bpabi.S: Add EABI alignment attributes to objects.
16799 * arm/bpabi-v6m.S: Likewise.
16800 * arm/crti.asm: Likewise.
16801 * arm/crtn.asm: Likewise.
16802 * arm/lib1funcs.asm: Likewise.
16803 * arm/libunwind.S: Likewise.
16804
16805 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
16806
16807 * arm-protos.h (tune_params): New structure.
16808 * arm.c (current_tune): New variable.
16809 (arm_constant_limit): Delete.
16810 (struct processors): Add pointer to the tune parameters.
16811 (arm_slowmul_tune): New tuning option.
16812 (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
16813 (all_cores): Adjust to pick up the tuning model.
16814 (arm_constant_limit): New function.
16815 (arm_override_options): Select the appropriate tuning model. Delete
16816 initialization of arm_const_limit.
16817 (arm_split_constant): Use the new constant-limit model.
16818 (arm_rtx_costs): Pick up the current tuning model.
16819 * arm.md (is_strongarm, is_xscale): Delete.
16820 * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
16821 for Xscale variant architectures.
16822 (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
16823
16824 2010-04-17 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16825
16826 * config/arm/arm.c (arm_gen_constant): Remove unused variable
16827 can_shift.
16828 (arm_rtx_costs_1): Remove unused variable extra_cost.
16829 (arm_unwind_emit_set): Use variable offset.
16830 (thumb1_output_casesi): Remove unused variable flags.
16831
16832 2010-04-16 Jeff Law <law@redhat.com>
16833
16834 * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
16835 needing assignment rather than doing a two-phase assignment. Remove
16836 unused variable 'm'.
16837
16838 2010-04-16 Jakub Jelinek <jakub@redhat.com>
16839
16840 PR bootstrap/43767
16841 * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
16842
16843 2010-04-16 Doug Kwan <dougkwan@google.com>
16844
16845 * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
16846 (next_operand_entry_id): New static variable.
16847 (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
16848 (add_to_ops_vec): Assigned unique ID to operand entry.
16849 (struct oecount_s): New field ID.
16850 (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
16851 (undistribute_ops_list): Assign unique IDs to oecounts.
16852 (init_reassoc): reset next_operand_entry_id.
16853
16854 2010-04-16 Doug Kwan <dougkwan@google.com>
16855
16856 * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
16857 missing left parenthesis.
16858
16859 2010-04-16 Uros Bizjak <ubizjak@gmail.com>
16860
16861 * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
16862 *btdi_rex64 using SWI48 mode iterator.
16863 (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
16864 (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
16865 *jcc_btdi_mask_rex64.
16866
16867 2010-04-16 Anatoly Sokolov <aesok@post.ru>
16868
16869 * double-int.h (tree_to_double_int): Convert to macro.
16870 * double-int.c (tree_to_double_int): Remove.
16871
16872 2010-04-16 Jakub Jelinek <jakub@redhat.com>
16873
16874 PR debug/43762
16875 * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
16876 with want_address 2 and in case a single element list might be
16877 possible, call it again with want_address 0.
16878
16879 2010-04-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
16880
16881 * config/h8300/h8300.c (print_operand) : Modify case 'V' and
16882 case 'W' print operands for HI mode.
16883 * config/h8300/h8300.h (Y0, Y2) : New constraints.
16884 * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
16885 (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
16886 * config/h8300/predicate.md (bit_register_indirect_operand): New.
16887
16888 * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
16889
16890 * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
16891 cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
16892 #xx:3 and #xx:4 mode.
16893
16894 * config/h8300/h8300.md (inverted load with HImode dest): Add
16895 support for H8300SX.
16896
16897 * config/h8300/predicate.md (bit_operand): Allow immediate values that
16898 satisfy 'U' constraint.
16899
16900 2010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16901
16902 * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
16903 * configure: Regenerate.
16904 * config.in: Regenerate.
16905 * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
16906 works.
16907
16908 2010-04-16 Richard Guenther <rguenther@suse.de>
16909
16910 * tree.h (struct tree_decl_minimal): Move pt_uid ...
16911 (struct tree_decl_common): ... here.
16912 (DECL_PT_UID): Adjust.
16913 (SET_DECL_PT_UID): Likewise.
16914 (DECL_PT_UID_SET_P): Likewise.
16915
16916 2010-04-16 Richard Guenther <rguenther@suse.de>
16917
16918 PR tree-optimization/43572
16919 * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
16920 * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
16921 * tree-flow.h (is_call_clobbered): Remove.
16922 * tree-flow-inline.h (is_call_clobbered): Likewise.
16923 * tree-dfa.c (dump_variable): Do not dump call clobber state.
16924 * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
16925 (execute_return_slot_opt): Adjust.
16926 * tree-tailcall.c (suitable_for_tail_opt_p): Remove
16927 check for call clobbered vars here.
16928 (find_tail_calls): Move tailcall verification to the
16929 proper place.
16930
16931 2010-04-16 Diego Novillo <dnovillo@google.com>
16932
16933 * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
16934
16935 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
16936
16937 PR target/40603
16938 * config/arm/arm.md (cbranchqi4): New pattern.
16939 * config/arm/predicates.md (const0_operand,
16940 cbranchqi4_comparison_operator): New predicates.
16941
16942 2010-04-16 Richard Guenther <rguenther@suse.de>
16943
16944 * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
16945 (dump_gimple_stmt): Likewise.
16946
16947 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
16948
16949 * recog.h (struct recog_data): New field is_operator.
16950 (struct insn_operand_data): New field is_operator.
16951 * recog.c (extract_insn): Set recog_data.is_operator.
16952 * genoutput.c (output_operand_data): Emit code to set the
16953 is_operator field.
16954 * reload.c (find_reloads): Use it rather than testing for an
16955 empty constraint string.
16956
16957 PR target/41514
16958 * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
16959 If the previous insn is a cbranchsi4_insn with the same arguments,
16960 omit the compare instruction.
16961
16962 * config/arm/arm.md (addsi3_cbranch): If destination is a high
16963 register, inputs must be low registers and we need a low register
16964 scratch. Handle alternative 2 like alternative 3.
16965
16966 2010-04-16 Jakub Jelinek <jakub@redhat.com>
16967
16968 * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
16969 don't call get_addr on both. If one expression is a VALUE and
16970 the other a REG, check VALUE's locs if the REG isn't among them.
16971
16972 2010-04-16 Christian Bruel <christian.bruel@st.com>
16973
16974 * config/sh/sh.h (sh_frame_pointer_required): New function.
16975 * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
16976 (flag_omit_frame_pointer) Set.
16977 (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
16978 (rounded_frame_size): Adjust size with outgoing_args_size.
16979 (sh_set_return_address): Must return from stack pointer.
16980 * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
16981 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
16982 (ACCUMULATE_OUTGOING_ARGS): Define.
16983 * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
16984 * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
16985
16986 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
16987
16988 PR target/43471
16989 * config/sh/sh.c (sh_legitimize_reload_address): Use
16990 MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
16991 Remove a unneeded check for offset_base.
16992
16993 2010-04-15 H.J. Lu <hongjiu.lu@intel.com>
16994
16995 * configure: Regenerated.
16996
16997 2010-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16998
16999 * config/s390/s390.c (s390_call_save_register_used): Switch back
17000 to HARD_REGNO_NREGS.
17001
17002 2010-04-15 Richard Guenther <rguenther@suse.de>
17003
17004 * alias.c (alias_set_subset_of): Handle alias-set zero
17005 child properly.
17006
17007 2010-04-15 Mark Shinwell <shinwell@codesourcery.com>
17008 Julian Brown <julian@codesourcery.com>
17009
17010 * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
17011 alternatives according to use of high and low regs.
17012 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
17013 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
17014 optimizing for size on Thumb-2.
17015
17016 2010-04-15 Thomas Schwinge <tschwinge@gnu.org>
17017
17018 * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
17019
17020 2010-04-15 Richard Guenther <rguenther@suse.de>
17021
17022 * tree-ssa-structalias.c (struct variable_info): Add
17023 is_fn_info flag.
17024 (new_var_info): Initialize it.
17025 (dump_constraints): Support printing last added constraints.
17026 (debug_constraints): Adjust.
17027 (dump_constraint_graph): Likewise.
17028 (make_heapvar_for): Check for NULL cfun.
17029 (get_function_part_constraint): New function.
17030 (get_fi_for_callee): Likewise.
17031 (find_func_aliases): Properly implement IPA PTA constraints.
17032 (process_ipa_clobber): New function.
17033 (find_func_clobbers): Likewise.
17034 (insert_into_field_list_sorted): Remove.
17035 (create_function_info_for): Properly allocate vars for IPA mode.
17036 Do not use insert_into_field_list_sorted.
17037 (create_variable_info_for): Properly generate constraints for
17038 global vars in IPA mode.
17039 (dump_solution_for_var): Always dump the solution.
17040 (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
17041 (find_what_var_points_to): Adjust.
17042 (pt_solution_set): Change.
17043 (pt_solution_ior_into): New function.
17044 (pt_solution_empty_p): Export.
17045 (pt_solution_includes_global): Adjust.
17046 (pt_solution_includes_1): Likewise.
17047 (pt_solutions_intersect_1): Likewise.
17048 (dump_sa_points_to_info): Check some invariants.
17049 (solve_constraints): Move constraint dumping ...
17050 (compute_points_to_sets): ... here.
17051 (ipa_pta_execute): ... and here.
17052 (compute_may_aliases): Do not re-compute points-to info
17053 locally if IPA info is available.
17054 (ipa_escaped_pt): New global var.
17055 (ipa_pta_execute): Properly implement IPA PTA.
17056 * tree-into-ssa.c (dump_decl_set): Support dumping
17057 decls not in referenced-vars.
17058 * tree-flow.h (struct gimple_df): Add ipa_pta flag.
17059 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
17060 (dump_points_to_solution): Likewise.
17061 * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
17062 * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
17063 (remap_gimple_stmt): Reset call clobber/use information if necessary.
17064 (copy_decl_to_var): Copy DECL_PT_UID.
17065 (copy_result_decl_to_var): Likewise.
17066 * tree.c (make_node_stat): Initialize DECL_PT_UID.
17067 (copy_node_stat): Copy it.
17068 * tree.h (DECL_PT_UID): New macro.
17069 (SET_DECL_PT_UID): Likewise.
17070 (DECL_PT_UID_SET_P): Likewise.
17071 (struct tree_decl_minimal): Add pt_uid member.
17072 * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
17073 (pt_solution_empty_p): Declare.
17074 (pt_solution_set): Adjust.
17075 (ipa_escaped_pt): Declare.
17076 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
17077 * gimple-pretty-print.c (pp_points_to_solution): New function.
17078 (dump_gimple_call): Dump call clobber/use information.
17079 * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
17080 * tree-pass.h (TDF_ALIAS): New dump option.
17081 * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
17082 * doc/invoke.texi (-fipa-pta): Update documentation.
17083
17084 2010-04-15 Richard Guenther <rguenther@suse.de>
17085
17086 * Makefile.in (OBJS-common): Add gimple-fold.o.
17087 (gimple-fold.o): New rule.
17088 * tree.h (maybe_fold_offset_to_reference,
17089 maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
17090 prototypes ...
17091 * gimple.h: ... here.
17092 * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
17093 may_propagate_address_into_dereference): Move prototypes ...
17094 * gimple.h: ... here.
17095 * tree-ssa-ccp.c (get_symbol_constant_value,
17096 may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
17097 maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
17098 maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
17099 maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
17100 ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
17101 fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
17102 gimplify_and_update_call_from_tree): Move ...
17103 * gimple-fold.c: ... here. New file.
17104 (ccp_fold_builtin): Rename to ...
17105 (gimple_fold_builtin): ... this.
17106 * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
17107
17108 2010-04-15 Richard Guenther <rguenther@suse.de>
17109
17110 * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
17111 fit_double_type, force_fit_type_double, add_double_with_sign,
17112 neg_double, mul_double_with_sign, lshift_double, rshift_double,
17113 lrotate_double, rrotate_double, div_and_round_double): Move ...
17114 * double-int.c: ... here.
17115 * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
17116 add_double, neg_double, mul_double_with_sign, mul_double,
17117 lshift_double, rshift_double, lrotate_double, rrotate_double,
17118 div_and_round_double): Move prototypes ...
17119 * double-int.h: ... here.
17120
17121 2010-04-15 Bernd Schmidt <bernds@codesourcery.com>
17122
17123 PR target/43742
17124 * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use
17125 matching constraints to ensure inputs match the output.
17126
17127 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
17128
17129 PR target/43742
17130 * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
17131 in an input-only operand.
17132
17133 2010-04-15 Anatoly Sokolov <aesok@post.ru>
17134
17135 * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
17136 (double_int_not, double_int_lshift, double_int_rshift): Declare.
17137 (double_int_negative_p): Convert to static inline function.
17138 * double-int.c (double_int_lshift, double_int_lshift): New functions.
17139 (double_int_negative_p): Remove.
17140 * tree.h (lshift_double, rshift_double):
17141 * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
17142 * fold-const.c (fold_convert_const_int_from_real,
17143 fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
17144 (lshift_double): Change type of arith argument to bool.
17145 (rshift_double): Change type of arith argument to bool. Correct
17146 comment.
17147 * expmed.c (mask_rtx, lshift_value): (Ditto.).
17148
17149 2010-04-14 Bernd Schmidt <bernds@codesourcery.com>
17150
17151 PR target/21803
17152 * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
17153 at the start and end of the then/else blocks, and omit them from the
17154 conversion.
17155 * cfgcleanup.c (flow_find_cross_jump): No longer static. Remove MODE
17156 argument; all callers changed. Pass zero to old_insns_match_p instead.
17157 (flow_find_head_matching_sequence): New function.
17158 (old_insns_match_p): Check REG_EH_REGION notes for calls.
17159 * basic-block.h (flow_find_cross_jump,
17160 flow_find_head_matching_sequence): Declare functions.
17161
17162 2010-04-14 Jason Merrill <jason@redhat.com>
17163
17164 PR c++/36625
17165 * c-common.c (attribute_takes_identifier_p): New fn.
17166 * c-common.h: Declare it.
17167
17168 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
17169
17170 * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
17171 splitter condition.
17172 (*udivmod<mode>4): Ditto.
17173
17174 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
17175
17176 * config/i386/i386.md (maxmin_int): Rename code attribute from
17177 maxminiprefix and update all users.
17178 (maxmin_float): Ditto from maxminfprefix.
17179 (logic): Ditto from logicprefix.
17180 (absneg_mnemonic): Ditto from absnegprefix.
17181 * config/i386/mmx.md: Update all users of maxminiprefix,
17182 maxminfprefix and logicprefix for rename.
17183 * config/i386/sse.md: Ditto.
17184 * config/i386/sync.md (sync_<code><mode>): Update for
17185 logicprefix rename.
17186
17187 2010-04-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
17188
17189 PR 42966
17190 * diagnostics.c (diagnostic_report_diagnostic): Mark specially
17191 warnings converted to errors.
17192
17193 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
17194
17195 * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
17196 used insn_type variable.
17197 (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
17198 to avoid set-but-not-used warning.
17199
17200 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
17201
17202 * df-core.c (df_ref_debug): Change format string placeholder
17203 from 0x%x to %#x.
17204 * dwarf2asm.c (dw2_asm_output_data_raw,
17205 dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
17206 dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
17207 * dwarf2out.c (output_cfi, output_cfi_directive,
17208 dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
17209 output_cfa_loc_raw, output_die, output_ranges, output_file_names):
17210 Ditto.
17211 * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
17212 * print-rtl.c (print_rtx): Ditto.
17213
17214 2010-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
17215
17216 PR middle-end/42694
17217 * builtins.c (expand_builtin_pow_root): New function to expand pow
17218 calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
17219 series of sqrt and cbrt calls under -ffast-math.
17220 (expand_builtin_pow): Call it.
17221
17222 2010-04-14 Michael Matz <matz@suse.de>
17223
17224 PR tree-optimization/42963
17225 * tree-cfg.c (touched_switch_bbs): New static variable.
17226 (group_case_labels_stmt): New function broken out from ...
17227 (group_case_labels): ... here, use the above.
17228 (start_recording_case_labels): Allocate touched_switch_bbs.
17229 (end_recording_case_labels): Deallocate it, call
17230 group_case_labels_stmt.
17231 (gimple_redirect_edge_and_branch): Remember index of affected BB.
17232
17233 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
17234
17235 * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
17236 from insn template.
17237
17238 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
17239
17240 * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
17241
17242 2010-04-13 Jan Hubicka <jh@suse.cz>
17243
17244 * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
17245 of optimized out static functions.
17246 (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
17247 cost computation. Also sanity check for overflows.
17248 (update_caller_keys): Update cgraph_edge_badness call; properly
17249 update fibheap and sanity check that it is up to date.
17250 (add_new_edges_to_heap): Update cgraph_edge_badness.
17251 (cgraph_decide_inlining_of_small_function): Likewise;
17252 add sanity checking that badness in heap is up to date;
17253 improve dumping of reason; Update badness of calls to the
17254 offline copy of function currently inlined; dump badness
17255 of functions not inlined because of unit growth limits.
17256
17257 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
17258
17259 PR middle-end/32628
17260 * c-common.c (pointer_int_sum): Disregard overflow that occured only
17261 because of sign-extension change when converting to sizetype here...
17262 * fold-const.c (fold_convert_const_int_from_int): ...and not here.
17263
17264 * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
17265 the folding to constants. Remove redundant final conversion.
17266 (fold_binary) <associate>: Do not associate if the re-association of
17267 constants alone overflows.
17268 (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
17269 to the end of the list.
17270 (multiple_of_p) <COND_EXPR>: New case.
17271
17272 2010-04-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
17273
17274 * opt-functions.awk (opt_sanitized_name): New.
17275 (opt_enum): New.
17276 * optc-gen.awk: Use it
17277 * opth-gen.awk: Use it.
17278
17279 2010-04-13 Martin Jambor <mjambor@suse.cz>
17280
17281 * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
17282 (sra_modify_assign): Delete stmts loading dead data even if racc has no
17283 children. Call replace_uses_with_default_def_ssa_name to handle
17284 SSA_NAES on lhs.
17285
17286 2010-04-13 Michael Matz <matz@suse.de>
17287
17288 PR middle-end/43730
17289 * builtins.c (expand_builtin_interclass_mathfn): Also create
17290 a register if the predicate doesn't match.
17291
17292 2010-04-13 Diego Novillo <dnovillo@google.com>
17293
17294 * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
17295 * c-pch.c: Include timevar.h.
17296 (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
17297 (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
17298 * ggc-common.c: Include timevar.h.
17299 (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
17300 * timevar.def (TV_PCH_SAVE): Define.
17301 (TV_PCH_CPP_SAVE): Define.
17302 (TV_PCH_PTR_REALLOC): Define.
17303 (TV_PCH_PTR_SORT): Define.
17304 (TV_PCH_RESTORE): Define.
17305 (TV_PCH_CPP_RESTORE): Define.
17306
17307 2010-04-13 Michael Matz <matz@suse.de>
17308
17309 * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
17310 into MINUS_EXPRs.
17311 (can_reassociate_p): New function.
17312 (break_up_subtract_bb, reassociate_bb): Use it.
17313
17314 2010-04-13 Richard Guenther <rguenther@suse.de>
17315
17316 PR bootstrap/43737
17317 * builtins.c (c_readstr): Fix assert.
17318
17319 2010-04-13 Uros Bizjak <ubizjak@gmail.com>
17320
17321 * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
17322 when generating cltd insn.
17323
17324 (*ashl<mode>3_1): Remove special handling for register operand 2.
17325 (*ashlsi3_1_zext): Ditto.
17326 (*ashlhi3_1): Ditto.
17327 (*ashlhi3_1_lea): Ditto.
17328 (*ashlqi3_1): Ditto.
17329 (*ashlqi3_1_lea): Ditto.
17330 (*<shiftrt_insn><mode>3_1): Ditto.
17331 (*<shiftrt_insn>si3_1_zext): Ditto.
17332 (*<shiftrt_insn>qi3_1_slp): Ditto.
17333 (*<rotate_insn><mode>3_1): Ditto.
17334 (*<rotate_insn>si3_1_zext): Ditto.
17335 (*<rotate_insn>qi3_1_slp): Ditto.
17336
17337 2010-04-13 Richard Guenther <rguenther@suse.de>
17338
17339 * tree-ssa-structalias.c (callused_id): Remove.
17340 (call_stmt_vars): New.
17341 (get_call_vi): Likewise.
17342 (lookup_call_use_vi): Likewise.
17343 (lookup_call_clobber_vi): Likewise.
17344 (get_call_use_vi): Likewise.
17345 (get_call_clobber_vi): Likewise.
17346 (make_transitive_closure_constraints): Likewise.
17347 (handle_const_call): Adjust to do per-call call-used handling.
17348 (handle_pure_call): Likewise.
17349 (find_what_var_points_to): Remove general callused handling.
17350 (init_base_vars): Likewise.
17351 (init_alias_vars): Initialize call_stmt_vars.
17352 (compute_points_to_sets): Process call-used and call-clobbered
17353 vars for call statements.
17354 (delete_points_to_sets): Free call_stmt_vars.
17355
17356 2010-04-13 Richard Guenther <rguenther@suse.de>
17357
17358 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
17359 Only add RW dependence for dependence distance zero.
17360 Adjust maximal vectorization factor according to dependences.
17361 Move alignment handling ...
17362 (vect_find_same_alignment_drs): ... here. New function.
17363 (vect_analyze_data_ref_dependences): Adjust.
17364 (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
17365 (vect_analyze_data_refs): Adjust minimal vectorization factor
17366 according to data references.
17367 * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
17368 dependences before determining the vectorization factor.
17369 Analyze alignment after determining the vectorization factor.
17370 * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
17371 dependences before alignment.
17372 * tree-vectorizer.h (vect_analyze_data_ref_dependences):
17373 Adjust prototype.
17374 (vect_analyze_data_refs): Likewise.
17375 (MAX_VECTORIZATION_FACTOR): New define.
17376
17377 2010-04-13 Duncan Sands <baldrick@free.fr>
17378
17379 * except.h (lang_eh_type_covers): Remove.
17380 * except.c (lang_eh_type_covers): Likewise.
17381
17382 2010-04-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17383 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17384
17385 * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
17386 * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
17387 UNITS_PER_LONG where it is ABI relevant.
17388 (s390_return_addr_rtx): Likewise.
17389 (s390_back_chain_rtx): Likewise.
17390 (s390_frame_area): Likewise.
17391 (s390_frame_info): Likewise.
17392 (s390_initial_elimination_offset): Likewise.
17393 (save_gprs): Likewise.
17394 (s390_emit_prologue): Likewise.
17395 (s390_emit_epilogue): Likewise.
17396 (s390_function_arg_advance): Likewise.
17397 (s390_function_arg): Likewise.
17398 (s390_va_start): Likewise.
17399 (s390_gimplify_va_arg): Likewise.
17400 (s390_function_profiler): Likewise.
17401 (s390_optimize_prologue): Likewise.
17402 (s390_rtx_costs): Likewise.
17403 (s390_secondary_reload): Likewise.
17404 (s390_promote_function_mode): Likewise.
17405 (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
17406 (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
17407 registers available.
17408 (s390_unwind_word_mode): New function.
17409 (s390_function_value): Split 64 bit values into register pair if
17410 used as return value.
17411 (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
17412 function call parameters. Handle parallels.
17413 (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
17414 (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
17415 (DWARF_CIE_DATA_ALIGNMENT): New macro.
17416 (s390_expand_setmem): Remove unused variable src_addr.
17417 * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
17418 deal with 64 bit registers.
17419 * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
17420 Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
17421 (UNITS_PER_LONG): New macro.
17422 * libjava/include/s390-signal.h: Define extended ucontext
17423 structure containing the upper halfs of the 64 bit registers.
17424
17425 2010-04-13 Simon Baldwin <simonb@google.com>
17426
17427 * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
17428
17429 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
17430
17431 * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
17432 rvalue on the RHS if the LHS is of a non-renamable type.
17433 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
17434
17435 2010-04-13 Matthias Klose <doko@ubuntu.com>
17436
17437 * gcc.c (cc1_options): Handle -iplugindir before processing
17438 the cc1 spec. Only add -iplugindir once.
17439 (cpp_unique_options): Add -iplugindir option if -fplugin* options
17440 found.
17441 * common.opt (iplugindir): Remove `Separate' property, initialize.
17442 * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
17443 option.
17444 * Makefile.in (check-%, check-parallel-%): Create plugin dir.
17445 (distclean): Remove plugin dir.
17446 * doc/invoke.texi: Document -iplugindir.
17447
17448 2010-04-13 Basile Starynkevitch <basile@starynkevitch.net>
17449
17450 * doc/plugins.texi (Loading Plugins): Document short
17451 -fplugin=foo option.
17452 (Plugin API): Mention default_plugin_dir_name function.
17453
17454 * gcc.c (find_file_spec_function): Add new declaration.
17455 (static_spec_func): Use it for "find-file".
17456 (find_file_spec_function): Add new function.
17457 (cc1_options): Add -iplugindir option if -fplugin* options found.
17458
17459 * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
17460
17461 * plugin.c (add_new_plugin): Updated comment, and handle short
17462 plugin name.
17463 (default_plugin_dir_name): Added new function.
17464
17465 * common.opt (iplugindir): New option to set the plugin directory.
17466
17467 2010-04-12 Uros Bizjak <ubizjak@gmail.com>
17468
17469 * config/i386/i386.md (any_rotate): New code iterator.
17470 (rotate_insn): New code attribute.
17471 (rotate): Ditto.
17472 (SWIM124): New mode iterator.
17473 (<rotate_insn>ti3): New expander.
17474 (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
17475 any_rotate code iterator.
17476 (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
17477 using any_rotate code iterator and SWIM124 mode iterator.
17478 (ix86_rotlti3): New insn_and_split pattern.
17479 (ix86_rotrti3): Ditto.
17480 (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
17481 ix86_rotl{di,ti}3 patterns.
17482 (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
17483 (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
17484 and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
17485 *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
17486 code iterator and SWI mode iterator.
17487 (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
17488 Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
17489 code iterator.
17490 (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
17491 Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
17492 (bswap rotatert splitter): Add splitter.
17493 (bswap splitter): Macroize splitter using any_rotate code iterator.
17494 Add insn predicate to split only for TARGET_USE_XCHGB or when
17495 optimizing function for size.
17496
17497 2010-04-12 Steve Ellcey <sje@cup.hp.com>
17498
17499 * config/pa/pa.c (emit_move_sequence): Remove use of
17500 deleted variable flag_argument_noalias.
17501
17502 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17503
17504 * config.gcc: Removed *-*-solaris2.7* from list of obsolete
17505 configurations.
17506 Add to unsupported targets list.
17507 * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
17508 sparc*-sun-solaris2.[567]* from target lists.
17509 * configure: Regenerate.
17510 * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
17511 removal.
17512 Remove Solaris 7 patch references.
17513 (Specific, sparc-sun-solaris2.7): Removed.
17514 (sparc-sun-solaris2*): Update Solaris 7 example.
17515 (sparc64-*-solaris2*): Likewise.
17516
17517 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17518
17519 * config.build (alpha*-dec-osf4*): Remove.
17520 * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
17521 of obsolete configurations.
17522 (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
17523 support.
17524 * config/alpha/t-osf4: Renamed to ...
17525 * config/alpha/t-osf5: ... this.
17526 * config/alpha/osf.h: Renamed to ...
17527 * config/alpha/osf5.h: ... this.
17528 Merged old osf5.h contents.
17529 Update comments.
17530 (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
17531 (EXTRA_SPECS): Removed.
17532 * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
17533 reflect removal of Tru64 UNIX V4.0/V5.0 support.
17534 Document that.
17535
17536 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17537
17538 * doc/contrib.texi (Contributors, Rainer Orth): Update.
17539
17540 2010-04-12 Kai Tietz <kai.tietz@onevision.com>
17541
17542 PR/43702
17543 * config/i386/i386.c (x86_this_parameter): Handle aggregate for
17544 __thiscall convention.
17545
17546 2010-04-12 Steve Ellcey <sje@cup.hp.com>
17547
17548 * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
17549 orig_base.
17550 * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
17551
17552 2010-04-12 Steve Ellcey <sje@cup.hp.com>
17553
17554 * function.c (assign_parms_initialize_all): Add unused attribute
17555 to fntype.
17556
17557 2010-04-12 Richard Guenther <rguenther@suse.de>
17558
17559 * gsstruct.def (GSS_CALL): New.
17560 * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
17561 * gimple.h: Include tree-ssa-alias.h.
17562 (struct gimple_statement_call): New.
17563 (union gimple_statement_struct_d): Add gimple_call member.
17564 (gimple_call_reset_alias_info): Declare.
17565 (gimple_call_use_set): New function.
17566 (gimple_call_clobber_set): Likewise.
17567 * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
17568 * gimple.c (gimple_call_reset_alias_info): New function.
17569 (gimple_build_call_1): Call it.
17570 * lto-streamer-in.c (input_gimple_stmt): Likewise.
17571 * tree-inline.c (remap_gimple_stmt): Likewise.
17572 (expand_call_inline): Remove callused handling.
17573 * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
17574 * tree-dfa.c (dump_variable): Likewise.
17575 * tree-parloops.c (parallelize_loops): Likewise.
17576 * tree-ssa.c (init_tree_ssa): Likewise.
17577 (delete_tree_ssa): Likewise.
17578 * tree-flow-inline.h (is_call_used): Remove.
17579 * tree-flow.h (struct gimple_df): Remove callused member.
17580 * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
17581 * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
17582 (ref_maybe_used_by_call_p_1): Simplify.
17583 (call_may_clobber_ref_p_1): Likewise.
17584 * tree-ssa-structalias.c (compute_points_to_sets): Set
17585 the call stmt used and clobbered sets.
17586 * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
17587 (find_tail_calls): Verify the tail call.
17588
17589 2010-04-12 Richard Guenther <rguenther@suse.de>
17590
17591 * ipa.c (cgraph_postorder): Adjust postorder to guarantee
17592 single-iteration always-inline inlining.
17593 * ipa-inline.c (cgraph_mark_inline): Do not return anything.
17594 (cgraph_decide_inlining): Do not handle always-inline specially.
17595 (try_inline): Remove always-inline cycle detection special case.
17596 Do not recurse on always-inlines.
17597 (cgraph_early_inlining): Do not iterate if not optimizing.
17598 (cgraph_gate_early_inlining): remove.
17599 (pass_early_inline): Run unconditionally.
17600 (gate_cgraph_decide_inlining): New function.
17601 (pass_ipa_inline): Use it. Do not run the IPA inliner if
17602 not inlining or optimizing.
17603 (cgraph_decide_inlining_of_small_functions): Also consider
17604 always-inline functions.
17605 (cgraph_default_inline_p): Return true for nodes which should
17606 disregard inline limits.
17607 (estimate_function_body_sizes): Assume zero size and time for
17608 nodes which are marked as disregarding inline limits.
17609 (cgraph_decide_recursive_inlining): Do not perform recursive
17610 inlining on always-inline nodes.
17611
17612 2010-04-12 Jakub Jelinek <jakub@redhat.com>
17613
17614 PR bootstrap/43699
17615 * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
17616 for exprs satisfying handled_component_p.
17617
17618 2010-04-12 Eric Botcazou <ebotcazou@adacore.com>
17619
17620 * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
17621 non-constant aggregate elements.
17622
17623 * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
17624 is a real initialization.
17625
17626 2010-04-12 Shujing Zhao <pearly.zhao@oracle.com>
17627
17628 PR c/36774
17629 * c-decl.c (start_function): Move forward check for nested function.
17630
17631 2010-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
17632
17633 * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
17634 * config/sh/sh.c: Include reload.h.
17635 (sh_legitimize_reload_address): New.
17636 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
17637 sh_legitimize_reload_address.
17638
17639 2010-04-11 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
17640
17641 * config/sh/sh.md (*movqi_pop): New insn pattern.
17642 * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
17643
17644 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
17645
17646 * config/i386/i386.md (any_shiftrt): New code iterator.
17647 (shiftrt_insn): New code attribute.
17648 (shiftrt): Ditto.
17649 (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
17650 using any_shiftrt code iterator.
17651 (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
17652 *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
17653 (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
17654 pattern from corresponding peephole2 patterns.
17655 (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
17656 using any_shiftrt code iterator.
17657 (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
17658 (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
17659 (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
17660 (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
17661 *{ashr,lshr}<mode>3_cmp_zext.
17662 (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
17663
17664 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
17665
17666 * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
17667 scratch register.
17668 (*lshr<mode>3_cconly): Ditto.
17669
17670 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
17671
17672 * config/i386/i386.md (lshr<mode>3): Macroize expander from
17673 lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17674 (*lshr<mode>3_doubleword): New insn_and_split_pattern. Macroize
17675 pattern from *lshr{di,ti}3_1 and corresponding splitters using
17676 DWI mode iterator.
17677 (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17678 from corresponding peephole2 patterns.
17679 (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
17680 *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
17681 and *lshrdi3_1_rex64 using SWI mode iterator.
17682 (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
17683 (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
17684 (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
17685 *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
17686 and *lshrdi3_cmp_rex64 using SWI mode iterator.
17687 (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
17688 (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
17689 *lshrdi3_one_bit_cconly_rex64. Macroize insn from
17690 *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
17691 SWI mode iterator.
17692
17693 2010-04-10 Uros Bizjak <ubizjak@gmail.com>
17694
17695 * config/i386/i386.md (ashr<mode>3): Macroize expander from
17696 ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17697 (*ashr<mode>3_doubleword): New insn_and_split_pattern. Macroize
17698 pattern from *ashr{di,ti}3_1 and corresponding splitters using
17699 DWI mode iterator.
17700 (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17701 from corresponding peephole2 patterns.
17702 (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
17703 (ashrsi3_cvt): Rename from ashrsi3_31.
17704 (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
17705 (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
17706 and x86_64_shift_adj_3 using SWI48 mode iterator.
17707 (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
17708 *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
17709 and *ashrdi3_1_rex64 using SWI mode iterator.
17710 (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
17711 (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
17712 (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
17713 *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
17714 and *ashrdi3_cmp_rex64 using SWI mode iterator.
17715 (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
17716 (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
17717 *ashrdi3_one_bit_cconly_rex64. Macroize insn from
17718 *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
17719 SWI mode iterator.
17720 (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
17721 * config/i386/i386.c (ix86_split_ashr): Update for renamed
17722 x86_shift<mode>_adj_3 expanders.
17723
17724 2010-04-10 Wei Guozhi <carrot@google.com>
17725
17726 PR target/42601
17727 * config/arm/arm.c (arm_pic_static_addr): New function.
17728 (legitimize_pic_address): Call arm_pic_static_addr when it detects
17729 a static symbol.
17730 (arm_output_addr_const_extra): Output expression for new pattern.
17731 * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
17732
17733 2010-04-10 Bernd Schmidt <bernds@codesourcery.com>
17734
17735 * ira-costs.c (record_reg_classes): Ignore alternatives that are
17736 not enabled.
17737
17738 * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
17739 * web.c: Include "insn-config.h" and "recog.h".
17740 (union_match_dups): New function.
17741 (web_main): Call it.
17742 (union_defs): Don't try to recognize match_dups.
17743
17744 * reload1.c (eliminate_regs_in_insn): Don't restore an operand
17745 if doing so would replace the entire pattern.
17746
17747 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
17748
17749 PR target/43707
17750 PR target/43709
17751 * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
17752 and splitter pattern. Change splitter operand 1 predicate to
17753 nonmemory_operand.
17754
17755 2010-04-09 Martin Jambor <mjambor@suse.cz>
17756
17757 * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
17758 lattices are addresses of CONST_DECLs with the same initial value.
17759 (ipcp_print_all_lattices): Print values of CONST_DECLs.
17760 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
17761
17762 2010-04-09 Eric Botcazou <ebotcazou@adacore.com>
17763 Bernd Schmidt <bernds@codesourcery.com>
17764
17765 * loop-invariant.c (replace_uses): New static function.
17766 (move_invariant_reg): Use it to ensure we can replace the uses.
17767
17768 2010-04-09 Hariharan Sandanagobalane <hariharan@picochip.com>
17769
17770 * config/picochip/picochip.c (picochip_rtx_costs): Use correct
17771 function template.
17772 (picochip_override_options): Enable section anchors only above -O1.
17773 (picochip_reorg): Fixed a couple of build warnings.
17774
17775 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17776
17777 * configure.ac (plugin -rdynamic test): Log result.
17778 * configure: Regenerate.
17779 * config/sol2.h (LINK_SPEC): Handle -rdynamic.
17780 (RDYNAMIC_SPEC): Define.
17781 * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
17782
17783 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17784
17785 * configure.ac: Determine Sun ld version numbers.
17786 (comdat_group): Restrict GNU ld version checks to gld.
17787 (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
17788 (enable_comdat): Support --enable-comdat.
17789 * configure: Regenerate.
17790 * doc/install.texi (Configuration): Document --enable-comdat.
17791
17792 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17793
17794 * config/sparc/sol2-gld.h: Remove SPARC reference. Rename ...
17795 * config/sol2-gld.h: ... here.
17796 * config.gcc (sparc*-*-solaris2*): Reflect this.
17797 (i[34567]86-*-solaris2*): Use it.
17798
17799 2010-04-09 Steve Ellcey <sje@cup.hp.com>
17800
17801 * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
17802 setup_clocks_p.
17803 (final_emit_insn_group_barriers): Remove unused variable prev_insn.
17804
17805 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
17806
17807 PR 42965
17808 * diagnostic.c (diagnostic_initialize): Initialize
17809 some_warnings_are_errors.
17810 (diagnostic_finish): New.
17811 (diagnostic_action_after_output): Call it before exiting.
17812 (diagnostic_report_diagnostic): Do not print message here. Set
17813 some_warnings_are_errors.
17814 * diagnostic.h (diagnostic_context): Delete
17815 issue_warnings_are_errors_message. Add some_warnings_are_errors.
17816 (diagnostic_finish): Declare.
17817 * toplev.c (toplev_main): Call it before exit.
17818
17819 2010-04-09 Jason Merrill <jason@redhat.com>
17820
17821 PR c++/42623
17822 * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
17823 for incomplete type.
17824
17825 PR c++/41788
17826 * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
17827 based on a warning flag.
17828
17829 2010-04-09 Richard Guenther <rguenther@suse.de>
17830
17831 * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
17832
17833 2010-04-09 Iain Sandoe <iains@gcc.gnu.org>
17834
17835 PR bootstrap/43684
17836 * varasm.c (default_assemble_visibility): Wrap vars that are
17837 set, but unused, by targets without GAS.
17838 * config/rs6000/rs6000.c (paired_emit_vector_compare):
17839 Remove set, but unused, vars.
17840 (rs6000_legitimize_tls_address): Likewise.
17841 (altivec_expand_dst_builtin): Likewise.
17842 * config/darwin.c (machopic_classify_symbol): Likewise.
17843 (machopic_indirection_name): Likewise.
17844
17845 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
17846
17847 * config/i386/i386.md (DWI): New mode iterator.
17848 (S): New mode attribute.
17849 (shift_operand): Ditto.
17850 (shift_immediate_operand): Ditto.
17851 (ashl_input_operand): Ditto.
17852 (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
17853 using SDWIM mode iterator.
17854 (*ashl<mode>3_doubleword): New insn_and_split_pattern. Macroize
17855 pattern from *ashl{di,ti}3_1 and corresponding splitters using
17856 DWI mode iterator.
17857 (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
17858 from corresponding peephole2 patterns.
17859 (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
17860 and x86_64_shift_adj_1 using SWI48 mode iterator.
17861 (x86_shift<mode>_adj_2): Ditto.
17862 (*ashldi3_1_rex64): Split TYPE_LEA pattern.
17863 (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
17864 using SWI48 mode iterator.
17865 (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
17866 *ashldi3_cmp_rex64 using SWI mode iterator.
17867 (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
17868 *ashldi3_cconly_rex64 using SWI mode iterator.
17869 * config/i386/i386.c (ix86_split_ashl): Update for renamed
17870 x86_shift<mode>_adj_{1,2}.
17871 (ix86_split_ashr): Ditto.
17872 (ix86_split_lshr): Ditto.
17873
17874 2010-04-09 Richard Guenther <rguenther@suse.de>
17875
17876 * target.h (builtin_conversion): Pass in input and output types.
17877 * targhooks.c (default_builtin_vectorized_conversion): Adjust.
17878 * targhooks.h (default_builtin_vectorized_conversion): Likewise.
17879 * tree-vect-stmts.c (vectorizable_conversion): Adjust.
17880 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
17881
17882 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
17883 Handle AVX modes.
17884 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
17885
17886 2010-04-09 Richard Guenther <rguenther@suse.de>
17887
17888 PR target/43152
17889 * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
17890
17891 2010-04-09 Richard Guenther <rguenther@suse.de>
17892
17893 * tree-vectorizer.h (struct _stmt_vec_info): Document
17894 that vectype is the type of the LHS.
17895 (supportable_widening_operation, supportable_narrowing_operation):
17896 Get both input and output vector types as arguments.
17897 (vect_is_simple_use_1): Declare.
17898 (get_same_sized_vectype): Likewise.
17899 * tree-vect-loop.c (vect_determine_vectorization_factor):
17900 Set STMT_VINFO_VECTYPE to the vector type of the def.
17901 (vectorizable_reduction): Adjust.
17902 * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
17903 Adjust. Specify the output vector type.
17904 (vect_pattern_recog_1): Adjust.
17905 * tree-vect-stmts.c (get_same_sized_vectype): New function.
17906 (vectorizable_call): Adjust.
17907 (vectorizable_conversion): Likewise.
17908 (vectorizable_operation): Likewise.
17909 (vectorizable_type_demotion): Likewise.
17910 (vectorizable_type_promotion): Likewise.
17911 (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
17912 the def.
17913 (vect_is_simple_use_1): New function.
17914 (supportable_widening_operation): Get both input and output
17915 vector types.
17916 (supportable_narrowing_operation): Likewise.
17917 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
17918
17919 2010-04-09 Kai Tietz <kai.tietz@onevision.com>
17920
17921 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
17922 __thiscall and _thiscall as predefined macros.
17923 * config/i386/i386.c (ix86_handle_cconv_attribute): Add
17924 thiscall attribute handling.
17925 (ix86_comp_type_attributes): Likewise.
17926 (ix86_function_regparm): Likewise.
17927 (ix86_return_pops_args): Likewise.
17928 (init_cumulative_args): Likewise.
17929 (find_drap_reg): Likewise.
17930 (ix86_static_chain): Likewise.
17931 (x86_this_parameter): Likewise.
17932 (x86_output_mi_thunk): Likewise.
17933 (ix86_attribute_table): Add description for thiscall attribute.
17934 * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
17935 * doc/extend.texi: Add documentation for thiscall.
17936
17937 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
17938
17939 PR c++/28584
17940 * c.opt (Wint-to-pointer-cast): Available in C++.
17941 * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
17942
17943 2010-04-08 Eric Botcazou <ebotcazou@adacore.com>
17944
17945 * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
17946 * calls.c (expand_call): Pass the function type to aggregate_value_p.
17947 * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
17948 the target function of a CALL_EXPR. Honor TREE_ADDRESSABLE on the
17949 function type instead. Reorder and simplify checks.
17950
17951 * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
17952
17953 2010-04-08 Jing Yu <jingyu@google.com>
17954 Zdenek Dvorak <ook@ucw.cz>
17955
17956 PR tree-optimization/42720
17957 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
17958 loop unswitch conditions here from ...
17959 (tree_unswitch_single_loop): ... here.
17960
17961 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
17962
17963 * tree-if-conv.c: Fix comments and simplify logic.
17964
17965 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
17966
17967 * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
17968 (tree_if_conversion): Same. Update call to if_convertible_loop_p.
17969 (main_tree_if_conversion): Update call to tree_if_conversion.
17970
17971 2010-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
17972
17973 PR 42485
17974 * doc/invoke.texi (-b,-V): Delete.
17975 * doc/tm.texi: Do not mention -b.
17976 * gcc.c (display_help): Delete -b and -V.
17977 (process_command): Delete -b and -V.
17978 * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
17979
17980 2010-04-08 Christian Borntraeger <borntraeger@de.ibm.com>
17981 Wolfgang Gellerich <gellerich@de.ibm.com>
17982
17983 Implement target hook for loop unrolling
17984 * target.h (loop_unroll_adjust): Add a new target hook function.
17985 * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
17986 * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
17987 * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
17988 (s390_loop_unroll_adjust): Implement the new target hook for s390.
17989 * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
17990 target hook.
17991 (decide_unroll_stupid): Likewise.
17992
17993 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17994
17995 PR target/43643
17996 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
17997
17998 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17999
18000 * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
18001 (Specific, *-*-solaris2*): Likewise.
18002 Don't prefer Sun as over GNU as.
18003
18004 2010-04-08 Wolfgang Gellerich <gellerich@de.ibm.com>
18005
18006 * config/s390/s390.c (override_options): Adjust the z10 defaults
18007 for max-unroll-times, max-completely-peeled-insns
18008 and max-completely-peel-times.
18009
18010 2010-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18011
18012 * config/s390/s390.c (s390_expand_movmem): Issue prefetch
18013 instructions for z10.
18014 (s390_expand_setmem): Likewise.
18015 (s390_expand_cmpmem): Likewise.
18016
18017 2010-04-08 Richard Guenther <rguenther@suse.de>
18018
18019 PR tree-optimization/43679
18020 * tree-ssa-pre.c (eliminate): Only propagate copies.
18021
18022 2010-04-08 Jakub Jelinek <jakub@redhat.com>
18023
18024 PR bootstrap/43681
18025 * expr.c (block_move_libcall_safe_for_call_parm): Avoid
18026 set but not used variable warning.
18027
18028 2010-04-08 Wei Guozhi <carrot@google.com>
18029
18030 PR target/41653
18031 * config/arm/arm.c (thumb1_size_rtx_costs): New function.
18032 (arm_size_rtx_costs): Call the new function when optimized for size.
18033
18034 2010-04-08 Jakub Jelinek <jakub@redhat.com>
18035
18036 PR debug/43670
18037 * cfgexpand.c (expand_debug_expr): If for non-NULL offset
18038 op0 is not a MEM, just return NULL instead of assertion
18039 failure.
18040 (discover_nonconstant_array_refs): Don't walk debug stmts.
18041
18042 2010-04-08 Doug Kwan <dougkwan@google.com>
18043
18044 * configure.ac: Recognize gold and do not use its version number
18045 to test ld features.
18046 * configure: Regenerate.
18047
18048 2010-04-08 Maxim Kuvyrkov <maxim@codesourcery.com>
18049
18050 PR middle-end/40815
18051 * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
18052 (negate_value): Move code to push elements to broken_up_substracts ...
18053 (eliminate_plus_minus_pair): ... here. Push operands that have no
18054 negative pair to plus_negates.
18055 (repropagate_negates, init_reassoc, fini_reassoc): Update.
18056
18057 2010-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18058
18059 * doc/install.texi (Configuration): Move description of
18060 --enable-lto, --with-libelf*, --enable-gold from Java section to
18061 general section.
18062
18063 * doc/generic.texi (Working with declarations)
18064 (Function Properties, C and C++ Trees): Fix typos.
18065 * doc/sourcebuild.texi (Top Level): Likewise.
18066
18067 2010-04-07 Jakub Jelinek <jakub@redhat.com>
18068
18069 PR c/18624
18070 * tree.h (DECL_READ_P): Define.
18071 (struct tree_decl_common): Add decl_read_flag.
18072 * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
18073 a set but not used warning.
18074 (merge_decls): Merge DECL_READ_P flag.
18075 (finish_decl, build_compound_literal): Set DECL_READ_P flag.
18076 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
18077 * c-common.c (handle_used_attribute, handle_unused_attribute):
18078 Likewise.
18079 * c-tree.h (default_function_array_read_conversion, mark_exp_read):
18080 New prototypes.
18081 * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
18082 New functions.
18083 (default_conversion, c_process_expr_stmt): Call mark_exp_read.
18084 * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
18085 c_parser_binary_expression, c_parser_cast_expression,
18086 c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
18087 Call default_function_array_read_conversion instead of
18088 default_function_array_conversion where needed.
18089 (c_parser_unary_expression, c_parser_conditional_expression,
18090 c_parser_postfix_expression_after_primary, c_parser_initelt):
18091 Likewise. Call mark_exp_read where needed.
18092 (c_parser_statement_after_labels, c_parser_asm_operands,
18093 c_parser_typeof_specifier, c_parser_sizeof_expression,
18094 c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
18095 where needed.
18096 * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
18097 New.
18098 * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
18099 (warn_unused_but_set_parameter): Default to warn_unused
18100 && extra_warnings.
18101 * doc/invoke.texi: Document -Wunused-but-set-variable and
18102 -Wunused-but-set-parameter.
18103
18104 * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
18105 used count variable.
18106 * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
18107 when operandN variables aren't used in the body of the expander
18108 or splitter.
18109 * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
18110 FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
18111 * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
18112 * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
18113 FOR_EACH_IMM_USE_ON_STMT): Likewise.
18114 * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
18115 * tree.c (PROCESS_ARG): Likewise.
18116
18117 2010-04-07 Simon Baldwin <simonb@google.com>
18118
18119 * diagnostic.h (diagnostic_override_option_index): New macro to
18120 set a diagnostic's option_index.
18121 * c-tree.h (c_cpp_error): Add warning reason argument.
18122 * opts.c (_warning_as_error_callback): New.
18123 (register_warning_as_error_callback): Store callback for
18124 warnings enabled via enable_warning_as_error.
18125 (enable_warning_as_error): Call callback, minor code tidy.
18126 * opts.h (register_warning_as_error_callback): Declare.
18127 * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
18128 response to -Werror=.
18129 (c_common_init_options): Register warning_as_error_callback in opts.c.
18130 * common.opt: Add -Wno-cpp option.
18131 * c-common.c (struct reason_option_codes_t): Map cpp warning
18132 reason codes to gcc option indexes.
18133 * (c_option_controlling_cpp_error): New function, lookup the gcc
18134 option index for a cpp warning reason code.
18135 * (c_cpp_error): Add warning reason argument, call
18136 c_option_controlling_cpp_error for diagnostic_override_option_index.
18137 * doc/invoke.texi: Document -Wno-cpp.
18138
18139 2010-04-07 Richard Guenther <rguenther@suse.de>
18140
18141 * ipa-reference.c (mark_load): Use get_base_address.
18142 (mark_store): Likewise.
18143
18144 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
18145 inserting GIMPLE_NOPs into the IL.
18146 * tree-ssa-structalias.c (get_constraint_for_component_ref):
18147 Explicitly strip handled components and indirect references.
18148
18149 * fold-const.c (fold_unary_loc): Do not strip qualifiers when
18150 folding address expressions.
18151 * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
18152 * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
18153 operand_equal_p to compare decls.
18154 (ptr_deref_may_alias_decl_p): Likewise.
18155 * tree-ssa-operands.c (get_asm_expr_operands): Simplify
18156 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
18157 Handle reversed comparison ops.
18158 * tree-sra.c (asm_visit_addr): Use get_base_address.
18159 * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
18160 * ipa-reference.c (mark_address): Use get_base_address.
18161
18162 2010-04-07 Richard Guenther <rguenther@suse.de>
18163
18164 * tree-ssa-forwprop.c (forward_propagate_addr_expr):
18165 Propagate constants everywhere.
18166
18167 2010-04-07 Jakub Jelinek <jakub@redhat.com>
18168
18169 PR debug/43516
18170 * tree.c (MAX_INT_CACHED_PREC): Define.
18171 (nonstandard_integer_type_cache): New array.
18172 (build_nonstandard_integer_type): Cache results for precision
18173 <= MAX_INT_CACHED_PREC.
18174
18175 2010-04-07 Richard Guenther <rguenther@suse.de>
18176
18177 * doc/invoke.texi (-fargument-alias, -fargument-noalias,
18178 -fargument-noalias-global, -fargument-noalias-anything): Remove.
18179 * common.opt: Likewise.
18180 * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
18181 * alias.c (base_alias_check): Remove flag_argument_noalias handling.
18182 (nonoverlapping_memrefs_p): Likewise.
18183 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
18184 * opts.c (common_handle_option): Handle OPT_fargument_alias,
18185 OPT_fargument_noalias, OPT_fargument_noalias_anything and
18186 OPT_fargument_noalias_global for backward compatibility.
18187
18188 2010-04-07 Richard Guenther <rguenther@suse.de>
18189
18190 PR tree-optimization/43270
18191 * tree-vrp.c (check_array_ref): Fix flexible array member detection.
18192 * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
18193 * tree-ssa-pre.c (phi_translate_1): Adjust.
18194 (fully_constant_expression): Split out vn_reference handling to ...
18195 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
18196 Fold reads from constant strings.
18197 (vn_reference_lookup): Handle fully constant references.
18198 (vn_reference_lookup_pieces): Likewise.
18199 * Makefile.in (expmed.o-warn): Add -Wno-error.
18200
18201 2010-04-07 Martin Jambor <mjambor@suse.cz>
18202
18203 * tree-sra.c (find_param_candidates): Allow scalar va_list types.
18204
18205 2010-04-07 Iain Sandoe <iains@gcc.gnu.org>
18206
18207 PR driver/41594
18208 * gcc.c: Add -static-libstdc++ to list of recognized options.
18209
18210 2010-04-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18211
18212 * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
18213
18214 2010-04-07 Richard Guenther <rguenther@suse.de>
18215
18216 PR middle-end/42617
18217 * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
18218 bases build simple mem attributes to retain points-to information.
18219
18220 2010-04-07 Richard Guenther <rguenther@suse.de>
18221
18222 PR middle-end/42617
18223 * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
18224 preserve points-to related information.
18225
18226 2010-04-07 Richard Guenther <rguenther@suse.de>
18227
18228 PR middle-end/42617
18229 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
18230 discard plain indirect references.
18231 * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
18232 * tree.c (tree_nop_conversion): Likewise.
18233
18234 2010-04-07 Dodji Seketeli <dodji@redhat.com>
18235
18236 PR debug/43628
18237 * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
18238
18239 2010-04-06 Kai Tietz <kai.tietz@onevision.com>
18240
18241 * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
18242 calling convention attributes on METHOD_TYPEs for w64 ABI, too.
18243
18244 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
18245
18246 * tree-if-conv.c: Fix indentation and comments.
18247
18248 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
18249
18250 * tree-if-conv.c: Sort static functions in topological order.
18251
18252 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
18253
18254 * tree-if-conv.c: Fix indentation and comments.
18255
18256 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
18257
18258 PR middle-end/43519
18259 * graphite-clast-to-gimple.c (max_signed_precision_type): Use
18260 lang_hooks.types.type_for_size instead of
18261 build_nonstandard_integer_type.
18262 When converting an unsigned type to signed, double its precision.
18263 (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
18264 (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
18265 (graphite_create_new_loop_guard): When ub + 1 wraps around,
18266 use lb <= ub.
18267
18268 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
18269
18270 PR middle-end/43519
18271 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
18272 POINTER_PLUS_EXPR for pointer types.
18273
18274 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
18275
18276 PR middle-end/43519
18277 * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
18278 * graphite-clast-to-gimple.c: Include langhooks.h.
18279 (max_signed_precision_type): New.
18280 (max_precision_type): Takes two types as arguments.
18281 (precision_for_value): New.
18282 (precision_for_interval): New.
18283 (gcc_type_for_interval): New.
18284 (gcc_type_for_value): New.
18285 (gcc_type_for_clast_term): New.
18286 (gcc_type_for_clast_red): New.
18287 (gcc_type_for_clast_bin): New.
18288 (gcc_type_for_clast_expr): Split up into several functions.
18289 (gcc_type_for_clast_eq): Rewritten.
18290 (compute_bounds_for_level): New.
18291 (compute_type_for_level_1): New.
18292 (compute_type_for_level): New.
18293 (gcc_type_for_cloog_iv): Removed.
18294 (gcc_type_for_iv_of_clast_loop): Rewritten.
18295 (graphite_create_new_loop): Compute the lower and upper bound types
18296 with gcc_type_for_clast_expr.
18297 (graphite_create_new_loop_guard): Same.
18298 (find_cloog_iv_in_expr): Removed.
18299 (compute_cloog_iv_types_1): Removed.
18300 (compute_cloog_iv_types): Removed.
18301 (gloog): Do not call compute_cloog_iv_types.
18302 * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
18303 GBB_CLOOG_IV_TYPES.
18304 (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
18305 * sese.h (struct gimple_bb): Removed field cloog_iv_types.
18306 (GBB_CLOOG_IV_TYPES): Removed.
18307
18308 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
18309
18310 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
18311 gimple_phi_num_args of the loop close SSA phi node is equal to 1.
18312 (detect_commutative_reduction): Same.
18313
18314 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
18315
18316 * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
18317 call to verify_ssa. Invoke verify_loop_closed_ssa with an extra
18318 argument.
18319 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
18320 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
18321 (rewrite_commutative_reductions_out_of_ssa): Same.
18322 * passes.c (execute_function_todo): Call verify_ssa for every pass
18323 in the LNO. Invoke verify_loop_closed_ssa with an extra argument.
18324 * tree-flow.h (verify_loop_closed_ssa): Update declaration.
18325 * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
18326 with an extra argument.
18327 * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call
18328 verify_ssa only when the extra argument is true.
18329 (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
18330 with an extra argument.
18331 (tree_transform_and_unroll_loop): Same.
18332
18333 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
18334
18335 * passes.c (execute_function_todo): Call verify_loop_closed_ssa
18336 for all the passes of the LNO having LOOP_CLOSED_SSA.
18337 * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
18338 * tree-loop-distribution.c (pass_loop_distribution): Same.
18339 * tree-pass.h (TODO_verify_loops): Removed.
18340 * tree-ssa-loop.c (pass_tree_loop_init): Same.
18341 (pass_lim): Same.
18342 (pass_tree_unswitch): Same.
18343 (pass_predcom): Same.
18344 (pass_vectorize): Same.
18345 (pass_linear_transform): Same.
18346 (pass_graphite_transforms): Same.
18347 (pass_iv_canon): Same.
18348 (pass_complete_unroll): Same.
18349 (pass_complete_unrolli): Same.
18350 (pass_parallelize_loops): Same.
18351 (pass_loop_prefetch): Same.
18352 (pass_iv_optimize): Same.
18353
18354 2010-04-06 Changpeng Fang <changpeng.fang@amd.com>
18355
18356 PR middle-end/32824
18357 * passes.c (init_optimization_passes): Move pass_lim before
18358 pass_copy_prop and pass_dce_loop.
18359
18360 2010-04-06 Jakub Jelinek <jakub@redhat.com>
18361
18362 PR target/43667
18363 * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
18364 instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
18365 (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
18366 MULTI_* defines for 4 argument vpermil2p* builtins.
18367
18368 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
18369
18370 * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
18371 * config/i386/i386.c (x86_maybe_negate_const_int): New.
18372 (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
18373 * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
18374 *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
18375 *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
18376 *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
18377 Use x86_maybe_negate_const_int to output insn mnemonic.
18378 (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow
18379 check from instruction predicate. Update comments.
18380 * config/i386/sync.md (sync_add<mode>): Use
18381 x86_maybe_negate_const_int to output insn mnemonic.
18382
18383 2010-04-06 Jan Hubicka <jh@suse.cz>
18384
18385 PR tree-optimization/42906
18386 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
18387 IGNORE_SELF argument. Set visited_control_parents for fully
18388 processed BBs.
18389 (find_obviously_necessary_stmts): Update call of
18390 mark_control_dependent_edges_necessary.
18391 (propagate_necessity): Likewise. Handle PHI edges more curefully.
18392
18393 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
18394
18395 * config/i386/i386.md: Remove comment about 'e' and 'E'
18396 operand modifier.
18397
18398 2010-04-06 Richard Guenther <rguenther@suse.de>
18399
18400 PR tree-optimization/43627
18401 * tree-vrp.c (extract_range_from_unary_expr): Widenings
18402 of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
18403 not varying.
18404
18405 2010-04-06 Jakub Jelinek <jakub@redhat.com>
18406
18407 * BASE-VER: Change to 4.6.0.
18408
18409 PR target/43638
18410 * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
18411 handling.
18412
18413 2010-04-06 Richard Guenther <rguenther@suse.de>
18414
18415 PR middle-end/43661
18416 * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
18417
18418 2010-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18419
18420 * doc/invoke.texi (Optimize Options): Document that LTO
18421 won't remove object access purely due to incompatible
18422 declarations.
18423
18424 2010-04-04 Matthias Klose <doko@ubuntu.com>
18425
18426 * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
18427 Initialize variable.
18428
18429 2010-04-03 Richard Guenther <rguenther@suse.de>
18430
18431 PR middle-end/42509
18432 * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
18433 require a non-NULL MEM_OFFSET.
18434
18435 2010-04-02 Steven Bosscher <steven@gcc.gnu.org>
18436
18437 * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
18438 basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
18439 collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
18440 config/alpha/predicates.md, config/arm/arm.md,
18441 config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
18442 config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
18443 config/darwin9.h, config/darwin.c, config/darwin.h,
18444 config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
18445 config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
18446 config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
18447 config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
18448 config/mips/mips.md, config/mn10300/mn10300.c,
18449 config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
18450 config/rs6000/aix.h, config/rs6000/dfp.md,
18451 config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
18452 config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
18453 config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
18454 config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
18455 config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
18456 config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
18457 c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
18458 diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
18459 doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
18460 doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
18461 fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
18462 gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
18463 graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
18464 graphite-dependences.c, graphite-poly.c, graphite-poly.h,
18465 graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
18466 graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
18467 intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
18468 ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
18469 ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
18470 loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
18471 objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
18472 opt-functions.awk, opth-gen.awk, params.def, passes.c,
18473 postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
18474 rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
18475 store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
18476 tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
18477 tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
18478 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
18479 tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
18480 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
18481 tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
18482 tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
18483 tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
18484 tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
18485 tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
18486 unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
18487
18488 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18489
18490 PR other/43620
18491 * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
18492 * aclocal.m4: Regenerate.
18493
18494 2010-04-02 Richard Guenther <rguenther@suse.de>
18495
18496 PR tree-optimization/43629
18497 * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
18498 if we have seen a constant value.
18499
18500 2010-04-02 Joseph Myers <joseph@codesourcery.com>
18501
18502 * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
18503
18504 2010-04-02 Richard Earnshaw <rearnsha@arm.com>
18505
18506 PR target/43469
18507 * arm.c (legitimize_tls_address): Adjust call to
18508 gen_tls_load_dot_plus_four.
18509 (arm_note_pic_base): New function.
18510 (arm_cannot_copy_insn_p): Use it.
18511 * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
18512 constraint.
18513
18514 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18515
18516 PR bootstrap/43531
18517
18518 Revert:
18519 2009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18520
18521 * Makefile.in ($(out_object_file)): Depend on
18522 gt-$(basename $(notdir $(out_file))).h.
18523
18524 2010-04-01 Ralf Corsépius <ralf.corsepius@rtems.org>
18525
18526 * config.gcc (lm32-*-rtems*): Add t-lm32.
18527
18528 2010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
18529
18530 * config.gcc: Add lm32-*-rtems*.
18531 * config/lm32/rtems.h: New file.
18532
18533 2010-04-01 Dave Korn <dave.korn.cygwin@gmail.com>
18534
18535 PR target/42609
18536 * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
18537
18538 2010-04-01 Jakub Jelinek <jakub@redhat.com>
18539
18540 * dwarf2out.c (output_compilation_unit_header): For
18541 -gdwarf-4 use version 4 instead of version 3.
18542 (output_line_info): For version 4 and above emit additional
18543 maximum ops per insn header field.
18544 (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
18545
18546 * dwarf2out.c (is_c_family, is_java): Remove.
18547 (lower_bound_default): New function.
18548 (add_bound_info, gen_descr_array_type_die): Use it.
18549
18550 2010-04-01 Dodji Seketeli <dodji@redhat.com>
18551
18552 PR debug/43325
18553 * dwarf2out.c (gen_variable_die): Allow debug info for variable
18554 re-declaration when it happens in a function.
18555
18556 2010-04-01 Aldy Hernandez <aldyh@redhat.com>
18557
18558 * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
18559 (cgraph_remove_function_insertion_hook): Same.
18560 (cgraph_call_function_insertion_hooks): Same.
18561
18562 2010-04-01 Richard Guenther <rguenther@suse.de>
18563
18564 PR middle-end/43614
18565 * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
18566 and TREE_THIS_VOLATILE.
18567 (copy_ref_info): Likewise.
18568 * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
18569 * tree.c (build6_stat): Ignore side-effects of all but arg5
18570 for TARGET_MEM_REF. Set TREE_THIS_VOLATILE from arg5 of
18571 TARGET_MEM_REF.
18572
18573 2010-04-01 Richard Guenther <rguenther@suse.de>
18574
18575 PR tree-optimization/43607
18576 * ipa-type-escape.c (check_call): Do not access non-existing
18577 arguments.
18578
18579 2010-04-01 Richard Guenther <rguenther@suse.de>
18580
18581 PR middle-end/43602
18582 Revert
18583 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
18584 Jack Howarth <howarth@bromo.med.uc.edu>
18585
18586 * tree-profile.c (tree_init_ic_make_global_vars): Make static
18587 variables TLS.
18588
18589 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18590
18591 * doc/install.texi (Prerequisites): Document libelf usability on
18592 IRIX 5/6 and Solaris 2.
18593 (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
18594 Update GNU as, GNU ld requirements.
18595 (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
18596 Document Sun Studio compiler download.
18597 Update and simplify as, ld recommendations.
18598 (Specific, *-*-solaris2.7): Note obsoletion, removal.
18599
18600 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18601
18602 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
18603 with_tune_32 to pentium4.
18604
18605 2010-04-01 Uros Bizjak <ubizjak@gmail.com>
18606
18607 * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
18608
18609 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18610
18611 * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
18612 obsoletion, removal.
18613 Update IDO URL.
18614 Document GNU as requirement.
18615 Update configure requirements.
18616 (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
18617 Recomment IRIX 6.5.18+.
18618 Document IDF/IDL requirement.
18619 Document GNU as requirement.
18620 Document GNU ld bootstrap failure.
18621 Remove freeware.sgi.com reference.
18622
18623 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18624
18625 * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
18626 UNIX V4.0, V5.0 obsoletion, removal.
18627 Remove --with-gc=simple reference.
18628 Update VM requirements during bootstrap.
18629 Remove -oldas bootstrap description.
18630 Update binutils reference.
18631 Remove comparison failure note.
18632
18633 2010-03-31 Richard Guenther <rguenther@suse.de>
18634 Zdenek Dvorak <ook@ucw.cz>
18635 Sebastian Pop <sebastian.pop@amd.com>
18636
18637 PR middle-end/43464
18638 * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
18639 with multiple arguments.
18640 (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
18641
18642 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
18643
18644 * graphite-dependences.c (print_pddr): Call print_pdr with an
18645 extra argument.
18646 * graphite-poly.c (debug_pdr): Add an extra argument for the
18647 verbosity level.
18648 (print_pdr): Same.
18649 (print_pbb_domain): Same.
18650 (print_pbb): Same.
18651 (print_scop_context): Same.
18652 (print_scop): Same.
18653 (print_cloog): Same.
18654 (debug_pbb_domain): Same.
18655 (debug_pbb): Same.
18656 (print_pdrs): Same.
18657 (debug_pdrs): Same.
18658 (debug_scop_context): Same.
18659 (debug_scop): Same.
18660 (debug_cloog): Same.
18661 (print_scop_params): Same.
18662 (debug_scop_params): Same.
18663 (print_iteration_domain): Same.
18664 (print_iteration_domains): Same.
18665 (debug_iteration_domain): Same.
18666 (debug_iteration_domains): Same.
18667 (print_scattering_function): Same.
18668 (print_scattering_functions): Same.
18669 (debug_scattering_function): Same.
18670 (debug_scattering_functions): Same.
18671 * graphite-poly.h (debug_pdr): Update declaration.
18672 (print_pdr): Same.
18673 (print_pbb_domain): Same.
18674 (print_pbb): Same.
18675 (print_scop_context): Same.
18676 (print_scop): Same.
18677 (print_cloog): Same.
18678 (debug_pbb_domain): Same.
18679 (debug_pbb): Same.
18680 (print_pdrs): Same.
18681 (debug_pdrs): Same.
18682 (debug_scop_context): Same.
18683 (debug_scop): Same.
18684 (debug_cloog): Same.
18685 (print_scop_params): Same.
18686 (debug_scop_params): Same.
18687 (print_iteration_domain): Same.
18688 (print_iteration_domains): Same.
18689 (debug_iteration_domain): Same.
18690 (debug_iteration_domains): Same.
18691 (print_scattering_function): Same.
18692 (print_scattering_functions): Same.
18693 (debug_scattering_function): Same.
18694 (debug_scattering_functions): Same.
18695
18696 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
18697
18698 * graphite-poly.c (print_scattering_function_1): New.
18699 (print_scattering_function): Call it.
18700 (print_scop_params): Remove spaces at the end of lines.
18701 (print_cloog): New.
18702 (debug_cloog): New.
18703 * graphite-poly.h (print_cloog): Declared.
18704 (debug_cloog): Declared.
18705
18706 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
18707
18708 * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
18709 in loop->header.
18710 * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
18711 * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
18712 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
18713 to switch between adding the IV bump in loop->latch or in loop->header.
18714
18715 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
18716
18717 * graphite-poly.c (print_scattering_function): Pretty print following
18718 the scoplib format.
18719 (print_pdr): Same.
18720 (print_pbb_domain): Same.
18721 (dump_gbb_cases): Same.
18722 (dump_gbb_conditions): Same.
18723 (print_pdrs): Same.
18724 (print_pbb): Same.
18725 (print_scop_params): Same.
18726 (print_scop_context): Same.
18727 (print_scop): Same.
18728 (print_pbb_body): New.
18729 (lst_indent_to): New.
18730 (print_lst): Start new lines with a #.
18731 * graphite-poly.h (pbb_bb): New.
18732 (pbb_index): Use pbb_bb.
18733 * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
18734 disjuncts.
18735 * tree-data-ref.c (dump_data_reference): Start new lines with a #.
18736
18737 2010-03-31 Jakub Jelinek <jakub@redhat.com>
18738
18739 * dwarf2out.c (size_of_die): For -gdwarf-4 use
18740 uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
18741 and 0 instead of 1 for dw_val_class_flag.
18742 (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
18743 dw_val_class_range_list, dw_val_class_loc_list,
18744 dw_val_class_lineptr and dw_val_class_macptr, use
18745 DW_FORM_flag_present for dw_val_class_flag and
18746 DW_FORM_exprloc for dw_val_class_loc.
18747 (output_die): For -gdwarf-4 print dw_val_class_loc
18748 size as uleb128 instead of 1 or 2 bytes and don't print
18749 anything for dw_val_class_flag.
18750
18751 * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
18752 instead of cselib_lookup following by tweaking locs->setting_insn.
18753
18754 PR bootstrap/43596
18755 * cselib.c (cselib_process_insn): Clear cselib_current_insn
18756 even before returning from label, setjmp call or volatile asm
18757 handling.
18758
18759 2010-03-31 Richard Guenther <rguenther@suse.de>
18760
18761 PR middle-end/43600
18762 * cgraphunit.c (cgraph_output_in_order): Do not allocate
18763 temporary data on stack.
18764
18765 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18766
18767 * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
18768 (PUSHSECTION_ASM_OP): Remove.
18769 (POPSECTION_ASM_OP): Remove.
18770 (PUSHSECTION_FORMAT): Remove.
18771 * config/sol2.h (PUSHSECTION_FORMAT): Define.
18772 * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
18773 * config/sol2.c (solaris_output_init_fini): Use it.
18774
18775 2010-03-31 Jie Zhang <jie@codesourcery.com>
18776
18777 PR 43574
18778 * opt-functions.awk (var_type_struct): Use signed char type
18779 for simple variables.
18780
18781 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18782
18783 * config/sol2.c: Include output.h.
18784 (solaris_assemble_visibility): New function.
18785 * config/t-sol2 (sol2.o): Add output.h dependency.
18786 * config/sol2-protos.h (solaris_assemble_visibility): Declare.
18787 * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
18788 Redefine.
18789
18790 2010-03-31 Jakub Jelinek <jakub@redhat.com>
18791
18792 PR target/43580
18793 * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
18794 V2SImode or XFmode on PRE_DEC.
18795
18796 PR debug/43557
18797 * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
18798 BLKmode.
18799
18800 2010-03-31 Jie Zhang <jie@codesourcery.com>
18801
18802 PR 43562
18803 * reload.h (caller_save_initialized_p): Declare.
18804 * toplev.c (backend_init_target): Don't call
18805 init_caller_save but set caller_save_initialized_p to false.
18806 * caller-save.c (caller_save_initialized_p): Define.
18807 (init_caller_save): Check caller_save_initialized_p.
18808 * ira.c (ira): Call init_caller_save if flag_caller_saves.
18809
18810 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18811
18812 PR target/39048
18813 * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
18814 and soft-fp/t-softfp to tmake_file.
18815 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
18816 (LIBGCC2_TF_CEXT): Define.
18817 (TF_SIZE): Define.
18818
18819 2010-03-30 Alexandre Oliva <aoliva@redhat.com>
18820
18821 PR debug/42977
18822 * cselib.c (n_useless_values): Document handling of debug locs.
18823 (n_useless_debug_values, n_debug_values): New variables.
18824 (new_elt_loc_list): Don't add to debug values, keep count.
18825 (promote_debug_loc): New.
18826 (cselib_reset_table): Zero new variables.
18827 (entry_and_rtx_equal_p): Promote debug locs.
18828 (discard_useless_locs): Increment n_useless_debug_values for
18829 debug values.
18830 (remove_useless_values): Adjust n_useless_values and n_debug_values
18831 with n_useless_debug_values.
18832 (add_mem_for_addr): Promote debug locs.
18833 (cselib_lookup_mem): Likewise.
18834 (cselib_lookup_addr): Renamed to...
18835 (cselib_lookup_addr_1): ... this. Promote debug locs. Don't call...
18836 (cselib_log_lookup): ... this. Turn into...
18837 (cselib_lookup_addr): ... new wrapper.
18838 (cselib_lookup_from_insn): New.
18839 (cselib_invalidate_regno): Increment n_useless_debug_values for
18840 debug values.
18841 (cselib_invalidate_mem): Likewise.
18842 (cselib_process_insn): Take n_deleted and n_debug_values into
18843 account to guard remove_useless_value call.
18844 (cselib_finish): Zero n_useless_debug_values.
18845 * cselib.h (cselib_lookup_from_insn): Declare.
18846 * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
18847 (sched_analyze_2): Likewise.
18848
18849 2010-03-30 Jakub Jelinek <jakub@redhat.com>
18850
18851 * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
18852 functions.
18853 (adjust_mems): Replace narrowing SUBREG of expression containing
18854 just PLUS, MINUS, MULT and ASHIFT of registers and constants
18855 with operations in the narrower mode.
18856
18857 PR debug/43593
18858 * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
18859 regs_invalidated_by_call instead all call_used_reg_set registers.
18860
18861 2010-03-30 Sebastian Pop <sebastian.pop@amd.com>
18862
18863 PR middle-end/43430
18864 * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
18865 pointer comparisons with types_compatible_p.
18866 * tree-vect-stmts.c (vectorizable_call): Same.
18867 (vectorizable_condition): Same.
18868
18869 2010-03-30 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18870
18871 * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
18872 stack check if the mask would be zero.
18873
18874 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
18875 Jack Howarth <howarth@bromo.med.uc.edu>
18876
18877 * tree-profile.c (tree_init_ic_make_global_vars): Make static
18878 variables TLS.
18879
18880 2010-03-30 Joseph Myers <joseph@codesourcery.com>
18881
18882 PR other/25232
18883 * libgcc-std.ver (GCC_4.5.0): Define version. Include __unordxf2
18884 and __unordtf2.
18885 * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
18886 Include ___unordxf2 and ___unordtf2.
18887 * config/i386/libgcc-glibc.ver: Do not define inheritance from
18888 GCC_4.4.0 here.
18889
18890 2010-03-30 Tarik Graba <tarik.graba@telecom-paristech.fr>
18891
18892 * config/lm32/t-lm32: New file.
18893 * config.gcc: Use the above file when targetting lm32.
18894
18895 2010-03-28 Duncan Sands <baldrick@free.fr>
18896
18897 * Makefile.in (PLUGIN_HEADERS): Add except.h.
18898
18899 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
18900
18901 PR middle-end/43431
18902 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
18903 Improve vectorization cost model diagnostic.
18904
18905 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
18906
18907 PR middle-end/43436
18908 * tree-vect-data-refs.c (vect_analyze_data_refs): When
18909 compute_data_dependences_for_loop returns false, early exit
18910 and output an extra diagnostic for the failed data reference
18911 analysis.
18912
18913 2010-03-29 Richard Guenther <rguenther@suse.de>
18914
18915 PR tree-optimization/43560
18916 * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
18917 (can_sm_ref_p): Treat stores to readonly locations as trapping.
18918
18919 2010-03-29 Jie Zhang <jie@codesourcery.com>
18920
18921 PR 43564
18922 * toplev.c (process_options): Set optimization_default_node
18923 and optimization_current_node.
18924 * opts.c (decode_options): Don't set optimization_default_node
18925 and optimization_current_node.
18926
18927 2010-03-29 Ralf Corsépius <ralf.corsepius@rtems.org>
18928
18929 * config/rtems.h: Abandon -qrtems_debug.
18930
18931 2010-03-28 Jan Hubicka <jh@suse.cz>
18932
18933 PR tree-optimization/43505
18934 * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
18935 map should not be copied.
18936
18937 2010-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18938
18939 PR middle-end/41674
18940 * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
18941 cdtors, set DECL_PRESERVE_P.
18942 * ipa.c (cgraph_externally_visible_p): Return true if declaration
18943 should be preseved.
18944
18945 2010-03-27 Uros Bizjak <ubizjak@gmail.com>
18946
18947 PR tree-optimization/43528
18948 * stor-layout.c (place_field): Check that constant fits into
18949 unsigned HWI when skipping calculation of MS bitfield layout.
18950
18951 2010-03-27 Jan Hubicka <jh@suse.cz>
18952
18953 PR middle-end/43391
18954 * varasm.c (make_decl_rtl): Deal with COMMON flag to make
18955 notice_global_symbol work.
18956
18957 2010-03-27 Jakub Jelinek <jakub@redhat.com>
18958
18959 * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
18960 instead of dwarf2out_decl.
18961 (struct var_loc_node): Remove section_label field.
18962 (dwarf2out_function_decl): New function.
18963 (dwarf2out_var_location): Don't set section_label field.
18964 (dwarf2out_begin_function): Don't empty decl_loc_table here.
18965
18966 2010-03-26 Michael Meissner <meissner@linux.vnet.ibm.com>
18967
18968 PR tree-optimization/43544
18969 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
18970 First argument for builtin vectorized function hook is now a
18971 tree to be able to distinguish between machine specific and
18972 standard builtins.
18973 * targhooks.c (default_builtin_vectorized_function): Ditto.
18974 * targhooks.h (default_builtin_vectorized_function): Ditto.
18975 * target.h (struct gcc_target): Ditto.
18976 * tree-vect-stmts.c (vectorizable_function): Ditto.
18977 * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
18978 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
18979 Ditto.
18980
18981 2010-03-26 Joseph Myers <joseph@codesourcery.com>
18982
18983 PR c/43381
18984 * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
18985 nested binding iff it is a FUNCTION_DECL.
18986 (store_parm_decls_newstyle): Pass nested=true to bind for
18987 FUNCTION_DECLs amongst parameters.
18988
18989 2010-03-26 Jakub Jelinek <jakub@redhat.com>
18990
18991 * var-tracking.c (vt_expand_loc_callback): Don't run
18992 cselib_expand_value_rtx_cb in dummy mode if
18993 cselib_dummy_expand_value_rtx_cb returned false.
18994
18995 * var-tracking.c (emit_note_insn_var_location): For one part
18996 notes with offset 0, don't add EXPR_LIST around the location.
18997 * dwarf2out.c (loc_descriptor, dw_loc_list_1,
18998 add_location_or_const_value_attribute): Adjust for that change.
18999
19000 PR debug/43540
19001 * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
19002 into first operand and location into second.
19003 (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
19004 dw_cfi_oprnd_loc for DW_CFA_expression.
19005 (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
19006 (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
19007 assume first argument is regnum and second argument is location.
19008
19009 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
19010
19011 PR target/42113
19012 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
19013 of scratch register to DImode. Split to DImode comparison operator.
19014 Use SImode subreg of scratch register in the multiplication.
19015 (*cmp_sadd_sidi): Ditto.
19016 (*cmp_ssub_si): Ditto.
19017 (*cmp_ssub_sidi): Ditto.
19018
19019 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
19020
19021 PR target/43524
19022 * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
19023 Remove invalid assert and wrong comment.
19024
19025 2010-03-26 Jakub Jelinek <jakub@redhat.com>
19026
19027 PR debug/43516
19028 * flags.h (final_insns_dump_p): New extern.
19029 * final.c (final_insns_dump_p): New variable.
19030 (rest_of_clean_state): Set it before -fdump-final-insns=
19031 dumping, clear afterwards.
19032 * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
19033 MEM_ALIAS_SET on MEMs.
19034
19035 2010-03-26 David S. Miller <davem@davemloft.net>
19036
19037 * configure.ac: Fix sparc GOTDATA_OP bug check.
19038 * configure: Rebuild.
19039
19040 2010-03-26 Alan Modra <amodra@gmail.com>
19041
19042 * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
19043
19044 2010-03-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19045
19046 * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
19047 TLS_SECTION_ASM_FLAG.
19048
19049 2010-03-25 Jakub Jelinek <jakub@redhat.com>
19050
19051 PR bootstrap/43511
19052 * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
19053 Clear first_function_block_is_cold.
19054
19055 PR c/43385
19056 * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
19057 argument if the argument is truth_value_p.
19058
19059 2010-03-24 Michael Meissner <meissner@linux.vnet.ibm.com>
19060
19061 * config/rs6000/constraints.md: Update copyright year for my changes.
19062
19063 PR target/43484
19064 * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
19065 used in reg+reg addressing, swap registers.
19066
19067 2010-03-24 Jakub Jelinek <jakub@redhat.com>
19068
19069 PR debug/43293
19070 * target.h (struct gcc_target): Add code_end hook.
19071 * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
19072 if not yet defined.
19073 (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
19074 * toplev.c (compile_file): Call targetm.asm_out.code_end
19075 hook before unwind info/debug info output.
19076 * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
19077 * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
19078 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19079 * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
19080 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19081 * config/i386/i386.c (ix86_file_end): Renamed to...
19082 (ix86_code_end): ... this. Make static. Don't call
19083 file_end_indicate_exec_stack. Emit unwind info using
19084 final_start_function/final_end_function.
19085 (darwin_x86_file_end): Remove.
19086 (TARGET_ASM_CODE_END): Define.
19087 * config/i386/i386.h (TARGET_ASM_FILE_END,
19088 NEED_INDICATE_EXEC_STACK): Don't define.
19089 * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
19090 (TARGET_ASM_FILE_END): Define to darwin_file_end.
19091 * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
19092 * doc/tm.texi (TARGET_ASM_CODE_END): Document.
19093
19094 PR target/43498
19095 * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
19096 at the beginning and final_end_function at the end.
19097 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
19098
19099 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19100
19101 * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
19102 and Sun as TLS syntax.
19103 (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
19104 * configure: Regenerate.
19105 * config.in: Regenerate.
19106 * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
19107 (default_elf_asm_named_section): Use it.
19108 * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
19109 (i386_output_dwarf_dtprel): Likewise.
19110 (output_addr_const_extra): Likewise.
19111 (output_pic_addr_const): Lowercase @GOTTPOFF.
19112 (output_addr_const_extra): Likewise.
19113 (output_pic_addr_const): Lowercase @GOTNTPOFF.
19114 (output_addr_const_extra): Likewise.
19115 (output_pic_addr_const): Lowercase @INDNTPOFF.
19116 (output_addr_const_extra): Likewise.
19117 (output_pic_addr_const): Lowercase @NTPOFF.
19118 (output_addr_const_extra): Likewise.
19119 (output_pic_addr_const): Lowercase @TPOFF.
19120 (output_addr_const_extra): Likewise.
19121 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
19122 (*tls_global_dynamic_64): Likewise.
19123 (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
19124 (*tls_local_dynamic_base_64): Lowercase @TLSLD.
19125
19126 * defaults.h (TLS_COMMON_ASM_OP): Provide default.
19127 (ASM_OUTPUT_TLS_COMMON): Use it.
19128 * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
19129
19130 PR target/38118
19131 * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
19132 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
19133 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
19134 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
19135 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19136 (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
19137
19138 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19139
19140 * config/i386/i386.c (override_options): Don't accept
19141 -mtls-dialect=sun any longer.
19142 * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
19143 * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
19144 (*tls_local_dynamic_base_32_sun): Likewise.
19145 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19146
19147 2010-03-24 Jakub Jelinek <jakub@redhat.com>
19148
19149 PR debug/43508
19150 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
19151 VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
19152
19153 PR debug/43479
19154 * ira.c (adjust_cleared_regs): New function.
19155 (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
19156
19157 PR debug/19192
19158 PR debug/43479
19159 * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
19160 from gimple_block.
19161 * expr.c (expand_expr_real): Restore previous
19162 curr_insn_source_location and curr_insn_block after
19163 expand_expr_real_1 call.
19164 (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
19165 instead of expand_expr_real_1.
19166
19167 2010-03-23 Vladimir Makarov <vmakarov@redhat.com>
19168
19169 PR rtl-optimization/43413
19170 * ira-color.c (setup_allocno_available_regs_num): Count prohibited
19171 hard regs too.
19172
19173 2010-03-22 James E. Wilson <wilson@codesourcery.com>
19174
19175 PR target/43348
19176 * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
19177 call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
19178
19179 2010-03-22 H.J. Lu <hongjiu.lu@intel.com>
19180
19181 * config/i386/i386.c (ix86_target_string): Add -mfma.
19182 Fix a typo in comment.
19183
19184 2010-03-22 Mike Stump <mikestump@comcast.net>
19185
19186 PR target/23071
19187 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
19188 Don't overly align based upon packed packed fields.
19189
19190 2010-03-22 Jason Merrill <jason@redhat.com>
19191
19192 * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
19193 Use () rather than [], and move before the element type.
19194
19195 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19196
19197 * doc/configfiles.texi (Configuration Files): Removed
19198 fixinc/Makefile*, intl/Makefile.*.
19199 * doc/makefile.texi: Fixed markup. Abstract from version
19200 control system used.
19201 (Makefile): Removed obsolete gcc/java/parse.y example.
19202 * doc/sourcebuild.texi: Likewise.
19203 (Top Level): Added config, gnattools, libdecnumber, libgcc,
19204 libgomp, libssp. Removed fastjar.
19205 (Miscellaneous Docs): Clarify location.
19206 Added COPYING3, COPYING3.LIB.
19207 (Front End Directory): Moved Make-lang.in entry to new subsubsection.
19208
19209 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19210
19211 PR target/38085
19212 * config/i386/i386.c (x86_function_profiler)
19213 [!NO_PROFILE_COUNTERS]: Fix typo.
19214 * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
19215 instead of callq.
19216
19217 2010-03-22 Janis Johnson <janis187@us.ibm.com>
19218 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19219
19220 * doc/sourcebuild.texi (Test Directives): Split into six
19221 subsections, with most of the current text in new subsections
19222 Directives, Selectors, and Final Actions.
19223 (Directives): Split list of test directives into multiple
19224 subsubsections.
19225 (Selectors): Describe use and syntax of selectors.
19226 (Effective-Target Keywords): Describe all existing keywords.
19227 (Add Options): Describe features for dg-add-options.
19228 (Require Support): Describe variants of dg-require-support.
19229 (Final Actions): Describe commands to use in dg-final.
19230
19231 2010-03-22 Michael Matz <matz@suse.de>
19232
19233 PR middle-end/43475
19234 * recog.c (validate_replace_rtx_group): Replace also in
19235 REG_EQUAL and REG_EQUIV notes.
19236
19237 2010-03-22 Richard Guenther <rguenther@suse.de>
19238
19239 PR tree-optimization/43390
19240 * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
19241 sure vector extracts are type correct.
19242
19243 2010-03-22 Richard Guenther <rguenther@suse.de>
19244
19245 PR middle-end/40106
19246 * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
19247 x * sqrt (x) even when optimizing for size if the target
19248 has native support for sqrt.
19249
19250 2010-03-22 Jakub Jelinek <jakub@redhat.com>
19251
19252 * varasm.c (make_decl_rtl_for_debug): Also clear
19253 flag_mudflap for the duration of make_decl_rtl call.
19254
19255 PR debug/43443
19256 * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
19257 locs from preserved VALUEs.
19258
19259 2010-03-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19260
19261 PR middle-end/42718
19262 * pa.md (movmemsi): Set align to one if zero.
19263 (movmemdi): Likewise.
19264
19265 2010-03-21 Richard Earnshaw <rearnsha@arm.com>
19266
19267 PR target/42321
19268 * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
19269 with their corresponding prologue pushes.
19270
19271 2010-03-20 Andrew Pinski <pinskia@gmail.com>
19272
19273 PR target/43156
19274 * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
19275 at the begining or end.
19276 (spu_expand_epilogue): Likewise.
19277
19278 2010-03-20 Richard Guenther <rguenther@suse.de>
19279
19280 PR rtl-optimization/43438
19281 * combine.c (make_extraction): Properly zero-/sign-extend an
19282 extraction of the low part of a CONST_INT. Also handle
19283 CONST_DOUBLE.
19284
19285 2010-03-19 Mike Stump <mikestump@comcast.net>
19286
19287 * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
19288 * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
19289 (override_options): Use SUBTARGET32_DEFAULT_CPU.
19290
19291 2010-03-19 Andrew Pinski <andrew_pinski@caviumnetworks.com>
19292
19293 PR c/43211
19294 * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
19295 an error.
19296
19297 2010-03-19 Bernd Schmidt <bernds@codesourcery.com>
19298
19299 PR rtl-optimization/42258
19300 * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
19301 use that may match DEF.
19302
19303 PR target/40697
19304 * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
19305 the cost of loading the constant rather than assuming
19306 COSTS_N_INSNS (1).
19307 * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
19308 outer code is AND, do the same tests as the andsi3 expander and
19309 return COSTS_N_INSNS (1) if and is cheap.
19310
19311 * optabs.c (avoid_expensive_constant): Fix formatting.
19312
19313 2010-03-19 Michael Matz <matz@suse.de>
19314
19315 PR c++/43116
19316 * attribs.c (decl_attributes): When rebuilding a function pointer
19317 type use the same qualifiers as the original pointer type.
19318
19319 2010-03-19 Martin Jambor <mjambor@suse.cz>
19320
19321 * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
19322 and is_gimple_ip_invariant_address.
19323
19324 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19325
19326 Revert
19327 2009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19328
19329 * config/arm/arm.c (arm_override_options): Turn off
19330 flag_dwarf2_cfi_asm for AAPCS variants.
19331
19332 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19333
19334 PR target/43399
19335 * config/arm/arm.c (emit_multi_reg_push): Update comments.
19336 Use PRE_MODIFY instead of PRE_DEC.
19337 (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
19338 (vfp_emit_fstmd): Likewise.
19339
19340 2010-03-19 Michael Matz <matz@suse.de>
19341
19342 PR target/43305
19343 * builtins.c (expand_builtin_interclass_mathfn,
19344 expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
19345 if that fails.
19346
19347 2010-03-19 Richard Guenther <rguenther@suse.de>
19348
19349 PR tree-optimization/43415
19350 * tree-ssa-pre.c (phi_translate): Split out worker to ...
19351 (phi_translate_1): ... this.
19352 (phi_translate): Move all caching here. Cache all NARY
19353 and REFERENCE translations.
19354
19355 2010-03-19 David S. Miller <davem@davemloft.net>
19356
19357 With help from Eric Botcazou.
19358 * config/sparc/sparc.c: Include dwarf2out.h.
19359 (emit_pic_helper): Delete.
19360 (pic_helper_symbol_name): Delete.
19361 (pic_helper_emitted_p): Delete.
19362 (pic_helper_needed): New.
19363 (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
19364 (get_pc_thunk_name): New.
19365 (load_pic_register): Remove 'delay_pic_helper' arg. Use
19366 get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
19367 Set pic_helper_needed to true. Don't call emit_pic_helper.
19368 (sparc_expand_prologue): Update load_pic_register call.
19369 (sparc_output_mi_thunk): Likewise.
19370 (sparc_file_end): Emit a hidden comdat symbol for the PIC
19371 thunk if possible. Output CFI information as needed.
19372
19373 2010-03-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
19374 Jack Howarth <howarth@bromo.med.uc.edu>
19375
19376 PR target/36399
19377 * config/i386/i386.h: Fix ABI on darwin x86-32.
19378
19379 2010-03-18 Aldy Hernandez <aldyh@redhat.com>
19380
19381 * tree.h: Declare make_decl_rtl_for_debug.
19382 * varasm.c (make_decl_rtl_for_debug): New.
19383 * dwarf2out.c (rtl_for_decl_location): Call it.
19384 * cfgexpand.c (expand_debug_expr): Call it.
19385
19386 2010-03-18 Jakub Jelinek <jakub@redhat.com>
19387
19388 PR bootstrap/43399
19389 * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
19390 mem_mode.
19391
19392 PR bootstrap/43403
19393 * var-tracking.c (vt_init_cfa_base): Do nothing if
19394 cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
19395
19396 2010-03-18 Alexandre Oliva <aoliva@redhat.com>
19397
19398 PR debug/42873
19399 * var-tracking.c (canonicalize_vars_star): New.
19400 (dataflow_post_merge_adjust): Use it.
19401
19402 2010-03-18 Jakub Jelinek <jakub@redhat.com>
19403
19404 PR debug/43058
19405 * var-tracking.c (non_suitable_const): New function.
19406 (add_uses): For DEBUG_INSNs with constants, don't record any
19407 value, instead just the constant value itself.
19408 (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
19409 is not VAR_LOC_UNKNOWN_P, set var to the constant.
19410 (emit_notes_in_bb): Likewise.
19411 (emit_note_insn_var_location): For onepart variables if
19412 cur_loc is a VOIDmode constant, use DECL_MODE.
19413
19414 2010-03-18 Martin Jambor <mjambor@suse.cz>
19415
19416 PR middle-end/42450
19417 * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
19418 * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
19419 all non-clones. Moved call redirection...
19420 (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
19421 (cgraph_materialize_all_clones): Dispose of all
19422 combined_args_to_skip bitmaps.
19423 (verify_cgraph_node): Do not check for edges pointing to wrong
19424 nodes in inline clones.
19425 * tree-inline.c (copy_bb): Call
19426 cgraph_redirect_edge_call_stmt_to_callee.
19427 * ipa.c (cgraph_remove_unreachable_nodes): Call
19428 cgraph_node_remove_callees even when there are used clones.
19429
19430 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
19431
19432 * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
19433
19434 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
19435
19436 PR target/43383
19437 * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
19438 for 32bit.
19439
19440 2010-03-18 Michael Matz <matz@suse.de>
19441
19442 PR middle-end/43419
19443 * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
19444 into sqrt(x) if we need to preserve signed zeros.
19445
19446 2010-03-18 Steven Bosscher <steven@gcc.gnu.org>
19447 Eric Botcazou <ebotcazou@adacore.com>
19448
19449 PR rtl-optimization/43360
19450 * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
19451 note if we don't know its invariant status.
19452
19453 2010-03-18 Michael Matz <matz@suse.de>
19454
19455 PR tree-optimization/43402
19456 * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
19457 PHI chains of ssa names registered for update.
19458
19459 2010-03-17 Peter Bergner <bergner@vnet.ibm.com>
19460
19461 PR target/42427
19462 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
19463 non-offsettable and pre_modify update addressing.
19464 * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
19465 and "2" alternatives "#".
19466 (*movdd_softfloat32): Make all alternatives "#";
19467 * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
19468 (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
19469 (*movdf_softfloat32): Make all alternatives "#";
19470 (movdi): Use the new DIFD mode iterator to create a common splitter
19471 for movdi, movdf and movdd patterns.
19472
19473 2010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
19474
19475 * common.opt (dumpdir): Remove redundant tab.
19476
19477 2010-03-17 Martin Jambor <mjambor@suse.cz>
19478
19479 PR tree-optimization/43347
19480 * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
19481 original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
19482
19483 2010-03-17 Bernd Schmidt <bernd.schmidt@analog.com>
19484
19485 PR rtl-optimization/42216
19486 * regrename.c (create_new_chain): New function, broken out from...
19487 (scan_rtx_reg): ... here. Call it. Handle the case where we are
19488 appending a use to an empty chain.
19489 (build_def_use): Remove previous changes that convert OP_INOUT to
19490 OP_OUT operands; instead detect the case where an OP_INOUT operand
19491 uses a previously untracked register and create an empty chain for it.
19492
19493 2010-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19494
19495 * doc/extend.texi (Function Attributes): Rewrite unfinished
19496 sentence in ms_abi documentation.
19497
19498 2010-03-17 Alan Modra <amodra@gmail.com>
19499
19500 * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
19501 * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
19502 (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
19503 * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
19504
19505 2010-03-16 Richard Henderson <rth@redhat.com>
19506
19507 PR middle-end/43365
19508 * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
19509 (lower_try_finally): Save and restore eh_seq around the expansion
19510 of the try-finally.
19511
19512 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
19513
19514 * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
19515 statements before splitting block.
19516
19517 2010-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19518
19519 * doc/sourcebuild.texi (Testsuites): Fix markup.
19520 Use pathnames relative to gcc/testsuite.
19521 (Test Directives): Move description of how timeout is determined.
19522 (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
19523 (C Tests): Correct gcc.misc-tests directory.
19524 Framework tests now live in gcc.test-framework.
19525
19526 2010-03-16 Richard Guenther <rguenther@suse.de>
19527
19528 PR middle-end/43379
19529 * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
19530 operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
19531
19532 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
19533 Alexandre Oliva <aoliva@redhat.com>
19534
19535 PR tree-optimization/42917
19536 * lambda-code.c (remove_iv): Skip debug statements.
19537 (lambda_loopnest_to_gcc_loopnest): Likewise.
19538 (not_interesting_stmt): Debug statements are not interesting.
19539
19540 2010-03-16 Jakub Jelinek <jakub@redhat.com>
19541
19542 PR debug/43051
19543 PR debug/43092
19544 * cselib.c (cselib_preserve_constants,
19545 cfa_base_preserved_val): New static variables.
19546 (preserve_only_constants): New function.
19547 (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
19548 clear its REG_VALUES. If cselib_preserve_constants, don't
19549 empty the whole hash table, but preserve there VALUEs with constants,
19550 cfa_base_preserved_val and cfa_base_preserved_val plus constant.
19551 (cselib_preserve_cfa_base_value): New function.
19552 (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
19553 (cselib_init): Change argument to int bitfield. Set
19554 cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
19555 is in it.
19556 (cselib_finish): Clear cselib_preserve_constants and
19557 cfa_base_preserved_val.
19558 * cselib.h (enum cselib_record_what): New enum.
19559 (cselib_init): Change argument to int.
19560 (cselib_preserve_cfa_base_value): New prototype.
19561 * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
19562 * dse.c (dse_step1): Likewise.
19563 * cfgcleanup.c (thread_jump): Likewise.
19564 * sched-deps.c (sched_analyze): Likewise.
19565 * gcse.c (local_cprop_pass): Likewise.
19566 * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
19567 If FN is non-NULL, call the callback always and whenever it returns
19568 non-NULL just return that. Only do rtx_equal_p if FN is NULL.
19569 * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
19570 * combine.c (propagate_for_debug_subst): Add old_rtx argument,
19571 compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
19572 * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
19573 * var-tracking.c: Include recog.h.
19574 (bb_stack_adjust_offset): Remove.
19575 (vt_stack_adjustments): Don't call it, instead just gather the
19576 adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
19577 (adjust_stack_reference): Remove.
19578 (compute_cfa_pointer): New function.
19579 (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
19580 (struct adjust_mem_data): New type.
19581 (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
19582 functions.
19583 (get_address_mode): New function.
19584 (replace_expr_with_values): Use it.
19585 (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
19586 Use get_address_mode. For cfa_base_rtx return MO_CLOBBER.
19587 (adjust_sets): Remove.
19588 (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
19589 Use get_address_mode.
19590 (get_adjusted_src): Remove.
19591 (add_stores): Don't call it. Never reuse expr SET. Don't add extra
19592 MO_VAL_USE for cfa_base_rtx plus constant. Use get_address_mode.
19593 (add_with_sets): Don't call adjust_sets.
19594 (fp_setter, vt_init_cfa_base): New functions.
19595 (vt_initialize): Change return type to bool. Move most of pool etc.
19596 initialization to the beginning of the function from end. Pass
19597 CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
19598 If !frame_pointer_needed, call vt_stack_adjustment before mos
19599 vector is filled, call vt_init_cfa_base if argp/framep has been
19600 eliminated to sp. If frame_pointer_needed and argp/framep has
19601 been eliminated to hard frame pointer, set
19602 hard_frame_pointer_adjustment and call vt_init_cfa_base after
19603 encountering fp setter in the prologue. For MO_ADJUST, call
19604 log_op_type before pusing the op into mos vector, not afterwards.
19605 Call adjust_insn before cselib_process_insn/add_with_sets,
19606 call cancel_changes (0) afterwards.
19607 (variable_tracking_main_1): Adjust for vt_initialize calling
19608 vt_stack_adjustments and returning whether it succeeded or not.
19609
19610 2010-03-15 Aldy Hernandez <aldyh@redhat.com>
19611
19612 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
19613 debug statements.
19614
19615 2010-03-15 Jakub Jelinek <jakub@redhat.com>
19616
19617 * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
19618 has been set.
19619 (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
19620 drap_reg has not been set.
19621
19622 2010-03-15 Michael Matz <matz@suse.de>
19623
19624 PR middle-end/43300
19625 * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
19626 use it to expand block copies.
19627 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
19628 insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
19629 (insert_value_copy_on_edge): Use store_expr for BLKmode values.
19630
19631 2010-03-15 Richard Guenther <rguenther@suse.de>
19632
19633 PR tree-optimization/43367
19634 * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
19635 elimination check.
19636
19637 2010-03-15 Richard Guenther <rguenther@suse.de>
19638
19639 PR tree-optimization/43317
19640 * ipa-struct-reorg.c (create_new_general_access): Update stmt.
19641
19642 2010-03-15 Martin Jambor <mjambor@suse.cz>
19643
19644 PR tree-optimization/43141
19645 * tree-sra.c (create_abstract_origin): New function.
19646 (modify_function): Call create_abstract_origin.
19647
19648 2010-03-15 Chris Demetriou <cgd@google.com>
19649
19650 * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
19651 wasn't copied.
19652
19653 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19654
19655 PR middle-end/43354
19656 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
19657 call insert_out_of_ssa_copy for default definitions.
19658
19659 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19660
19661 * graphite-clast-to-gimple.c (my_long_long): Defined.
19662 (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
19663 * graphite-sese-to-poly.c (my_long_long): Defined.
19664 (scop_ivs_can_be_represented): Use it.
19665
19666 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19667
19668 * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
19669 graphite-max-bbs-per-function, and loop-block-tile-size.
19670 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
19671 with "maximum".
19672 (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
19673
19674 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19675
19676 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
19677 forward declaration.
19678 * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
19679 (add_upper_bounds_from_estimated_nit): New.
19680 (build_loop_iteration_domains): Use it.
19681
19682 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19683
19684 * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
19685
19686 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19687
19688 PR middle-end/43306
19689 * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
19690 should be an INTEGER_CST. Also handle CASE_CONVERT.
19691
19692 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19693
19694 * graphite.c (graphite_initialize): To bound the number of bbs per
19695 function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
19696 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
19697 * doc/invoke.texi: Document it.
19698
19699 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19700
19701 * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
19702 * graphite-sese-to-poly.h (build_poly_scop): Same.
19703
19704 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19705
19706 * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
19707 the number of parameters in the scop. Use as an upper bound
19708 PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
19709 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
19710 * doc/invoke.texi: Document it.
19711
19712 2010-03-13 Jerry Quinn <jlquinn@optonline.net>
19713
19714 * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
19715 * doc/c-tree.texi: Remove.
19716 * doc/generic.texi: Merge c-tree.texi here.
19717 * doc/gccint.texi (Trees): Remove menu entry.
19718 (c-tree.texi): Remove @include.
19719 * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
19720 * doc/languages.texi (Reading RTL): Ditto.
19721
19722 2010-03-12 Steve Ellcey <sje@cup.hp.com>
19723
19724 PR target/42869
19725 * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
19726
19727 2010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
19728
19729 PR middle-end/42431
19730 * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
19731 code added to work around reload clobbering CONST insns.
19732
19733 2010-03-12 Jakub Jelinek <jakub@redhat.com>
19734
19735 * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
19736 (cselib_preserve_definitely, cselib_clear_preserve): Remove.
19737 (cselib_preserve_only_values): Remove retain argument, don't
19738 traverse hash table with cselib_{preserve_definitely,clear_preserve}.
19739 * cselib.h (cselib_preserve_only_values): Remove retain argument.
19740 * var-tracking.c (micro_operation): Move insn field before union.
19741 Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
19742 (struct variable_tracking_info_def): Remove n_mos field, change
19743 mos into a vector of micro_operations.
19744 (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
19745 (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
19746 compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
19747 changing into a vector.
19748 (add_with_sets): Likewise. Ensure MO_VAL_USE uops from add_stores
19749 come before all other uops generated by add_stores.
19750 (vt_add_function_parameters): Adjust for cselib_preserve_only_values
19751 argument removal.
19752 (vt_initialize): Likewise. Adjust for VTI (bb)->mos changing into
19753 a vector. Run just one pass over the bbs instead of separate counting
19754 and computation phase.
19755 (vt_finalize): Free VTI (bb)->mos vector instead of array.
19756
19757 PR debug/43329
19758 * tree-inline.c (remap_decls): Put old_var rather than origin_var
19759 into *nonlocalized_list vector.
19760 * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
19761 even if origin is non-NULL.
19762 (gen_variable_die): Likewise.
19763 (process_scope_var): Don't change origin.
19764 (gen_decl_die): Likewise.
19765 * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
19766 before adding new edges instead of after it, fix moving over
19767 debug stmts.
19768
19769 2010-03-11 David S. Miller <davem@davemloft.net>
19770
19771 * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
19772 of four.
19773 * configure: Rebuild.
19774
19775 2010-03-11 Martin Jambor <mjambor@suse.cz>
19776
19777 PR tree-optimization/43257
19778 * tree.c (assign_assembler_name_if_neeeded): New function.
19779 (free_lang_data_in_cgraph): Assembler name assignment moved to the
19780 above new function.
19781 * tree.h (assign_assembler_name_if_neeeded): Declare.
19782 * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
19783 the function if needed.
19784
19785 2010-03-11 Chris Demetriou <cgd@google.com>
19786
19787 * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
19788 include/stdint-gcc.h, and include/stdint.h world-readable.
19789
19790 2010-03-11 Richard Guenther <rguenther@suse.de>
19791
19792 PR tree-optimization/43255
19793 * tree-vrp.c (process_assert_insertions_for): Do not insert
19794 asserts for trivial conditions.
19795
19796 2010-03-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19797
19798 PR tree-optimization/43280
19799 * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
19800 generation. Move calculation of size out of the if branch.
19801 (find_bswap): Modify compare number generation.
19802
19803 2010-03-11 Richard Guenther <rguenther@suse.de>
19804
19805 PR lto/43200
19806 * lto-streamer-in.c (maybe_fixup_decls): Simplify.
19807 (input_gimple_stmt): Fixup handled component types during
19808 operand read. Also fix up decls in ADDR_EXPRs.
19809
19810 2010-03-10 Eric Botcazou <ebotcazou@adacore.com>
19811
19812 * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
19813 * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
19814
19815 2010-03-10 Jan Hubicka <jh@suse.cz>
19816
19817 PR c/43288
19818 * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
19819 * varasm.c (get_variable_section): Don't do that here...
19820 (make_decl_rtl): ... and here.
19821 (do_assemble_alias): Produce decl RTL.
19822 (assemble_alias): Likewise.
19823
19824 2010-03-10 Jakub Jelinek <jakub@redhat.com>
19825
19826 PR debug/43290
19827 * reg-notes.def (REG_CFA_SET_VDRAP): New note.
19828 * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
19829 of fde->vdrap_reg.
19830 (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
19831 (based_loc_descr): Only express drap or vdrap regno based expressions
19832 using DW_OP_fbreg when not optimizing.
19833 * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
19834 make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
19835 REG_CFA_SET_VDRAP note.
19836
19837 2010-03-10 Alexander Monakov <amonakov@ispras.ru>
19838
19839 PR tree-optimization/43236
19840 * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
19841 error in calculation of base address in reverse iteration case.
19842 (generate_builtin): Take number of latch executions if the statement
19843 is in the latch.
19844
19845 2010-03-10 Andrey Belevantsev <abel@ispras.ru>
19846
19847 PR middle-end/42859
19848 * tree-eh.c: Include pointer-set.h.
19849 (lower_eh_dispatch): Filter out duplicate case labels and
19850 remove the unneeded edge when the label is unused. Return
19851 true when some edges are removed.
19852 (execute_lower_eh_dispatch): When any lowering resulted in
19853 removing an edge, also delete unreachable blocks.
19854
19855 2010-03-10 Jakub Jelinek <jakub@redhat.com>
19856
19857 PR bootstrap/43287
19858 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19859 UNSPEC_MACHOPIC_OFFSET.
19860
19861 2010-03-09 Andreas Schwab <schwab@linux-m68k.org>
19862
19863 PR target/43294
19864 * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
19865 (m68k_delegitimize_address): New function.
19866
19867 2010-03-09 Jakub Jelinek <jakub@redhat.com>
19868
19869 PR debug/43299
19870 * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
19871
19872 PR debug/43299
19873 * var-tracking.c (adjust_sets): New function.
19874 (count_with_sets, add_with_sets): Use it.
19875 (get_adjusted_src): New inline function.
19876 (add_stores): Use it.
19877
19878 PR debug/43304
19879 * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
19880 call cselib_dummy_expand_value_rtx_cb instead of
19881 cselib_expand_value_rtx_cb.
19882
19883 PR debug/43293
19884 * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
19885 * config/i386/i386.c: Include debug.h and dwarf2out.h.
19886 (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
19887 and .cfi_endproc around the pic thunks.
19888 (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
19889 all queued unwind info register saves are saved before the call.
19890 For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
19891 considered as sp-=4 for unwind info and the pop as sp+=4 which
19892 also clobbers dest, but doesn't actually restore it.
19893
19894 PR debug/43290
19895 * config/i386/i386.c (ix86_get_drap_rtx): Don't set
19896 RTX_FRAME_RELATED_P.
19897
19898 2010-03-09 Jie Zhang <jie@codesourcery.com>
19899
19900 * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
19901 whitespaces in output template.
19902
19903 2010-03-09 Jie Zhang <jie@codesourcery.com>
19904
19905 * ira-lives.c (check_and_make_def_use_conflict): Don't fall
19906 out array boundary.
19907
19908 2010-03-08 Jakub Jelinek <jakub@redhat.com>
19909
19910 * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
19911 builtins.exp in a separate job.
19912
19913 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19914
19915 * graphite-sese-to-poly.c (add_param_constraints): Use
19916 lower_bound_in_type and upper_bound_in_type.
19917
19918 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19919
19920 * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
19921 instead of unsigned_type_node.
19922
19923 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19924 Reza Yazdani <reza.yazdani@amd.com>
19925
19926 PR middle-end/43065
19927 * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
19928 on pointer type parameters.
19929
19930 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
19931
19932 PR middle-end/42644
19933 PR middle-end/42130
19934 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
19935 handle conversions from pointer to integers.
19936 (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
19937 induction variable, to be able to work with code generated by CLooG.
19938 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
19939 (build_poly_scop): Bail out if we cannot codegen a loop.
19940
19941 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
19942
19943 * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
19944 code generation with gloog_error.
19945
19946 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19947
19948 * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
19949 Call fold_convert on all the returned values.
19950 (expand_scalar_variables_expr): Pass to
19951 expand_scalar_variables_ssa_name the type of the resulting expression.
19952
19953 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19954
19955 * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
19956 ppl_min_for_le_pointset.
19957 Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
19958 * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
19959
19960 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19961
19962 * graphite-dependences.c (map_into_dep_poly): Removed.
19963 (dependence_polyhedron_1): Use combine_context_id_scat.
19964
19965 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19966
19967 * graphite-poly.h (struct poly_scattering): Add layout documentation.
19968 (struct poly_bb): Same.
19969 (combine_context_id_scat): New.
19970
19971 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19972
19973 PR middle-end/42326
19974 * sese.c (name_defined_in_loop_p): Return false for default
19975 definitions.
19976
19977 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19978
19979 * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
19980 and clean up the logic.
19981
19982 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19983
19984 * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
19985 early return.
19986
19987 2010-03-08 Jakub Jelinek <jakub@redhat.com>
19988
19989 * var-tracking.c (remove_cselib_value_chains): Define only for
19990 ENABLE_CHECKING.
19991 (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
19992 delete_slot_part, emit_notes_for_differences_1): Don't call
19993 remove_cselib_value_chains here.
19994 (set_slot_part, emit_notes_for_differences_2): Don't call
19995 add_cselib_value_chains here.
19996 (preserved_values): New vector.
19997 (preserve_value): New function.
19998 (add_uses, add_stores, vt_add_function_parameters): Use it
19999 instead of cselib_preserve_value.
20000 (changed_values_stack): New vector.
20001 (check_changed_vars_0): New function.
20002 (check_changed_vars_1, check_changed_vars_2): Use it.
20003 (emit_notes_for_changes): Call set_dv_changed (*, false) on all
20004 changed_values_stack VALUEs.
20005 (vt_emit_notes): For all preserved_values call
20006 add_cselib_value_chains. If ENABLE_CHECKING call
20007 remove_cselib_value_chains before verifying value_chains is empty.
20008 Initialize and free changed_values_stack.
20009 (vt_initialize): Initialize preserved_values.
20010 (vt_finalize): Free preserved_values.
20011
20012 2010-03-08 Richard Guenther <rguenther@suse.de>
20013
20014 PR tree-optimization/43269
20015 * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
20016 region detection.
20017
20018 2010-03-08 Martin Jambor <mjambor@suse.cz>
20019
20020 * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
20021 (ipa_is_param_called): Removed.
20022 * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
20023 (ipa_print_node_params): Do not print the called flag.
20024 (ipa_write_node_info): Do not stream the called flag.
20025 (ipa_read_node_info): Likewise.
20026
20027 2010-03-07 Jakub Jelinek <jakub@redhat.com>
20028
20029 PR debug/43176
20030 * Makefile.in (var-tracking.o): Depend on pointer-set.h.
20031 * cselib.c (struct expand_value_data): Add dummy field.
20032 (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
20033 dummy to false.
20034 (cselib_dummy_expand_value_rtx_cb): New function.
20035 (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
20036 any rtl.
20037 * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
20038 * var-tracking.c: Include pointer-set.h.
20039 (variable): Change n_var_parts to char from int. Add
20040 cur_loc_changed and in_changed_variables fields.
20041 (variable_canonicalize): Remove.
20042 (shared_var_p): New inline function.
20043 (unshare_variable): Maintain cur_loc_changed and
20044 in_changed_variables fields. If var was in changed_variables,
20045 replace it there with new_var. Just copy cur_loc instead of
20046 resetting it to something else.
20047 (variable_union): Don't recompute cur_loc. Use shared_var_p.
20048 (dataflow_set_union): Don't call variable_canonicalize.
20049 (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
20050 of their DEBUG_EXPR_TREE_DECLs.
20051 (canonicalize_loc_order_check): Verify that cur_loc is NULL
20052 and in_changed_variables and cur_loc_changed is false.
20053 (variable_merge_over_cur): Clear cur_loc, in_changed_variables
20054 and cur_loc_changed. Don't update cur_loc here.
20055 (variable_merge_over_src): Don't call variable_canonicalize.
20056 (dataflow_set_preserve_mem_locs): Use shared_var_p. When
20057 removing loc that is equal to cur_loc, clear cur_loc,
20058 set cur_loc_changed and ensure variable_was_changed is called.
20059 (dataflow_set_remove_mem_locs): Use shared_var_p. Only
20060 compare pointers in cur_loc check, if it is equal to loc,
20061 clear cur_loc and set cur_loc_changed. Don't recompute cur_loc here.
20062 (variable_different_p): Remove compare_current_location argument,
20063 don't compare cur_loc.
20064 (dataflow_set_different_1): Adjust variable_different_p caller.
20065 (variable_was_changed): If dv had some var in changed_variables
20066 already, reset in_changed_variables flag for it and propagate
20067 cur_loc_changed over to the new variable. On empty var
20068 always set cur_loc_changed. Set in_changed_variables on whatever
20069 var is added to changed_variables.
20070 (set_slot_part): Clear cur_loc_changed and in_changed_variables.
20071 Use shared_var_p. When removing loc that is equal to cur_loc,
20072 clear cur_loc and set cur_loc_changed. If cur_loc is NULL at the
20073 end, don't set it to something else, just call variable_was_changed.
20074 (delete_slot_part): Use shared_var_p. When cur_loc equals to
20075 loc being removed, clear cur_loc and set cur_loc_changed.
20076 Set cur_loc_changed if all locations have been removed.
20077 (struct expand_loc_callback_data): New type.
20078 (vt_expand_loc_callback): Add dummy mode in which no rtxes are
20079 allocated. Always create SUBREGs if simplify_subreg failed.
20080 Prefer to use cur_loc, when that fails and still in
20081 changed_variables (and seen first time) recompute it. Set
20082 cur_loc_changed of variables which had to change cur_loc and
20083 compute elcd->cur_loc_changed if any of the subexpressions used
20084 had to change cur_loc.
20085 (vt_expand_loc): Adjust to pass arguments in
20086 expand_loc_callback_data structure.
20087 (vt_expand_loc_dummy): New function.
20088 (emitted_notes): New variable.
20089 (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
20090 that weren't used for any other decl in current
20091 emit_notes_for_changes call call vt_expand_loc_dummy to update
20092 cur_loc. For -fno-var-tracking-assignments, set cur_loc to
20093 first loc_chain location if NULL before. Always use just
20094 cur_loc instead of first loc_chain location. When cur_loc_changed
20095 is false, when not --enable-checking=rtl just don't emit any note.
20096 When rtl checking, compute the note and assert it is the same
20097 as previous note. Clear cur_loc_changed and in_changed_variables
20098 at the end before removing from changed_variables.
20099 (check_changed_vars_3): New function.
20100 (emit_notes_for_changes): Traverse changed_vars to call
20101 check_changed_vars_3 on each changed var.
20102 (emit_notes_for_differences_1): Clear cur_loc_changed and
20103 in_changed_variables. Recompute cur_loc of new_var.
20104 (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
20105 (vt_emit_notes): Initialize and destroy emitted_notes.
20106
20107 2010-03-07 Bernd Schmidt <bernd.schmidt@analog.com>
20108
20109 PR rtl-optimization/42220
20110 * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
20111 Use verify_reg_tracked to determine if we should use OP_OUT rather
20112 than OP_INOUT.
20113 (build_def_use): If we see an in-out operand for a register that we
20114 know nothing about, treat is an output if possible, fail the block if
20115 not.
20116
20117 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
20118
20119 PR debug/42897
20120 * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
20121 permanently.
20122
20123 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
20124
20125 PR debug/42897
20126 * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
20127 uses of relevant DEFs that are dead outside the loop too.
20128
20129 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
20130
20131 * var-tracking.c (dataflow_set_merge): Swap src and src2.
20132 Reverted:
20133 2010-01-13 Jakub Jelinek <jakub@redhat.com>
20134 PR debug/41371
20135 * var-tracking.c (values_to_unmark): New variable.
20136 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
20137 values_to_unmark vector. Moved body to...
20138 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
20139 instead queue it into values_to_unmark vector.
20140 (vt_find_locations): Free values_to_unmark vector.
20141
20142 2010-03-05 Eric Botcazou <ebotcazou@adacore.com>
20143
20144 * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
20145 (site.exp): Export them when plugins are enabled.
20146
20147 2010-03-05 Sebastian Pop <sebastian.pop@amd.com>
20148
20149 PR middle-end/42326
20150 * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
20151 that contain scevs.
20152 (chrec_fold_multiply): Same.
20153
20154 2010-03-04 Andrew Pinski <andrew_pinski@caviumnetworks.com>
20155
20156 PR c/43248
20157 * c-decl.c (build_compound_literal): Return early if init is
20158 an error_mark_node.
20159
20160 2010-03-04 Martin Jambor <mjambor@suse.cz>
20161
20162 PR tree-optimization/43164
20163 PR tree-optimization/43191
20164 * tree-sra.c (type_consists_of_records_p): Reject records with
20165 zero-size bit-fields at the end.
20166
20167 2010-03-04 Mike Stump <mikestump@comcast.net>
20168
20169 * Makefile.in (TAGS): Remove *.y.
20170
20171 2010-03-04 Richard Guenther <rguenther@suse.de>
20172
20173 PR tree-optimization/40761
20174 * tree-ssa-pre.c (compute_antic): Walk reverse postorder
20175 in reverse order.
20176 (my_rev_post_order_compute): New function.
20177 (init_pre): Call it.
20178
20179 2010-03-04 Changpeng Fang <changpeng.fang@amd.com>
20180
20181 PR middle-end/43209
20182 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
20183 decrease the cost of an IV candidate when the cost is infinite.
20184
20185 2010-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20186
20187 * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
20188 Use '3DNow!' for the extension of that name, ensure normal space
20189 after the string.
20190 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
20191
20192 2010-03-03 Jeff Law <law@redhat.com>
20193
20194 * PR middle-end/32693
20195 * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
20196 than gen_rtx_SUBREG.
20197 (extract_bit_field_1): Likewise.
20198
20199 2010-03-03 Janis Johnson <janis187@us.ibm.com>
20200
20201 * doc/sourcebuild.texi (Test directives): Document that arguments
20202 include-opts and exclude-opts are now optional for dg-skip-if,
20203 dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
20204
20205 2010-03-03 Jason Merrill <jason@redhat.com>
20206
20207 PR c++/12909
20208 * cgraph.h (varpool_node): Add extra_name field.
20209 * varpool.c (varpool_extra_name_alias): New.
20210 (varpool_assemble_decl): Emit extra name aliases.
20211 (varpool_mark_needed_node): Look past an extra name alias.
20212 * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
20213 * lto-streamer-in.c (lto_input_tree): Read it.
20214 * lto-streamer-out.c (output_unreferenced_globals): Write it.
20215
20216 2010-03-03 Eric Botcazou <ebotcazou@adacore.com>
20217
20218 * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
20219 (sparc*-*-solaris2*): ...this.
20220
20221 2010-03-03 Jakub Jelinek <jakub@redhat.com>
20222
20223 PR debug/43229
20224 * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
20225 WIDEN_MULT_EXPR and WIDEN_SUM_EXPR. Return NULL without
20226 ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
20227 FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
20228
20229 PR debug/43237
20230 * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
20231 fallthrough to default handling, just with want_address 0 instead of 2.
20232 For single element lists, add_AT_loc directly, otherwise create an
20233 artificial variable DIE and stick location list to it.
20234
20235 PR debug/43177
20236 * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
20237 (VAL_EXPR_HAS_REVERSE): Define.
20238 (reverse_op): New function.
20239 (add_stores): For reversible operations add an extra MO_VAL_USE.
20240
20241 2010-03-02 Jason Merrill <jason@redhat.com>
20242
20243 * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
20244
20245 2010-03-02 Eric Botcazou <ebotcazou@adacore.com>
20246
20247 * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
20248 (sparc64-*-linux*): Likewise.
20249 (sparc64-*-solaris2*): Include assembler files before linker ones.
20250 (sparc-*-solaris2*): Simplify and reorder to match previous case.
20251 * config/sparc/gas.h: Delete.
20252 * config/sparc/sol2-64.h: Add copyright notice.
20253 * config/sparc/sol2-gas-bi.h: Likewise.
20254 * config/sparc/sol2-gld.h: Likewise.
20255 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
20256 * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
20257 * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
20258 * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
20259 (sparc_elf_asm_named_section): Rename into...
20260 (sparc_solaris_elf_asm_named_section): ...this. Always define.
20261
20262 2010-03-02 Uros Bizjak <ubizjak@gmail.com>
20263
20264 * config/alpha/alpha.c (override_options): Fix -mtune error message.
20265
20266 2010-03-02 Jeff Law <law@redhat.com>
20267
20268 PR middle-end/42431
20269 * reload1.c (rtx_p, substitute_stack): Declare.
20270 (substitute): Record addresses of changed rtxs.
20271 (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
20272 Restore the original rtx when complete.
20273 (reload): Free subsitute_stack when complete.
20274
20275 2010-03-02 Janis Johnson <janis187@us.ibm.com>
20276
20277 * doc/gccint.texi (menu): Add Testsuites as a chapter.
20278 * doc/sourcebuild.texi (Testsuites): Move up a level to be a
20279 new chapter.
20280 (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
20281 LTO Testing, gcov Testing, profopt Testing, compat Testing,
20282 Torture Tests): Change from subsection to section.
20283
20284 2010-03-02 Jakub Jelinek <jakub@redhat.com>
20285 Steven Bosscher <steven@gcc.gnu.org>
20286
20287 * var-tracking.c (vt_initialize): Scan insns in ebb chunks
20288 instead of bb.
20289
20290 2010-03-02 Reza Yazdani <reza.yazdani@amd.com>
20291
20292 PR middle-end/42640
20293 * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
20294 the assignment from the new induction variable to the assignment
20295 of the value from the original loop PHI function.
20296
20297 2010-03-01 Janis Johnson <janis187@us.ibm.com>
20298 Daniel Jacobowitz <dan@codesourcery.com>
20299
20300 * doc/sourcebuild.texi (Test directives): Clarify options to
20301 dg-skip-if.
20302
20303 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20304
20305 * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
20306 Disable cfi directives unless GCC and gas agree on using read-only
20307 .eh_frame sections for 64-bit.
20308 * configure: Regenerate.
20309
20310 2010-03-01 Richard Guenther <rguenther@suse.de>
20311
20312 PR tree-optimization/43220
20313 * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
20314 BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
20315
20316 2010-03-01 Richard Guenther <rguenther@suse.de>
20317 Martin Jambor <mjambor@suse.cz>
20318
20319 PR middle-end/41250
20320 * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
20321 gimplified parameters.
20322
20323 2010-03-01 Christian Bruel <christian.bruel@st.com>
20324
20325 * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
20326
20327 2010-03-01 H.J. Lu <hongjiu.lu@intel.com>
20328
20329 * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
20330
20331 2010-03-01 Richard Guenther <rguenther@suse.de>
20332
20333 PR middle-end/43213
20334 * expr.c (expand_assignment): Use the alias-oracle to tell
20335 if the rhs aliases the result decl.
20336
20337 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20338
20339 PR pch/14940
20340 * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
20341 to sol_gt_pch_get_address.
20342 (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
20343 64-bit, SPARC and x86.
20344 (sol_gt_pch_get_address): New function.
20345
20346 2010-03-01 Marco Poletti <poletti.marco@gmail.com>
20347
20348 * toplev.h (inform_n, error_n): Declare.
20349 * diagnostic.c (inform_n, error_n): New function.
20350
20351 2010-03-01 Jakub Jelinek <jakub@redhat.com>
20352
20353 * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
20354 has no rtl yet when processing local_decls, queue it and recheck
20355 if deferred stack allocation hasn't assigned it rtl.
20356
20357 2010-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
20358
20359 * config/sh/sh.c (unspec_bbr_uid): New.
20360 (gen_block_redirect): Use it instead of INSN_UID.
20361 (gen_far_branch): Likewise.
20362
20363 2010-02-28 H.J. Lu <hongjiu.lu@intel.com>
20364
20365 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
20366 it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
20367
20368 2010-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20369
20370 * doc/invoke.texi (Warning Options, RX Options): Fix typos.
20371 (Warning Options): -Wno-conversion-null is valid for
20372 Objective-C++ as well.
20373 * doc/tm.texi (Named Address Spaces): Likewise.
20374 * doc/plugins.texi (Plugins): Replace TABs with spaces.
20375 * doc/tree-ssa.texi (Tree SSA): Likewise.
20376
20377 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
20378
20379 PR bootstrap/43202
20380 * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
20381 by default. Don't set the default arch for
20382 i[34567]86-*-darwin*|x86_64-*-darwin*.
20383
20384 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
20385
20386 PR bootstrap/43202
20387 * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
20388 default. Set the default 32bit/64bit archs with $with_arch
20389 instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
20390
20391 2010-02-27 Richard Guenther <rguenther@suse.de>
20392
20393 PR tree-optimization/43186
20394 * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
20395 * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
20396 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
20397 unroller iterations.
20398
20399 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
20400
20401 * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
20402 required and i[34567]86-*-* targets don't support 64bit ISA.
20403
20404 2010-02-26 Eric Botcazou <ebotcazou@adacore.com>
20405
20406 PR ada/43096
20407 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
20408 the same alias set.
20409
20410 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
20411
20412 * config.gcc: Set the default arch at least to Prescott for
20413 i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
20414 if SSE math is enabled.
20415
20416 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
20417
20418 * diagnostic.c (diagnostic_initialize): Update.
20419 (diagnostic_report_diagnostic): Test inhibit_notes_p for
20420 informative notes.
20421 * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
20422 (diagnostic_inhibit_notes): New.
20423 * toplev.c (process_options): inhibit notes with -fcompare-debug.
20424
20425 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
20426
20427 PR c/20631
20428 * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
20429 * doc/standards.texi: Likewise.
20430 * doc/extend.texi: Likewise.
20431 * doc/trouble.texi: Likewise.
20432 * doc/cppopts.texi: Likewise.
20433 * doc/install.texi: Likewise.
20434 * c.opt (std=c90,std=gnu90): New options.
20435 * c-opts.c (c_common_handle_option): Handle them.
20436
20437 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
20438
20439 PR c/24577
20440 * c-decl.c (undeclared_variable): Use an informative note.
20441
20442 2010-02-26 Richard Guenther <rguenther@suse.de>
20443
20444 PR tree-optimization/43186
20445 * gimple.h (gimple_fold): Remove.
20446 * gimple.c (gimple_fold): Remove. Inline into single user ...
20447 * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
20448 Try harder for conditions.
20449
20450 2010-02-26 Jakub Jelinek <jakub@redhat.com>
20451
20452 PR debug/43190
20453 * function.c (used_types_insert): Don't skip through named pointer
20454 types. Don't use TYPE_MAIN_VARIANT if the original type has a name
20455 and it is different from the main variant's type.
20456
20457 2010-02-26 Nick Clifton <nickc@redhat.com>
20458
20459 * config/rx/rx.md (sminsi3): Remove bogus alternative.
20460
20461 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
20462
20463 * config.gcc: Support --with-fpmath=sse for x86.
20464
20465 * config/i386/ssemath.h: New.
20466
20467 * doc/install.texi (--with-fpmath=sse): Documented.
20468
20469 2010-02-26 Richard Guenther <rguenther@suse.de>
20470
20471 PR tree-optimization/43188
20472 * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
20473 vector types of over-aligned element type.
20474
20475 2010-02-26 Uros Bizjak <ubizjak@gmail.com>
20476
20477 PR target/43175
20478 * config/i386/i386.c (expand_vec_perm_blend): Use correct
20479 operands in V8HImode subregs. Fix operand order in VEC_MERGE rtx.
20480
20481 2010-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
20482
20483 * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
20484
20485 2010-02-26 Jakub Jelinek <jakub@redhat.com>
20486
20487 * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
20488 * var-tracking.c: Include diagnostic.h.
20489 (debug_dv): New function.
20490 (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
20491
20492 PR debug/43160
20493 * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
20494 (add_value_chain, add_value_chains, remove_value_chain,
20495 remove_value_chains): Handle DEBUG_EXPRs.
20496 (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
20497
20498 PR debug/43161
20499 * regcprop.c (struct queued_debug_insn_change): New type.
20500 (struct value_data_entry): Add debug_insn_changes field.
20501 (struct value_data): Add n_debug_insn_changes field.
20502 (debug_insn_changes_pool): New variable.
20503 (free_debug_insn_changes, apply_debug_insn_changes,
20504 cprop_find_used_regs_1, cprop_find_used_regs): New functions.
20505 (kill_value_one_regno): Call free_debug_insn_changes if needed.
20506 (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
20507 fields.
20508 (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
20509 changes for them.
20510 (copyprop_hardreg_forward_1): Don't call apply_change_group for
20511 DEBUG_INSNs. For a real insn, if there are queued DEBUG_INSN
20512 changes, call cprop_find_used_regs via note_stores.
20513 (copyprop_hardreg_forward): When copying vd from predecessor
20514 which has any queued DEBUG_INSN changes, make sure the pointers are
20515 cleared. At the end call df_analyze and then if there are any
20516 DEBUG_INSN changes queued at the end of some basic block for still
20517 live registers, apply them.
20518 (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
20519
20520 2010-02-25 Uros Bizjak <ubizjak@gmail.com>
20521
20522 * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
20523 (arm*-*-*): Ditto.
20524
20525 2010-02-25 H.J. Lu <hongjiu.lu@intel.com>
20526
20527 * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
20528 targets. Set the default with_cpu/with_arch from arch/cpu.
20529 Allow x86-64 and native for with_cpu/with_arch.
20530
20531 2010-02-25 Nicolas Benoit <nbenoit@tuxfamily.org>
20532
20533 * ebitmap.c: Change calls to verify_popcount with calls to
20534 sbitmap_verify_popcount.
20535 (ebitmap_clear_bit): Fixed map->cacheindex test and
20536 map>cache update when bit clearing results in an empty
20537 element.
20538
20539 2010-02-25 Michael Meissner <meissner@linux.vnet.ibm.com>
20540
20541 PR target/43154
20542 * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
20543 (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
20544 and support both V2DF and V2DI modes.
20545 (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
20546 support both V2DF and V2DI modes.
20547 (general): Delete trailing whitespace from a few patterns.
20548
20549 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20550 V2DF/V2DI interleave high/low builtins.
20551
20552 * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
20553 new VSX builtins.
20554
20555 * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
20556 interleave high/low functions.
20557
20558 2010-02-25 Gerald Pfeifer <gerald@pfeifer.com>
20559
20560 * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
20561 #pragma extern_prefix.
20562
20563 2010-02-25 Jakub Jelinek <jakub@redhat.com>
20564
20565 PR debug/43166
20566 * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
20567 BLKmode, assert op0 is a MEM and just adjust its mode.
20568
20569 PR debug/43165
20570 * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
20571 if bitpos isn't multiple of mode's bitsize.
20572
20573 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
20574
20575 * c.opt (-ftemplate-depth=): New.
20576 (-ftemplate-depth-): Deprecate.
20577 * optc-gen.awk: Handle -ftemplate-depth=.
20578 * opth-gen.awk: Likewise.
20579 * c-opts.c (c_common_handle_option): Likewise.
20580 * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
20581
20582 2010-02-24 Jason Merrill <jason@redhat.com>
20583
20584 * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
20585
20586 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20587
20588 * cfg.c (alloc_aux_for_block): Remove inline.
20589 (alloc_aux_for_edge): Likewise.
20590
20591 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20592
20593 * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
20594
20595 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20596
20597 * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
20598 * config/i386/sol2-gas.h: New file.
20599 * config.gcc (i[34567]86-*-solaris2*): Use it.
20600
20601 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
20602
20603 PR c/43128
20604 * c-typeck.c (ep_convert_and_check): New.
20605 (build_conditional_expr): Use it.
20606 (build_binary_op): Likewise.
20607
20608 2010-02-24 Jakub Jelinek <jakub@redhat.com>
20609
20610 * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
20611
20612 PR debug/43150
20613 * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
20614 bounds even for -O+.
20615 * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
20616 expr needs to have DECL_NAME set.
20617
20618 2010-02-24 Nick Clifton <nickc@redhat.com>
20619
20620 * config/mep/mep.c: Include gimple.h.
20621 (mep_function_uses_sp): Delete unused function.
20622 (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
20623 parameters. Use unsigned integers to count args. Return a
20624 NULL_RTX instead of an error_mark_node. Toidy up formatting.
20625
20626 2010-02-23 Jakub Jelinek <jakub@redhat.com>
20627
20628 PR target/43107
20629 * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
20630 greater or equal to nelt instead of 2 * nelt.
20631 (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
20632 with nelt - 1.
20633
20634 2010-02-23 Jason Merrill <jason@redhat.com>
20635
20636 PR debug/42800
20637 * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
20638 in cfun->local_decls even if they have register types.
20639
20640 PR c++/42837
20641 * stor-layout.c (place_field): Don't warn about unnecessary
20642 DECL_PACKED if the type is packed.
20643
20644 2010-02-23 Jakub Jelinek <jakub@redhat.com>
20645
20646 PR target/43139
20647 * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
20648 GOTOFF relocs, even when the base reg isn't pic pointer.
20649
20650 2010-02-23 Michael Matz <matz@suse.de>
20651
20652 PR debug/43077
20653 * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
20654 (expand_gimple_basic_block): Generate and use debug temps if there
20655 are debug uses left after the last real use of TERed ssa names.
20656 Unlink debug immediate uses when they are expanded.
20657
20658 2010-02-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
20659
20660 PR 43123
20661 * config/i386/i386.c (override_options): Reorganise to provide
20662 better error messages.
20663
20664 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
20665
20666 PR middle-end/43083
20667 * graphite-scop-detection.c (create_single_exit_edge): Move
20668 the call to find_single_exit_edge to....
20669 (create_sese_edges): ...here. Don't handle multiple edges
20670 exiting the function.
20671 (build_graphite_scops): Don't handle multiple edges
20672 exiting the function.
20673
20674 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
20675
20676 PR middle-end/43097
20677 * sese.c (get_rename): Assert that old_name is an SSA_NAME.
20678 (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
20679
20680 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
20681
20682 PR middle-end/43026
20683 * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
20684
20685 2010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
20686
20687 PR c++/43126
20688 * c-typeck.c (convert_arguments): Print declaration location.
20689 * c-common.c (validate_nargs): Rename as
20690 builtin_function_validate_nargs.
20691 (check_builtin_function_arguments): Update.
20692
20693 2010-02-22 Richard Guenther <rguenther@suse.de>
20694
20695 PR lto/43045
20696 * tree-inline.c (declare_return_variable): Use the type of
20697 the call stmt lhs if available.
20698
20699 2010-02-22 Duncan Sands <baldrick@free.fr>
20700
20701 * passes.c (register_pass): Always consider all pass lists when
20702 ref_pass_instance_number is zero.
20703
20704 2010-02-22 Richard Guenther <rguenther@suse.de>
20705
20706 PR tree-optimization/42749
20707 * tree-tailcall.c (adjust_return_value_with_ops): Drop update
20708 parameter. Do arithmetic in the original type.
20709 (update_accumulator_with_ops): Likewise.
20710 (adjust_accumulator_values): Adjust.
20711
20712 2010-02-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20713
20714 * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
20715 (QI to BLKmode splitter): New splitter.
20716
20717 2010-02-22 H.J. Lu <hongjiu.lu@intel.com>
20718
20719 * config/i386/i386.c (initial_ix86_tune_features): Turn on
20720 X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
20721
20722 2010-02-22 Richard Guenther <rguenther@suse.de>
20723
20724 * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
20725
20726 2010-02-22 Hans-Peter Nilsson <hp@bitrange.com>
20727
20728 Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
20729 * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
20730 ($(T)crti.o, $(T)crtn.o): Remove rules.
20731
20732 2010-02-21 Tobias Burnus <burnus@net-b.de>
20733
20734 PR fortran/35259
20735 * doc/invoke.texi (-fassociative-math): Document that this
20736 option is automatically enabled for Fortran.
20737
20738 2010-02-20 David S. Miller <davem@davemloft.net>
20739
20740 * configure.ac: Test if linker and assembler properly support
20741 GOTDATA_OP relocations.
20742 * configure: Rebuild.
20743 * config.in: Likewise.
20744 * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
20745 (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
20746 (movsi_high_pic): Likewise.
20747 (movdi_lo_sum_pic): Likewise.
20748 (movdi_high_pic): Likewise.
20749 (movsi_pic_gotdata_op): New pattern.
20750 (movdi_pic_gotdata_op): Likewise.
20751 * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
20752 emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
20753
20754 2010-02-20 Uros Bizjak <ubizjak@gmail.com>
20755
20756 PR target/43067
20757 * config/i386/sse.md (xop_mulv2div2di3_low): Change type
20758 attribute to ssemul.
20759 (xop_mulv2div2di3_high): Ditto.
20760
20761 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
20762
20763 PR c++/35669
20764 * c.opt (Wconversion-null): New option.
20765 * doc/invoke.texi (Wconversion-null): Document.
20766
20767 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
20768
20769 * common.opt (Wlarger-than-): Add Undocumented.
20770
20771 2010-02-19 Mike Stump <mikestump@comcast.net>
20772
20773 * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
20774
20775 2010-02-19 Jason Merrill <jason@redhat.com>
20776
20777 PR target/40332
20778 * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
20779 * configure: Likewise.
20780
20781 2010-02-20 Alan Modra <amodra@gmail.com>
20782
20783 PR middle-end/42344
20784 * cgraph.h (cgraph_make_decl_local): Declare.
20785 * cgraph.c (cgraph_make_decl_local): New function.
20786 (cgraph_make_node_local): Use it.
20787 * cgraphunit.c (cgraph_function_versioning): Likewise.
20788 * ipa.c (function_and_variable_visibility): Likewise.
20789
20790 2010-02-19 Jakub Jelinek <jakub@redhat.com>
20791
20792 PR bootstrap/43121
20793 * except.c (sjlj_emit_function_enter): Don't call
20794 add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
20795 directly.
20796 * rtl.h (add_reg_br_prob_note): Remove prototype.
20797
20798 2010-02-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
20799
20800 PR 41779
20801 * c-common.c (conversion_warning): Remove widening conversions
20802 before checking the conversion of integers to reals.
20803
20804 2010-02-19 Mike Stump <mikestump@comcast.net>
20805
20806 PR middle-end/43125
20807 * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
20808
20809 PR objc/43061
20810 * cgraphunit.c (process_function_and_variable_attributes): Check
20811 DECL_PRESERVE_P instead of looking up attribute "used".
20812 * ipa-pure-const.c (check_decl): Likewise.
20813 * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
20814 * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
20815 * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
20816 instead of attribute "used".
20817 * config/sol2-c.c (solaris_pragma_init): Likewise.
20818 (solaris_pragma_fini): Likewise.
20819
20820 2010-02-19 Jakub Jelinek <jakub@redhat.com>
20821
20822 * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
20823 Use XCNEW instead of xcalloc.
20824 (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
20825 XNEW instead of xmalloc.
20826 (get_fields): Use XNEWVEC instead of xmalloc.
20827
20828 PR debug/43084
20829 * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
20830 populate vars array.
20831 (create_new_general_access): For debug stmts just reset value.
20832 (get_stmt_accesses): For accesses within debug stmts just record them
20833 using add_access_to_acc_sites instead of preventing the peeling or
20834 counting them as accesses.
20835
20836 PR middle-end/42233
20837 * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
20838
20839 2010-02-19 Richard Guenther <rguenther@suse.de>
20840
20841 PR tree-optimization/42916
20842 * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
20843 instructions.
20844
20845 2010-02-19 Andreas Schwab <schwab@linux-m68k.org>
20846
20847 * configure.ac: Replace all uses of changequote in macro arguments
20848 with proper quoting.
20849
20850 2010-02-19 Jakub Jelinek <jakub@redhat.com>
20851
20852 PR middle-end/42233
20853 * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
20854
20855 2010-02-19 Richard Guenther <rguenther@suse.de>
20856
20857 PR tree-optimization/42944
20858 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
20859 test for aliasing with errno.
20860
20861 2010-02-19 Jakub Jelinek <jakub@redhat.com>
20862
20863 PR middle-end/42233
20864 * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
20865 do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
20866 * dojump.c: Include output.h.
20867 (inv): New inline function.
20868 (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
20869 do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
20870 do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
20871 do_jump_by_parts_equality, do_compare_and_jump): Add PROB
20872 argument, pass it down to other calls.
20873 (do_compare_rtx_and_jump): Likewise. If PROB is not -1,
20874 add REG_BR_PROB note to the conditional jump.
20875 * cfgexpand.c (add_reg_br_prob_note): Removed.
20876 (expand_gimple_cond): Don't call it, add the probability
20877 as last argument to jumpif_1/jumpifnot_1.
20878 * Makefile.in (dojump.o): Depend on output.h.
20879 * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
20880 callers.
20881 * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
20882 * stmt.c (do_jump_if_equal): Likewise.
20883 * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
20884 * loop-unswitch.c (compare_and_jump_seq): Likewise.
20885 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
20886 Likewise.
20887 * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
20888 * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
20889 jumpifnot_1 callers.
20890 (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
20891 callers.
20892 (store_expr): Adjust jumpifnot caller.
20893 (store_constructor): Adjust jumpif caller.
20894
20895 PR middle-end/42233
20896 * gimplify.c (gimple_boolify): For __builtin_expect call
20897 gimple_boolify also on its first argument.
20898
20899 2010-02-18 Uros Bizjak <ubizjak@gmail.com>
20900
20901 * configure.ac (gnu-unique-object): Wrap regexps using [] in
20902 changequote block.
20903 (__stack_chk_fail): Ditto. Remove quadrigraphs.
20904 * configure: Regenerated.
20905
20906 2010-02-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20907
20908 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
20909 lang_hooks.types_compatible_p instead of comptypes.
20910
20911 2010-02-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
20912
20913 * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
20914 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
20915 if __prefer_thumb__ is defined.
20916
20917 2010-02-18 Martin Jambor <mjambor@suse.cz>
20918
20919 PR tree-optimization/43066
20920 * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
20921 array with zero-sized element type.
20922
20923 2010-02-18 Jakub Jelinek <jakub@redhat.com>
20924
20925 * dwarf2out.c (add_var_loc_to_decl): Change last argument to
20926 rtx, allocate struct var_loc_node here and return it to the
20927 caller, and only if it is actually needed.
20928 (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
20929 move it earlier and return immediately if it returns NULL.
20930
20931 2010-02-17 Mikael Pettersson <mikpe@it.uu.se>
20932
20933 * config/sparc/gas.h: New file. Restore
20934 TARGET_ASM_NAMED_SECTION to its ELF default.
20935 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
20936 check !HAVE_GNU_AS.
20937 * config/sparc/sparc.c (sparc_elf_asm_named_section):
20938 Likewise. Add ATTRIBUTE_UNUSED to prototype.
20939 * config.gcc (sparc*-*-linux*): Include sparc/gas.h
20940 after sparc/sysv4.h.
20941
20942 2010-02-17 Dave Korn <dave.korn.cygwin@gmail.com>
20943
20944 * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
20945
20946 2010-02-17 Steven Bosscher <steven@gcc.gnu.org>
20947
20948 * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
20949 patterns from predicated pattern.
20950
20951 2010-02-17 Uros Bizjak <ubizjak@gmail.com>
20952
20953 PR target/43103
20954 * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
20955 for insn mnemonic suffix.
20956
20957 2010-02-17 Richard Guenther <rguenther@suse.de>
20958
20959 * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
20960 to loop PHI nodes.
20961
20962 2010-02-17 Jakub Jelinek <jakub@redhat.com>
20963
20964 PR debug/42918
20965 * caller-save.c (save_call_clobbered_regs): If BB ends with
20966 a DEBUG_INSN, move any notes in between last real insn and the last
20967 DEBUG_INSN after the last DEBUG_INSN.
20968
20969 2010-02-16 Joern Rennecke <joern.rennecke@embecosm.com>
20970
20971 * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
20972 Fix return type. Fix argument type. Explain meaning of return value.
20973
20974 2010-02-16 Richard Guenther <rguenther@suse.de>
20975
20976 PR tree-optimization/41043
20977 * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
20978 (vrp_visit_assignment_or_call): Do not ask SCEV for regular
20979 statements ...
20980 (vrp_visit_phi_node): ... but only for loop PHI nodes.
20981
20982 2010-02-16 Ira Rosen <irar@il.ibm.com>
20983
20984 PR tree-optimization/43074
20985 * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
20986 * tree-vect-loop.c (vect_analyze_loop_operations): Add
20987 vectorizable cycles in hybrid SLP check.
20988 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
20989
20990 2010-02-16 Richard Guenther <rguenther@suse.de>
20991
20992 * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
20993 (true_dependence): If memrefs_conflict_p computes must-alias
20994 trust it. Move TBAA check after offset-based disambiguation.
20995 (canon_true_dependence): Likewise.
20996
20997 2010-02-16 Alexandre Oliva <aoliva@redhat.com>
20998
20999 * params.def (PARAM_MAX_VARTRACK_SIZE): New.
21000 * doc/invoke.texi: Document it.
21001 * var-tracking.c: Include toplev.h and params.h.
21002 (vt_find_locations): Return bool indicating success. Compute
21003 hash sizes unconditionally. Check new parameter, report.
21004 (variable_tracking_main_1): Check vt_find_locations results and
21005 retry. Renamed from...
21006 (variable_tracking_main): ... this. New wrapper to preserve
21007 flag_var_tracking_assignments.
21008 * Makefile.in (var-tracking.o): Adjust dependencies.
21009
21010 2010-02-16 Jack Howarth <howarth@bromo.med.uc.edu>
21011 Jakub Jelinek <jakub@redhat.com>
21012
21013 PR target/42854
21014 * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
21015 if weak_import attribute is present.
21016 * config/darwin.c (machopic_select_section): Likewise.
21017
21018 2010-02-15 Joern Rennecke <joern.rennecke@embecosm.com>
21019
21020 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
21021 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
21022 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
21023 (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
21024
21025 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
21026 types.
21027
21028 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
21029 Fix argument types.
21030
21031 * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
21032 Rewrite text to refer to the names.
21033
21034 2010-02-15 Sebastian Pop <sebastian.pop@amd.com>
21035
21036 * config/i386/i386-builtin-types.def
21037 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
21038 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
21039 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
21040 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
21041 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
21042 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
21043 IX86_BUILTIN_VPERMIL2PS256.
21044 (MULTI_ARG_4_DF2_DI_I): Defined.
21045 (MULTI_ARG_4_DF2_DI_I1): Defined.
21046 (MULTI_ARG_4_SF2_SI_I): Defined.
21047 (MULTI_ARG_4_SF2_SI_I1): Defined.
21048 (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
21049 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
21050 __builtin_ia32_vpermil2ps256.
21051 (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
21052 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
21053 MULTI_ARG_4_SF2_SI_I1. Handle builtins with 4 arguments.
21054 (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
21055 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
21056 MULTI_ARG_4_SF2_SI_I1. Handle CODE_FOR_xop_vpermil2v2df3,
21057 CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
21058 CODE_FOR_xop_vpermil2v8sf3.
21059 * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
21060 * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
21061 * config/i386/xopintrin.h (_mm_permute2_pd): New.
21062 (_mm256_permute2_pd): New.
21063 (_mm_permute2_ps): New.
21064 (_mm256_permute2_ps): New.
21065
21066 2010-02-15 Nick Clifton <nickc@redhat.com>
21067
21068 * config/h8300/h8300.c (h8300_push_pop): Use bool type for
21069 boolean parameters. Use emit_jump_insn when emitting a pop
21070 instruction containing a return insn.
21071 (push): Use 'true' rather than '1' as second parameter to F.
21072 (h8300_expand_prologue): Likewise.
21073 Use 'true' and 'false' for boolean parameters to h8300_push_pop.
21074 (h8300_expand_epilogue): Likewise.
21075
21076 2010-02-15 Richard Guenther <rguenther@suse.de>
21077
21078 PR middle-end/43068
21079 * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
21080 if that is zero.
21081
21082 2010-02-15 Nick Clifton <nickc@redhat.com>
21083
21084 * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
21085 delta.
21086
21087 2010-02-14 Marco Poletti <poletti.marco@gmail.com>
21088
21089 * intl.c (fake_ngettext): New function.
21090 * intl.h (fake_ngettext): Declare.
21091 (ngettext): Define macro.
21092 * collect2.c (notice_translated): New function.
21093 (main): Use notice_translated and ngettext.
21094 * collect2.h (notice_translated): Declare.
21095
21096 2010-02-14 Steven Bosscher <steven@gcc.gnu.org>
21097
21098 * reorg.c (delete_computation): Comment fixes.
21099 * caller-save.c (setup_save_areas): Idem.
21100 * sel-sched-dump.c (dump_lv_set): Idem.
21101 * rtl.def: Idem.
21102
21103 2010-02-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21104
21105 * config/s390/s390.c (s390_sched_init): New function.
21106 (TARGET_SCHED_INIT): Target hook defined.
21107
21108 2010-02-12 Dave Korn <dave.korn.cygwin@gmail.com>
21109 Jack Howarth <howarth@bromo.med.uc.edu>
21110 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
21111
21112 PR target/42982
21113 Partial revert of unintended change in fix for PR41605.
21114 * config/darwin.h: Fix typo.
21115 * config/darwin9.h: Same.
21116
21117 2010-02-11 Jakub Jelinek <jakub@redhat.com>
21118
21119 * c-pch.c (pch_init): Clear v.
21120
21121 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
21122
21123 PR middle-end/42930
21124 * graphite-scop-detection.c (graphite_can_represent_scev): Call
21125 graphite_can_represent_init for MULT_EXPR.
21126
21127 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
21128
21129 PR middle-end/42914
21130 PR middle-end/42530
21131 * graphite-sese-to-poly.c (remove_phi): New.
21132 (translate_scalar_reduction_to_array): Call remove_phi.
21133
21134 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
21135
21136 PR middle-end/42771
21137 * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
21138 * graphite-clast-to-gimple.h (gloog): Update declaration.
21139 * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
21140 * graphite-poly.h (struct poly_bb): Add missing comments.
21141 (struct scop): Add poly_scop_p field.
21142 (POLY_SCOP_P): New.
21143 * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
21144 * graphite.c (graphite_transform_loops): Build the polyhedral
21145 representation for each scop before code generation.
21146 * sese.c (rename_variables_in_operand): Removed.
21147 (rename_variables_in_expr): Return the renamed expression.
21148 (rename_sese_parameters): New.
21149 * sese.h (rename_sese_parameters): Declared.
21150
21151 2010-02-11 Richard Guenther <rguenther@suse.de>
21152
21153 PR tree-optimization/42998
21154 * tree-ssa-pre.c (create_expression_by_pieces): Treat
21155 POINTER_PLUS_EXPR properly.
21156
21157 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
21158 Changpeng Fang <changpeng.fang@amd.com>
21159
21160 PR middle-end/40886
21161 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
21162 the cost of an IV candidate when the IV is used in a test against zero.
21163
21164 * gcc.dg/tree-ssa/ivopts-3.c: New.
21165
21166 2010-02-11 Richard Guenther <rguenther@suse.de>
21167
21168 PR lto/41664
21169 * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
21170 pointer-vs-decl case by swapping refs. Handle some cases
21171 of pointer-vs-decl disambiguations more conservatively.
21172 * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
21173 to false after expanding.
21174
21175 2010-02-11 Richard Guenther <rguenther@suse.de>
21176
21177 PR driver/43021
21178 * gcc.c (process_command): Handle LTO file@offset case more
21179 appropriately.
21180
21181 2010-02-11 Jakub Jelinek <jakub@redhat.com>
21182
21183 * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
21184 modifications outside of the DEBUG_INSN. Accept CLOBBERs inside
21185 of DEBUG_INSNs.
21186 (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
21187
21188 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
21189 if MEM's mode size isn't DWARF2_ADDR_SIZE.
21190 (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
21191 Optimize eq/ne comparisons when both arguments are known to be
21192 zero-extended.
21193 (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
21194 Don't mask operands unnecessarily if they are known to be already
21195 zero-extended.
21196
21197 2010-02-10 Vladimir Makarov <vmakarov@redhat.com>
21198
21199 * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
21200 instead of loop.
21201
21202 2010-02-10 Richard Guenther <rguenther@suse.de>
21203
21204 PR tree-optimization/43017
21205 * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
21206 for wrapping signed arithmetic.
21207
21208 2010-02-10 Jakub Jelinek <jakub@redhat.com>
21209
21210 PR debug/43010
21211 * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
21212 if no debug info should be emitted for it.
21213
21214 2010-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
21215
21216 * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
21217 note when flag_exceptions is set.
21218
21219 2010-02-10 Duncan Sands <baldrick@free.fr>
21220
21221 * Makefile.in (PLUGIN_HEADERS): Add debug.h.
21222
21223 2010-02-10 Richard Guenther <rguenther@suse.de>
21224
21225 PR c/43007
21226 * tree.c (get_unwidened): Handle constants.
21227 * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
21228
21229 2010-02-10 Martin Jambor <mjambor@suse.cz>
21230
21231 PR lto/42985
21232 * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
21233 check for variable argument counts independently.
21234
21235 2010-02-10 Christian Bruel <christian.bruel@st.com>
21236
21237 PR target/42841
21238 * config/sh/sh.c (find_barrier): Increase length for non delayed
21239 conditional branches.
21240
21241 2010-02-10 Christian Bruel <christian.bruel@st.com>
21242
21243 * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
21244
21245 2010-02-10 Jakub Jelinek <jakub@redhat.com>
21246
21247 * builtins.c (set_builtin_user_assembler_name): Also handle
21248 ffs if int is smaller than word.
21249
21250 2010-02-09 Vladimir Makarov <vmakarov@redhat.com>
21251
21252 PR middle-end/42973
21253 * ira-conflicts.c (get_dup): Remove.
21254 (process_reg_shuffles): Add new parameter. Use it as an
21255 additional guard for copy generation.
21256 (add_insn_allocno_copies): Rewrite.
21257
21258 2010-02-09 Alexander Monakov <amonakov@ispras.ru>
21259
21260 * common.opt (fsched2-use-traces): Preserved for backward
21261 compatibility.
21262 * doc/invoke.texi: Remove the documentation about option
21263 -fsched2-use-traces.
21264 * sched-rgn.c (rest_of_handle_sched2): Remove usage of
21265 flag_sched2_use_traces.
21266 * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
21267 the backward compatibility flag section.
21268
21269 2010-02-09 Richard Guenther <rguenther@suse.de>
21270
21271 PR tree-optimization/43008
21272 * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
21273 make HEAP variables initialized from global memory if they
21274 are not known builtin functions.
21275 (find_func_aliases): Adjust.
21276
21277 2010-02-09 Richard Guenther <rguenther@suse.de>
21278
21279 PR tree-optimization/43000
21280 * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
21281 arithmetic manually.
21282
21283 2010-02-08 Jakub Jelinek <jakub@redhat.com>
21284
21285 PR tree-optimization/42931
21286 * tree-loop-linear.c (try_interchange_loops): Don't call
21287 double_int_mul if estimated_loop_iterations failed.
21288
21289 2010-02-08 Martin Jambor <mjambor@suse.cz>
21290
21291 PR middle-end/42898
21292 * tree-sra.c (build_accesses_from_assign): Do not mark in
21293 should_scalarize_away_bitmap if stmt has volatile ops.
21294 (sra_modify_assign): Do not process assigns piecemeal if if stmt
21295 has volatile ops.
21296
21297 2010-02-08 Joern Rennecke <joern.rennecke@embecosm.com>
21298
21299 * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
21300
21301 2010-02-07 Adam Nemet <adambnmet@gmail.com>
21302
21303 * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
21304 before the pattern.
21305
21306 2010-02-07 Andrew Pinski <pinskia@gmail.com>
21307
21308 PR middle-end/42946
21309 * df-core.c (df_finish_pass): Change type of saved_flags to int.
21310
21311 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
21312
21313 PR middle-end/42988
21314 * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
21315 to unknown_dependence.
21316 (graphite_legal_transform_dr): Handle the unknown_dependence.
21317 (graphite_carried_dependence_level_k): Same.
21318
21319 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
21320
21321 * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
21322
21323 2010-02-07 Richard Guenther <rguenther@suse.de>
21324
21325 PR middle-end/42991
21326 * expr.c (get_inner_reference): Always initialize *pbitsize.
21327
21328 2010-02-07 Richard Guenther <rguenther@suse.de>
21329
21330 PR middle-end/42956
21331 * gimplify.c (gimple_fold_indirect_ref): Avoid generating
21332 new ARRAY_REFs on variable size element or minimal index arrays.
21333 Complete.
21334 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
21335 gimple_fold_indirect_ref.
21336
21337 2010-02-06 Richard Earnshaw <rearnsha@arm.com>
21338
21339 PR target/42957
21340 * arm.c (arm_override_options): Just return if the user has specified
21341 an invalid fpu name.
21342
21343 2010-02-03 Jason Merrill <jason@redhat.com>
21344
21345 PR c++/42870
21346 * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
21347 i386_pe_maybe_record_exported_symbol.
21348
21349 2010-02-05 Steve Ellcey <sje@cup.hp.com>
21350
21351 PR target/42924
21352 * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21353 (pa_delegitimize_address): New function.
21354
21355 2010-02-05 Ozkan Sezer <sezeroz@gmail.com>
21356
21357 * config/i386/msformat-c.c (ms_printf_length_specs): Set the
21358 scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
21359
21360 2010-02-05 Richard Guenther <rguenther@suse.de>
21361
21362 PR lto/42762
21363 * lto-streamer-in.c (get_resolution): Deal with references
21364 to undefined functions.
21365
21366 2010-02-05 Richard Guenther <rguenther@suse.de>
21367
21368 * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
21369 (fold_const_aggregate_ref): Likewise.
21370 (ccp_fold_stmt): Substitute loads.
21371 (maybe_fold_reference): Verify types before substituting.
21372 Unshare properly.
21373 (fold_gimple_assign): Unshare properly.
21374 (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
21375
21376 2010-02-05 Nathan Froyd <froydnj@codesourcery.com>
21377
21378 * config/rs6000/rs6000.c (rs6000_override_options): Invert check
21379 for rs6000_gen_cell_microcode.
21380
21381 2010-02-04 Richard Guenther <rguenther@suse.de>
21382
21383 PR rtl-optimization/42952
21384 * dse.c (const_or_frame_p): Remove MEM handling.
21385
21386 2010-02-04 Nick Clifton <nickc@redhat.com>
21387
21388 * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
21389 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
21390 (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
21391 (mn10300_asm_output_mi_thunk): New function.
21392 (mn10300_can_output_mu_thunk): New function.
21393 * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
21394 (FUNCTION_ARG_REGNO_P): Fix comment. Accept d0 and d1.
21395 (FUNCTION_ARG): Delete incorrect comment.
21396
21397 2010-02-03 Jason Merrill <jason@redhat.com>
21398
21399 PR c++/40138
21400 * fold-const.c (operand_equal_p): Handle erroneous types.
21401
21402 2010-02-03 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
21403
21404 * config/h8300/h8300.md (can_delay): Fix attibute condition.
21405
21406 2010-02-03 Vladimir Makarov <vmakarov@redhat.com>
21407
21408 PR rtl-optimization/42941
21409 * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
21410 of xmalloc.
21411
21412 2010-02-03 Jason Merrill <jason@redhat.com>
21413
21414 PR c++/35652
21415 * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
21416
21417 2010-02-03 Alexandre Oliva <aoliva@redhat.com>
21418
21419 PR debug/42896
21420 * cselib.h (struct cselib_val_struct): Add uid. Rename value to hash.
21421 (cselib_reset_table): Renamed from...
21422 (cselib_reset_table_with_next_value): ... this.
21423 (cselib_get_next_uid): Renamed from...
21424 (cselib_get_next_unknown_value): ... this.
21425 * cselib.c (next_uid): Renamed from...
21426 (next_unknown_value): ... this.
21427 (cselib_clear_table): Adjust.
21428 (cselib_reset_table): Adjust. Renamed from...
21429 (cselib_reset_table_with_next_value): ... this.
21430 (cselib_get_next_uid): Adjust. Renamed from...
21431 (cselib_get_next_unknown_value): ... this.
21432 (get_value_hash): Use hash.
21433 (cselib_hash_rtx): Likewise.
21434 (new_cselib_val): Adjust. Set and dump uid.
21435 (cselib_lookup_mem): Pass next_uid as hash.
21436 (cselib_subst_to_values): Likewise.
21437 (cselib_log_lookup): Dump uid.
21438 (cselib_lookup): Pass next_uid as hash. Adjust.
21439 (cselib_process_insn): Adjust.
21440 (cselib_init): Initialize next_uid.
21441 (cselib_finish): Adjust.
21442 (dump_cselib_table): Likewise.
21443 * dse.c (canon_address): Dump value uid.
21444 * print-rtl.c (print_rtx): Print value uid.
21445 * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
21446 (dvuid): New type.
21447 (dv_uid): New function, sort of renamed from...
21448 (dv_htab_hash): ... this, reimplemented in terms of it and...
21449 (dv_uid2hash): ... this. New.
21450 (variable_htab_eq): Drop excess assertions.
21451 (tie_break_pointers): Removed.
21452 (canon_value_cmp): Compare uids.
21453 (variable_post_merge_New_vals): Print uids.
21454 (vt_add_function_parameters): Adjust.
21455 (vt_initialize): Reset table. Adjust.
21456
21457 2010-02-03 Richard Guenther <rguenther@suse.de>
21458
21459 PR tree-optimization/42944
21460 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
21461 (call_may_clobber_ref_p_1): Likewise. Properly handle
21462 malloc and calloc clobbering errno.
21463
21464 2010-02-03 Steven Bosscher <steven@gcc.gnu.org>
21465
21466 * doc/invoke.texi: Fix name of sched1 dump.
21467
21468 * opts.c (decode_options): Set flag_tree_switch_conversion
21469 only conditionally on optimize >= 2.
21470
21471 * gcse.c: Assorted comment fixes in pass description.
21472
21473 2010-02-03 Anthony Green <green@moxielogic.com>
21474
21475 * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
21476 nop padding in order to maintain alignment of storage location of
21477 target function address.
21478 (moxie_trampoline_init): Store target function address at newly
21479 aligned location.
21480 * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
21481 to 32.
21482 (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
21483
21484 2010-02-03 Richard Guenther <rguenther@suse.de>
21485
21486 PR middle-end/42927
21487 * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
21488
21489 2010-02-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21490
21491 * config.gcc: Reenable check for obsolete targets.
21492 Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
21493 mips-sgi-irix6.[0-4]*.
21494
21495 2010-02-02 Nick Clifton <nickc@redhat.com>
21496
21497 * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
21498 constant size of 4 as being the same as 0.
21499 * doc/invoke.texi (RX Options): Document that -mmax-constant-size
21500 can take values in the range 0..4.
21501
21502 2010-02-02 Jack Howarth <howarth@bromo.med.uc.edu>
21503
21504 PR java/41991
21505 * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
21506 as _darwin10_Unwind_FindEnclosingFunction().
21507 * libgcc-libsystem.ver: New.
21508
21509 2010-02-01 Vladimir Makarov <vmakarov@redhat.com>
21510
21511 PR target/41399
21512 * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
21513 implicitly set registers.
21514
21515 2010-02-01 Richard Earnshaw <rearnsha@arm.com>
21516
21517 * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
21518 (arm_override_options): Allow automatic selection of the thread
21519 pointer register if thumb2.
21520 (legitimize_pic_address): Improve code sequences for Thumb2.
21521 (arm_call_tls_get_addr): Likewise.
21522 (legitimize_tls_address): Likewise.
21523 * arm.md (pic_load_addr_arm): Delete. Replace with ...
21524 (pic_load_addr_32bit): ... this. New named pattern.
21525 * thumb2.md (pic_load_addr_thumb2): Delete.
21526 (pic_load_dot_plus_four): Delete.
21527 (tls_load_dot_plus_four): New named pattern.
21528
21529 2010-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21530
21531 PR libgomp/29986
21532 * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
21533 Document fix for TLS bug.
21534
21535 2010-01-31 Richard Guenther <rguenther@suse.de>
21536
21537 * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
21538 conservatively correct.
21539
21540 2010-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21541
21542 PR target/42850
21543 Revert:
21544 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21545
21546 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
21547
21548 2010-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21549
21550 * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
21551
21552 2010-01-31 Kai Tietz <kai.tietz@onevision.com>
21553
21554 * config.gcc: Adjust order of makefile fragments for mingw targets.
21555
21556 2010-01-31 Richard Guenther <rguenther@suse.de>
21557
21558 PR middle-end/42898
21559 * gimplify.c (gimplify_init_constructor): For volatile LHS
21560 initialize a temporary.
21561
21562 2010-01-31 Matthias Klose <doko@ubuntu.com>
21563
21564 * configure.ac: Fix __stack_chk_fail check for cross builds configured
21565 --with-headers
21566 * configure: Regenerate.
21567
21568 2010-01-29 Eric Botcazou <ebotcazou@adacore.com>
21569
21570 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
21571 the same alias set and their sizes different constantness.
21572 (aliasing_component_refs_p): Revert 2009-10-24 change.
21573
21574 2010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21575
21576 * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
21577 unused.
21578
21579 2010-01-29 Richard Guenther <rguenther@suse.de>
21580
21581 * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
21582 Assert we successfully updated the call.
21583
21584 2010-01-29 Jakub Jelinek <jakub@redhat.com>
21585
21586 PR rtl-optimization/42889
21587 * df.h (df_set_bb_dirty_nonlr): New prototype.
21588 * df-core.c (df_set_bb_dirty_nonlr): New function.
21589 * df-scan.c (df_insn_rescan): Call it instead of
21590 df_set_bb_dirty for DEBUG_INSNs.
21591
21592 2010-01-29 Richard Guenther <rguenther@suse.de>
21593
21594 PR middle-end/37448
21595 * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
21596 quadratic behavior in most cases.
21597
21598 2010-01-28 Uros Bizjak <ubizjak@gmail.com>
21599
21600 PR target/42891
21601 * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
21602 in the call to gen_x86_movsicc_0_m1.
21603
21604 2010-01-28 Richard Guenther <rguenther@suse.de>
21605
21606 PR tree-optimization/42871
21607 * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
21608
21609 2010-01-28 Richard Guenther <rguenther@suse.de>
21610
21611 * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
21612 into call arguments.
21613
21614 2010-01-28 Richard Guenther <rguenther@suse.de>
21615
21616 PR middle-end/42883
21617 * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
21618 the forwarder if the destination is an EH landing pad.
21619
21620 2010-01-28 Razya Ladelsky <razya@il.ibm.com>
21621
21622 * tree-parloops.c (transform_to_exit_first_loop): Update the basic
21623 block list passed to gimple_duplicate_sese_tail.
21624 (parallelize_loops): Avoid parallelization when the function
21625 has_nonlocal_label.
21626 Avoid parallelization when the preheader is IRREDUCIBLE.
21627 Try to optimize when estimated_loop_iterations_int is unresolved.
21628 Add the loop's location to the dump file.
21629 * tree-cfg.c (add_phi_args_after_redirect): Remove.
21630 (gimple_duplicate_sese_tail): Remove the check for the latch.
21631 Redirect nexits to the exit block.
21632 Remove handling of the incoming edges to the latch.
21633 Redirect the backedge from the copied latch to the exit bb.
21634
21635 2010-01-28 Michael Matz <matz@suse.de>
21636
21637 PR target/42881
21638 * config/i386/i386.c (ix86_expand_vector_init_duplicate):
21639 Wrap force_reg into a sequence, emit it before user.
21640
21641 2010-01-28 Stephen Thomas <stephen.thomas@arm.com>
21642
21643 * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
21644 (arm_rev): New.
21645 (arm_legacy_rev): Likewise.
21646 (thumb_legacy_rev): Likewise.
21647
21648 2010-01-27 Jakub Jelinek <jakub@redhat.com>
21649
21650 * dwarf2out.c (mem_loc_descriptor): Remove special casing of
21651 CONSTANT_POOL_ADDRESS_P SYMBOL_REFs. If for MEM recursive call
21652 on MEM's address failed, try avoid_constant_pool_reference and
21653 recurse if it returned something different.
21654 (loc_descriptor): If for MEM mem_loc_descriptor failed on the
21655 address, try avoid_constant_pool_reference and recurse if it
21656 returned something different.
21657 (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
21658 address and avoid_constant_pool_reference returned something
21659 different, don't set have_address.
21660
21661 2010-01-27 Alexandre Oliva <aoliva@redhat.com>
21662
21663 PR debug/42861
21664 * var-tracking.c (val_store): Add modified argument, obey it.
21665 Adjust callers.
21666 (count_uses): Move down logging of main.
21667 (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
21668 don't need resolution.
21669 (emit_notes_in_bb): Likewise.
21670
21671 2010-01-27 Richard Guenther <rguenther@suse.de>
21672
21673 PR middle-end/42878
21674 * tree-inline.c (remap_decl): Delay remapping of SSA name
21675 default definitions until we need them.
21676
21677 2010-01-27 Jakub Jelinek <jakub@redhat.com>
21678
21679 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21680 (rs6000_delegitimize_address): New function.
21681
21682 * config/s390/s390.c (s390_delegitimize_address): Call
21683 delegitimize_mem_from_attrs.
21684
21685 PR middle-end/42874
21686 * tree-inline.c (cannot_copy_type_1): Removed.
21687 (copy_forbidden): Don't forbid copying of functions containing
21688 records/unions with variable length fields.
21689
21690 2010-01-27 Christian Bruel <christian.bruel@st.com>
21691
21692 Revert:
21693 PR target/42841
21694 * config/sh/sh.c (find_barrier): Increase length for non delayed
21695 conditional branches.
21696
21697 2010-01-27 Matthias Klose <doko@ubuntu.com>
21698
21699 * configure.ac (gnu-unique-object): Fix ldd version check.
21700 * configure: Regenerate.
21701
21702 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21703
21704 * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
21705 HAVE_GNU_AS value.
21706 * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
21707 Test for HAVE_GNU_AS value.
21708
21709 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21710
21711 * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
21712 * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
21713 INT64_TYPE): Define.
21714 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
21715 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
21716 INT_LEAST64_TYPE): Define.
21717 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
21718 UINT_LEAST64_TYPE): Define.
21719 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
21720 INT_FAST64_TYPE): Define.
21721 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
21722 UINT_FAST64_TYPE): Define.
21723 (INTMAX_TYPE, UINTMAX_TYPE): Define.
21724 (INTPTR_TYPE, UINTPTR_TYPE): Define.
21725 (SIG_ATOMIC_TYPE): Define.
21726
21727 2010-01-26 Richard Guenther <rguenther@suse.de>
21728
21729 * df-scan.c (df_scan_set_bb_info): Remove assert.
21730 (df_insn_rescan_debug_internal): Merge asserts.
21731 (df_install_ref): Likewise.
21732 (df_mark_reg): Use bitmap_set_range.
21733 (df_hard_reg_used_p): Remove assert.
21734 (df_hard_reg_used_count): Likewise.
21735
21736 2010-01-26 Richard Guenther <rguenther@suse.de>
21737
21738 PR rtl-optimization/42685
21739 * web.c (web_main): Ignore DEBUG_INSNs.
21740
21741 2010-01-26 Joern Rennecke <amylaar@spamcop.net>
21742
21743 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
21744
21745 (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
21746 Fix types of fndecl and arglist parameters.
21747
21748 2010-01-26 Richard Guenther <rguenther@suse.de>
21749
21750 PR middle-end/42806
21751 * tree-eh.c (unsplit_eh): Skip debug insns.
21752
21753 2010-01-26 Richard Guenther <rguenther@suse.de>
21754
21755 PR tree-optimization/42250
21756 * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
21757
21758 2010-01-26 Jakub Jelinek <jakub@redhat.com>
21759
21760 PR fortran/42866
21761 * omp-low.c (expand_omp_sections): Only use single_pred if
21762 l2_bb is single_pred_p.
21763
21764 2010-01-25 Christian Bruel <christian.bruel@st.com>
21765
21766 PR target/42841
21767 * config/sh/sh.c (find_barrier): Increase length for non delayed
21768 conditional branches.
21769 (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
21770
21771 2010-01-24 David S. Miller <davem@davemloft.net>
21772
21773 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
21774 define if not using GAS.
21775 * config/sparc/sparc.c (sparc_elf_asm_named_section):
21776 Likewise. Delete SECTION_MERGE code, which is only applicable
21777 when using GAS.
21778
21779 2010-01-24 Mark Mitchell <mark@codesourcery.com>
21780
21781 PR c++/42748
21782 * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
21783 mangling of va_list in system headers.
21784
21785 2010-01-23 Toon Moene <toon@moene.org>
21786
21787 * tree-predcom.c (combine_chains): Return NULL, not false.
21788
21789 2010-01-23 Joern Rennecke <amylaar@spamcop.net>
21790
21791 * tree-loop-distribution.c (distribute_loop): Fix declaration and
21792 initialization of variable res to agree with return type.
21793
21794 2010-01-22 Steve Ellcey <sje@cup.hp.com>
21795
21796 * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
21797 * tree-sra.c: Add include of expr.h.
21798
21799 2010-01-22 Jakub Jelinek <jakub@redhat.com>
21800
21801 * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
21802 insert the debug stmt on the single non-EH edge from the stmt.
21803
21804 2010-01-22 Richard Henderson <rth@redhat.com>
21805
21806 PR tree-opt/42833
21807 * tree-sra.c (sra_modify_assign): Delay re-gimplification of
21808 the RHS until after generate_subtree_copies has insertted its
21809 code before the current statement.
21810
21811 2010-01-22 Joern Rennecke <amylaar@spamcop.net>
21812
21813 * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
21814
21815 * gcc-plugin.h (plugin_init): Use "C" likage for c++.
21816
21817 2010-01-21 Martin Jambor <mjambor@suse.cz>
21818
21819 PR tree-optimization/42585
21820 * tree-sra.c (struct access): New field grp_total_scalarization.
21821 (dump_access): Dump the new field.
21822 (should_scalarize_away_bitmap): New variable.
21823 (cannot_scalarize_away_bitmap): Likewise.
21824 (sra_initialize): Allocate new bitmaps.
21825 (sra_deinitialize): Free new bitmaps.
21826 (create_access_1): New function.
21827 (create_access): Parts moved to create_access_1.
21828 (type_consists_of_records_p): New function.
21829 (completely_scalarize_record): Likewise.
21830 (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
21831 (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
21832 (sort_and_splice_var_accesses): Hint groups with a total_scalarization
21833 access.
21834 (analyze_all_variable_accesses): Completely scalarize small eligible
21835 records.
21836
21837 2010-01-21 Martin Jambor <mjambor@suse.cz>
21838
21839 * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
21840
21841 2010-01-21 Andrew Haley <aph@redhat.com>
21842
21843 * gcc.c (process_command): Move lang_specific_driver before
21844 setting cc_libexec_prefix.
21845
21846 2010-01-21 Richard Guenther <rguenther@suse.de>
21847
21848 PR middle-end/19988
21849 * fold-const.c (negate_expr_p): Pretend only negative
21850 real constants are easily negatable.
21851
21852 2010-01-20 Janis Johnson <janis187@us.ibm.com>
21853 Jason Merrill <jason@redhat.com>
21854
21855 * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
21856 (TYPE_TRANSPARENT_AGGR): this, for union and record.
21857 * calls.c (initialize argument_information): Handle it.
21858 * c-common.c (handle_transparent_union_attribute): Use new name.
21859 * c-decl.c (finish_struct): Ditto.
21860 * c-typeck.c (type_lists_compatible_p): Ditto.
21861 (convert_for_assignment): Use new name and also handle record.
21862 * function.c (aggregate_value_p): Handle it.
21863 (pass_by_reference): Ditto.
21864 (assign_parm_data_types): Ditto.
21865 * print-tree.c (print_node): Ditto.
21866 * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
21867 * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
21868 * tree.c (first_field): New fn.
21869
21870 2010-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
21871
21872 PR target/42818
21873 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
21874 even when linking statically, for now.
21875
21876 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
21877
21878 PR debug/42715
21879 * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
21880 without a cselib val.
21881 (count_uses): Accept MO_VAL_SET with no val on stores.
21882 (add_stores): Likewise.
21883
21884 2010-01-20 Jakub Jelinek <jakub@redhat.com>
21885
21886 * var-tracking.c (check_value_val): Add a compile time assertion.
21887 (dv_is_decl_p): Simplify.
21888 (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
21889 gcc_assert if ENABLE_CHECKING.
21890
21891 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
21892
21893 PR debug/42782
21894 * var-tracking.c: Include tree-flow.h.
21895 (mem_dies_at_call): New.
21896 (dataflow_set_preserve_mem_locs): Use it.
21897 (dataflow_set_remove_mem_locs): Likewise.
21898 (dump_var): Renamed from dump_variable. Adjust all callers.
21899 (dump_var_slot): Renamed from dump_variable_slot. Likewise.
21900 * Makefile.in (var-tracking.o): Adjust deps.
21901
21902 2010-01-20 Joern Rennecke <amylaar@spamcop.net>
21903
21904 * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
21905
21906 2010-01-20 Richard Guenther <rguenther@suse.de>
21907
21908 PR tree-optimization/42717
21909 * tree-ssa-dce.c (get_live_post_dom): Remove.
21910 (forward_edge_to_pdom): Take an arbitrary edge to copy
21911 degenerate PHI args from.
21912 (remove_dead_stmt): Use the first post-dominator even if it
21913 does not contain live statements as redirection destination.
21914
21915 2010-01-20 Richard Guenther <rguenther@suse.de>
21916
21917 * tree-inline.c (estimate_num_insns): Handle EH builtins.
21918
21919 2010-01-20 Jakub Jelinek <jakub@redhat.com>
21920
21921 * sel-sched.c (create_speculation_check): Remove set but not used
21922 variable twin.
21923 (try_transformation_cache): Remove set but not used variable ds.
21924 (calculate_privileged_insns): Remove set but not used variables
21925 cur_insn and min_spec_insn.
21926 (find_best_expr): Remove set but not used variable avail_n.
21927 * tree-predcom.c (base_names_in_chain_on): Remove set but not used
21928 variable e.
21929 * cgraphunit.c (assemble_thunk): Remove set but not used variable
21930 false_label.
21931 * haifa-sched.c (remove_notes): Remove set but not used variable prev.
21932 * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
21933 new_scop_exit_edge.
21934
21935 2010-01-20 Felyza Wishbringer <fwishbringer@gmail.com>
21936
21937 PR bootstrap/42786
21938 * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
21939 cpu types. Add support for *-sse3 cpu types.
21940 (x86_64-*-*): Ditto.
21941
21942 2010-01-20 Jakub Jelinek <jakub@redhat.com>
21943
21944 PR middle-end/42803
21945 * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
21946 argument, call initializer_constant_valid_p_1 instead of
21947 initializer_constant_valid_p, pass CACHE to it, return NULL
21948 immediately if first call returns NULL.
21949 (initializer_constant_valid_p_1): New function.
21950 (initializer_constant_valid_p): Use it.
21951
21952 2010-01-20 Thomas Quinot <quinot@adacore.com>
21953
21954 * tree.def (PLACEHOLDER_EXPR): Fix comment.
21955
21956 2010-01-20 Jakub Jelinek <jakub@redhat.com>
21957
21958 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
21959 of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
21960 (loc_list_from_tree): Don't handle unsigned division. Handle
21961 signed modulo using DW_OP_{over,over,div,mul,minus}.
21962 * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
21963 modulo instead of signed.
21964
21965 2010-01-20 DJ Delorie <dj@redhat.com>
21966
21967 * config/h8300/h8300.c (F): Add "in_epilogue" flag.
21968 (Fpa): Pass it
21969 (h8300_emit_stack_adjustment): Propogate it.
21970 (push): Pass it.
21971 (h8300_expand_prologue): Likewise.
21972 (h8300_expand_epilogue): Likewise.
21973
21974 2010-01-19 Michael Matz <matz@suse.de>
21975
21976 PR tree-optimization/41783
21977 * tree-data-ref.c (toplevel): Include flags.h.
21978 (dump_data_dependence_relation): Also dump the inputs if the
21979 result will be unknown.
21980 (split_constant_offset_1): Look through some conversions.
21981 * tree-predcom.c (determine_roots_comp): Restart a new chain if
21982 the offset from last element is too large.
21983 (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
21984 (reassociate_to_the_same_stmt): Handle vector registers.
21985 * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
21986 (e.g. conversions).
21987 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
21988 wide_prolog_niters argument, emit widening instructions.
21989 (vect_do_peeling_for_alignment): Adjust caller, use widened
21990 variant of the iteration cound.
21991 * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
21992
21993 2010-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21994
21995 PR target/38697
21996 * config/arm/neon-testgen.m (emit_automatics): New parameter
21997 features. Adjust for Fixed_return_reg feature.
21998 (test_intrinsic): Call emit_automatics with new feature.
21999 * config/arm/neon.ml: Update copyright years.
22000 (features): New Fixed_return_reg feature.
22001 (ops): Update feature for Vget_low.
22002
22003 2010-01-19 Jakub Jelinek <jakub@redhat.com>
22004
22005 PR tree-optimization/42719
22006 * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
22007 stmt uses.
22008
22009 PR debug/42728
22010 * fwprop.c (all_uses_available_at): Return false if def_set dest
22011 is a REG that is used in def_insn.
22012
22013 2010-01-19 Joern Rennecke <amylaar@spamcop.net>
22014
22015 * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
22016
22017 (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
22018 Add argument names.
22019
22020 (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
22021
22022 * target.h (struct gcc_target) <secondary_reload>: Change type
22023 of last argument to secondary_reload_info *.
22024
22025 2010-01-18 Uros Bizjak <ubizjak@gmail.com>
22026
22027 PR target/42774
22028 * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
22029 memory references with unaligned offsets. Remove CQImode handling.
22030 (unaligned_memory_operand): Return 1 for memory references with
22031 unaligned offsets. Remove CQImode handling.
22032
22033 2010-01-18 Richard Guenther <rguenther@suse.de>
22034
22035 PR middle-end/39954
22036 * cfgexpand.c (expand_call_stmt): TER pointer arguments in
22037 builtin calls.
22038
22039 2010-01-18 Richard Guenther <rguenther@suse.de>
22040
22041 PR tree-optimization/42781
22042 * tree-ssa-structalias.c (find_what_var_points_to): Skip
22043 restrict processing only if the original variable was artificial.
22044
22045 2010-01-18 Joern Rennecke <amylaar@spamcop.net>
22046
22047 * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
22048 find number of popped argument bytes.
22049
22050 (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
22051 Fix the text that describes the return value for invalid insns.
22052
22053 (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type. Fix argument list.
22054
22055 (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
22056 Clarify what 'cost of the -dependence' is. Fix quoting.
22057
22058 * toplev.c (default_get_pch_validity): Rename argument to "sz".
22059 * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
22060
22061 2010-01-17 Jakub Jelinek <jakub@redhat.com>
22062
22063 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
22064 {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
22065
22066 2010-01-17 Richard Guenther <rguenther@suse.de>
22067
22068 PR middle-end/42248
22069 * function.c (split_complex_args): Take a VEC to modify.
22070 (assign_parms_augmented_arg_list): Build a VEC instead of
22071 a chain of PARM_DECLs.
22072 (assign_parms_unsplit_complex): Take a VEC of arguments.
22073 Do not fixup unmodified parms.
22074 (assign_parms): Deal with the VEC.
22075 (gimplify_parameters): Likewise.
22076
22077 2010-01-17 Richard Guenther <rguenther@suse.de>
22078
22079 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
22080 node existence check.
22081 * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
22082 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
22083 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
22084 * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
22085 (gimple_execute_on_growing_pred): Likewise.
22086
22087 2010-01-17 Richard Guenther <rguenther@suse.de>
22088
22089 PR tree-optimization/42773
22090 * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
22091 (compute_antic_aux): Likewise.
22092 (compute_partial_antic_aux): Likewise.
22093
22094 2010-01-17 Jie Zhang <jie.zhang@analog.com>
22095
22096 PR debug/42767
22097 * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
22098 and US_TRUNCATE.
22099
22100 2010-01-17 Joern Rennecke <amylaar@spamcop.net>
22101
22102 * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
22103 appearance.
22104
22105 (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
22106 Fix markup for strict argument.
22107
22108 (TARGET_SCHED_REORDER2): Fix argument types.
22109
22110 (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
22111 (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
22112
22113 (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
22114 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
22115
22116 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
22117 Add argument name.
22118
22119 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
22120 (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
22121 (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
22122 (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
22123 (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
22124
22125 (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
22126
22127 (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
22128
22129 (TARGET_ASM_RELOC_RW_MASK): Add return type.
22130 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
22131
22132 (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
22133
22134 (TARGET_ASM_FILE_START): Put @findex before paragraph start.
22135 Use prototype.
22136
22137 (TARGET_ASM_NAMED_SECTION): Fix argument list.
22138
22139 (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
22140 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
22141
22142 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
22143
22144 (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
22145
22146 (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
22147 referring to it. Fix language.
22148
22149 (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
22150
22151 (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
22152
22153 (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
22154
22155 (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
22156
22157 (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
22158 '@var{stream}. Remove stray 'and'.
22159
22160 (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
22161
22162 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
22163
22164 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
22165
22166 (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
22167 misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
22168
22169 (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
22170 Fix description of return value.
22171 Rename argument "sz" to "len."
22172
22173 (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
22174 Clarify meaning of 'true' return value.
22175
22176 (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
22177
22178 (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
22179 rep_mode versus mode_rep.
22180
22181 (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
22182
22183 (TARGET_BUILTIN_DECL): Fix name.
22184
22185 (TARGET_COMMUTATIVE_P): Fix type of first argument.
22186
22187 (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
22188
22189 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
22190
22191 (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
22192
22193 (TARGET_RELAXED_ORDERING): Use @deftypevr.
22194
22195 (TARGET_GET_DRAP_RTX): Note that this is a hook.
22196 Clarify language.
22197
22198 (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
22199 Rename argument tm_fn to md_fn.
22200
22201 (TARGET_OPTION_PRINT): Fix argument list.
22202
22203 2010-01-16 Harsha Jagasia <harsha.jagasia@amd.com>
22204
22205 PR target/42664
22206 * config/i386/i386.c (ix86_fixup_binary_operands):
22207 Revert FMA4 fixup of operands.
22208
22209 2010-01-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22210
22211 PR gcc/42525
22212 * Makefile.in (write_entries_to_file, install-plugin):
22213 Use \012 instead of \n with tr.
22214
22215 2010-01-16 Richard Sandiford <r.sandiford@uk.ibm.com>
22216
22217 * configure.ac (HAVE_AS_REF): New C macro.
22218 * configure: Regenerate.
22219 * config.in: Likewise.
22220 * collect2.c (main): Only postpone SCAN_DWEH to the second pass
22221 if HAVE_AS_REF.
22222 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
22223 if HAVE_AS_REF.
22224
22225 2010-01-16 Joern Rennecke <amylaar@spamcop.net>
22226
22227 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
22228
22229 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
22230
22231 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
22232
22233 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
22234
22235 (TARGET_IN_SMALL_DATA_P): Fix argument type.
22236
22237 (TARGET_BINDS_LOCAL_P): Fix argument type.
22238
22239 (TARGET_ASM_FILE_END): Use prototype.
22240
22241 (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
22242
22243 (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
22244
22245 (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
22246
22247 (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
22248
22249 (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
22250 (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
22251
22252 (TARGET_PCH_VALID_P): Put 'const char *' in braces.
22253 (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
22254
22255 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
22256 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
22257 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
22258 (TARGET_ADDR_SPACE_CONVERT): Likewise.
22259
22260 (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
22261
22262 (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
22263
22264 (TARGET_INIT_BUILTINS): Use prototype.
22265
22266 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
22267 Put 'const char *' in braces. Fix parameter types.
22268 (TARGET_INVALID_CONVERSION): Fix parameter types.
22269 (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
22270 (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
22271
22272 (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
22273 Fix argument type.
22274
22275 (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
22276
22277 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
22278
22279 2010-01-15 Joern Rennecke <amylaar@spamcop.net>
22280
22281 * doc/tm.texi (TARGET_HELP): Fix return type.
22282
22283 (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
22284 in braces. Fix argument types.
22285
22286 (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
22287
22288 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
22289
22290 (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
22291
22292 (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
22293 (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
22294
22295 (TARGET_MANGLE_TYPE): Fix argument types.
22296
22297 (TARGET_IRA_COVER_CLASSES): Use prototype.
22298
22299 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type. Use prototype.
22300
22301 (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
22302
22303 (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
22304
22305 (TARGET_MUST_PASS_IN_STACK): Fix argument type.
22306
22307 (TARGET_CALLEE_COPIES): Fix argument types.
22308
22309 (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
22310
22311 (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
22312
22313 (TARGET_FUNCTION_VALUE): Fix argument types.
22314
22315 (TARGET_RETURN_IN_MSB): Fix argument type.
22316
22317 (TARGET_RETURN_IN_MEMORY): Fix argument types.
22318
22319 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
22320
22321 (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
22322
22323 (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
22324 agree with return type.
22325
22326 (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
22327
22328 2010-01-15 Jing Yu <jingyu@google.com>
22329
22330 PR rtl-optimization/42691
22331 * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
22332 a pseudo to a constant and are merged, and adjust comments.
22333
22334 2010-01-15 Eric Botcazou <ebotcazou@adacore.com>
22335
22336 * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
22337
22338 2010-01-15 Richard Guenther <rguenther@suse.de>
22339
22340 PR middle-end/42739
22341 * tree-cfgcleanup.c (remove_forwarder_block): Move destination
22342 labels of computed or non-local gotos to the destination.
22343 * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
22344 landing pad label is the first label.
22345
22346 2010-01-15 Richard Guenther <rguenther@suse.de>
22347
22348 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
22349
22350 2010-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
22351
22352 PR target/42747
22353 * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
22354 to allow generation of the xssqrtdp instruction on power7.
22355 (sqrtdf2_fpr): Ditto.
22356
22357 2010-01-14 Jakub Jelinek <jakub@redhat.com>
22358
22359 PR middle-end/42674
22360 * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
22361 functions with noreturn attribute.
22362
22363 PR c++/42608
22364 * varasm.c (declare_weak): Add weak attribute to decl if it
22365 doesn't have one already.
22366 (assemble_external): Only add decls to weak_decls if they also
22367 have weak attribute.
22368
22369 2010-01-14 Alexandre Oliva <aoliva@redhat.com>
22370
22371 * var-tracking.c (var_reg_delete): Don't delete the association
22372 between REGs and values or one-part variables if the register
22373 isn't clobbered.
22374
22375 2010-01-14 Jakub Jelinek <jakub@redhat.com>
22376
22377 PR debug/42657
22378 * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
22379 because its first operand is a non-localized variable.
22380
22381 2010-01-14 Martin Jambor <mjambor@suse.cz>
22382
22383 PR tree-optimization/42706
22384 * tree-sra.c (encountered_recursive_call): New variable.
22385 (encountered_unchangable_recursive_call): Likewise.
22386 (sra_initialize): Initialize both new variables.
22387 (callsite_has_enough_arguments_p): New function.
22388 (scan_function): Call decl and flags check only for IPA-SRA, check
22389 whether there is a recursive call and whether it has enough arguments.
22390 (all_callers_have_enough_arguments_p): New function.
22391 (convert_callers): Look for recursive calls only when
22392 encountered_recursive_call is set.
22393 (ipa_early_sra): Bail out either if
22394 !all_callers_have_enough_arguments_p or
22395 encountered_unchangable_recursive_call.
22396
22397 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
22398
22399 * sel-sched.c: Add 2010 to copyright years.
22400 * sel-sched-ir.c: Likewise.
22401 * sel-sched-ir.h: Likewise.
22402
22403 2010-01-14 Martin Jambor <mjambor@suse.cz>
22404
22405 PR tree-optimization/42714
22406 * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
22407 constructors specially.
22408
22409 2010-01-14 Andi Kleen <ak@linux.intel.com>
22410
22411 * config/i386/drivers-i386.c (detect_caches_intel):
22412 Add l2sizekb parameter and fill in.
22413 (host_detect_local_cpu): Add l2sizekb, fill in.
22414 Add Atom small cache heuristic.
22415
22416 2010-01-14 Andi Kleen <ak@linux.intel.com>
22417
22418 * config/i386/drivers-i386.c (detect_caches_cpuid4):
22419 Add level3 parameter and fill in.
22420 (detect_caches_intel): Handle level3 cache.
22421
22422 2010-01-14 Andi Kleen <ak@linux.intel.com>
22423
22424 * config/i386/drivers-i386.c (host_detect_local_cpu):
22425 Fix core duo detection.
22426
22427 2010-01-14 Andi Kleen <ak@linux.intel.com>
22428
22429 * config/i386/drivers-i386.c (host_detect_local_cpu):
22430 Fix Atom detection.
22431
22432 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
22433
22434 * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
22435 (rs6000_variable_issue_1): this. Use...
22436 (rs6000_variable_issue): here. Reimplement. Print debug info.
22437
22438 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
22439
22440 * sel-sched-ir.c (sel_restore_other_notes): Rename to
22441 sel_restore_notes. Update all callers. Call reemit_notes
22442 for all insns.
22443
22444 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
22445
22446 PR rtl-optimization/42246
22447 * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
22448 loops.
22449
22450 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
22451
22452 * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
22453 all successors is the same as number of successors in current region.
22454
22455 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
22456
22457 * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
22458 to rename is not separable. Otherwise check that its LHS is not NULL.
22459
22460 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
22461
22462 * sel-sched.c (choose_best_reg_1): Loop over all regs for mode.
22463
22464 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
22465
22466 * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
22467 available registers when failed to discover LHS register class.
22468 Fix indentation. Update comment.
22469
22470 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
22471 Alexander Monakov <amonakov@ispras.ru>
22472
22473 PR rtl-optimization/42389
22474 * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
22475 to can_issue_more.
22476 (advance_state_on_fence): Likewise.
22477 (sel_target_adjust_priority): Print debug output only when
22478 sched_verbose >= 4, not 2.
22479 (get_expr_cost): Do not issue all unique insns on the next cycle.
22480 (fill_insns): Initialize can_issue_more from the value saved
22481 with the fence.
22482 * sel-sched-ir.c (flist_add): New parameter issue_more.
22483 Init FENCE_ISSUE_MORE with it.
22484 (merge_fences): Likewise.
22485 (init_fences): Update call to flist_add.
22486 (add_to_fences, add_clean_fence_to_fences)
22487 (add_dirty_fence_to_fences): Likewise.
22488 (move_fence_to_fences): Update call to merge_fences.
22489 (invoke_reorder_hooks): Do not reset can_issue_more on insns from
22490 sched groups.
22491 * sel-sched-ir.h (struct _fence): New field issue_more.
22492 (FENCE_ISSUE_MORE): New accessor macro.
22493
22494 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
22495
22496 PR rtl-optimization/42388
22497 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
22498 that have no predecessors nor successors. Do not call move_bb_info
22499 for empty blocks outside of current region.
22500
22501 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
22502
22503 PR rtl-optimization/42294
22504 * sel-sched-ir.h (struct _sel_insn_data): Update comment.
22505 * sel-sched.c (move_exprs_to_boundary): Transitively add all
22506 originators' originators.
22507
22508 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
22509
22510 PR rtl-optimization/39453
22511 PR rtl-optimization/42246
22512 * sel-sched-ir.c (considered_for_pipelining_p): Do not test
22513 for pipelining_p.
22514 (sel_add_loop_preheaders): Add preheader to last_added_blocks.
22515
22516 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
22517 Alexander Monakov <amonakov@ispras.ru>
22518
22519 PR middle-end/42245
22520 * sel-sched-ir.c (sel_recompute_toporder): New. Use it...
22521 (maybe_tidy_empty_bb): ... here. Make static. Add new
22522 argument. Update all callers.
22523 (tidy_control_flow): ... and here. Recompute topological order
22524 of basic blocks in region if necessary.
22525 (sel_redirect_edge_and_branch): Change return type. Return true
22526 if topological order might have been invalidated.
22527 (purge_empty_blocks): Export and move from...
22528 * sel-sched.c (purge_empty_blocks): ... here.
22529 * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
22530 (maybe_tidy_empty_bb): Delete prototype.
22531 (purge_empty_blocks): Declare.
22532
22533 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
22534
22535 PR rtl-optimization/42249
22536 * sel-sched.c (try_replace_dest_reg): When chosen register
22537 and original register is the same, do not bail out early, but
22538 still check all original insns for validity of replacing destination
22539 register. Set EXPR_TARGET_AVAILABLE to 1 before leaving function
22540 in this case.
22541
22542 2010-01-14 Jakub Jelinek <jakub@redhat.com>
22543
22544 PR c/42721
22545 Port from no-undefined-overflow branch:
22546 2009-03-09 Richard Guenther <rguenther@suse.de>
22547
22548 * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
22549
22550 2010-01-14 Richard Guenther <rguenther@suse.de>
22551
22552 PR lto/42665
22553 * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
22554
22555 2010-01-14 Ira Rosen <irar@il.ibm.com>
22556
22557 PR tree-optimization/42709
22558 * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
22559 as scalar type in creation of constant vector operand.
22560
22561 2010-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22562
22563 PR testsuite/42414
22564 * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
22565 (check-parallel-%): Match `testsuite' directory component only
22566 at the end.
22567
22568 2010-01-14 Shujing Zhao <pearly.zhao@oracle.com>
22569
22570 PR translation/39521
22571 * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
22572 strings with _().
22573
22574 2010-01-13 Richard Guenther <rguenther@suse.de>
22575
22576 PR tree-optimization/42730
22577 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
22578 offset zero.
22579
22580 2010-01-13 Steve Ellcey <sje@cup.hp.com>
22581
22582 PR target/pr42542
22583 * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
22584 for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
22585 them signed.
22586
22587 2010-01-13 Bernd Schmidt <bernd.schmidt@analog.com>
22588
22589 * config/bfin/libgcc-bfin.ver: Regenerate based on current
22590 libgcc-std.ver. Add entries for ___smulsi3_highpart and
22591 ___umulsi3_highpart.
22592
22593 * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
22594 rather than schedule_insns if the pass is enabled.
22595
22596 2010-01-13 Martin Jambor <mjambor@suse.cz>
22597
22598 PR tree-optimization/42704
22599 * tree-sra.c (sra_modify_assign): Do not delete assignments to
22600 SSA_NAMEs.
22601
22602 2010-01-13 Martin Jambor <mjambor@suse.cz>
22603
22604 PR tree-optimization/42703
22605 * tree-sra.c (analyze_access_subtree): Check that we can build a
22606 reference to the original data within the aggregate.
22607
22608 2010-01-13 Richard Guenther <rguenther@suse.de>
22609
22610 PR tree-optimization/42705
22611 * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
22612
22613 2010-01-13 Richard Guenther <rguenther@suse.de>
22614
22615 PR middle-end/42716
22616 * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
22617
22618 2010-01-13 Jakub Jelinek <jakub@redhat.com>
22619
22620 PR debug/41371
22621 * var-tracking.c (values_to_unmark): New variable.
22622 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
22623 values_to_unmark vector. Moved body to...
22624 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
22625 instead queue it into values_to_unmark vector.
22626 (vt_find_locations): Free values_to_unmark vector.
22627
22628 2010-01-13 Wolfgang Gellerich <gellerich@de.ibm.com>
22629
22630 * config/s390/s390.c (override_options): Set
22631 default of max-pending-list-length to 256
22632
22633 2010-01-13 Richard Guenther <rguenther@suse.de>
22634
22635 PR lto/42678
22636 * tree-pass.h (PROP_gimple_lcx): New.
22637 * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
22638 * passes.c (init_optimization_passes): Move pass_lower_complex_O0
22639 before the final cleanup_eh.
22640 (dump_properties): Dump PROP_gimple_lcx.
22641 * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
22642 (tree_lower_complex_O0): Remove.
22643 (gate_no_optimization): Run if PROP_gimple_lcx is not set.
22644 (pass_lower_complex_O0): Provide PROP_gimple_lcx. Run
22645 tree_lower_complex, schedule TODO_update_ssa.
22646 * lto-streamer-out.c (output_function): Stream the functions
22647 properties.
22648 * lto-streamer-in.c (input_function): Likewise.
22649 (lto_read_body): Do not override them here.
22650
22651 2010-01-12 Joseph Myers <joseph@codesourcery.com>
22652
22653 PR c/42708
22654 * c-typeck.c (build_c_cast): Fold value cast to union type before
22655 wrapping it in a CONSTRUCTOR.
22656
22657 2010-01-12 Jakub Jelinek <jakub@redhat.com>
22658
22659 PR rtl-optimization/42699
22660 * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
22661 involved.
22662
22663 2010-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22664
22665 * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
22666 SUBTARGET_WARN_UNUSED_SPEC): Move ...
22667 config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
22668 SUBTARGET_WARN_UNUSED_SPEC): ... here
22669 * config/mips/iris5.h (LIBGCC_SPEC): Define.
22670
22671 2010-01-12 Julian Brown <julian@codesourcery.com>
22672
22673 * config/arm/neon-schedgen.ml (Utils): Don't try to
22674 open missing module.
22675 (find_with_result): New.
22676
22677 2010-01-12 Jakub Jelinek <jakub@redhat.com>
22678
22679 PR debug/42662
22680 * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
22681 sharing when canonicalizing ({lt,ge}u (plus a b) b).
22682
22683 PR tree-optimization/42645
22684 * tree-inline.c (processing_debug_stmt): Move earlier. Make static.
22685 (remap_ssa_name): If processing_debug_stmt and name wasn't found in
22686 decl_map, set processing_debug_stmt to -1 and return name without
22687 any remapping.
22688
22689 2010-01-11 Dave Korn <dave.korn.cygwin@gmail.com>
22690
22691 * doc/install.texi (Specific#x-x-cygwin): Document minimum required
22692 binutils version, and reword target configuration description.
22693
22694 2010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
22695
22696 * config/avr/avr.h (LINKER_NAME): Remove.
22697
22698 2010-01-11 Janis Johnson <janis187@us.ibm.com>
22699
22700 PR target/42416
22701 * config/rs6000/rs6000.c (rs6000_override_options): On targets
22702 that support VSX, warn for -mno-altivec if vsx is not disabled,
22703 and disable vsx.
22704
22705 2010-01-11 Joseph Myers <joseph@codesourcery.com>
22706 Shujing Zhao <pearly.zhao@oracle.com>
22707
22708 PR translation/42469
22709 * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
22710 fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
22711 character between option name and help text.
22712 * c.opt (imultilib): Likewise.
22713
22714 2010-01-10 Rafael Avila de Espindola <espindola@google.com>
22715
22716 * lto-streamer-out.c (output_unreferenced_globals): Output static
22717 variables.
22718
22719 2010-01-10 Steven Bosscher <steven@gcc.gnu.org>
22720
22721 PR rtl-optimization/42621
22722 * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
22723 optimizing for size.
22724 (duplicate_computed_gotos): Remove now-redundant check.
22725
22726 2010-01-10 Steve Ellcey <sje@cup.hp.com>
22727
22728 PR target/37454
22729 * configure.ac: Save and restore LDFLAGS and LIBS
22730 * configure: Regenerate.
22731
22732 2010-01-10 Richard Guenther <rguenther@suse.de>
22733
22734 PR middle-end/42667
22735 * builtins.c (fold_builtin_strlen): Add type argument and
22736 convert the resulting length to it.
22737 (fold_builtin_1): Adjust.
22738
22739 2010-01-09 Jakub Jelinek <jakub@redhat.com>
22740
22741 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
22742 sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
22743 1 insn.
22744 (num_insns_constant_wide): Adjust for that change.
22745
22746 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
22747
22748 PR debug/42631
22749 * web.c (union_defs): Add used argument, to combine uses of
22750 uninitialized regs.
22751 (entry_register): Adjust type and tests of used argument.
22752 (web_main): Widen used for new use. Pass it to union_defs.
22753 * df.h (union_defs): Adjust prototype.
22754
22755 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
22756
22757 PR debug/42630
22758 * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
22759 uses in new incoming argument. Free body.
22760 (reset_debug_uses_in_loop): New.
22761 (analyze_insn_to_expand_var): Call the latter if the former found
22762 anything. Fix whitespace. Reject invalid dest overlaps before
22763 going through all insns in the loop.
22764
22765 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
22766
22767 PR debug/42629
22768 * haifa-sched.c (dying_use_p): Debug insns don't count.
22769
22770 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
22771
22772 PR middle-end/42363
22773 * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
22774 * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
22775 (verify_gimple_call): Reject LHS in noreturn calls.
22776
22777 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
22778
22779 PR debug/42604
22780 PR debug/42395
22781 * tree-vect-loop-manip.c (adjust_info): New type.
22782 (adjust_vec): New pointer to vector.
22783 (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
22784 (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
22785 (slpeel_update_phis_for_duplicate_loop): Use them.
22786 (slpeel_update_phi_nodes_for_guard1): Likewise.
22787 (slpeel_update_phi_nodes_for_guard2): Likewise.
22788 (slpeel_tree_peel_loop_to_edge): Likewise.
22789 (vect_update_ivs_after_vectorizer): Likewise.
22790
22791 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
22792
22793 * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
22794 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
22795
22796 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
22797
22798 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
22799 bogus uninitialized warning.
22800
22801 2010-01-09 Richard Guenther <rguenther@suse.de>
22802
22803 PR middle-end/42512
22804 * tree-scalar-evolution.c (interpret_loop_phi): Make sure
22805 the evolution is compatible with the initial condition.
22806
22807 2010-01-09 Jakub Jelinek <jakub@redhat.com>
22808
22809 * gcc.c (process_command): Update copyright notice dates.
22810 * gcov.c (print_version): Likewise.
22811 * gcov-dump.c (print_version): Likewise.
22812 * mips-tfile.c (main): Likewise.
22813 * mips-tdump.c (main): Likewise.
22814
22815 2010-01-08 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
22816
22817 PR target/41885
22818 * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
22819 (rotlhi3): Delete.
22820 (rotlhi3_8): Delete.
22821 (rotlsi3): Delete.
22822 (rotlsi3_8): Delete.
22823 (rotlsi3_16): Delete.
22824 (rotlsi3_24): Delete.
22825 (rotl<mode>3): New.
22826 (*rotw<mode>3): New.
22827 (*rotb<mode>3): New.
22828 * config/avr/avr.c (avr_rotate_bytes): New function.
22829 * config/avr/avr-proto.h (avr_rotate_bytes): New function.
22830
22831 2010-01-08 Steve Ellcey <sje@cup.hp.com>
22832
22833 PR target/37454
22834 * configure.ac: Modify -rdynamic check.
22835 * configure: Regenerate.
22836
22837 2010-01-08 DJ Delorie <dj@redhat.com>
22838
22839 * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
22840 register popping order.
22841
22842 2010-01-08 Richard Guenther <rguenther@suse.de>
22843
22844 PR lto/42528
22845 * c.opt (fsigned-char): Also let LTO handle this option.
22846 (funsigned-char): Likewise.
22847
22848 2010-01-07 Richard Guenther <rguenther@suse.de>
22849
22850 * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
22851 (gimple_op): Likewise.
22852 (gimple_op_ptr): Likewise.
22853 (gimple_assign_set_lhs): Remove gcc_assert.
22854 (gimple_assign_set_rhs1): Likewise.
22855 (gimple_assign_set_rhs2): Likewise.
22856 (gimple_call_set_lhs): Likewise.
22857 (gimple_call_set_fn): Likewise.
22858 (gimple_call_set_fndecl): Likewise.
22859 (gimple_call_fndecl): Likewise.
22860 (gimple_call_return_type): Likewise.
22861 (gimple_call_set_chain): Likewise.
22862 (gimple_call_num_args): Likewise.
22863 (gimple_call_set_arg): Likewise.
22864 (gimple_cond_set_code): Likewise.
22865 (gimple_cond_set_lhs): Likewise.
22866 (gimple_cond_set_rhs): Likewise.
22867 (gimple_cond_set_true_label): Likewise.
22868 (gimple_cond_set_false_label): Likewise.
22869 (gimple_label_set_label): Likewise.
22870 (gimple_goto_set_dest): Likewise.
22871 (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
22872 (gimple_debug_bind_get_value): Likewise.
22873 (gimple_debug_bind_get_value_ptr): Likewise.
22874 (gimple_debug_bind_set_var): Likewise.
22875 (gimple_debug_bind_set_value): Likewise.
22876 (gimple_debug_bind_reset_value): Likewise.
22877 (gimple_debug_bind_has_value_p): Likewise.
22878 (gimple_return_retval_ptr): Remove gcc_assert.
22879 (gimple_return_retval): Likewise.
22880 (gimple_return_set_retval): Likewise.
22881 * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
22882 (safe_referenced_var_iterator): Remove.
22883 (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
22884 * tree-flow-inline.h (gimple_nonlocal_all): Remove.
22885 (fill_referenced_var_vec): Remove.
22886 (first_readonly_imm_use): Remove redundant gcc_assert.
22887 (phi_arg_index_from_use): Combine gcc_asserts.
22888 (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
22889 (first_imm_use_stmt): Remove redundant gcc_assert.
22890 * tree-cfg.c (verify_gimple_call): Verify function and chain
22891 operands. Verify arguments.
22892 (verify_types_in_gimple_stmt): Verify condition code and labels.
22893
22894 2010-01-07 Richard Guenther <rguenther@suse.de>
22895
22896 PR tree-optimization/42641
22897 * sese.c (rename_map_elt_info): Use the SSA name version, do
22898 not hash pointers.
22899
22900 2010-01-07 Jakub Jelinek <jakub@redhat.com>
22901
22902 PR tree-optimization/42625
22903 * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
22904 TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
22905
22906 2010-01-07 Duncan Sands <baldrick@free.fr>
22907
22908 * Makefile.in (PLUGIN_HEADERS): Add version.h.
22909
22910 2010-01-07 Uros Bizjak <ubizjak@gmail.com>
22911
22912 PR target/42511
22913 * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
22914 note itself is not function_invariant_p.
22915
22916 2009-01-07 Steven Bosscher <steven@gcc.gnu.org>
22917
22918 * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
22919 Do not add the DF_NOTE problem.
22920 * store-motion.c (execute_rtl_store_motion): Likewise.
22921
22922 2010-01-07 Martin Jambor <mjambor@suse.cz>
22923
22924 PR tree-optimization/42157
22925 * tree-sra.c (compare_access_positions): Stabilize sort if both
22926 accesses have integer types, return zero immediately if they are the
22927 same.
22928
22929 2010-01-06 Richard Henderson <rth@redhat.com>
22930
22931 PR middle-end/41883
22932 * haifa-sched.c (add_to_note_list): Merge into ...
22933 (concat_note_lists): ... here, and ...
22934 (unlink_other_notes, rm_other_notes): Merge into...
22935 (remove_notes): ... here. Create REG_SAVE_NOTEs for
22936 NOTE_INSN_EPILOGUE_BEG.
22937
22938 2010-01-06 Richard Guenther <rguenther@suse.de>
22939
22940 * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
22941 not inline regular functions into always-inline functions.
22942
22943 2010-01-06 Nick Clifton <nickc@redhat.com>
22944
22945 * config/rx/rx.h (enum rx_cpu_type): Add RX200.
22946 (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
22947 used together.
22948 (OVERRIDE_OPTIONS): Delete.
22949 (OPTIMIZATION_OPTIONS): Define.
22950 (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
22951 * config/rx/rx.c (rx_handle_option): Issue an error message if
22952 -mcpu=rx200 and -fpu are used together.
22953 (rx_set_optimization_options): New function. Issue an error
22954 message if an optimization attribute attempts to reset the FPU/
22955 math optimization pairing.
22956 * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
22957 * config/rx/rx.opt: Set the default to 32-bit doubles.
22958 * config/rx/t-rx: Add multilibs for -nofpu option.
22959 * doc/invoke.texi: Update documentation of RX options.
22960
22961 2010-01-06 Richard Guenther <rguenther@suse.de>
22962
22963 * tree-ssa-pre.c (name_to_id): New global.
22964 (alloc_expression_id): Simplify SSA name handling.
22965 (lookup_expression_id): Likewise.
22966 (init_pre): Zero name_to_id.
22967 (fini_pre): Free it.
22968
22969 2010-01-06 Uros Bizjak <ubizjak@gmail.com>
22970
22971 * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
22972
22973 2010-01-05 H.J. Lu <hongjiu.lu@intel.com>
22974
22975 PR target/42542
22976 * config/i386/sse.md (smaxv2di3): New.
22977 (umaxv2di3): Likewise.
22978 (sminv2di3): Likewise.
22979 (uminv2di3): Likewise.
22980
22981 2010-01-05 Eric Botcazou <ebotcazou@adacore.com>
22982
22983 PR target/42564
22984 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
22985 * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
22986 (legitimize_tls_address): Likewise.
22987 (sparc_tls_referenced_p): Likewise.
22988 * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
22989 and adjust calls to legitimize_pic_address.
22990 (legitimate_constant_p) Use sparc_tls_referenced_p.
22991 (legitimate_pic_operand_p): Likewise.
22992 (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
22993 (sparc_tls_symbol_ref_1): Delete.
22994 (sparc_tls_referenced_p): Make static, recognize specific patterns.
22995 (legitimize_tls_address): Make static, handle CONST patterns.
22996 (legitimize_pic_address): Make static, remove unused parameter and
22997 adjust recursive calls.
22998 (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
22999 and adjust call to legitimize_pic_address.
23000 (sparc_output_mi_thunk): Likewise.
23001
23002 2010-01-05 Paolo Bonzini <bonzini@gnu.rg>
23003 H.J. Lu <hongjiu.lu@intel.com>
23004
23005 PR target/42542
23006 * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
23007 for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
23008 operands to make them signed.
23009
23010 Revert:
23011 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
23012
23013 PR target/42542
23014 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
23015 GTU to GT for V4SI and V2DI.
23016
23017 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
23018 (umin<mode>3): Removed.
23019 (uminv8hi3): New.
23020 (uminv4si3): Likewise.
23021
23022 2010-01-05 Martin Jambor <mjambor@suse.cz>
23023
23024 PR tree-optimization/42462
23025 * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
23026 current_function_decl to helper functions and macros.
23027
23028 2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23029
23030 PR bootstrap/41771
23031 * flags.h: Don't include real.h.
23032 (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
23033 HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
23034 * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
23035 HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
23036 * dominance.c: Update copyright.
23037 * gimple.c (walk_gimple_op): Remove inline.
23038 * tree-ssa-reassoc.c: Include real.h.
23039 * Makefile.in (FLAGS_H): Remove $(REAL_H).
23040 (tree-ssa-reassoc.o): Depend on $(REAL_H).
23041
23042 2010-01-05 Nick Clifton <nickc@redhat.com>
23043
23044 * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
23045 register to push into the stack frame when the accumulator has to
23046 be saved during interrupts.
23047
23048 2010-01-05 Eric Fisher <joefoxreal@gmail.com>
23049
23050 * doc/invoke.texi: Remove the documentation about option
23051 -Wunreachable-code.
23052 * common.opt (Wunreachable-code): Preserved for backward
23053 compatibility.
23054 * tree-cfg.c: Remove the implementation of -Wunreachable-code.
23055 * opts.c (common_handle_option): Add OPT_Wunreachable_code to
23056 the backward compatibility flag section.
23057
23058 2010-01-05 Richard Guenther <rguenther@suse.de>
23059
23060 * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
23061
23062 2010-01-05 Jakub Jelinek <jakub@redhat.com>
23063
23064 PR other/42611
23065 * cfgexpand.c (expand_one_var): Diagnose too large variables.
23066
23067 PR tree-optimization/42508
23068 * tree-sra.c (convert_callers): Check for recursive call
23069 by comparing cgraph nodes instead of decls.
23070 (modify_function): Call ipa_modify_formal_parameters also
23071 on all same_body aliases.
23072
23073 * cgraphunit.c (cgraph_materialize_all_clones): Compare
23074 cgraph nodes when checking for same_body aliases.
23075
23076 2010-01-05 Richard Guenther <rguenther@suse.de>
23077
23078 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
23079 allocation and lookup.
23080 (get_or_alloc_expr_for_constant): Likewise.
23081 (phi_translate): Sink allocation.
23082
23083 2010-01-04 Richard Guenther <rguenther@suse.de>
23084
23085 * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
23086 a new entry only if needed.
23087 * tree-ssa-dom.c (lookup_avail_expr): Likewise.
23088 * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
23089 hashtable lookup.
23090 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
23091 the result array.
23092 (phi_translate): Handle CONSTANTs early.
23093
23094 2010-01-04 Martin Jambor <mjambor@suse.cz>
23095
23096 PR tree-optimization/42398
23097 * tree-sra.c (struct access): Removed flag grp_different_types.
23098 (dump_access): Do not dump the removed flag.
23099 (sort_and_splice_var_accesses): Do not set the removed flag.
23100 (sra_modify_expr): Check for type compatibility directly.
23101
23102 2010-01-04 Martin Jambor <mjambor@suse.cz>
23103
23104 PR tree-optimization/42366
23105 * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
23106 edges with variable number of parameters.
23107 * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
23108 flag instead of asserting it.
23109 (ipa_read_node_info): Read uses_analysis_done flag.
23110
23111 2010-01-04 Richard Guenther <rguenther@suse.de>
23112
23113 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
23114 iterative_hash_* as intended.
23115 (vn_reference_compute_hash): Likewise. Simplify hashing
23116 SSA names.
23117 (vn_reference_lookup_2): Likewise.
23118 (vn_nary_op_compute_hash): Likewise.
23119 (vn_phi_compute_hash): Likewise.
23120 (expressions_equal_p): Remove strange code.
23121 * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
23122 (pre_expr_hash): Likewise. Simplify hashing SSA names.
23123 (bitmap_insert_into_set_1): Take value-id as parameter.
23124 (add_to_value): Pass it.
23125 (bitmap_insert_into_set): Likewise.
23126 (bitmap_value_insert_into_set): Likewise. Remove redundant check.
23127
23128 2010-01-04 Jakub Jelinek <jakub@redhat.com>
23129
23130 PR driver/42442
23131 * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
23132 (do_self_spec): For switches with SWITCH_IGNORE set set also
23133 SWITCH_IGNORE_PERMANENTLY.
23134 (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
23135 of SWITCH_IGNORE.
23136
23137 2010-01-04 Rafael Avila de Espindola <espindola@google.com>
23138
23139 * lto-streamer-out.c (output_unreferenced_globals): Output the full
23140 tree of an unreferenced global var.
23141
23142 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
23143
23144 PR target/42542
23145 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
23146 GTU to GT for V4SI and V2DI.
23147
23148 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
23149 (umin<mode>3): Removed.
23150 (uminv8hi3): New.
23151 (uminv4si3): Likewise.
23152
23153 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
23154
23155 PR lto/42581
23156 * collect2.c (main): Turn on trace in collect2 if -v is passed
23157 to gcc with LTO.
23158
23159 2010-01-03 Jerry Quinn <jlquinn@optonline.net>
23160
23161 * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR. Update
23162 description of expression operand.
23163
23164 2010-01-03 Andrew Jenner <andrew@codesourcery.com>
23165
23166 * configure.ac: Add install-html to target_list for Make-hooks.
23167 * configure: Regenerate.
23168 * fortran/Make-lang.in (F95_HTMLFILES): New.
23169 (fortran.html): Use it.
23170 (fortran.install-html): New.
23171 * Makefile.in (install-html): Add lang.install-html.
23172 * java/Make-lang.in (JAVA_HTMLFILES): New.
23173 (java.html): Use it.
23174 (java.install-html): New.
23175 * objc/Make-lang.in (objc.install-html): New.
23176 * objcp/Make-lang.in (obj-c++.install-html): New.
23177 * cp/Make-lang.in (c++.install-html): New.
23178 * ada/gcc-interface/Make-lang.in (ada.install-html): New.
23179 * lto/Make-lang.in (lto.install-html): New.
23180
23181 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
23182
23183 PR lto/42520
23184 * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
23185
23186 2009-01-03 Steven Bosscher <steven@gcc.gnu.org>
23187
23188 PR rtl-optimization/41862
23189 * store-motion.c (store_killed_in_insn, compute_store_table,
23190 remove_reachable_equiv_notes, replace_store_insn,
23191 build_store_vectors): Ignore all DEBUG_INSNs.
23192
23193 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
23194
23195 PR lto/41564
23196 * common.opt: Add dumpdir.
23197
23198 * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
23199 isn't specified.
23200 (option_map): Add --dumpdir.
23201
23202 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
23203
23204 * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
23205
23206 * opts.c (decode_options): Try dump_dir_name first if
23207 dump_base_name isn't an absolute path.
23208 (common_handle_option): Handle OPT_dumpdir.
23209
23210 * toplev.c (dump_dir_name): New.
23211 (print_switch_values): Also ignore -dumpdir.
23212
23213 * toplev.h (dump_dir_name): New.
23214
23215 2010-01-03 Richard Guenther <rguenther@suse.de>
23216
23217 PR tree-optimization/42589
23218 * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
23219 double-word expansion of bswap32.
23220
23221 2010-01-03 Steven Bosscher <steven@gcc.gnu.org>
23222
23223 * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
23224 with BLOCK_FOR_INSN.
23225 * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
23226 * ifcvt.c (noce_get_alt_condition, noce_try_abs,
23227 noce_process_if_block): Likewise.
23228 * gcse.c (compute_local_properties, insert_expr_in_table,
23229 insert_set_in_table, canon_list_insert, find_avail_set,
23230 pre_insert_copy_insn): Likewise.
23231
23232 * basic-block.h (BLOCK_NUM): Move from here...
23233 * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
23234
23235 2010-01-03 Richard Guenther <rguenther@suse.de>
23236
23237 PR tree-optimization/42438
23238 * tree-ssa-pre.c (struct bb_bitmap_sets): Add
23239 contains_may_not_return_call flag.
23240 (BB_MAY_NOTRETURN): New.
23241 (valid_in_sets): Trapping nary operations are not valid
23242 in blocks that may not return.
23243 (insert_into_preds_of_block): Remove check for trapping expressions.
23244 (compute_avail): Compute also BB_MAY_NOTRETURN.
23245
23246 2010-01-03 Gerald Pfeifer <gerald@pfeifer.com>
23247
23248 * doc/invoke.texi: Add 2010 to copyright years.
23249
23250 2010-01-03 Eric Botcazou <ebotcazou@adacore.com>
23251
23252 * config/sparc/sparc.c: Fix formatting nits.
23253
23254 2010-01-02 Gerald Pfeifer <gerald@pfeifer.com>
23255 Alexander Monakov <amonakov@ispras.ru>
23256
23257 * doc/invoke.texi (Optimize Options): Reword introduction a bit.
23258
23259 2010-01-02 Richard Guenther <rguenther@suse.de>
23260
23261 PR middle-end/42577
23262 * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
23263 (simplify_switch_using_ranges): Mark to be removed edges
23264 as non-executable.
23265
23266 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23267
23268 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
23269
23270 * collect2.c (scan_libraries): Add missing argument in call to
23271 scan_prog_file.
23272
23273 2010-01-02 Uros Bizjak <ubizjak@gmail.com>
23274
23275 PR target/42448
23276 * config/alpha/predicates.md (aligned_memory_operand): Return false
23277 for CQImode.
23278 (unaligned_memory_operand): Return true for CQImode.
23279 * config/alpha/alpha.c (get_aligned_mem): Assert that location
23280 doesn not cross aligned SImode word boundary.
23281
23282 2010-01-02 Anatoly Sokolov <aesok@post.ru>
23283
23284 * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
23285 Remove.
23286 * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
23287 avr_change_section, avr_reg_class_from_letter) : Remove declaration.
23288
23289 2010-01-02 Richard Guenther <rguenther@suse.de>
23290
23291 PR lto/41597
23292 * toplev.c (compile_file): Emit LTO marker properly. Change
23293 it to __gnu_lto_v1.
23294 * collect2.c (scan_prog_file): Adjust for changed LTO marker.
23295
23296 2010-01-01 Richard Guenther <rguenther@suse.de>
23297
23298 PR debug/42455
23299 * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
23300
23301 2010-01-01 Richard Guenther <rguenther@suse.de>
23302
23303 PR c/42570
23304 * c-decl.c (grokdeclarator): For zero-size arrays force
23305 structural equality checks as layout_type does.
23306
23307 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
23308
23309 * builtins.c: Update copyright to 2010.
23310
23311 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
23312
23313 PR lto/42531
23314 * lto-streamer-out.c (produce_asm): Revert the last change.
23315 (copy_function): Likewise.
23316
23317 * lto-streamer.c (lto_get_section_name): Skip any leading
23318 asterisk in name.
23319
23320 2010-01-01 Richard Guenther <rguenther@suse.de>
23321
23322 PR middle-end/42559
23323 * builtins.c (get_object_alignment): Do not use DECL_ALIGN
23324 for LABEL_DECLs.
23325
23326 \f
23327 Copyright (C) 2010 Free Software Foundation, Inc.
23328
23329 Copying and distribution of this file, with or without modification,
23330 are permitted in any medium without royalty provided the copyright
23331 notice and this notice are preserved.