c-objc-common.c (c_disregard_inline_limits): Remove.
[gcc.git] / gcc / ChangeLog
1 2007-08-20 Richard Guenther <rguenther@suse.de>
2
3 * c-objc-common.c (c_disregard_inline_limits): Remove.
4 * c-objc-common.h (c_disregard_inline_limits): Likewise.
5 * cgraphunit.c (cgraph_process_new_functions): Call
6 disregard_inline_limits_p.
7 (cgraph_preserve_function_body_p): Likewise.
8 * ipa-inline.c (compute_inline_parameters): Likewise.
9 * langhooks-def.h (lhd_tree_inlining_disregard_inline_limits):
10 Remove.
11 (LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove.
12 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
13 disregard_inline_limits langhook.
14 * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
15 Remove.
16 * langhooks.h (lang_hooks_for_tree_inlining): Remove
17 disregard_inline_limits langhook.
18 * tree-inline.c (disregard_inline_limits_p): New function.
19 * tree-inline.h (disregard_inline_limits_p): Declare.
20
21 2007-08-20 Richard Guenther <rguenther@suse.de>
22
23 * langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove.
24 (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise.
25 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
26 auto_var_in_fn_p langhook.
27 * langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and
28 move ...
29 * tree.c (auto_var_in_fn_p): ... here.
30 (find_var_from_fn): Call auto_var_in_fn_p directly.
31 * langhooks.h (lang_hooks_for_tree_inlining): Remove
32 auto_var_in_fn_p langhook.
33 * tree-inline.c (remap_decls): Call auto_var_in_fn_p directly.
34 (copy_body_r): Likewise.
35 (self_inlining_addr_expr): Likewise.
36 * tree.h (auto_var_in_fn_p): Declare.
37
38 2007-08-20 Richard Guenther <rguenther@suse.de>
39
40 * tree.c (WALK_SUBTREE): Call walk_tree_1.
41 (walk_type_fields): Take lh parameter.
42 (walk_tree): Rename to ...
43 (walk_tree_1): ... this. Do not call the walk_subtrees
44 langhook but the now passed callback. Pass lh on recursion.
45 (walk_tree_without_duplicates): Rename to ...
46 (walk_tree_without_duplicates_1): ... this. Take lh parameter
47 and call walk_tree_1.
48 * tree.h (walk_tree_lh): New typedef.
49 (walk_tree_1): Declare.
50 (walk_tree_without_duplicates_1): Likewise.
51 (walk_tree): New define to walk_tree_1 with NULL lh parameter.
52 (walk_tree_without_duplicates): New define to
53 walk_tree_without_duplicates_1 with NULL lh parameter.
54 * langhooks.c (lhd_tree_inlining_walk_subtrees): Remove.
55 * langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees
56 langhook.
57 * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove.
58 (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
59 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees
60 initializer.
61
62 2007-08-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
63
64 PR middle-end/30564
65 * tree-inline.c (optimize_inline_calls): Move the cgraph checking
66 code in front of the compacting of basic blocks.
67 Move the folding of statements inbetween the cgraph checking
68 and compacting of basic blocks.
69
70 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
71 Serge Belyshev <belyshev@depni.sinp.msu.ru>
72
73 PR target/32522
74 * config/alpha/alpha.c (va_list_skip_additions): Check for
75 POINTER_PLUS_EXPR in addition to PLUS_EXPR.
76 (alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of
77 PLUS_EXPR when checking ap.__base.
78 (alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR
79 when doing addition on pointer types. Use size_int instead of
80 build_int_cst.
81 (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of
82 ptr_type in the second operand.
83
84 2007-08-19 Andrew Pinski <pinskia@gmail.com>
85
86 PR target/33115
87 * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front.
88
89 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
90
91 PR middle-end/32940
92 * cfgexpand.c (expand_one_register_var): Mark pointer
93 DECL_ARTIFICIAL as REG_POINTER also.
94 * stmt.c (expand_decl): Likewise.
95
96 2007-08-19 Daniel Berlin <dberlin@dberlin.org>
97
98 Fix PR 32772
99 Fix PR 32716
100 Fix PR 32328
101 Fix PR 32303
102
103 * tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
104 * tree-ssa-alias.c (init_transitive_clobber_worklist): Add
105 on_worklist argument and avoid adding things to worklist multiple
106 times.
107 (add_to_worklist): Ditto.
108 (mark_aliases_call_clobbered): Mark entire structure clobbered if
109 single SFT is clobbered.
110 (set_initial_properties): Ditto.
111 (compute_call_clobbered): Update for changes to function
112 arguments.
113 (create_overlap_variables_for): Always create SFT for offset 0.
114 (create_structure_vars): Handle PHI's, since we are in SSA form at
115 this point.
116 * tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
117 * tree-ssa-operands.c (access_can_touch_variable): Don't handle
118 TARGET_MEM_REF.
119 (add_vars_for_offset): Figure out aliases from access + points-to.
120 (add_virtual_operand): Use add_vars-for_offset.
121 (get_tmr_operands): Update for NMT changes, rewrite to be correct.
122 (add_call_clobber_ops): Remove makes_clobbering_call set.
123 (get_expr_operands): Always pass through the INDIRECT_REF
124 reference.
125 * tree-ssa-structalias.c (struct constraint_graph): Remove
126 variables member.
127 Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
128 address_taken, pt_used, number_incoming.
129 (FIRST_ADDR_NODE): Removed.
130 (merge_graph_nodes): Remove broken code for the moment.
131 (init_graph): New function.
132 (build_pred_graph): Remove code to init_graph.
133 Add location equivalence support.
134 (struct scc_info): Rename roots to deleted.
135 (scc_visit): Ditto.
136 (init_scc_info): Ditto
137 (init_topo_info): Use graph->size.
138 (compute_topo_order): Ditto.
139 (do_da_constraint): Removed.
140 (do_sd_constraint): Remove calls to find().
141 set_union_with_increment should always get 0 as last arg here.
142 (do_complex_constraint): Replace do_da_constraint with assert.
143 Stop calling find.
144 (struct equiv_class_label): New.
145 (pointer_equiv_class_table): Ditto.
146 (location_equiv_class_table): Ditto.
147 (equiv_class_label_hash): Ditto.
148 (equiv_class_label_eq): Ditto
149 (equiv_class_lookup): Ditto.
150 (equiv_class_ladd): Ditto.
151 (pointer_equiv_class): Ditto.
152 (location_equiv_class): Ditto.
153 (condense_visit): Rename and rewrite from label_visit to do only
154 SCC related stuff for HU.
155 (label_visit): Do HU work for HU.
156 (perform_var_substitution): Update to do HU and location
157 equivalence.
158 (free_var_substitution_info): Update to free HU and location
159 equivalence structures. */
160 (find_equivalent_node): Update for pointer but not location
161 equivalence.
162 (unite_pointer_equivalences): New function.
163 (move_complex_constraints): Rewrite to only do moving.
164 (rewrite_constraints): Split out of move_complex_constraints.
165 (solve_graph): Use graph->size.
166 (process_constraint_1): Add from_call argument, use it.
167 Split *a = &b into two constraints.
168 (process_constraint): Use new process_constraint_1.
169 (get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
170 (get_constraint_for): Handle non-pointer integers properly.
171 Remove code that used to handle structures.
172 (handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
173 with unknown addends.
174 (handle_rhs_call): New function.
175 (find_func_aliases): Use handle_rhs_call.
176 (set_uids_in_ptset): Add an assert.
177 (set_used_smts): Fix bug in not considering unified vars.
178 (compute_tbaa_pruning): Stop initing useless iteration_obstack.
179 (compute_points_to_sets): Update for other function changes.
180 (delete_points_to_sets): Ditto.
181 (ipa_pta_execute): Ditto.
182 (pass_ipa_pta): We need to update SSA after ipa_pta.
183
184 2007-08-19 Jan Hubicka <jh@suse.cz>
185
186 * i386.md: Replace "rim" and "mri" constraints by "g".
187
188 2007-08-19 Joseph Myers <joseph@codesourcery.com>
189
190 * dwarf2out.c (text_section_used, cold_text_section_used,
191 cold_text_section, dwarf2out_note_section_used): New.
192 (dwarf2out_init): Initialize cold_text_section.
193 (dwarf2out_switch_text_section, dwarf2out_begin_function): Call
194 dwarf2out_note_section_used.
195 (size_of_aranges): Only count entry for text section if it was
196 used. Count entry for cold text section if it was used.
197 (output_aranges): Only output entries for text section and cold
198 text section if they were used.
199
200 2007-08-19 Andrew Pinski <pinskia@gmail.com>
201
202 * tree-pretty-print.c (debug_generic_expr): Add a comment about
203 the function.
204 (debug_generic_stmt): Likewise.
205 (debug_tree_chain): Likewise.
206
207 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
208
209 * tree-data-refs.c (split_constant_offset): Expose.
210 * tree-data-refs.h (split_constant_offset): Add declaration.
211
212 * tree-vectorizer.h (dr_alignment_support): Renamed
213 dr_unaligned_software_pipeline to dr_explicit_realign_optimized.
214 Added a new value dr_explicit_realign.
215 (_stmt_vec_info): Added new fields: dr_base_address, dr_init,
216 dr_offset, dr_step, and dr_aligned_to, along with new access
217 functions for these fields: STMT_VINFO_DR_BASE_ADDRESS,
218 STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and
219 STMT_VINFO_DR_ALIGNED_TO.
220
221 * tree-vectorizer.c (vect_supportable_dr_alignment): Add
222 documentation.
223 In case of outer-loop vectorization with non-fixed misalignment - use
224 the dr_explicit_realign scheme instead of the optimized realignment
225 scheme.
226 (new_stmt_vec_info): Initialize new fields.
227
228 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the
229 'nested_in_vect_loop' case. Change verbosity level.
230 (vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case.
231 Don't fail on zero step in the outer-loop for loads.
232 (vect_analyze_data_refs): Call split_constant_offset to calculate base,
233 offset and init relative to the outer-loop.
234
235 * tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused
236 BSI function argument with a new function argument - at_loop.
237 Simplify the condition that determines STEP. Takes additional argument
238 INV_P. Support outer-loop vectorization (handle the nested_in_vect_loop
239 case), including zero step in the outer-loop. Call
240 vect_create_addr_base_for_vector_ref with additional argument.
241 (vect_create_addr_base_for_vector_ref): Takes additional argument LOOP.
242 Updated function documentation. Handle the 'nested_in_vect_loop' case.
243 Fixed and simplified calculation of step.
244 (vectorizable_store): Call vect_create_data_ref_ptr with loop instead
245 of bsi, and with additional argument. Call bump_vector_ptr with
246 additional argument. Fix typos. Handle the 'nested_in_vect_loop' case.
247 (vect_setup_realignment): Takes additional arguments INIT_ADDR and
248 DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case
249 when the realignment setup needs to take place inside the loop. Support
250 the dr_explicit_realign scheme. Allow generating the optimized
251 realignment scheme for outer-loop vectorization. Added documentation.
252 (vectorizable_load): Support the dr_explicit_realign scheme. Handle the
253 'nested_in_vect_loop' case, including loads that are invariant in the
254 outer-loop and the realignment schemes. Handle the case when the
255 realignment setup needs to take place inside the loop. Call
256 vect_setup_realignment with additional arguments. Call
257 vect_create_data_ref_ptr with additional argument and with loop instead
258 of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI.
259 (vect_gen_niters_for_prolog_loop): Call
260 vect_create_addr_base_for_vector_ref with additional arguments.
261 (vect_create_cond_for_align_checks): Likewise.
262 (bump_vector_ptr): Updated to support the new dr_explicit_realign
263 scheme: takes additional argument bump; argument ptr_incr is now
264 optional; updated documentation.
265 (vect_init_vector): Takes additional argument (bsi). Use it, if
266 available, to insert the vector initialization.
267 (get_initial_def_for_induction): Pass additional argument in call to
268 vect_init_vector.
269 (vect_get_vec_def_for_operand): Likewise.
270 (vect_setup_realignment): Likewise.
271 (vectorizable_load): Likewise.
272
273 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
274
275 * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info
276 as argument instead of struct loop.
277 (nested_in_vect_loop_p): New function.
278 (vect_relevant): Add enum values vect_used_in_outer_by_reduction and
279 vect_used_in_outer.
280 (is_loop_header_bb_p): New. Used to differentiate loop-header phis
281 from other phis in the loop.
282 (destroy_loop_vec_info): Add additional argument to declaration.
283
284 * tree-vectorizer.c (supportable_widening_operation): Also check if
285 nested_in_vect_loop_p (don't allow changing the order in this case).
286 (vect_is_simple_reduction): Takes a loop_vec_info as argument instead
287 of struct loop. Call nested_in_vect_loop_p and don't require
288 flag_unsafe_math_optimizations if it returns true.
289 (new_stmt_vec_info): When setting def_type for phis differentiate
290 loop-header phis from other phis.
291 (bb_in_loop_p): New function.
292 (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so just
293 update their loop_vinfo. Order of BB traversal now matters - call
294 dfs_enumerate_from with bb_in_loop_p.
295 (destroy_loop_vec_info): Takes additional argument to control whether
296 stmt_vinfo of the loop stmts should be destroyed as well.
297 (vect_is_simple_reduction): Allow the "non-reduction" use of a
298 reduction stmt to be defines by a non loop-header phi.
299 (vectorize_loops): Call destroy_loop_vec_info with additional argument.
300
301 * tree-vect-transform.c (vectorizable_reduction): Call
302 nested_in_vect_loop_p. Check for multitypes in the inner-loop.
303 (vectorizable_call): Likewise.
304 (vectorizable_conversion): Likewise.
305 (vectorizable_operation): Likewise.
306 (vectorizable_type_promotion): Likewise.
307 (vectorizable_type_demotion): Likewise.
308 (vectorizable_store): Likewise.
309 (vectorizable_live_operation): Likewise.
310 (vectorizable_reduction): Likewise. Also pass loop_info to
311 vect_is_simple_reduction instead of loop.
312 (vect_init_vector): Call nested_in_vect_loop_p.
313 (get_initial_def_for_reduction): Likewise.
314 (vect_create_epilog_for_reduction): Likewise.
315 (vect_init_vector): Check which loop to work with, in case there's an
316 inner-loop.
317 (get_initial_def_for_inducion): Extend to handle outer-loop
318 vectorization. Fix indentation.
319 (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def.
320 In the case vect_induction_def get the vector def from the induction
321 phi node, instead of calling get_initial_def_for_inducion.
322 (get_initial_def_for_reduction): Extend to handle outer-loop
323 vectorization.
324 (vect_create_epilog_for_reduction): Extend to handle outer-loop
325 vectorization.
326 (vect_transform_loop): Change assert to just skip this case. Add a
327 dump printout.
328 (vect_finish_stmt_generation): Add a couple asserts.
329
330 (vect_estimate_min_profitable_iters): Multiply
331 cost of inner-loop stmts (in outer-loop vectorization) by estimated
332 inner-loop bound.
333 (vect_model_reduction_cost): Don't add reduction epilogue cost in case
334 this is an inner-loop reduction in outer-loop vectorization.
335
336 * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function.
337 Same code as what used to be vect_analyze_scalar_cycles, only with
338 additional argument loop, and loop_info passed to
339 vect_is_simple_reduction instead of loop.
340 (vect_analyze_scalar_cycles): Code factored out into
341 vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest.
342 Updated documentation.
343 (analyze_operations): Check for inner-loop loop-closed exit-phis during
344 outer-loop vectorization that are live or not used in the outerloop,
345 cause this requires special handling.
346 (vect_enhance_data_refs_alignment): Don't consider versioning for
347 nested-loops.
348 (vect_analyze_data_refs): Check that there are no datarefs in the
349 inner-loop.
350 (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer
351 and vect_used_in_outer_by_reduction cases.
352 (process_use): Also consider the case of outer-loop stmt defining an
353 inner-loop stmt and vice versa.
354 (vect_analyze_loop_1): New function.
355 (vect_analyze_loop_form): Extend, to allow a restricted form of nested
356 loops. Call vect_analyze_loop_1.
357 (vect_analyze_loop): Skip (inner-)loops within outer-loops that have
358 been vectorized. Call destroy_loop_vec_info with additional argument.
359
360 * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow
361 in the inner-loop when doing outer-loop vectorization. Add
362 documentation and printout.
363 (vect_recog_dot_prod_pattern): Likewise. Also add check for
364 GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop).
365
366 2007-08-18 Andrew Pinski <pinskia@gmail.com>
367
368 * tree-affine.h (print_aff): New prototype.
369 (debug_aff): Likewise.
370 * tree-affine.c (print_aff): New function.
371 (debug_aff): Likewise.
372
373 2007-08-18 Paul Brook <paul@codesourcery.com>
374 Joseph Myers <joseph@codesourcery.com>
375
376 * common.opt (-fdebug-prefix-map=): New option.
377 * opts.c: Include debug.h.
378 (common_handle_option): Handle -fdebug-prefix-map.
379 * final.c: Include ggc.h.
380 (struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
381 remap_debug_filename): New.
382 * Makefile.in (final.o, opts.o): Update dependencies.
383 * debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
384 * configure.ac: Check for assembler --debug-prefix-map support.
385 * configure, config.in: Regenerate.
386 * gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
387 (ASM_DEBUG_SPEC): Include ASM_MAP.
388 * doc/install.texi (--with-debug-prefix-map): Document.
389 * doc/invoke.texi (-fdebug-prefix-map): Document.
390 * dbxout.c (dbxout_init, dbxout_start_source_file,
391 dbxout_source_file): Call remap_debug_filename.
392 * dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
393 dwarf2out_start_source_file, dwarf2out_finish): Call
394 remap_debug_filename.
395 (file_table_relative_p): Do not check d->emitted_number.
396 * toplev.c (output_file_directive): Call remap_debug_filename.
397 * vmsdbgout.c (write_srccorr): Call remap_debug_filename.
398 * xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
399
400 2007-08-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
401
402 * loop-invariant.c (find_invariants_to_move): Add missing macro
403 argument.
404
405 2007-08-17 Tom Tromey <tromey@redhat.com>
406
407 * tree.h (struct tree_label_decl): Removed old "java" fields.
408
409 2007-08-17 Richard Sandiford <richard@codesourcery.com>
410 Nigel Stephens <nigel@mips.com>
411
412 * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
413 Treat -mno-data-in-code and -mcode-xonly as aliases for
414 -mcode-readable=no and -mcode-readable=pcrel respectively.
415 * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
416 (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
417 (MULTILIB_DIRNAMES): Update accordingly.
418
419 2007-08-17 H.J. Lu <hongjiu.lu@intel.com>
420
421 * Makefile.in (version.o): Depend on $(REVISION) only if
422 REVISION_s is defined.
423
424 2007-08-17 Sa Liu <saliu@de.ibm.com>
425 Ulrich Weigand <uweigand@de.ibm.com>
426
427 PR middle-end/32970
428 * tree.c (reconstruct_complex_type): For a pointer to a vector,
429 use build_qualified_type to retain qualifiers of the base type.
430
431 2007-08-17 Chen Liqin <liqin@sunnorth.com.cn>
432
433 * config/score/score.md : Update pattern tablejump.
434 * config/score/score.c : Update score_initialize_trampoline
435 function.
436 * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
437 (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
438 * doc/contrib.texi: Add my entry.
439
440 2007-08-16 H.J. Lu <hongjiu.lu@intel.com>
441
442 * Makefile.in (REVISION): New.
443 (REVISION_c): New.
444 (REVISION_s): New.
445 (version.o): Also depend on $(REVISION). Add
446 -DREVISION=$(REVISION_s).
447
448 * version.c (version_string): Add REVISION.
449
450 2007-08-16 Seongbae Park <seongbae.park@gmail.com>
451
452 * tree-eh.c (lower_try_finally_onedest): Reset the locus
453 of GOTO that's relocated to a different block.
454
455 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
456
457 * c-common.c (const_strip_array_types): New.
458 * c-common.h (lang_missing_noreturn_ok_p): Delete.
459 (const_strip_array_types): New.
460 * c-objc-common.c (c_disregard_inline_limits,
461 c_warn_unused_global_decl): Constify.
462 * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
463 c_vla_type_p, c_incomplete_type_error): Likewise.
464 * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
465 * hooks.c (hook_bool_const_tree_false): New.
466 * hooks.h (hook_bool_const_tree_false): Likewise.
467 * langhooks-def.h (lhd_warn_unused_global_decl,
468 lhd_incomplete_type_error, lhd_expr_size,
469 lhd_tree_inlining_disregard_inline_limits,
470 lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
471 LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
472 * langhooks.c (lhd_warn_unused_global_decl,
473 lhd_incomplete_type_error,
474 lhd_tree_inlining_disregard_inline_limits,
475 lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
476 lhd_expr_size): Likewise.
477 * langhooks.h (lang_hooks_for_tree_inlining,
478 lang_hooks_for_tree_dump, lang_hooks_for_types,
479 lang_hooks_for_decls, lang_hooks): Likewise.
480 * pointer-set.c (pointer_set_t, pointer_set_create,
481 pointer_set_contains, insert_aux, pointer_set_insert,
482 pointer_set_traverse, pointer_map_t, pointer_map_create,
483 pointer_map_contains, pointer_map_insert, pointer_map_traverse):
484 Likewise.
485 * pointer-set.h (pointer_set_contains, pointer_set_insert,
486 pointer_set_traverse, pointer_map_contains, pointer_map_insert,
487 pointer_map_traverse): Likewise.
488 * predict.c (assert_is_empty): Likewise.
489 * tree-affine.c (free_name_expansion): Likewise.
490 * tree-cfg.c (edge_to_cases_cleanup): Likewise.
491 * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
492 * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.
493
494 2007-08-16 Victor Kaplansky <victork@il.ibm.com>
495
496 * tree-vectorizer.c (new_loop_vec_info): Initialize new
497 field.
498 (destroy_loop_vec_info): Add call to VEC_free.
499 * tree-vectorizer.h (may_alias_ddrs): Define.
500 (LOOP_VINFO_MAY_ALIAS_DDRS): Define.
501 * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
502 Change reporting to dump.
503 (vect_is_duplicate_ddr): New.
504 (vect_mark_for_runtime_alias_test): New.
505 (vect_analyze_data_ref_dependences) Add call to
506 vect_mark_for_runtime_alias_test.
507 (vect_enhance_data_refs_alignment): Define local variable
508 vect_versioning_for_alias_required, don't perform
509 peeling for alignment if versioning for alias is
510 required.
511 (vect_enhance_data_refs_alignment): Use
512 PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of
513 PARAM_VECT_MAX_VERSION_CHECKS.
514 * tree-vect-transform.c
515 (vect_create_cond_for_alias_checks): New.
516 (vect_transform_loop): Add call to
517 vect_create_cond_for_alias_checks.
518 (vect_vfa_segment_size): New.
519 * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS):
520 Rename.
521 (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define.
522 * gcc/doc/invoke.texi
523 (vect-max-version-for-alignment-checks): Document.
524 (vect-max-version-for-alias-checks): Document.
525 (vect-max-version-checks): Remove.
526
527 2007-08-16 Uros Bizjak <ubizjak@gmail.com>
528
529 * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on
530 the same line as the instruction for all asm dialects.
531 (*rep_movsi): Ditto.
532 (*rep_movsi_rex64): Ditto.
533 (*rep_movqi): Ditto.
534 (*rep_movqi_rex64): Ditto.
535 (*rep_stosdi_rex64): Ditto.
536 (*rep_stossi): Ditto.
537 (*rep_stossi_rex64): Ditto.
538 (*rep_stosqi): Ditto.
539 (*rep_stosqi_rex64): Ditto.
540 (*cmpstrnqi_nz_1): Ditto.
541 (*cmpstrnqi_nz_rex_1): Ditto.
542 (*cmpstrnqi_1): Ditto.
543 (*cmpstrnqi_rex_1): Ditto.
544 (*strlenqi_1): Ditto.
545 (*strlenqi_rex_1): Ditto.
546 * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock"
547 prefix on the same line as the instruction for all asm dialects.
548 (sync_double_compare_and_swap<mode>): Ditto.
549 (*sync_double_compare_and_swapdi_pic): Ditto.
550 (*sync_compare_and_swap_cc<mode>): Ditto.
551 (sync_double_compare_and_swap_cc<mode>): Ditto.
552 (*sync_double_compare_and_swap_ccdi_pic): Ditto.
553 (sync_old_add<mode>): Ditto.
554 (sync_add<mode>): Ditto.
555 (sync_sub<mode>): Ditto.
556 (sync_ior<mode>): Ditto.
557 (sync_and<mode>): Ditto.
558 (sync_xor<mode>): Ditto.
559
560 2007-08-16 Richard Sandiford <richard@codesourcery.com>
561
562 PR middle-end/32897
563 * reload.c (find_reloads): Check that the memory returned by
564 find_reloads_toplev was not the result of forcing a constant
565 to memory.
566 (find_reloads_toplev): Always use simplify_gen_subreg to get
567 the subreg of a constant. If the result is also a constant,
568 but not a legitimate one, force it into the constant pool
569 and reload its address.
570
571 2007-08-15 David Edelsohn <edelsohn@gnu.org>
572
573 * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
574 POPCOUNT.
575
576 2007-08-15 Daniel Jacobowitz <dan@codesourcery.com>
577
578 * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
579 directive for the current vector ABI.
580
581 2007-08-15 Steve Ellcey <sje@cup.hp.com>
582
583 PR target/32963
584 * caller-save.c (reg_save_code): Set invalide status on restore code.
585
586 2007-08-15 Diego Novillo <dnovillo@google.com>
587
588 * tree-ssa-alias.c (compute_memory_partitions): Use
589 alias_bitmap_obstack to allocate bitmaps.
590 (reset_alias_info): Factor out of init_alias_info.
591 Mark all name tags not associated to an SSA name for renaming.
592 (init_alias_info): Call it.
593 (create_name_tags): Tidy. Add comments.
594 (dump_points_to_info_for): Do not call get_mem_sym_stats_for.
595
596 2007-08-15 Maxim Kuvyrkov <maxim@codesourcery.com>
597
598 * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
599 scheduler dependencies.
600
601 2007-08-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
602
603 * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
604 "register_operand".
605 (*iorsi_1_zext): Likewise.
606 (*iorsi_1_zext_imm): Likewise.
607 * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand"
608 with "rm"/"xm" constraint.
609 (sse2_vmsqrtv2df2): Likewise.
610
611 2007-08-15 Jakub Jelinek <jakub@redhat.com>
612
613 PR middle-end/33074
614 * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
615 REG_LIBCALL note.
616
617 2007-08-14 Daniel Berlin <dberlin@dberlin.org>
618
619 * tree-pass.h (PROP_pta): Removed.
620 (TODO_rebuild_alias): New.
621 (pass_may_alias): Removed.
622 * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
623 aliasing if we changed something.
624 * tree-ssa-alias.c (compute_may_aliases): Make non-static. Update
625 SSA internally.
626 (pass_may_alias): Removed.
627 (create_structure_vars): Return TODO_rebuild_alias.
628 * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
629 * tree-sra.c (tree_sra): Only rebuild aliasing if something
630 changed.
631 (tree_sra_early): We never affect aliasing right now.
632 * tree-flow.h (compute_may_aliases): New prototype.
633 * passes.c: Remove pass_may_alias from the passes.
634 (execute_function_todo): Support TODO_rebuild_alias.
635
636 2007-08-14 Kai Tietz <kai.tietz@onevision.com>
637
638 * i386.c: (legitimize_address): Move dllimported variable check
639 infront of legitimizing pic address of CONST symbols.
640
641 2007-08-14 Steve Ellcey <sje@cup.hp.com>
642
643 PR tree-optimization/32941
644 * tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
645 (goto_queue_cmp): Remove.
646 (find_goto_replacement): Change search method.
647 (maybe_record_in_goto_queue): Add assert.
648 (lower_try_finally): Remove qsort call, add pointer_map_destroy call.
649 * Makefile.in (tree-eh.o): Add pointer-set.h dependency.
650
651 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
652
653 * alias.c (component_uses_parent_alias_set): Constify.
654 * alias.h (component_uses_parent_alias_set): Likewise.
655 * cfgrtl.c (print_rtl_with_bb): Likewise.
656 * double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
657 mpz_get_double_int): Likewise.
658 * double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
659 mpz_get_double_int): Likewise.
660 * expr.c (is_aligning_offset, undefined_operand_subword_p,
661 mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
662 Likewise.
663 * expr.h (safe_from_p): Likewise.
664 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
665 Likewise.
666 * gimplify.c (should_carry_locus_p, zero_sized_field_decl,
667 zero_sized_type, goa_lhs_expr_p): Likewise.
668 * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
669 * rtl.h (print_rtl_with_bb): Likewise.
670 * sched-vis.c (print_exp, print_value, print_pattern): Likewise.
671 * tree-cfg.c (const_first_stmt, const_last_stmt): New.
672 * tree-flow-inline.h (bb_stmt_list): Constify.
673 (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
674 cbsi_stmt): New.
675 * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
676 const_first_stmt, const_last_stmt): New.
677 (block_may_fallthru, empty_block_p): Constify.
678 * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
679 EXPR_ONLY_BODY): New.
680 (expr_first, expr_last, expr_only): Use macro for body.
681 (const_expr_first, const_expr_last, const_expr_only): New.
682 * tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
683 ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
684 ctsi_prev, ctsi_stmt): New.
685 * tree-scalar-evolution.c (get_loop_exit_condition): Constify.
686 * tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
687 * tree-ssa-loop-niter.c (loop_only_exit_p,
688 derive_constant_upper_bound): Likewise.
689 * tree-ssa-phiopt.c (empty_block_p): Likewise.
690 * tree-ssa-threadupdate.c (redirection_block_p): Likewise.
691 * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
692 * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
693 * tree-vrp.c (vrp_bitmap_equal_p): Likewise.
694 * tree.c (get_type_static_bounds): Likewise.
695 * tree.h (const_expr_first, const_expr_last, const_expr_only): New.
696 (get_type_static_bounds): Constify.
697
698 2007-08-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
699
700 PR target/30315
701 * config/i386/i386.h (CANONICALIZE_COMPARISON): New.
702 * config/i386/i386.md (plusminus)(addsub)(SWI): New.
703 (*<addsub><mode>3_cc_overflow): New.
704 (*add<mode>3_cconly_overflow): New.
705 (*sub<mode>3_cconly_overflow): New.
706 (*<addsub>si3_zext_cc_overflow): New.
707 * config/i386/predicates.md (fcmov_comparison_operator): Accept
708 CCCmode for LTU, GTU, LEU and GEU.
709 (ix86_comparison_operator): Likewise.
710 (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
711 * config/i386/i386.c (put_condition_code): Support CCCmode.
712 (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
713 or MINUS expressions.
714
715 2007-08-14 Andrew Pinski <pinskia@gmail.com>
716
717 PR c/30428
718 * c-typeck.c (build_binary_op): Disallow vector float types with
719 BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
720
721 2007-08-14 Maxim Kuvyrkov <maxim@codesourcery.com>
722
723 * sched-int.h (struct _dep): Rename field 'kind' to 'type'.
724 (DEP_KIND): Rename to DEP_TYPE. Update all uses.
725 (dep_def): New typedef.
726 (init_dep_1, sd_debug_dep): Declare functions.
727 (DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
728 (debug_dep_links): Remove.
729 (struct _deps_list): New field 'n_links'.
730 (DEPS_LIST_N_LINKS): New macro.
731 (FOR_EACH_DEP_LINK): Remove.
732 (create_deps_list, free_deps_list, delete_deps_list): Remove
733 declaration.
734 (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
735 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
736 (copy_deps_list_change_con, move_dep_link): Ditto.
737 (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
738 and 'spec_back_deps'. New field 'resolved_forw_deps'. Remove field
739 'dep_count'.
740 (INSN_BACK_DEPS): Remove.
741 (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
742 New macros.
743 (INSN_DEP_COUNT): Remove.
744 (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP. Fix comments.
745 (spec_info, haifa_recovery_block_was_added_during_scheduling_p):
746 Declare global variables.
747 (deps_pools_are_empty_p, sched_free_deps): Declare functions.
748 (add_forw_dep, compute_forward_dependences): Remove declarations.
749 (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
750 (add_back_forw_dep, delete_back_forw_dep): Ditto.
751 (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
752 functions.
753 (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW): New
754 constants.
755 (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
756 (sd_list_types_def): New typedef.
757 (sd_next_list): Declare function.
758 (struct _sd_iterator): New type.
759 (sd_iterator_def): New typedef.
760 (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
761 functions.
762 (FOR_EACH_DEP): New cycle wrapper.
763 (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
764 Declare functions.
765 (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
766 (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
767 Ditto.
768
769 * sched-deps.c (init_dep_1): Make global.
770 (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
771 constants.
772 (dump_dep): New static function.
773 (dump_dep_flags): New static variable.
774 (sd_debug_dep): New function.
775 (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
776 the list.
777 (move_dep_link): Use remove_from_deps_list (), instead of
778 detach_dep_link ().
779 (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
780 (dep_link_is_detached_p): New static function.
781 (deps_obstack, dl_obstack, dn_obstack): Remove. Use dn_pool, dl_pool
782 instead.
783 (dn_pool, dl_pool): New alloc_pools.
784 (dn_pool_diff, dl_pool_diff): New static variables.
785 (create_dep_node, delete_dep_node): New static function.
786 (create_deps_list): Make it static. Use alloc_pool 'dl_pool'.
787 (deps_list_empty_p): Make it static. Use 'n_links' field.
788 (deps_pools_are_empty_p): New static function.
789 (alloc_deps_list, delete_deps_list): Remove.
790 (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
791 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
792 (copy_deps_list_change_con): Remove. Use sd_copy_back_deps () instead.
793 (forward_dependency_cache): Remove.
794 (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
795 'back' from the names. Change signature to use dep_t instead of
796 equivalent quad.
797 (add_back_dep): Ditto. Make global.
798 (check_dep_status): Rename to check_dep ().
799 (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
800 New functions.
801 (sd_finish_insn): Ditto.
802 (sd_find_dep_between_no_cache): New static function.
803 (sd_find_dep_between): New function.
804 (ask_dependency_caches, set_dependency_caches): New static functions.
805 (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
806 (add_or_update_dep_1): Separate pieces of functionality into
807 ask_dependency_caches (), update_dependency_caches (),
808 change_spec_dep_to_hard (), update_dep ().
809 (get_back_and_forw_lists): New static function.
810 (sd_add_dep): Separate setting of dependency caches into
811 set_dependency_caches ().
812 (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
813 New functions.
814 (sd_delete_dep): Ditto.
815 (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
816 (dump_lists): New static function.
817 (sd_debug_lists): New debug function.
818 (delete_all_dependences, fixup_sched_groups): Update to use
819 sd_* infrastructure.
820 (sched_analyze_2): Create data-speculative dependency only if
821 data-speculation is enabled.
822 (sched_analyze_insn): If insn cannot be speculative, make all its
823 dependencies non-speculative.
824 (sched_analyze): Use sd_init_insn ().
825 (add_forw_dep, compute_forward_dependencies): Remove.
826 (delete_dep_nodes_in_back_deps): New static function.
827 (sched_free_deps): New function.
828 (init_dependency_caches): Init alloc_pools.
829 (extend_depedency_caches): Update after removing of
830 forward_dependency_cache.
831 (free_dependency_caches): Ditto. Free alloc_pools.
832 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
833 (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
834 Ditto.
835 (add_back_forw_dep, delete_back_forw_dep): Ditto.
836 (add_dependence): Use init_dep ().
837 (get_dep_weak_1): New static function.
838 (get_dep_weak): Move logic to get_dep_weak_1 ().
839 (dump_ds): New static function moved from haifa-sched.c:
840 debug_spec_status ().
841 (debug_ds): New debug function.
842 (check_dep_status): Rename to check_dep (). Update to check whole
843 dependencies.
844
845 * haifa-sched.c (spec_info): Make global.
846 (added_recovery_block_p): Rename to
847 'haifa_recovery_block_was_added_during_current_schedule_block_p'.
848 (haifa_recovery_block_was_added_during_scheduling_p): New variable.
849 (dep_cost, priority, rank_for_schedule, schedule_insn): Update
850 to use new interfaces.
851 (ok_for_early_queue_removal): Ditto.
852 (schedule_block): Initialize logical uids of insns emitted by the
853 target.
854 (sched_init): Initialize new variable.
855 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
856 interfaces.
857 (extend_global): Initialize insn data.
858 (init_h_i_d): Remove code that is now handled in sd_init_insn ().
859 (process_insn_forw_deps_be_in_spec): Change signature. Update to use
860 new interfaces.
861 (add_to_speculative_block): Update to use new interfaces.
862 (create_recovery_block): Set new variables.
863 (create_check_block_twin, fix_recovery_deps): Update to use new
864 interfaces.
865 (sched_insn_is_legitimate_for_speculation_p): New function.
866 (speculate_insn): Move checking logic to
867 sched_insn_is_legitimate_for_speculation_p ().
868 (sched_remove_insn): Finalize sched-deps information of instruction.
869 (clear_priorities, add_jump_dependencies): Update to use new
870 interfaces.
871 (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
872
873 * sched-rgn.c (set_spec_fed, find_conditional_protection): Update
874 to use new interfaces.
875 (is_conditionally_protected, is_pfree, is_prisky) Ditto.
876 (new_ready): Try to use control speculation only if it is available.
877 (add_branch_dependences): Update to use new interfaces.
878 (compute_block_backward_dependences): Rename to
879 compute_block_dependences (). Call
880 targetm.sched.dependencies_evaluation_hook ().
881 (free_block_dependencies): New static function.
882 (debug_dependencies): Update to use new interfaces.
883 (schedule_region): Remove separate computation of forward dependencies.
884 Move call of targetm.sched.dependencies_evaluation_hook () to
885 compute_block_dependences (). Free dependencies at the end of
886 scheduling the region.
887
888 * sched-ebb.c (earliest_block_with_similiar_load): Update to use
889 new interfaces.
890 (add_deps_for_risky_insns): Ditto.
891 (schedule_ebb): Remove separate computation of forward dependencies.
892 Free dependencies at the end of scheduling the ebb.
893
894 * ddg.c (create_ddg_dependence): Update to use new interfaces.
895 (build_intra_loop_deps): Ditto. Remove separate computation of forward
896 dependencies. Free sched-deps dependencies.
897
898 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
899 to use new interfaces.
900 (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
901
902 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
903 new interfaces.
904 (is_costly_group): Ditto.
905
906 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
907
908 * alias.c (rtx_equal_for_memref_p): Constify.
909 * basic-block.h (const_edge, const_basic_block): New.
910 (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
911 single_pred_p, single_succ_edge, single_pred_edge, single_succ,
912 single_pred, maybe_hot_bb_p, probably_cold_bb_p,
913 probably_never_executed_bb_p, edge_probability_reliable_p,
914 br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
915 inside_basic_block_p, control_flow_insn_p, dominated_by_p):
916 Likewise.
917 * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
918 * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
919 Likewise.
920 * cfganal.c (flow_active_insn_p, forwarder_block_p,
921 flow_nodes_print, dfs_enumerate_from): Likewise.
922 * cfgbuild.c (count_basic_blocks, inside_basic_block_p,
923 control_flow_insn_p, count_basic_blocks): Likewise.
924 * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
925 get_loop_body_with_size, loop_exit_edge_p): Likewise.
926 * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
927 average_num_loop_insns, loop_exit_edge_p,
928 just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
929 * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
930 average_num_loop_insns, seq_cost): Likewise.
931 * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
932 * dominance.c (dominated_by_p): Likewise.
933 * emit-rtl.c (validate_subreg): Likewise.
934 * except.c (can_throw_internal, can_throw_external): Likewise.
935 * except.h (can_throw_internal, can_throw_external): Likewise.
936 * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
937 oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
938 compute_transp, load_killed_in_block_p, reg_killed_on_edge,
939 simple_mem, store_ops_ok, load_kills_store, find_loads,
940 store_killed_in_insn, store_killed_after, store_killed_before,
941 gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
942 Likewise.
943 * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
944 noce_mem_write_may_trap_or_fault_p): Likewise.
945 * pointer-set.c (pointer_set_contains, pointer_map_contains):
946 Likewise.
947 * pointer-set.h (pointer_set_contains, pointer_map_contains):
948 Likewise.
949 * predict.c (can_predict_insn_p, maybe_hot_bb_p,
950 probably_cold_bb_p, probably_never_executed_bb_p,
951 edge_probability_reliable_p, br_prob_note_reliable_p,
952 can_predict_insn_p): Likewise.
953 * regclass.c (reg_set_to_hard_reg_set): Likewise.
954 * resource.c (return_insn_p): Likewise.
955 * rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
956 Likewise.
957 * rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
958 * tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
959 * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
960 verify_gimple_modify_stmt): Likewise.
961 * tree-chrec.c (is_not_constant_evolution,
962 is_multivariate_chrec_rec, is_multivariate_chrec,
963 chrec_contains_symbols, chrec_contains_undetermined,
964 tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
965 evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
966 eq_evolutions_p, scev_direction): Likewise.
967 * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
968 eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
969 chrec_contains_symbols_defined_in_loop,
970 chrec_contains_undetermined, tree_contains_chrecs,
971 evolution_function_is_affine_multivariate_p,
972 evolution_function_is_univariate_p, chrec_zerop,
973 evolution_function_is_constant_p, evolution_function_is_affine_p,
974 evolution_function_is_affine_or_constant_p,
975 tree_does_not_contain_chrecs, chrec_type): Likewise.
976 * tree-data-ref.c (tree_fold_divides_p,
977 object_address_invariant_in_loop_p, dr_may_alias_p,
978 ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
979 same_access_functions, constant_access_functions,
980 access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
981 Likewise.
982 * tree-flow.h (scev_direction): Likewise.
983 * tree-gimple.c (is_gimple_stmt): Likewise.
984 * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
985 Likewise.
986 * tree-pretty-print.c (op_prio): Likewise.
987 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
988 analyzable_condition, backedge_phi_arg_p): Likewise.
989 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
990 * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
991 * tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
992 Likewise.
993
994 2007-08-13 Dan Hipschman <dsh@google.com>
995
996 PR c/32953
997 * c-format.c (check_format_arg): Move check for zero-length
998 format strings below the check for unterminated strings.
999
1000 2007-08-13 Andrew Pinski <pinskia@gmail.com>
1001
1002 PR C/30427
1003 * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
1004 types.
1005
1006 2007-08-13 Nick Clifton <nickc@redhat.com>
1007
1008 * config/arm/arm_neon.h: Revert GPLv3 patch to this file.
1009
1010 2007-08-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1011
1012 PR fortran/32860
1013 * c-format.c (gcc_gfc_length_specs): New array.
1014 (gcc_gfc_char_table): Add unsigned specifier, and references to
1015 the l length modifier.
1016 (format_types_orig): Use the new gcc_gfc_length_specs.
1017
1018 2007-08-12 Sa Liu <saliu@de.ibm.com>
1019
1020 * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
1021 and with REG_RETVAL note after split.
1022
1023 2007-08-11 David Daney <ddaney@avtrex.com>
1024
1025 * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter
1026 as ATTRIBUTE_UNUSED.
1027
1028 2007-08-11 David Edelsohn <edelsohn@gnu.org>
1029 Segher Boessenkool <segher@kernel.crashing.org>
1030
1031 * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
1032 HAVE_LOCAL_CPU_DETECT not defined.
1033
1034 2007-08-11 Jan Hubicka <jh@suse.cz>
1035
1036 * cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined.
1037 (cgraph_process_new_functions): Honor previous value of
1038 disregard_inline_limits.
1039 * ipa-inline.c (compute_inline_parameters): Likewise.
1040
1041 2007-08-11 Ian Lance Taylor <iant@google.com>
1042
1043 * alias.h (alias_set_type): Define new type.
1044 (ALIAS_SET_MEMORY_BARRIER): Use it.
1045 * rtl.h: Include alias.h.
1046 (struct mem_attrs): Use alias_set_type.
1047 * tree.h: Include alias.h
1048 (struct tree_type): Use alias_set_type.
1049 (struct tree_struct_field_tag): Likewise.
1050 (struct tree_decl_common): Likewise.
1051 * alias.c (struct alias_set_entry): Use alias_set_type.
1052 (get_alias_set_entry, alias_set_subset_of): Likewise.
1053 (alias_sets_conflict_p): Likewise.
1054 (alias_sets_must_conflict_p): Likewise.
1055 (objects_must_conflict_p): Likewise.
1056 (get_alias_set, new_alias_set): Likewise.
1057 (record_alias_subset, record_component_aliases): Likewise.
1058 (varargs_set, frame_set): Change to alias_set_type.
1059 (get_varargs_alias_set): Use alias_set_type.
1060 (get_frame_alias_set): Likewise.
1061 * builtins.c (setjmp_alias_set): Change to alias_set_type.
1062 * dse.c (struct store_info): Use alias_set_type.
1063 (struct read_info, struct clear_alias_mode_holder): Likewise.
1064 (clear_alias_set_lookup, canon_address): Likewise.
1065 (record_store, check_mem_read_rtx): Likewise.
1066 (dse_record_singleton_alias_set): Likewise.
1067 (dse_invalidate_singleton_alias_set): Likewise.
1068 * emit-rtl.c (get_mem_attrs): Likewise.
1069 (set_mem_attributes_minus_bitpos): Likewise.
1070 (set_mem_alias_set): Likewise.
1071 * expr.c (store_constructor_field, store_field): Likewise.
1072 * gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise.
1073 * langhooks.c (lhd_get_alias_set): Likewise.
1074 * langhooks-def.h (lhd_get_alias_set): Likewise.
1075 * reload1.c (alter_reg): Likewise.
1076 * tree-flow.h (struct fieldoff): Likewise.
1077 * tree-ssa-alias.c (struct alias_map_d): Likewise.
1078 (may_alias_p, get_smt_for, create_sft): Likewise.
1079 * tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise.
1080 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
1081 (merge_smts_into): Likewise.
1082 * varasm.c (const_alias_set): Likewise.
1083 * c-common.c (strict_aliasing_warning): Likewise.
1084 (c_common_get_alias_set): Likewise.
1085 * dse.h (dse_record_singleton_alias_set): Update declaration.
1086 (dse_invalidate_singleton_alias_set): Likewise.
1087 * emit-rtl.h (set_mem_alias_set): Likewise.
1088 * c-common.h (c_common_get_alias_set): Likewise.
1089 * print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it.
1090 * print-tree.c (print_node): Likewise.
1091 * config/alpha/alpha.c (alpha_sr_alias_set): Change to
1092 alias_set_type.
1093 (alpha_setup_incoming_varargs): Use alias_set_type.
1094 * config/i386/i386.c (setup_incoming_varargs_64): Use
1095 alias_set_type.
1096 (setup_incoming_varargs_ms_64): Likewise.
1097 (ix86_GOT_alias_set): Likewise.
1098 * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
1099 * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
1100 (set): Change to alias_set_type.
1101 (get_TOC_alias_set): Use alias_set_type.
1102 * config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update
1103 declaration.
1104 * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
1105 * config/sparc/sparc.c (sparc_sr_alias_set): Change to
1106 alias_set_type.
1107 (struct_value_alias_set): Likewise.
1108 * Makefile.in (GTFILES): Add $(srcdir)/alias.h.
1109
1110 2007-08-11 Richard Sandiford <richard@codesourcery.com>
1111
1112 * config/vxworks-dummy.h (TARGET_VXWORKS): Define.
1113 * config/vxworks.h (TARGET_VXWORKS): Override.
1114 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
1115 "mips" if TARGET_VXWORKS.
1116
1117 2007-08-11 Richard Sandiford <richard@codesourcery.com>
1118
1119 * calls.c (avoid_likely_spilled_reg): New function.
1120 (expand_call): Use it.
1121
1122 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1123
1124 * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings.
1125
1126 2007-08-10 Adam Nemet <anemet@caviumnetworks.com>
1127
1128 * config/mips/predicates.md (const_call_insn_operand): Invoke
1129 SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
1130
1131 2007-08-10 David Edelsohn <edelsohn@gnu.org>
1132
1133 PR target/33042
1134 * config/rs6000/driver-rs6000.c: Include link.h.
1135 Use ElfW instead of wordsize-specif typedef.
1136
1137 2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1138
1139 * system.h (CONST_CAST): New.
1140 * c-decl.c (c_make_fname_decl): Use it.
1141 * c-lex.c (cb_ident, lex_string): Likewise.
1142 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
1143 * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
1144 give_switch, set_multilib_dir): Likewise.
1145 * gengtype-parse.c (string_seq, typedef_name): Likewise.
1146 * passes.c (execute_one_pass): Likewise.
1147 * prefix.c (update_path): Likewise.
1148 * pretty-print.c (pp_base_destroy_prefix): Likewise.
1149 * tree.c (build_string): Likewise.
1150
1151 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
1152
1153 * tree-flow-inline.h (is_exec_stmt): Remove.
1154 (is_label_stmt): Remove.
1155 * tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and
1156 is_label_stmt.
1157
1158 2007-08-10 Andreas Krebbel <krebbel1@de.ibm.com>
1159
1160 * lower-subreg.c (resolve_shift_zext): Don't adjust
1161 src_reg_num for wordmode operands.
1162
1163 2007-08-10 Sandra Loosemore <sandra@codesourcery.com>
1164 David Ung <davidu@mips.com>
1165
1166 * config/mips/mips.c (TARGET_SCHED_INIT): Define.
1167 (TARGET_SCHED_REORDER2): Define.
1168 (mips_maybe_swap_ready): New.
1169 (mips_last_74k_agen_insn): New.
1170 (mips_74k_agen_init): New.
1171 (mips_74k_agen_reorder): New function to group loads and stores
1172 in the ready queue.
1173 (mips_sched_init): New.
1174 (mips_sched_reorder): Don't do initialization here. Call
1175 mips_74k_agen_reorder.
1176 (mips_variable_issue): Call mips_74k_agen_init.
1177
1178 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
1179
1180 * tree-flow-inline.h (get_filename): Remove.
1181
1182 2007-08-10 Richard Sandiford <richard@codesourcery.com>
1183
1184 * config/mips/mips-protos.h (mips_address_insns): Add a boolean
1185 argument.
1186 (mips_fetch_insns): Delete in favor of...
1187 (mips_load_store_insns): ...this new function.
1188 * config/mips/mips.c (mips_address_insns): Add a boolean argument
1189 to say whether multiword moves _might_ be split.
1190 (mips_fetch_insns): Delete in favor of...
1191 (mips_load_store_insns): ...this new function.
1192 (mips_rtx_costs): Update the call to mips_address_insns.
1193 (mips_address_cost): Likewise.
1194 * config/mips/mips.md (length): Use mips_load_store_insns instead
1195 of mips_fetch_insns.
1196 * config/mips/constraints.md (R): Use mips_address_insns rather
1197 than mips_fetch_insns. Assume that the move never needs to be split.
1198
1199 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
1200
1201 * config/mips/mips.opt (mhard-float, msoft-float): Make these
1202 control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
1203 than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.
1204 * config/mips/mips.h (mips16_hard_float): Delete.
1205 (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI): Delete these
1206 definitions, and replace with....
1207 (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
1208 * config/mips/mips.c (mips16_hard_float): Delete. Replace
1209 all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
1210 (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
1211 (override_options): Replace MASK_SOFT_FLOAT references with
1212 MASK_SOFT_FLOAT_ABI. Delete twiddling with MASK_SOFT_FLOAT
1213 and mips16_hard_float when TARGET_MIPS16.
1214
1215 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
1216
1217 PR c/32796
1218 * c-typeck.c (build_binary_op): Check for non pointer types before
1219 calling int_fits_type_p.
1220
1221 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
1222
1223 PR middle-end/32813
1224 * fold-const.c (omit_one_operand): Return only the ommitted expression
1225 if the result is an empty statement.
1226 (pedantic_omit_one_operand): Likewise.
1227
1228 2007-08-09 Daniel Berlin <dberlin@dberlin.org>
1229
1230 * c-typeck.c (readonly_error): Improve error for assignment.
1231
1232 * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
1233 expression.
1234 (pp_c_expression): Ditto.
1235
1236 2007-08-09 Simon Baldwin <simonb@google.com>
1237
1238 * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
1239 break that was preventing simplify_associative_operation() for xor.
1240
1241 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
1242 Nigel Stephens <nigel@mips.com>
1243
1244 * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
1245 Document change in interpretation of value from boolean to
1246 tri-state integer.
1247 * optabs.c (expand_ffs, expand_ctz): New functions to compute
1248 ffs and ctz using clz.
1249 (expand_unop): Call them.
1250 * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
1251 result value.
1252 (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
1253 * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to
1254 enable the new ffs expansion on this target.
1255
1256 2007-08-09 Jan Hubicka <jh@suse.cz>
1257
1258 * optabs.c (expand_widen_pattern_expr): Use optabs accestors.
1259 (expand_ternary_op): Likewise.
1260 (expand_vec_shift_expr): Likewise.
1261 (expand_binop_directly): Likewise.
1262 (expand_binop): Likewise.
1263 (sign_expand_binop): Likewise.
1264 (expand_twoval_unop): Likewise.
1265 (expand_twoval_binop): Likewise.
1266 (expand_twoval_binop_libfunc): Likewise.
1267 (widen_clz): Likewise.
1268 (widen_bswap): Likewise.
1269 (expand_parity): Likewise.
1270 (expand_unop): Likewise.
1271 (expand_abs_nojump): Likewise.
1272 (expand_copysign): Likewise.
1273 (emit_no_conflict_block): Likewise.
1274 (emit_libcall_block): Likewise.
1275 (can_compare_p): Likewise.
1276 (prepare_cmp_insn): Likewise.
1277 (emit_cmp_and_jump_insn_1): Likewise.
1278 (prepare_float_lib_cmp): Likewise.
1279 (emit_conditional_add): Likewise.
1280 (gen_add2_insn): Likewise.
1281 (have_add2_insn): Likewise.
1282 (gen_sub2_insn): Likewise.
1283 (have_sub2_insn): Likewise.
1284 (can_extend_p): Likewise.
1285 (can_fix_p): Likewise.
1286 (can_float_p): Likewise.
1287 (expand_float): Likewise.
1288 (expand_fix): Likewise.
1289 (expand_sfix_optab): Likewise.
1290 (new_optab): Likewise.
1291 (new_convert_optab): Likewise.
1292 (init_libfuncs): Likewise.
1293 (init_interclass_conv_libfuncs): Likewise.
1294 (init_intraclass_conv_libfuncs): Likewise.
1295 (set_conv_libfunc): Likewise.
1296 (init_optabs): Likewise.
1297 (debug_optab_libfuncs): Likewise.
1298 (gen_cond_trap): Likewise.
1299 * optabs.h (optab_handler, convert_optab_hanlder): New.
1300 * genopinit.c: Update optabs generation table.
1301 * reload.c (find_reloads_address_1): Use optabs accestors.
1302 * builtins.c (expand_builtin_mathfn): Likewise.
1303 (expand_builtin_mathfn_2): Likewise.
1304 (expand_builtin_mathfn_3): Likewise.
1305 (expand_builtin_interclass_mathfn): Likewise.
1306 (expand_builtin_sincos): Likewise.
1307 (expand_builtin_cexpi): Likewise.
1308 (expand_builtin_powi): Likewise.
1309 (expand_builtin_strlen): Likewise.
1310 * dojump.c (do_jump): Likewise.
1311 * expr.c (convert_move): Likewise.
1312 (move_by_pieces): Likewise.
1313 (move_by_pieces_ninsns): Likewise.
1314 (can_store_by_pieces): Likewise.
1315 (store_by_pieces_1): Likewise.
1316 (emit_move_via_integer): Likewise.
1317 (emit_move_complex): Likewise.
1318 (emit_move_ccmode): Likewise.
1319 (emit_move_insn_1): Likewise.
1320 (emit_single_push_insn): Likewise.
1321 (store_constructor): Likewise.
1322 (expand_expr_real_1): Likewise.
1323 (do_store_flag): Likewise.
1324 * ada/misc.c (gnat_compute_largest_alignment): Likewise.
1325 (enumerate_modes): Likewise.
1326 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
1327 (supportable_widening_operation): Likewise.
1328 (supportable_narrowing_operation): Likewise.
1329 * expmed.c (store_bit_field_1): Likewise.
1330 (extract_bit_field_1): Likewise.
1331 (expand_mult_highpart_optab): Likewise.
1332 (expand_smod_pow2): Likewise.
1333 (expand_divmod): Likewise.
1334 (emit_store_flag): Likewise.
1335 * tree-vect-patterns.c
1336 (vect_pattern_recog_1): Likewise.
1337 * tree-ssa-loop-prefetch.c
1338 (nontemporal_store_p): Likewise.
1339 * tree-vect-transform.c (vect_model_reduction_cost): Likewise.
1340 (vect_create_epilog_for_reduction): Likewise.
1341 (vectorizable_reduction): Likewise.
1342 (vectorizable_operation): Likewise.
1343 (vect_strided_store_supported): Likewise.
1344 (vectorizable_store): Likewise.
1345 (vect_strided_load_supported): Likewise.
1346 (vectorizable_load): Likewise.
1347 * combine.c (simplify_comparison): Likewise.
1348 * tree-vect-generic.c
1349 (type_for_widest_vector_mode): Likewise.
1350 (expand_vector_operations_1): Likewise.
1351 * config/spu/spu.c (spu_expand_mov): Likewise.
1352 (spu_emit_vector_compare): Likewise.
1353 * config/rs6000/rs6000.c
1354 (rs6000_emit_vector_compare): Likewise.
1355 * stmt.c (add_case_node): Likewise.
1356 * reload1.c (gen_reload):
1357
1358 2007-08-09 Michael Matz <matz@suse.de>
1359
1360 * tree.h (fixed_zerop): Declare as taking a const_tree.
1361 * tree.c (fixed_zerop): Take a const_tree.
1362
1363 2007-08-09 Ira Rosen <irar@il.ibm.com>
1364
1365 * tree-vect-transform.c (vectorizable_store): Remove call to
1366 copy_virtual_operands() and call mark_symbols_for_renaming() for
1367 the created vector store.
1368 (vect_setup_realignment): Don't call copy_virtual_operands() and
1369 update_vuses_to_preheader().
1370 (vectorizable_load): Don't call copy_virtual_operands().
1371 (update_vuses_to_preheader): Remove.
1372
1373 2007-08-08 Chao-ying Fu <fu@mips.com>
1374
1375 * tree.def (FIXED_POINT_TYPE): New type.
1376 (FIXED_CST): New constant.
1377 (FIXED_CONVERT_EXPR): New expr.
1378 * doc/c-tree.texi (Types): Document FIXED_POINT_TYPE.
1379 (Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR.
1380 * tree.h (struct tree_base): Add saturating_flag.
1381 Remove one bit of spare for saturating_flag.
1382 (NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE.
1383 (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P,
1384 FIXED_POINT_TYPE_P): Define.
1385 (TYPE_SATURATING): Define.
1386 (TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define.
1387 (struct tree_fixed_cst): New.
1388 (TYPE_IBIT, TYPE_FBIT): Define.
1389 (tree_node): Add fixed_cst.
1390 (enum tree_index): Add new enumeration values of
1391 TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
1392 TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE,
1393 TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE,
1394 TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE,
1395 TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE,
1396 TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE,
1397 TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE,
1398 TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE,
1399 TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE,
1400 TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE,
1401 TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE,
1402 TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE,
1403 TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE,
1404 TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE,
1405 TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE,
1406 TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE,
1407 TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE,
1408 TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE.
1409 (sat_short_fract_type_node, sat_fract_type_node,
1410 sat_long_fract_type_node, sat_long_long_fract_type_node,
1411 sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node,
1412 sat_unsigned_long_fract_type_node,
1413 sat_unsigned_long_long_fract_type_node, short_fract_type_node,
1414 fract_type_node, long_fract_type_node, long_long_fract_type_node,
1415 unsigned_short_fract_type_node, unsigned_fract_type_node,
1416 unsigned_long_fract_type_node, unsigned_long_long_fract_type_node,
1417 sat_short_accum_type_node, sat_accum_type_node,
1418 sat_long_accum_type_node, sat_long_long_accum_type_node,
1419 sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node,
1420 sat_unsigned_long_accum_type_node,
1421 sat_unsigned_long_long_accum_type_node, short_accum_type_node,
1422 accum_type_node, long_accum_type_node, long_long_accum_type_node,
1423 unsigned_short_accum_type_node, unsigned_accum_type_node,
1424 unsigned_long_accum_type_node, unsigned_long_long_accum_type_node,
1425 qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node,
1426 uqq_type_node, uhq_type_node, usq_type_node, udq_type_node,
1427 utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node,
1428 sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node,
1429 sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node,
1430 sat_utq_type_node, ha_type_node, sa_type_node, da_type_node,
1431 ta_type_node, uha_type_node, usa_type_node, uda_type_node,
1432 uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node,
1433 sat_ta_type_node, sat_uha_type_node, sat_usa_type_node,
1434 sat_uda_type_node, sat_uta_type_node): New macro.
1435 (make_fract_type, make_accum_type): Declare.
1436 (make_signed_fract_type, make_unsigned_fract_type,
1437 make_sat_signed_fract_type, make_sat_unsigned_fract_type,
1438 make_signed_accum_type, make_unsigned_accum_type,
1439 make_sat_signed_accum_type, make_sat_unsigned_accum_type,
1440 make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type,
1441 make_or_reuse_sat_signed_fract_type,
1442 make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type,
1443 make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type,
1444 make_or_reuse_sat_unsigned_accum_type): New macro.
1445 (fixed_zerop): Declare.
1446 * defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
1447 LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
1448 SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
1449 LONG_LONG_ACCUM_TYPE_SIZE): Define.
1450 * treestruct.def: Add TS_FIXED_CST.
1451 * Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h.
1452 (tree.o): Likewise.
1453 (tree-dump.o): Likewise.
1454 (print-tree.o): Likewise.
1455 (tree-pretty-print.o): Likewise.
1456 (fold-const.o): Likewise.
1457 * tree-complex.c (some_nonzerop): Handle FIXED_CST.
1458 * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST.
1459 (is_gimple_min_invariant): Handle FIXED_CST.
1460 * stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT,
1461 MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
1462 MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1463 (layout_type): Handle FIXED_POINT_TYPE.
1464 (make_fract_type, make_accum_type): New functions.
1465 * tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE.
1466 * tree-dump.c (fixed-value.h): New include.
1467 (dump_fixed): New function.
1468 (dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST.
1469 * tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE.
1470 (estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR.
1471 * tree-pretty-print.c (fixed-value.h): New include.
1472 (dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and
1473 FIXED_CONVERT_EXPR.
1474 * tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST.
1475 * tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST.
1476 * tree-ssa-pre.c (poolify_tree): Handle FIXED_CST.
1477 * tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation
1478 for non-saturating fixed-point types.
1479 (reassociate_bb): Likewise.
1480 * emit-rtl.c (fixed-value.h): New include.
1481 (fconst0, fconst1): New array.
1482 (init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes.
1483 * tree-vect-generic.c expand_vector_operation): Support
1484 MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and
1485 MODE_VECTOR_UACCUM.
1486 (type_for_widest_vector_mode): Add one parameter for the
1487 saturating flag.
1488 Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their
1489 vector mode.
1490 Pass the satp parameter to type_for_mode for fixed-point types.
1491 (expand_vector_operations_1): Pass the saturating flag to
1492 type_for_widest_vector_mode.
1493 Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
1494 and MODE_VECTOR_UACCUM.
1495 * tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST.
1496 (vectorizable_condition): Likewise.
1497 * tree.c (fixed-value.h): New include.
1498 (tree_code_size): Support FIXED_CST.
1499 (build_fixed): New function.
1500 (build_one_cst): Support FIXED_POINT_TYPE for accum types.
1501 (fixed_zerop): New function.
1502 (tree_node_structure): Support FIXED_CST.
1503 (type_contains_placeholder_1): Support FIXED_POINT_TYPE.
1504 (build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE.
1505 (type_hash_eq): Handle FIXED_POINT_TYPE.
1506 (simple_cst_equal): Support FIXED_CST.
1507 (iterative_hash_expr): Handle FIXED_CST.
1508 (get_unwidened): Make sure type is not FIXED_POINT_TYPE.
1509 (get_narrower): Likewise.
1510 (variably_modified_type_p): Handle FIXED_POINT_TYPE.
1511 (make_or_reuse_fract_type, make_or_reuse_accum_type): New functions.
1512 (build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and
1513 MAKE_FIXED_MODE_NODE macros to initialize fixed-point type
1514 nodes.
1515 (build_vector_type_for_mode): Handle MODE_VECTOR_FRACT,
1516 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1517 (initializer_zerop): Support FIXED_CST.
1518 (walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE.
1519 * dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or
1520 DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE.
1521 (is_base_type): Handle FIXED_POINT_TYPE.
1522 (add_type_attribute): Handle FIXED_POINT_TYPE.
1523 (gen_type_die_with_usage): Handle FIXED_POINT_TYPE.
1524 * print-tree.c (fixed-value.h): New include.
1525 (print_node_brief): Support FIXED_CST.
1526 (print_node): Support FIXED_POINT_TYPE and FIXED_CST.
1527 * c-pretty-print.c (fixed-value.h): New include.
1528 (pp_c_type_specifier): Handle FIXED_POINT_TYPE. Need to pass
1529 TYPE_SATURATING to c_common_type_for_mode for fixed-point modes.
1530 (pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE.
1531 Support fixed-point types for inner items in VECTOR_TYPE.
1532 (pp_c_direct_declarator): Likewise.
1533 (pp_c_declarator): Likewise.
1534 (pp_c_fixed_constant): New function.
1535 (pp_c_constant): Handle FIXED_CST.
1536 (pp_c_primary_expression): Likewise.
1537 (pp_c_expression): Likewise.
1538 * fold-const.c (fixed-value.h): New include.
1539 (negate_expr_p): Return true for FIXED_CST.
1540 (fold_negate_expr): Support FIXED_CST.
1541 (split_tree): Support FIXED_CST.
1542 (const_binop): Support FIXED_CST.
1543 (fold_convert_const_int_from_fixed): New function to convert from
1544 fixed to int.
1545 (fold_convert_const_real_from_fixed): New function to convert from
1546 fixed to real.
1547 (fold_convert_const_fixed_from_fixed): New function to convert from
1548 fixed to another fixed.
1549 (fold_convert_const_fixed_from_int): New function to convert from
1550 int to fixed.
1551 (fold_convert_const_fixed_from_real): New function to convert from
1552 real to fixed.
1553 (fold_convert_const): Support conversions from fixed to int, from
1554 fixed to real, from fixed to fixed, from int to fixed, and from real
1555 to fixed.
1556 (fold_convert): Support FIXED_CST and FIXED_POINT_TYPE.
1557 (operand_equal_p): Support FIXED_CST.
1558 (make_range): For fixed-point modes, we need to pass the
1559 saturating flag as the 2nd parameter.
1560 (tree_swap_operands_p): Handle FIXED_CST.
1561 (fold_plusminus_mult_expr): For fract modes, we cannot generate
1562 constant 1.
1563 (fold_unary): Support FIXED_CONVERT_EXPR.
1564 (fold_binary): Handle FIXED_CST.
1565 Make sure the type is not saturating, before associating operations.
1566 Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2).
1567 (tree_expr_nonnegative_warnv_p): Handle FIXED_CST.
1568 (fold_negate_const): Support FIXED_CST.
1569 (fold_relational_const): Support FIXED_CST.
1570 * gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE.
1571 (gimplify_expr): Handle FIXED_CST.
1572 (gimplify_type_sizes): Handle FIXED_POINT_TYPE.
1573 * ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST.
1574 * ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE.
1575 * doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE,
1576 FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
1577 SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
1578 LONG_LONG_ACCUM_TYPE_SIZE.
1579 * dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE.
1580 * c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE.
1581 * tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE.
1582 * expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT,
1583 MODE_ACCUM, and MODE_UACCUM.
1584 * tree-vectorizer.c (vect_is_simple_reduction): Check for saturating
1585 fixed-point types to disable reduction.
1586 * explow.c (promote_mode): Support FIXED_POINT_TYPE.
1587
1588 2007-08-08 David Edelsohn <edelsohn@gnu.org>
1589
1590 * config/rs6000/x-rs6000: New file.
1591 * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu.
1592 * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu.
1593 (EXTRA_SPEC_FUNCTIONS): Define.
1594 (HAVE_LOCAL_CPU_DETECT): Define.
1595 (CC1_CPU_SPEC): Define.
1596 * config/rs6000/driver-rs6000.c: New file.
1597 * config/rs6000/aix.h (CC1_SPEC): Define.
1598 * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu.
1599 * config.host: Add x-rs6000 to host_xmake_file if host and target
1600 are rs6000 or powerpc.
1601
1602 2007-08-08 Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
1603
1604 * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=.
1605
1606 2007-08-08 Richard Sandiford <richard@codesourcery.com>
1607 Sandra Loosemore <sandra@codesourcery.com>
1608 Chao-ying Fu <fu@mips.com>
1609 Nigel Stephens <nigel@mips.com>
1610 David Ung <davidu@mips.com>
1611
1612 * doc/invoke.texi (-mcode-readable): Document.
1613 * config/mips/mips.opt (mcode-readable): New option.
1614 * config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type.
1615 * config/mips/mips.h (mips_code_readable_setting): New enum.
1616 (mips_code_readable): Declare.
1617 (TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros.
1618 (TARGET_MIPS16_SHORT_JUMP_TABLES): New macro.
1619 (JUMP_TABLES_IN_TEXT_SECTION): Use it.
1620 (CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise. Remove
1621 boiler-plate comments.
1622 (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
1623 * config/mips/mips.c (mips_code_readable): New variable.
1624 (mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for
1625 MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES. Use both the
1626 context and -mcode-readable setting to restrict the use of
1627 SYMBOL_PC_RELATIVE for MIPS16 constant pool references.
1628 Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed.
1629 (mips_symbolic_constant_p): Handle SYMBOL_32_HIGH.
1630 (mips_blocks_for_constant_p): Only return false for
1631 TARGET_MIPS16_PCREL_LOADS.
1632 (mips_symbol_insns_1): Treat HIGHs as 2 extended instructions
1633 for MIPS16. Handle SYMBOL_32_HIGH.
1634 (mips_const_insns): Allow HIGHs for MIPS16 too.
1635 (mips_unspec_address_offset): New function, split out from...
1636 (mips_unspec_address): ...here.
1637 (mips_output_move): Handle MIPS16 HIGH moves. Use "li" to load
1638 16-bit symbolic constants. Assert approropiate conditions for
1639 using the "la" and "dla" macros.
1640 (mips_handle_option): Handle -mcode-readable=.
1641 (override_options): Use %hi/%lo relocations for TARGET_MIPS16 too.
1642 Set up mips_lo_relocs[SYMBOL_32_HIGH].
1643 (mips_strip_unspec_address): New function, split out from...
1644 (print_operand_reloc): ...here.
1645 (print_operand): Pass constants through mips_strip_unspec_address.
1646 (print_operand_address): Likewise.
1647 (mips_output_mi_thunk): Remove guard of mips16_lay_out_constants.
1648 (mips_select_rtx_section): Remove MIPS16 handling.
1649 (mips16_gp_pseudo_reg): Check currently_expanding_to_rtl.
1650 (mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC.
1651 (mips16_lay_out_constants): Do nothing unless
1652 TARGET_MIPS16_PCREL_LOADS.
1653 (mips_avoid_hazards): Remove guard of mips16_lay_out_constants.
1654 * config/mips/mips.md: Split HIGHs for MIPS16.
1655 (tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
1656
1657 2007-08-08 Richard Sandiford <richard@codesourcery.com>
1658
1659 * config/mips/mips-protos.h (mips_emit_move): Declare.
1660 * config/mips/mips.c (mips_emit_move): New function.
1661 (mips_force_temporary): Use mips_emit_move instead of emit_move_insn.
1662 (mips_legitimize_const_move): Likewise.
1663 (mips_legitimize_move): Likewise.
1664 (mips_split_64bit_move): Likewise.
1665 (mips_restore_gp): Likewise.
1666 (mips_load_call_address): Likewise.
1667 (mips_emit_fcc_reload): Likewise.
1668 (mips_set_return_address): Likewise.
1669 (mips_block_move_straight): Likewise.
1670 (mips_block_move_loop): Likewise.
1671 (mips_setup_incoming_varargs): Likewise.
1672 (mips_save_reg): Likewise.
1673 (mips_expand_prologue): Likewise.
1674 (mips_restore_reg): Likewise.
1675 (mips_expand_epilogue): Likewise.
1676 (mips_output_mi_thunk): Likewise.
1677 (build_mips16_call_stub): Likewise.
1678 (mips_builtin_branch_and_move): Likewise.
1679 * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise.
1680 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
1681 (fixuns_truncdfdi2): Likewise.
1682 (fixuns_truncsfsi2): Likewise.
1683 (fixuns_truncsfdi2): Likewise.
1684 (loadgp_absolute): Likewise.
1685 (builtin_setjmp_setup): Likewise.
1686 (builtin_longjmp): Likewise.
1687 (untyped_call): Likewise.
1688
1689 2007-08-08 Richard Sandiford <richard@codesourcery.com>
1690
1691 * config/mips/mips-protos.h (mips_split_symbol): Add a mode and
1692 an "rtx *" argument. Return a bool.
1693 * config/mips/mips.c (mips_split_symbol): Accept arbitrary source
1694 values and return true if they can be split. Take the same kind of
1695 mode argument as mips_symbol_insns. Add a "lo_sum_out" parameter
1696 and store the lo_sum there if nonnull. Use the symbol type to
1697 determine whether a $gp or HIGH is needed.
1698 (mips_legitimize_address): Update call to mips_split_symbol and
1699 simplify accordingly.
1700 (mips_legitimize_const_move): Likewise.
1701 * config/mips/mips.md: In the combine define_split,
1702 check mips_split_symbol instead of splittable_symbolic_operand.
1703 Update use of mips_split_symbol in the generator code.
1704 * config/mips/predicates.md (splittable_symbolic_operand): Delete.
1705
1706 2007-08-08 Richard Sandiford <richard@codesourcery.com>
1707
1708 * config/mips/mips.c (mips_symbolic_address_p): Delete.
1709 (mips_symbol_insns_1): New function, split out from...
1710 (mips_symbol_insns): ...here. Take a mode argument. Treat loads
1711 and stores separately from load addresses.
1712 (mips_classify_address): Replace uses of mips_symbolic_address_p
1713 with uses of mips_symbol_insns.
1714 (mips_address_insns): Update calls to mips_symbol_insns.
1715 (mips_const_insns): Likewise.
1716 (mips_legitimize_address): Likewise.
1717
1718 2007-08-08 Richard Sandiford <richard@codesourcery.com>
1719
1720 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type.
1721 * config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS
1722 block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS.
1723 Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for
1724 non-call contexts if TARGET_MIPS16.
1725 (mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM.
1726 (mips_symbolic_address_p): Likewise. Remove special TARGET_MIPS16
1727 code for SYMBOL_ABSOLUTE.
1728 (mips_symbol_insns): Likewise.
1729
1730 2007-08-08 Richard Sandiford <richard@codesourcery.com>
1731
1732 * config/mips/mips-protos.h (mips_symbol_context): New enumeration.
1733 * config/mips/mips.c (mips_classify_symbol): Take a context argument.
1734 (mips_symbolic_constant_p): Likewise. Update the call to
1735 mips_classify_symbol.
1736 (mips_classify_address): Update the calls to mips_symbolic_constant_p.
1737 (mips_const_insns): Likewise. Update the call to mips_classify_symbol.
1738 (mips_legitimize_address): Update the call to mips_symbolic_constant_p.
1739 (print_operand_reloc): Add a context argument. Update the call to
1740 mips_symbolic_constant_p.
1741 (print_operand): Update the calls to print_operand_reloc.
1742 (print_operand_address): Use print_operand_reloc rather than
1743 print_operand.
1744 (mips_rewrite_small_data_p): Add a context argument. Update the call
1745 to mips_symbolic_constant_p.
1746 (mips_small_data_pattern_1): Make DATA the containing mem.
1747 Update the call to mips_rewrite_small_data_p.
1748 (mips_rewrite_small_data_1): Likewise.
1749 (mips_use_anchors_for_symbol_p): Update the call to
1750 mips_symbolic_constant_p.
1751 * config/mips/predicates.md (const_call_insn_operand): Likewise.
1752 (splittable_symbolic_operand): Likewise.
1753 (move_operand): Likewise.
1754 (absolute_symbolic_operand): Likewise.
1755 (got_disp_operand): Likewise.
1756 (got_page_ofst_operand): Likewise.
1757
1758 2007-08-08 Richard Sandiford <richard@codesourcery.com>
1759
1760 * config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to...
1761 (SYMBOL_ABSOLUTE): ...this.
1762 (SYMBOL_SMALL_DATA): Rename to...
1763 (SYMBOL_GP_RELATIVE): ...this.
1764 (SYMBOL_CONSTANT_POOL): Rename to...
1765 (SYMBOL_PC_RELATIVE): ...this.
1766 * config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p)
1767 (mips_symbolic_address_p, mips_symbol_insns, override_options)
1768 (mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update
1769 after above changes.
1770 * config/mips/predicates.md (const_call_insn_operand): Likewise.
1771 (general_symbolic_operand): Rename to...
1772 (absolute_symbolic_operand): ...this.
1773 * config/mips/mips.md: Update after above changes.
1774
1775 2007-08-08 Vladimir Yanovsky <yanov@il.ibm.com>
1776 Revital Eres <eres@il.ibm.com>
1777
1778 * ddg.c (print_ddg): Add dump information.
1779 * modulo-sched.c (print_node_sched_params): Add parameter and
1780 verbosity.
1781 (calculate_maxii): Remove function.
1782 (undo_generate_reg_moves): Likewise.
1783 (undo_permute_partial_schedule): Likewise.
1784 (kernel_number_of_cycles): Likewise.
1785 (MAXII_FACTOR): New definition to calculate the upper bound of II.
1786 (sms_schedule): Use it. Remove profitability checks.
1787 (sms_schedule_by_order): Fix order of nodes within the cycle.
1788
1789 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
1790
1791 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add
1792 -profile option, add pie support.
1793 (ENDFILE_SPEC): New spec.
1794 * config/gnu.h (LIB_SPEC): Add -profile option.
1795
1796 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
1797
1798 * config/i386/gnu.h (CPP_SPEC): Add -pthread option.
1799 * config/gnu.h (LIB_SPEC): Likewise.
1800
1801 2007-08-07 Yaz Saito <saito@google.com>
1802 Ian Lance Taylor <iant@google.com>
1803
1804 * common.opt (finstrument-functions-exclude-function-list): New
1805 option.
1806 (finstrument-functions-exclude-file-list): New option.
1807 * opts.c (char_p): Define and DEF_VEC.
1808 (flag_instrument_functions_exclude_functions): New static
1809 variable.
1810 (flag_instrument_functions_exclude_files): New static variable.
1811 (add_instrument_functions_exclude_list): New static function.
1812 (flag_instrument_functions_exclude_p): New function.
1813 (common_handle_option): Handle new options.
1814 * flags.h (flag_instrument_functions_exclude_p): Declare.
1815 * gimplify.c (gimplify_function_tree): Call
1816 flag_instrument_functions_exclude_p.
1817 * doc/invoke.texi (Option Summary): Mention new options.
1818 (Code Gen Options): Document new options.
1819
1820 2007-08-07 Ian Lance Taylor <iant@google.com>
1821
1822 PR rtl-optimization/32776
1823 * lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
1824 (resolve_use): Likewise.
1825 (decompose_multiword_subregs): Remove "changed" local variable.
1826
1827 2007-08-07 Carlos O'Donell <carlos@codesourcery.com>
1828
1829 * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes.
1830 * configure: Regenerate.
1831 * config.in: Regenerate.
1832 * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options
1833 spec string.
1834
1835 2007-08-07 Ian Lance Taylor <iant@google.com>
1836
1837 * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
1838 note, just delete the insn.
1839
1840 2007-08-07 Andreas Schwab <schwab@suse.de>
1841
1842 PR bootstrap/32973
1843 * gengtype-lex.l: Ignore backslash/newline pair while scanning a
1844 struct definition.
1845
1846 2007-08-07 Andreas Krebbel <krebbel1@de.ibm.com>
1847
1848 * lower-subreg.c (resolve_subreg_use): Remove assertion.
1849 (find_decomposable_shift_zext, resolve_shift_zext): New functions.
1850 (decompose_multiword_subregs): Use the functions above to decompose
1851 multiword shifts and zero-extends.
1852
1853 2007-08-07 Rask Ingemann Lambertsen <rask@sygehus.dk>
1854
1855 * doc/sourcebuild.texi (Test Directives): Fix "compile" and
1856 "assemble" descriptions which were swapped.
1857
1858 2007-08-06 Chao-ying Fu <fu@mips.com>
1859
1860 * fixed-value.h: New file.
1861 * fixed-value.c: New file.
1862 * Makefile.in (OBJS-common): Add fixed-value.o.
1863 (fixed-value.o): New rule.
1864 (GTFILES): Add fixed-value.h.
1865 * double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT
1866 to compare a.low and b.low.
1867 * gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef.
1868
1869 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
1870 Daniel Jacobowitz <dan@codesourcery.com>
1871
1872 PR target/31868
1873 * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
1874 tmake_file.
1875 (x86_64-*-netbsd*): Likewise.
1876 (x86_64-*-linux*): Likewise.
1877 (x86_64-*-kfreebsd*-gnu): Likewise.
1878 (x86_64-*-knetbsd*-gnu): Likewise.
1879 (i[34567]86-*-solaris2.1[0-9]*): Likewise.
1880
1881 * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
1882
1883 * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
1884 Add -fno-asynchronous-unwind-tables.
1885
1886 * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
1887 * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise.
1888 * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise.
1889 * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise.
1890 * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise.
1891
1892 2007-08-06 Steve Ellcey <sje@cup.hp.com>
1893
1894 * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
1895 (TARGET_C_MODE_FOR_SUFFIX): New.
1896
1897 2007-08-06 Steve Ellcey <sje@cup.hp.com>
1898
1899 * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
1900
1901 2007-08-06 Steve Ellcey <sje@cup.hp.com>
1902
1903 * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.
1904
1905 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
1906
1907 * config/i386/i386.md: Check TARGET_ macros and optimize_size
1908 before checking function returns in conditional expressions.
1909
1910 2007-08-06 Alfred Minarik <a.minarik@aon.at>
1911
1912 PR pch/13676
1913 * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
1914
1915 2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
1916
1917 PR middle-end/32988
1918 * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
1919 for INTEGRAL_TYPE_P.
1920
1921 2008-08-05 Paolo Bonzini <bonzini@gnu.org>
1922
1923 * configure.ac: Remove --enable-checking=df from default settings.
1924 * tree-pass.h (TODO_df_verify): New. Shift TODO_mark_first_instance.
1925 * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
1926 if the parameter is true.
1927 (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
1928 DF_VERIFY_SCHEDULED flag is true.
1929 * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
1930 (df_finish_pass): Adjust prototype.
1931 * passes.c (execute_todo): Schedule verification if TODO_df_verify is
1932 true.
1933
1934 * see.c (pass_see): Add TODO_df_verify.
1935 * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
1936 * global.c (rest_of_handle_global_alloc): Schedule verification
1937 after the pass.
1938 * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
1939 before the pass.
1940 * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
1941 * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
1942 * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
1943
1944 * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
1945 * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
1946 * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.
1947
1948 2007-08-05 Vladimir Yanovsky <yanov@il.ibm.com>
1949 Revital Eres <eres@il.ibm.com>
1950
1951 * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new
1952 flag.
1953 * ddg.c (create_ddg_dependence): Rename to...
1954 (create_ddg_dep_from_intra_loop_link): This. Do not check
1955 for interloop edges. Do not create anti dependence edge when
1956 a true dependence edge exists in the opposite direction and
1957 -fmodulo-sched-allow-regmoves is set.
1958 (build_intra_loop_deps): Call create_ddg_dep_from_intra_loop_link.
1959 (add_cross_iteration_register_deps): Create anti dependence edge
1960 when -fno-modulo-sched-allow-regmoves is set.
1961 * common.opt (-fmodulo-sched-allow-regmoves): New flag.
1962
1963 2007-08-04 Richard Sandiford <richard@codesourcery.com>
1964
1965 * config/arm/arm.md (movsi): Add braces.
1966
1967 2007-08-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
1968
1969 PR middle-end/32780
1970 * fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of operands
1971 for the folding of "A - (A & B)" into "~B & A"; cast them to type.
1972
1973 2007-08-03 Zdenek Dvorak <ook@ucw.cz>
1974
1975 * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops' state
1976 accessor functions.
1977 * cfgloopmanip.c (remove_path, create_preheaders,
1978 force_single_succ_latches, fix_loop_structure): Ditto.
1979 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
1980 tree_duplicate_loop_to_header_edge): Ditto.
1981 * cfgloopanal.c (mark_irreducible_loops): Ditto.
1982 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize):
1983 Ditto.
1984 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures,
1985 cleanup_tree_cfg): Ditto.
1986 * tree-cfg.c (tree_merge_blocks): Ditto.
1987 * cfgloop.c (rescan_loop_exit, record_loop_exits,
1988 release_recorded_exits, get_loop_exit_edges, verify_loop_structure,
1989 loop_preheader_edge, single_exit): Ditto.
1990 (flow_loops_find): Do not clear loops->state.
1991 * cfgloop.h (loops_state_satisfies_p, loops_state_set,
1992 loops_state_clear): New functions.
1993
1994 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1995
1996 PR middle-end/32399
1997 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
1998 when adding to the base and convert ELT to sizetype instead of type.
1999
2000 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2001
2002 PR middle-end/32304
2003 * ipa-reference.c (has_proper_scope_for_analysis): Return false when
2004 the decl's type has TYPE_NEEDS_CONSTRUCTING set.
2005
2006 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2007
2008 PR middle-end/32935
2009 * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the
2010 correct type the negate expression.
2011
2012 2007-08-03 Jan Hubicka <jh@suse.cz>
2013
2014 * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred
2015 stack boundary.
2016
2017 2007-08-03 David Edelsohn <edelsohn@gnu.org>
2018
2019 * config/rs6000/rs6000.c (struct processor_cost): Change
2020 l1_cache_lines to l1_cache_size. Add l2_cache_size.
2021 (*_cost): Convert l1 cache information to kilobytes. Add l2 cache
2022 information.
2023 (rios1_costs, rios2_cost): Correct cache line size.
2024 (rs6000_override_options): Set l2-cache-size parameter.
2025
2026 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
2027 Diego Novillo <dnovillo@google.com>
2028
2029 PR 31521
2030 * tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify
2031 if the range includes 0.
2032
2033 2007-08-03 Ben Elliston <bje@au.ibm.com>
2034
2035 * config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate
2036 mode to unspec expressions to silence a warning from the generator
2037 programs.
2038
2039 2007-08-02 Steve Ellcey <sje@cup.hp.com>
2040
2041 * config/ia64/constraints.md ("U"): Make constraint vector only.
2042
2043 2007-08-02 Nathan Froyd <froydnj@codesourcery.com>
2044
2045 PR middle-end/25446
2046 * c-objc-common.c (c_cannot_inline_tree_fn): Check for an
2047 always_inline attribute on the function decl.
2048
2049 2007-08-02 Nathan Froyd <froydnj@codesourcery.com>
2050
2051 PR middle-end/25445
2052 * varasm.c (default_binds_local_p_1): Consult flag_whole_program
2053 if we are compiling with -fPIC.
2054
2055 2007-08-02 Sandra Loosemore <sandra@codesourcery.com>
2056 Nigel Stephens <nigel@mips.com>
2057
2058 * longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0):
2059 Define for MIPS32 and MIPS64.
2060
2061 2007-08-02 Nick Clifton <nickc@redhat.com>
2062
2063 * config/host-hpux.c: Change copyright header to refer to version
2064 3 of the GNU General Public License and to point readers at the
2065 COPYING3 file and the FSF's license web page.
2066 * config/alpha/predicates.md, config/alpha/vms-ld.c,
2067 config/alpha/linux.h, config/alpha/alpha.opt,
2068 config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h,
2069 config/alpha/vms-unwind.h, config/alpha/ev4.md,
2070 config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c,
2071 config/alpha/alpha.h, config/alpha/sync.md,
2072 config/alpha/openbsd.h, config/alpha/alpha.md,
2073 config/alpha/alpha-modes.def, config/alpha/ev5.md,
2074 config/alpha/alpha-protos.h, config/alpha/freebsd.h,
2075 config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h,
2076 config/alpha/constraints.md, config/alpha/osf.h,
2077 config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h,
2078 config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h,
2079 config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def,
2080 config/frv/frv-asm.h, config/frv/frv-protos.h,
2081 config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h,
2082 config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h,
2083 config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt,
2084 config/s390/2064.md, config/s390/2084.md, config/s390/s390.md,
2085 config/s390/s390.opt, config/s390/s390-modes.def,
2086 config/s390/fixdfdi.h, config/s390/constraints.md,
2087 config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h,
2088 config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md,
2089 config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md,
2090 config/m32c/m32c-pragma.c, config/m32c/m32c.h,
2091 config/m32c/prologue.md, config/m32c/m32c.abi,
2092 config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md,
2093 config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt,
2094 config/m32c/t-m32c, config/m32c/m32c-modes.def,
2095 config/m32c/jump.md, config/m32c/shift.md,
2096 config/m32c/m32c-protos.h, config/libgloss.h,
2097 config/spu/spu-protos.h, config/spu/predicates.md,
2098 config/spu/spu-builtins.h, config/spu/spu.c,
2099 config/spu/spu-builtins.def, config/spu/spu-builtins.md,
2100 config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md,
2101 config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt,
2102 config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h,
2103 config/sparc/hypersparc.md, config/sparc/predicates.md,
2104 config/sparc/linux.h, config/sparc/sp64-elf.h,
2105 config/sparc/supersparc.md, config/sparc/cypress.md,
2106 config/sparc/openbsd1-64.h, config/sparc/openbsd64.h,
2107 config/sparc/niagara.md, config/sparc/sparc.md,
2108 config/sparc/long-double-switch.opt, config/sparc/ultra3.md,
2109 config/sparc/sparc.opt, config/sparc/sync.md,
2110 config/sparc/sp-elf.h, config/sparc/sparc-protos.h,
2111 config/sparc/ultra1_2.md, config/sparc/biarch64.h,
2112 config/sparc/sparc.c, config/sparc/little-endian.opt,
2113 config/sparc/sysv4-only.h, config/sparc/sparc.h,
2114 config/sparc/linux64.h, config/sparc/freebsd.h,
2115 config/sparc/sol2.h, config/sparc/rtemself.h,
2116 config/sparc/netbsd-elf.h, config/sparc/vxworks.h,
2117 config/sparc/sparc-modes.def, config/sparc/sparclet.md,
2118 config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h,
2119 config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md,
2120 config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt,
2121 config/m32r/linux.h, config/m32r/constraints.md,
2122 config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt,
2123 config/darwin-c.c, config/darwin.opt, config/i386/i386.h,
2124 config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h,
2125 config/i386/i386.md, config/i386/netware-crt0.c,
2126 config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h,
2127 config/i386/kaos-i386.h, config/i386/winnt-stubs.c,
2128 config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h,
2129 config/i386/sol2.h, config/i386/constraints.md,
2130 config/i386/netware-libgcc.c, config/i386/sysv5.h,
2131 config/i386/predicates.md, config/i386/geode.md,
2132 config/i386/x86-64.h, config/i386/kfreebsd-gnu.h,
2133 config/i386/freebsd64.h, config/i386/vxworksae.h,
2134 config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h,
2135 config/i386/rtemself.h, config/i386/netbsd-elf.h,
2136 config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c,
2137 config/i386/netware.h, config/i386/i386-modes.def,
2138 config/i386/sysv4-cpp.h, config/i386/i386-interix.h,
2139 config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h,
2140 config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h,
2141 config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h,
2142 config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md,
2143 config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt,
2144 config/i386/xm-mingw32.h, config/i386/linux64.h,
2145 config/i386/openbsdelf.h, config/i386/xm-cygwin.h,
2146 config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h,
2147 config/i386/winnt-cxx.c, config/i386/i386-interix3.h,
2148 config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c,
2149 config/i386/cygwin2.c, config/i386/i386-protos.h,
2150 config/i386/sync.md, config/i386/openbsd.h,
2151 config/i386/host-mingw32.c, config/i386/i386-aout.h,
2152 config/i386/nto.h, config/i386/biarch64.h,
2153 config/i386/i386-coff.h, config/i386/freebsd.h,
2154 config/i386/driver-i386.c, config/i386/knetbsd-gnu.h,
2155 config/i386/host-i386-darwin.c, config/i386/vxworks.h,
2156 config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h,
2157 config/darwin-protos.h, config/linux.opt, config/sol2.c,
2158 config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h,
2159 config/sh/linux.h, config/sh/elf.h, config/sh/superh.h,
2160 config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h,
2161 config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h,
2162 config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md,
2163 config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h,
2164 config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c,
2165 config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def,
2166 config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md,
2167 config/sh/superh64.h, config/sh/rtemself.h,
2168 config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h,
2169 config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h,
2170 config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c,
2171 config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def,
2172 config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h,
2173 config/avr/predicates.md, config/avr/constraints.md,
2174 config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt,
2175 config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h,
2176 config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h,
2177 config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt,
2178 config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt,
2179 config/c4x/c4x-modes.def, config/c4x/rtems.h,
2180 config/c4x/predicates.md, config/c4x/c4x.h,
2181 config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h,
2182 config/xtensa/predicates.md, config/xtensa/xtensa.c,
2183 config/xtensa/linux.h, config/xtensa/xtensa.h,
2184 config/xtensa/elf.h, config/xtensa/xtensa.md,
2185 config/xtensa/xtensa.opt, config/xtensa/constraints.md,
2186 config/xtensa/xtensa-protos.h, config/dbx.h,
2187 config/stormy16/predicates.md, config/stormy16/stormy16.md,
2188 config/stormy16/stormy16.c, config/stormy16/stormy16.opt,
2189 config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h,
2190 config/host-solaris.c, config/fr30/fr30.h,
2191 config/fr30/predicates.md, config/fr30/fr30-protos.h,
2192 config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt,
2193 config/vxworksae.h, config/sol2-c.c, config/lynx.h,
2194 config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md,
2195 config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c,
2196 config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h,
2197 config/m68hc11/m68hc12.h, config/openbsd-oldgas.h,
2198 config/host-linux.c, config/interix3.h, config/cris/cris.c,
2199 config/cris/predicates.md, config/cris/linux.h,
2200 config/cris/cris.h, config/cris/aout.h, config/cris/cris.md,
2201 config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt,
2202 config/cris/aout.opt, config/cris/cris-protos.h,
2203 config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h,
2204 config/iq2000/iq2000.h, config/iq2000/predicates.md,
2205 config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md,
2206 config/iq2000/iq2000.c, config/iq2000/iq2000.opt,
2207 config/host-darwin.c, config/mt/mt.md, config/mt/mt.c,
2208 config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h,
2209 config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h,
2210 config/chorus.h, config/mn10300/mn10300.c,
2211 config/mn10300/mn10300.opt, config/mn10300/predicates.md,
2212 config/mn10300/mn10300.h, config/mn10300/linux.h,
2213 config/mn10300/constraints.md, config/mn10300/mn10300-protos.h,
2214 config/mn10300/mn10300.md, config/ia64/predicates.md,
2215 config/ia64/itanium1.md, config/ia64/unwind-ia64.h,
2216 config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c,
2217 config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md,
2218 config/ia64/freebsd.h, config/ia64/ia64.md,
2219 config/ia64/ia64-modes.def, config/ia64/constraints.md,
2220 config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h,
2221 config/gofast.h, config/rtems.h, config/sol2-10.h,
2222 config/m68k/predicates.md, config/m68k/m68k.md,
2223 config/m68k/linux.h, config/m68k/m68k-modes.def,
2224 config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h,
2225 config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt,
2226 config/m68k/openbsd.h, config/m68k/m68k-aout.h,
2227 config/m68k/m68k.opt, config/m68k/m68020-elf.h,
2228 config/m68k/m68kelf.h, config/m68k/m68k-devices.def,
2229 config/m68k/uclinux-oldabi.h, config/m68k/m68k.c,
2230 config/m68k/constraints.md, config/m68k/rtemself.h,
2231 config/m68k/netbsd-elf.h, config/m68k/m68k.h,
2232 config/m68k/uclinux.h, config/rs6000/power4.md,
2233 config/rs6000/host-darwin.c, config/rs6000/6xx.md,
2234 config/rs6000/linux.h, config/rs6000/eabi.h,
2235 config/rs6000/aix41.opt, config/rs6000/xcoff.h,
2236 config/rs6000/secureplt.h, config/rs6000/linuxspe.h,
2237 config/rs6000/eabialtivec.h, config/rs6000/8540.md,
2238 config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h,
2239 config/rs6000/windiss.h, config/rs6000/603.md,
2240 config/rs6000/aix41.h, config/rs6000/cell.md,
2241 config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h,
2242 config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt,
2243 config/rs6000/darwin.md, config/rs6000/darwin64.h,
2244 config/rs6000/default64.h, config/rs6000/7xx.md,
2245 config/rs6000/darwin.opt, config/rs6000/spe.md,
2246 config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c,
2247 config/rs6000/rios2.md, config/rs6000/linuxaltivec.h,
2248 config/rs6000/7450.md, config/rs6000/linux64.h,
2249 config/rs6000/constraints.md, config/rs6000/440.md,
2250 config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c,
2251 config/rs6000/rs6000.c, config/rs6000/aix52.h,
2252 config/rs6000/rs6000.h, config/rs6000/power6.md,
2253 config/rs6000/predicates.md, config/rs6000/altivec.md,
2254 config/rs6000/aix64.opt, config/rs6000/rios1.md,
2255 config/rs6000/rs6000-modes.def, config/rs6000/rs64.md,
2256 config/rs6000/eabisim.h, config/rs6000/sysv4le.h,
2257 config/rs6000/darwin7.h, config/rs6000/dfp.md,
2258 config/rs6000/linux64.opt, config/rs6000/sync.md,
2259 config/rs6000/vxworksae.h, config/rs6000/power5.md,
2260 config/rs6000/lynx.h, config/rs6000/biarch64.h,
2261 config/rs6000/rs6000.md, config/rs6000/sysv4.opt,
2262 config/rs6000/eabispe.h, config/rs6000/e500.h,
2263 config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h,
2264 config/rs6000/netbsd.h, config/rs6000/e500-double.h,
2265 config/rs6000/aix.h, config/rs6000/vxworks.h,
2266 config/rs6000/40x.md, config/rs6000/aix51.h,
2267 config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md,
2268 config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def,
2269 config/arc/arc.h, config/mcore/mcore-elf.h,
2270 config/mcore/mcore-protos.h, config/mcore/predicates.md,
2271 config/mcore/mcore.md, config/mcore/mcore.c,
2272 config/mcore/mcore.opt, config/mcore/mcore.h,
2273 config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h,
2274 config/score/predicates.md, config/score/score-version.h,
2275 config/score/score-protos.h, config/score/misc.md,
2276 config/score/elf.h, config/score/score.c, config/score/mac.md,
2277 config/score/score7.md, config/score/score.h,
2278 config/score/score-conv.h, config/score/score-mdaux.c,
2279 config/score/score.md, config/score/score.opt,
2280 config/score/score-modes.def, config/score/score-mdaux.h,
2281 config/score/mul-div.S, config/arm/uclinux-elf.h,
2282 config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md,
2283 config/arm/symbian.h, config/arm/linux-elf.h,
2284 config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
2285 config/arm/elf.h, config/arm/aout.h, config/arm/arm.c,
2286 config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h,
2287 config/arm/strongarm-pe.h, config/arm/arm.h,
2288 config/arm/cortex-a8-neon.md, config/arm/semiaof.h,
2289 config/arm/cortex-a8.md, config/arm/uclinux-eabi.h,
2290 config/arm/arm-modes.def, config/arm/linux-eabi.h,
2291 config/arm/rtems-elf.h, config/arm/neon-schedgen.ml,
2292 config/arm/arm-cores.def, config/arm/arm-protos.h,
2293 config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h,
2294 config/arm/wince-pe.h, config/arm/neon.md,
2295 config/arm/constraints.md, config/arm/neon.ml,
2296 config/arm/xscale-elf.h, config/arm/strongarm-coff.h,
2297 config/arm/arm.opt, config/arm/arm926ejs.md,
2298 config/arm/predicates.md, config/arm/iwmmxt.md,
2299 config/arm/arm_neon.h, config/arm/unknown-elf.h,
2300 config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt,
2301 config/arm/neon-testgen.ml, config/arm/arm.md,
2302 config/arm/xscale-coff.h, config/arm/pe.c,
2303 config/arm/arm-generic.md, config/arm/pe.h,
2304 config/arm/kaos-strongarm.h, config/arm/freebsd.h,
2305 config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md,
2306 config/arm/strongarm-elf.h, config/arm/cirrus.md,
2307 config/arm/netbsd-elf.h, config/arm/vxworks.h,
2308 config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c,
2309 config/pa/predicates.md, config/pa/pa64-hpux.h,
2310 config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt,
2311 config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h,
2312 config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h,
2313 config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h,
2314 config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
2315 config/pa/pa-hpux1010.h, config/pa/pa-protos.h,
2316 config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h,
2317 config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h,
2318 config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt,
2319 config/pa/pa64-regs.h, config/pa/pa-modes.def,
2320 config/pa/constraints.md, config/darwin9.h, config/mips/4100.md,
2321 config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h,
2322 config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h,
2323 config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md,
2324 config/mips/7000.md, config/mips/9000.md, config/mips/4600.md,
2325 config/mips/linux64.h, config/mips/elforion.h,
2326 config/mips/constraints.md, config/mips/generic.md,
2327 config/mips/predicates.md, config/mips/4300.md,
2328 config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md,
2329 config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md,
2330 config/mips/5k.md, config/mips/vr4120-div.S,
2331 config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md,
2332 config/mips/mips-protos.h, config/mips/6000.md,
2333 config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h,
2334 config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h,
2335 config/mips/mips-modes.def, config/mips/vr.h,
2336 config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h,
2337 config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h,
2338 config/vax/vax.h, config/vax/elf.h, config/vax/vax.md,
2339 config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def,
2340 config/vax/openbsd1.h, config/vax/netbsd.h,
2341 config/vax/vax-protos.h, config/vax/netbsd-elf.h,
2342 config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h,
2343 config/h8300/rtems.h, config/h8300/predicates.md,
2344 config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h,
2345 config/h8300/h8300.md, config/h8300/h8300.opt,
2346 config/h8300/coff.h, config/h8300/h8300-protos.h,
2347 config/v850/v850.md, config/v850/predicates.md,
2348 config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt,
2349 config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c,
2350 config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h,
2351 config/mmix/mmix.h, config/mmix/predicates.md,
2352 config/mmix/mmix-protos.h, config/mmix/mmix.md,
2353 config/mmix/mmix.c, config/mmix/mmix.opt,
2354 config/mmix/mmix-modes.def, config/bfin/bfin.opt,
2355 config/bfin/rtems.h, config/bfin/bfin-modes.def,
2356 config/bfin/predicates.md, config/bfin/bfin-protos.h,
2357 config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md:
2358 Likewise.
2359
2360 2007-08-02 Richard Sandiford <richard@codesourcery.com>
2361
2362 * emit-rtl.c (reset_used_decls): Rename to...
2363 (set_used_decls): ...this. Set the used flag rather than clearing it.
2364 (unshare_all_rtl_again): Update accordingly. Set flags on argument
2365 DECL_RTLs rather than resetting them.
2366
2367 2007-08-02 Andreas Krebbel <krebbel1@de.ibm.com>
2368
2369 * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
2370
2371 2007-08-01 Sandra Loosemore <sandra@codesourcery.com>
2372
2373 * reload.c (find_reloads_address_part): Pass correct MEMREFLOC
2374 argument to find_reloads_address.
2375
2376 2007-08-01 Daniel Jacobowitz <dan@codesourcery.com>
2377
2378 PR tree-optimization/32919
2379 * tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs.
2380 * tree-ssa-coalesce.c (ssa_conflicts_dump): New.
2381 (coalesce_ssa_name): Call it.
2382
2383 2007-08-01 Sandra Loosemore <sandra@codesourcery.com>
2384 David Ung <davidu@mips.com>
2385
2386 * config/mips/mips16.S (__mips16_unordsf2, __mips16_floatunsisf): New.
2387 (__mips16_unorddf2, __mips16_floatunsidf): New.
2388 * config/mips/mips.c (mips_init_libfuncs): Add optab entries for
2389 above functions.
2390 * config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions.
2391
2392 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
2393
2394 * tree-pretty-print.c (dump_generic_node): Dump OMP_SECTIONS_SWITCH.
2395 Display new operands of OMP_SECTIONS and OMP_CONTINUE.
2396 * tree.h (OMP_SECTIONS_CONTROL): New macro.
2397 (OMP_DIRECTIVE_P): Add OMP_SECTIONS_SWITCH.
2398 * omp-low.c (get_ws_args_for, determine_parallel_type,
2399 expand_omp_for_generic, expand_omp_for_static_nochunk,
2400 expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
2401 Work with more precise CFG.
2402 (build_omp_regions_1): Handle OMP_SECTIONS_SWITCH.
2403 (lower_omp_sections): Emit OMP_SECTIONS_SWITCH. Add arguments to
2404 OMP_CONTINUE.
2405 * tree-gimple.c (is_gimple_stmt): Handle OMP_SECTIONS_SWITCH.
2406 * gimple-low.c (lower_stmt): Ditto.
2407 * tree-inline.c (estimate_num_insns_1): Ditto.
2408 * tree.def (OMP_SECTIONS, OMP_CONTINUE): Added new operands.
2409 (OMP_SECTIONS_SWITCH): New.
2410 * tree-cfgcleanup.c (cleanup_omp_return): New.
2411 (cleanup_tree_cfg_bb): Call cleanup_omp_return.
2412 * tree-cfg.c (make_edges): Create back edges for OMP_CONTINUE
2413 and exit edge for OMP_FOR. Handle OMP_SECTIONS_SWITCH.
2414 (tree_redirect_edge_and_branch): Handle omp constructs.
2415
2416 * fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS
2417 with three arguments.
2418
2419 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
2420
2421 * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only
2422 in loop closed ssa.
2423
2424 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
2425
2426 * tree-ssa-threadupdate.c (thread_through_all_blocks): Record that
2427 the loop structures may need fixing.
2428 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
2429 New functions.
2430 (cleanup_tree_cfg_loop): Removed.
2431 (cleanup_tree_cfg): If loops need fixing, call repair_loop_structures.
2432 * tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg
2433 instead of running cleanup_tree_cfg_loop.
2434 * cfgloop.h (LOOPS_NEED_FIXUP): New constant.
2435 * tree-flow.h (cleanup_tree_cfg_loop): Declaration removed.
2436 (tree_predictive_commoning): Declaration changed.
2437 * passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop.
2438
2439 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
2440
2441 * doc/invoke.texi (l1-cache-size): Update documentation.
2442 (l2-cache-size): Document.
2443 * params.h (L2_CACHE_SIZE): New macro.
2444 * tree-ssa-loop-prefetch.c (L1_CACHE_SIZE_BYTES): Reflect
2445 that L1_CACHE_SIZE is in kB now.
2446 (L2_CACHE_SIZE_BYTES): New macro.
2447 (tree_ssa_prefetch_arrays): Show size in kB.
2448 * config/i386/i386.h (struct processor_costs): Add l1_cache_size
2449 and l2_cache_size fields.
2450 * config/i386/driver-i386.c (describe_cache): Detect cache size
2451 in kB.
2452 * config/i386/i386.c (size_cost, i386_cost, i486_cost,pentium_cost,
2453 pentiumpro_cost, geode_cost, k6_cost, athlon_cost, k8_cost,
2454 amdfam10_cost, pentium4_cost, nocona_cost, core2_cost,
2455 generic64_cost, generic32_cost): Add l1_cache_size and l2_cache_size.
2456 (override_options): Set l1-cache-size and l2-cache-size to default
2457 values if not specified otherwise.
2458 * params.def (PARAM_L1_CACHE_SIZE): Change to set in kB.
2459 (PARAM_L2_CACHE_SIZE): New.
2460
2461 2007-08-01 Nigel Stephens <nigel@mips.com>
2462 David Ung <davidu@mips.com>
2463 Thiemo Seufer <ths@mips.com>
2464 Chris Dearman <chris@mips.com>
2465 Richard Sandiford <richard@codesourcery.com>
2466
2467 * config.gcc (mips*-sde-elf*): New stanza.
2468 (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
2469 (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
2470 (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*, mips-*-elf*)
2471 (mipsel-*-elf*, mips64-*-elf*, mips64el-*-elf*, mips64orion-*-elf*)
2472 (mips64orionel-*-elf*, mips*-*-rtems*, mips-wrs-windiss)
2473 (mipstx39-*-elf*, mipstx39el-*-elf*): Add mips/t-libgcc-mips16
2474 to tmake_file.
2475 * config/mips/sde.h: New file.
2476 * config/mips/t-libgcc-mips16: Likewise.
2477 * config/mips/t-sde: Likewise.
2478 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove settings
2479 of _ABIN32, _ABI64, _ABIO32, _MIPS_SIM, _MIPS_SZLONG, _MIPS_SZPTR,
2480 _MIPS_FPSET and _MIPS_SZINT.
2481 * config/mips/iris.h (TARGET_OS_CPP_BUILTINS): Likewise.
2482 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Remove separate
2483 insertion of a default -mips option. Use MIPS_32BIT_OPTION_SPEC.
2484 * config/mips/t-isa3264 (LIB1ASMSRC, LIB1ASMFUNCS): Delete.
2485 * config/mips/t-r3900 (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2486 * config/mips/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2487 * config/mips/mips.h (TARGET_CPU_CPP_BUITINS): Define _ABIO32,
2488 _ABIN32, _ABI64, _ABIO64, _MIPS_SIM, _MIPS_SZINT, _MIPS_SZLONG,
2489 _MIPS_SZPTR and _MIPS_FPSET.
2490 (MIPS_ISA_LEVEL_SPEC): Inject the default -mips option if no
2491 architecture is specified.
2492 (MIPS_32BIT_OPTION_SPEC): New macro.
2493
2494 2007-07-31 Dan Hipschman <dsh@google.com>
2495
2496 * gcc.c (end_going_arg): New function.
2497 (do_spec_2): Use it.
2498 (do_spec_1): Use it.
2499
2500 2007-07-31 H.J. Lu <hongjiu.lu@intel.com>
2501
2502 * ddg.c (add_cross_iteration_register_deps): Declare bb_info
2503 only if ENABLE_CHECKING is defined.
2504
2505 2007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
2506
2507 * df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru,
2508 df_ru_add_problem, df_ru_get_bb_info): Removed.
2509 (DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered.
2510 * df-problems.c (df_ru_problem_data, df_ru_set_bb_info,
2511 df_ru_free_bb_info, df_ru_alloc,
2512 df_ru_bb_local_compute_process_def,
2513 df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
2514 df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
2515 df_ru_transfer_function, df_ru_free, df_ru_start_dump,
2516 df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU,
2517 df_ru_add_problem): Removed.
2518
2519 2007-07-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2520
2521 PR target/32847
2522 * pa.md (casesi32): Use match_scratch. Revise insn condition.
2523 (casesi32p, casesi64p): Likewise.
2524 (casesi): Adjust for above.
2525
2526 2007-07-31 Richard Sandiford <richard@codesourcery.com>
2527
2528 * mode-switching.c (create_pre_exit): Don't search past calls.
2529
2530 2007-07-31 Sandra Loosemore <sandra@codesourcery.com>
2531
2532 * config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test.
2533
2534 2007-07-31 Revital Eres <eres@il.ibm.com>
2535
2536 * ddg.c (add_deps_for_def): Rename to...
2537 (add_cross_iteration_register_deps): This. Change implementation
2538 to use only reaching def and def-use chains to construct the
2539 inter loop dependencies.
2540 (add_deps_for_use): Remove function.
2541 (build_inter_loop_deps): Call add_cross_iteration_register_deps
2542 function to build the inter loop dependencies.
2543 * modulo-sched.c (sms_schedule): Build only
2544 reaching def and def-use chains for the propose of the ddg
2545 construction.
2546
2547 2007-07-31 Julian Brown <julian@codesourcery.com>
2548
2549 * config/arm/neon.md (vec_set<mode>_internal, vec_setv2di_internal):
2550 New define_insns. Use correct RTL.
2551 (vec_set<mode>): Write as expander.
2552
2553 2007-07-31 Razya Ladelsky <razya@il.ibm.com>
2554
2555 * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring
2556 to an unallocated space.
2557
2558 2007-07-30 Jan Sjodin <jan.sjodin@amd.com>
2559
2560 * tree-data-ref.c
2561 (split_constant_offset): Enable split_constant_offset to extract
2562 constants from other statements.
2563 * tree-vect-transform.c
2564 (vect_create_addr_base_for_vector_ref): Generate data_ref_base
2565 to a temp var. Force base_offset to be simple.
2566
2567 2007-07-30 Seongbae Park <seongbae.park@gmail.com>
2568
2569 * df-scan.c (df_scan_verify): Remove artificial limit on
2570 the number of blocks for verification.
2571 * df-problems.c (df_lr_bb_local_compute, df_simulate_find_defs,
2572 df_simulate_defs): Avoid unnecessary insn checking for defs.
2573
2574 2007-07-29 Mark Mitchell <mark@codesourcery.com>
2575
2576 * config/m68k/lb1sf68.asm (FUNC): New macro.
2577 (__mulsi3): Use it.
2578 (__udivsi3): Likewise.
2579 (__divsi3): Likewise.
2580 (__umodsi3): Likewise.
2581 (__modsi3): Likewise.
2582 (__subdf3): Likewise.
2583 (__adddf3): Likewise.
2584 (__muldf3): Likewise.
2585 (__divdf3): Likewise.
2586 (__negdf2): Likewise.
2587 (__cmpdf2): Likewise.
2588 (__subsf3): Likewise.
2589 (__addsf3): Likewise.
2590 (__mulsf3): Likewise.
2591 (__divsf3): Likewise.
2592 (__negsf2): Likewise.
2593 (__cmpsf2): Likewise.
2594 (__eqdf2): Likewise.
2595 (__nedf2): Likewise.
2596 (__gtdf2): Likewise.
2597 (__gedf2): Likewise.
2598 (__ltdf2): Likewise.
2599 (__ledf2): Likewise.
2600 (__eqsf2): Likewise.
2601 (__nesf2): Likewise.
2602 (__gtsf2): Likewise.
2603 (__gesf2): Likewise.
2604 (__ltsf2): Likewise.
2605 (__lesf2): Likewise.
2606
2607 2007-07-30 Ollie Wild <aaw@google.com>
2608
2609 * c-ppoutput.c (print_lines_directives_only): New function.
2610 (scan_translation_unit_directives_only): New function.
2611 (preprocess_file): Add call to scan_translation_unit_directives_only.
2612 * c-opts.c (c_common_handle_option): Add OPT_fdirectives_only.
2613 (sanitize_cpp_opts): Add default flag_dump_macros setting for
2614 -fdirectives-only. Add errors for -fdirectives-only conflict with
2615 -Wunused-macros and -traditional.
2616 (finish_options): Add builtin macro initialization for
2617 -fdirectives-only + -fpreprocessed.
2618 * c.opt (fdirectives-only): New.
2619 * doc/cppopts.texi (fdirectives-only): New.
2620
2621 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2622
2623 * alias.c (record_set, memory_modified_1): Constify.
2624 * bt-load.c (note_btr_set): Likewise.
2625 * caller-save.c (mark_set_regs, add_stored_regs): Likewise.
2626 * combine.c (set_nonzero_bits_and_sign_copies,
2627 expand_field_assignment, record_dead_and_set_regs_1,
2628 use_crosses_set_p, reg_dead_at_p_1, can_combine_p,
2629 likely_spilled_retval_1): Likewise.
2630 * config/frv/frv.c (frv_registers_update_1, frv_io_check_address,
2631 frv_io_handle_set): Likewise.
2632 * config/mips/mips.c (mips_sim_record_set,
2633 vr4130_true_reg_dependence_p_1): Likewise.
2634 * config/mt/mt.c (insn_dependent_p_1): Likewise.
2635 * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
2636 * config/sh/sh.c (flow_dependent_p_1): Likewise.
2637 * cselib.c (cselib_invalidate_rtx_note_stores): Likewise.
2638 * dce.c (mark_nonreg_stores_1, mark_nonreg_stores_2): Likewise.
2639 * ddg.c (mark_mem_store): Likewise.
2640 * df-problems.c (df_urec_mark_reg_change): Likewise.
2641 * function.c (update_epilogue_consts): Likewise.
2642 * gcse.c (record_set_info, record_last_set_info,
2643 mems_conflict_for_gcse_p, canon_list_insert, reg_set_info,
2644 reg_clear_last_set): Likewise.
2645 * global.c (mark_reg_store, mark_reg_clobber, reg_becomes_live):
2646 Likewise.
2647 * jump.c (reversed_comparison_code_parts): Likewise.
2648 * local-alloc.c (validate_equiv_mem_from_store, no_equiv,
2649 reg_is_set): Likewise.
2650 * loop-iv.c (mark_altered): Likewise.
2651 * mode-switching.c (reg_becomes_live): Likewise.
2652 * optabs.c (no_conflict_move_test): Likewise.
2653 * postreload-gcse.c (record_last_set_info, find_mem_conflicts):
2654 Likewise.
2655 * postreload.c (reload_combine_note_store, move2add_note_store):
2656 Likewise.
2657 * regmove.c (flags_set_1): Likewise.
2658 * regrename.c (note_sets, kill_clobbered_value, kill_set_value):
2659 Likewise.
2660 * reload1.c (mark_not_eliminable, forget_old_reloads_1):
2661 Likewise.
2662 * resource.c (update_live_status): Likewise.
2663 * rtl.h (set_of, note_stores): Likewise.
2664 * rtlanal.c (set_of_1, parms_set, struct set_of_data, set_of,
2665 note_stores, parms_set): Likewise.
2666 * sched-rgn.c (sets_likely_spilled_1): Likewise.
2667 * stack-ptr-mod.c (notice_stack_pointer_modification_1):
2668 Likewise.
2669 * var-tracking.c (count_stores, add_stores): Likewise.
2670
2671 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2672
2673 * alias.c (mems_in_disjoint_alias_sets_p,
2674 fixed_scalar_and_varying_struct_p, aliases_everything_p,
2675 nonoverlapping_component_refs_p, nonoverlapping_memrefs_p,
2676 write_dependence_p, mems_in_disjoint_alias_sets_p,
2677 read_dependence, true_dependence, canon_true_dependence,
2678 anti_dependence, output_dependence): Constify.
2679 * combine.c (extended_count): Likewise.
2680 * cse.c (cse_rtx_varies_p, hash_rtx, exp_equiv_p): Likewise.
2681 * cselib.c (get_value_hash, references_value_p,
2682 cselib_reg_set_mode, cselib_rtx_varies_p): Likewise.
2683 * cselib.h (cselib_reg_set_mode, references_value_p): Likewise.
2684 * emit-rtl.c (mem_expr_equal_p, active_insn_p): Likewise.
2685 * function.c (contains, prologue_epilogue_contains,
2686 sibcall_epilogue_contains): Likewise.
2687 * jump.c (simplejump_p, condjump_p, condjump_in_parallel_p,
2688 pc_set, any_uncondjump_p, any_condjump_p, onlyjump_p,
2689 only_sets_cc0_p, sets_cc0_p, rtx_renumbered_equal_p, true_regnum,
2690 reg_or_subregno): Likewise.
2691 * recog.c (asm_noperands): Likewise.
2692 * reload1.c (function_invariant_p): Likewise.
2693 * rtl.h (mem_expr_equal_p, active_insn_p, rtx_varies_p,
2694 rtx_addr_varies_p, asm_noperands, exp_equiv_p, hash_rtx,
2695 condjump_p, any_condjump_p, any_uncondjump_p, pc_set,
2696 simplejump_p, onlyjump_p, only_sets_cc0_p, sets_cc0_p,
2697 true_regnum, reg_or_subregno, condjump_in_parallel_p,
2698 extended_count, prologue_epilogue_contains,
2699 sibcall_epilogue_contains, function_invariant_p, true_dependence,
2700 canon_true_dependence, read_dependence, anti_dependence,
2701 output_dependence): Likewise.
2702 * rtlanal.c (rtx_varies_p, rtx_addr_varies_p): Likewise.
2703
2704 2007-07-30 Julian Brown <julian@codesourcery.com>
2705
2706 * config/arm/neon.md (V_ext): New mode attribute.
2707 (neon_vget_lane<mode>): Replace with define_expand.
2708 (neon_vget_lane<mode>_sext_internal)
2709 (neon_vget_lane<mode>_zext_internal): New define_insns for double
2710 and quad precision vectors.
2711 (neon_vget_lanedi): Add bounds check. Remove dead comment.
2712 * config/arm/neon.ml (get_lane): Make 32-bit get-lane intrinsics
2713 have typeless 32-bit result.
2714
2715 2007-07-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
2716
2717 PR tree-opt/32527
2718 * tree-affine.h (aff_tree): The type of rest is sizetype for types
2719 of pointers.
2720 * tree-affine.c (aff_combination_scale): If type is a pointer type,
2721 use sizetype for rest.
2722 (aff_combination_add_elt): Likewise. Don't specialize pointer types.
2723 (aff_combination_convert): Don't convert rest for pointer types.
2724
2725 2007-07-28 Daniel Berlin <dberlin@dberlin.org>
2726
2727 * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h
2728
2729 * tree-ssa-alias.c: Add alloc-pool.h.
2730 (init_alias_info): Free alias_bitmap_obstack.
2731 (delete_alias_info): Call delete_mem_ref_stats.
2732 (get_mem_sym_stats_for): Use alloc_pool.
2733 (init_mem_ref_stats): Do not delete mem_ref_stats here.
2734 (delete_mem_sym_stats): Removed.
2735
2736 2007-07-29 Sebastian Pop <sebpop@gmail.com>
2737
2738 * tree-data-ref.c (add_multivariate_self_dist): Parametric access
2739 functions cannot be represented as classical distance vectors.
2740
2741 2007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2742
2743 * attribs.c (hash_attr, eq_attr, init_attributes): Constify.
2744 * builtins.c (validate_arg, builtin_mathfn_code,
2745 validate_arglist): Likewise.
2746 * calls.c (call_expr_flags): Likewise.
2747 * combine.c (reg_nonzero_bits_for_combine,
2748 reg_num_sign_bit_copies_for_combine, get_last_value,
2749 reg_truncated_to_mode): Likewise.
2750 * emit-rtl.c (subreg_lowpart_p): Likewise.
2751 * expr.c (highest_pow2_factor_for_target,
2752 categorize_ctor_elements_1, categorize_ctor_elements,
2753 count_type_elements, contains_packed_reference,
2754 highest_pow2_factor, highest_pow2_factor_for_target): Likewise.
2755 * fold-const.c (may_negate_without_overflow_p, int_const_binop,
2756 fold_convertible_p, operand_equal_p, tree_swap_operands_p,
2757 native_encode_int, native_encode_real, native_encode_complex,
2758 native_encode_vector, native_encode_expr, native_interpret_int,
2759 native_interpret_real, native_interpret_complex,
2760 native_interpret_vector, native_interpret_expr): Likewise.
2761 * function.c (use_register_for_decl): Likewise.
2762 * gimplify.c (get_name): Likewise.
2763 * langhooks-def.h (lhd_return_null_const_tree): New.
2764 (LANG_HOOKS_GET_CALLEE_FNDECL): Use it.
2765 * langhooks.c (lhd_return_null_const_tree): New.
2766 * langhooks.h (lang_get_callee_fndecl): Constify.
2767 * output.h (constructor_static_from_elts_p): Likewise.
2768 * rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise.
2769 * rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode,
2770 subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise.
2771 * rtlanal.c (cached_nonzero_bits, nonzero_bits1,
2772 cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p,
2773 nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise.
2774 * rtlhooks-def.h (reg_nonzero_bits_general,
2775 reg_num_sign_bit_copies_general, reg_truncated_to_mode_general):
2776 Likewise.
2777 * rtlhooks.c (reg_num_sign_bit_copies_general,
2778 reg_nonzero_bits_general, reg_truncated_to_mode_general):
2779 Likewise.
2780 * stmt.c (warn_if_unused_value, is_body_block): Likewise.
2781 * stor-layout.c (mode_for_size_tree): Likewise.
2782 * tree-ssa-loop-im.c (memref_eq): Likewise.
2783 * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise.
2784 * tree.c (contains_placeholder_p, type_list_equal,
2785 simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p):
2786 Likewise.
2787 * tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p,
2788 mode_for_size_tree, categorize_ctor_elements, count_type_elements,
2789 contains_placeholder_p, contains_packed_reference,
2790 get_callee_fndecl, operand_equal_for_phi_arg_p,
2791 warn_if_unused_value, is_body_block, native_encode_expr,
2792 native_interpret_expr, fold_convertible_p, operand_equal_p,
2793 int_const_binop, tree_swap_operands_p, builtin_mathfn_code,
2794 validate_arglist, simple_cst_equal, type_list_equal,
2795 use_register_for_decl, call_expr_flags, get_name,
2796 highest_pow2_factor): Likewise.
2797 (const_call_expr_arg_iterator_d,
2798 init_const_call_expr_arg_iterator, next_const_call_expr_arg,
2799 first_const_call_expr_arg, more_const_call_expr_args_p,
2800 FOR_EACH_CONST_CALL_EXPR_ARG): New.
2801 * varasm.c (constructor_static_from_elts_p): Constify.
2802
2803 2007-07-28 Kazu Hirata <kazu@codesourcery.com>
2804
2805 * cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md,
2806 config/arm/neon-schedgen.ml, config/arm/neon.ml,
2807 config/arm/vec-common.md, config/ia64/div.md, cselib.c,
2808 df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c,
2809 regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c,
2810 tree-vect-transform.c, tree.def: Fix comment typos. Follow
2811 spelling conventions.
2812 * doc/invoke.texi: Follow spelling conventions.
2813
2814 2007-07-29 Vladimir Yanovsky <yanov@il.ibm.com>
2815 Revital Eres <eres@il.ibm.com>
2816
2817 * modulo-sched.c (sms_schedule): Avoid loops which includes
2818 auto-increment instructions.
2819
2820 2007-07-28 Richard Guenther <rguenther@suse.de>
2821
2822 PR middle-end/32920
2823 * fold-const.c (fold_cond_expr_with_comparison): Convert
2824 operand zero of MIN/MAX_EXPR to correct type.
2825
2826 2007-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2827
2828 * calls.c (special_function_p, setjmp_call_p, alloca_call_p,
2829 flags_from_decl_or_type): Constify.
2830 * gcc.c (do_spec_1): Likewise.
2831 * print-tree.c (dump_addr, print_node_brief): Likewise.
2832 * tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p,
2833 simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p,
2834 tree_purge_all_dead_eh_edges): Likewise.
2835 * tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p,
2836 tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges):
2837 Likewise.
2838 * tree.c (expr_location, expr_has_location, expr_locus,
2839 expr_filename, expr_lineno, get_inner_array_type,
2840 fields_compatible_p): Likewise.
2841 * tree.h (get_inner_array_type, fields_compatible_p,
2842 expr_location, expr_has_location, expr_locus, expr_filename,
2843 expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type,
2844 setjmp_call_p, alloca_call_p): Likewise.
2845
2846 2007-07-28 Daniel Berlin <dberlin@dberlin.org>
2847
2848 * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE,
2849 TV_FLOW_INSENSITIVE.
2850
2851 * tree-ssa-alias.c (compute_call_clobbered): Push/pop
2852 TV_CALL_CLOBBER.
2853 (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE.
2854 (compute_flow_insensitive_aliasing): Ditto for
2855 TV_FLOW_INSENSITIVE.
2856
2857 2007-07-27 Jan Hubicka <jh@suse.cz>
2858
2859 * config/i386/i386.c (register_move_cost): Remove accidentally comitted
2860 #if 0 block.
2861
2862 * attribs.c: Include hashtab.h
2863 (attribute_hash): New.
2864 (substring): New structure.
2865 (extract_attribute_substring, substring_hash, hash_attr, eq_attr):
2866 New function.
2867 (init_attributes): Initialize attribute hash.
2868 (decl_attributes): Use attribute hash.
2869 * Makefile.in (attribs.c): Depend on hashtab.h.
2870
2871 2007-07-27 Steve Ellcey <sje@cup.hp.com>
2872
2873 * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test.
2874
2875 2007-07-27 Richard Sandiford <richard@codesourcery.com>
2876
2877 * doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp,
2878 __mips_dspr2 and __mips_dsp_rev macros.
2879 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev.
2880
2881 2007-07-27 Douglas Gregor <doug.gregor@gmail.com>
2882
2883 * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X.
2884
2885 2007-07-26 Kenneth Zadeck <zadeck@naturalbridge.com>
2886
2887 PR middle-end/32749
2888
2889 * df-problems.c (df_create_unused_note): Removed do_not_gen parm
2890 and the updating of the live and do_not_gen sets.
2891 (df_note_bb_compute): Added updating of live and do_not_gen sets
2892 for regular defs so that the case of clobber inside conditional
2893 call is processed correctly.
2894
2895 2007-07-27 Zdenek Dvorak <dvorakz@suse.cz>
2896
2897 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
2898 operands with compatible type.
2899
2900 2007-07-27 Richard Sandiford <richard@codesourcery.com>
2901
2902 * expr.h (store_bit_field): Don't return a value.
2903 * expmed.c (check_predicate_volatile_ok): New function.
2904 (store_bit_field_1): New function, extracted from store_bit_field.
2905 Take a fallback_p argument and return true if the operation succeeded.
2906 Only use store_fixed_bit_field if fallback_p. Don't recompute
2907 mode_for_extraction; use op_mode instead. Try forcing memories
2908 into registers if the insv expander fails.
2909 (store_bit_field): Use store_bit_field_1 with fallback_p true.
2910 Don't return a value.
2911 (convert_extracted_bit_field): New function, extracted from
2912 store_bit_field.
2913 (extract_bit_field_1): Likewise. Take a fallback_p argument
2914 and return NULL if the operation succeeded. Only use
2915 extract_fixed_bit_field if fallback_p. Only calculate one
2916 extraction mode. Combine code for extv and extzv. Try forcing
2917 memories into registers if the ext(z)v expander fails.
2918 (extract_bit_field): Use extract_bit_field_1 with fallback_p true.
2919
2920 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk>
2921
2922 * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
2923 into bitfields.
2924 (df_ref): Likewise. Put regno with other integer fields.
2925
2926 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk>
2927
2928 * df.h (df_mw_hardreg): Remove "loc" field.
2929 * df-scan.c (df_ref_record): Don't set it. Remove redundant
2930 local variable.
2931 * df-problems.c (df_whole_mw_reg_unused_p): New function,
2932 split out from df_set_unused_notes_for_mw. Return false for
2933 partial references. Assert that mw_reg is a REG when returning true.
2934 (df_set_unused_notes_for_mw): Use it. Use mw_reg instead of *loc.
2935 (df_whole_mw_reg_dead_p): New function, split out from
2936 df_set_dead_notes_for_mw. Return false for partial references.
2937 Assert that mw_reg is a REG when returning true.
2938 (df_set_dead_notes_for_mw): Use it. Use mw_reg instead of *loc.
2939 Remove redundant bitmap check.
2940
2941 2007-07-26 H.J. Lu <hongjiu.lu@intel.com>
2942
2943 * config/ia64/t-ia64 ($(T)crtbegin.o): Removed.
2944 ($(T)crtend.o): Likwise.
2945 ($(T)crtbeginS.o): Likwise.
2946 ($(T)crtendS.o): Likwise.
2947 ($(T)crtfastmath.o): Likwise.
2948
2949 2007-07-26 Zdenek Dvorak <dvorakz@suse.cz>
2950
2951 * dominance.c (dom_computed, n_bbs_in_dom_tree): Removed.
2952 * function.h (dom_computed, n_bbs_in_dom_tree): New macros.
2953 * basic-block.h (struct control_flow_graph): Added x_dom_computed
2954 and x_n_bbs_in_dom_tree fields.
2955
2956 2007-07-26 Steve Ellcey <sje@cup.hp.com>
2957
2958 PR tree-optimization/32087
2959 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
2960 Do not call scale_bbs_frequencies_int with prob of zero.
2961
2962 2007-07-26 Julian Brown <julian@codesourcery.com>
2963
2964 * config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds)
2965 (neon_element_bits): Add prototypes.
2966 * config/arm/arm.c (bounds_check, neon_lane_bounds)
2967 (neon_const_bounds, neon_element_bits): New functions.
2968 * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_lanedi)
2969 (neon_vget_lanev2di, neon_vset_lane<mode>, neon_vset_lanedi)
2970 (neon_vset_lanev2di, neon_vdup_lane<mode>, neon_vdup_lanedi)
2971 (neon_vdup_lanev2di, neon_vcvt_n<mode>, neon_vmul_lane<mode>)
2972 (neon_vmull_lane<mode>, neon_vqdmull_lane<mode>)
2973 (neon_vqdmulh_lane<mode>, neon_vmla_lane<mode>)
2974 (neon_vmlal_lane<mode>, neon_vqdmlal_lane<mode>)
2975 (neon_vmls_lane<mode>, neon_vmlsl_lane<mode>)
2976 (neon_vqdmlsl_lane<mode>, neon_vext<mode>, neon_vshr_n<mode>)
2977 (neon_vshrn_n<mode>, neon_vqshrn_n<mode>, neon_vqshrun_n<mode>)
2978 (neon_vshl_n<mode>, neon_vshl_n<mode>, neon_vqshl_n<mode>)
2979 (neon_vqshlu_n<mode>, neon_vshll_n<mode>, neon_vsra_n<mode>)
2980 (neon_vsri_n<mode>, neon_vsli_n<mode>): Add bounds checks.
2981
2982 2007-07-26 Nathan Froyd <froydnj@codesourcery.com>
2983
2984 * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo.
2985 (HAVE_AS_GNU_ATTRIBUTE): Undefine.
2986
2987 2007-07-26 Mark Shinwell <shinwell@codesourcery.com>
2988 Julian Brown <julian@codesourcery.com>
2989
2990 * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New.
2991 * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New.
2992 * config/arm/cortex-a8.md: New.
2993 * config/arm/cortex-a8-neon.md: New.
2994 * config/arm/neon-schedgen.ml: New.
2995 * config/arm/neon.md (vqh_mnem): New.
2996 (neon_type): New.
2997 (Is_float_mode): New.
2998 (Scalar_mul_8_16): New.
2999 (Is_d_reg): New.
3000 (V_mode_nunits): New.
3001 (All instruction patterns): Annotate with neon_type attribute
3002 values.
3003 * config/arm/arm.md: Include cortex-a8.md.
3004 (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
3005 values.
3006 Annotate instruction patterns accordingly.
3007 (generic_sched): Do not use generic scheduling for Cortex-A8.
3008 (generic_vfp): Do not use generic VFP scheduling for Cortex-A8.
3009
3010 2007-07-26 Daniel Jacobowitz <dan@codesourcery.com>
3011
3012 * fold-const.c (fold_read_from_constant_string): Use
3013 build_int_cst_type.
3014 * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
3015
3016 2007-07-26 Nick Clifton <nickc@redhat.com>
3017
3018 * tree-ssa-operands.h: Change copyright header to refer to version
3019 3 of the GNU General Public License and to point readers at the
3020 COPYING3 file and the FSF's license web page.
3021 * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c,
3022 sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c,
3023 tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c,
3024 targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h,
3025 tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c,
3026 hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c,
3027 flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c,
3028 opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c,
3029 gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c,
3030 cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c,
3031 rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c,
3032 optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c,
3033 tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h,
3034 genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c,
3035 reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c,
3036 c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c,
3037 rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h,
3038 tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h,
3039 diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c,
3040 gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c,
3041 input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def,
3042 gensupport.h, builtin-attrs.def, sync-builtins.def, params.c,
3043 cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c,
3044 graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c,
3045 genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c,
3046 tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h,
3047 reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h,
3048 real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c,
3049 omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h,
3050 tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c,
3051 regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h,
3052 tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c,
3053 scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c,
3054 double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h,
3055 dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c,
3056 gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c,
3057 hosthooks.h, c-objc-common.h, caller-save.c, graph.c,
3058 ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c,
3059 c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h,
3060 tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c,
3061 xcoffout.h, tree-ssa-propagate.c, ipa-utils.c,
3062 tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h,
3063 gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c,
3064 mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c,
3065 alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c,
3066 dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h,
3067 expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h,
3068 genattrtab.c, genconditions.c, genattr.c, optc-gen.awk,
3069 timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c,
3070 tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c,
3071 recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c,
3072 dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h,
3073 matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c,
3074 tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c,
3075 lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h,
3076 ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c,
3077 ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h,
3078 langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h,
3079 sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c,
3080 gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c,
3081 ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c,
3082 init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c,
3083 loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c,
3084 mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h,
3085 opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in,
3086 insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c,
3087 tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def,
3088 dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c,
3089 bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c,
3090 coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h,
3091 stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c,
3092 cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c,
3093 tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c,
3094 loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c,
3095 lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c,
3096 tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c,
3097 tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt,
3098 ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c,
3099 varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c,
3100 sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c,
3101 target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c,
3102 omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h,
3103 intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c,
3104 sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h,
3105 genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c,
3106 tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h,
3107 bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c,
3108 cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c,
3109 cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk,
3110 tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c,
3111 c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c,
3112 fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c,
3113 vecprim.h, basic-block.h, tree-ssa-structalias.c,
3114 tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c,
3115 passes.c, genconstants.c, c-incpath.c, c-incpath.h,
3116 struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c,
3117 varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h,
3118 reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y,
3119 stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h,
3120 params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h,
3121 tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c,
3122 convert.c, convert.h, langhooks-def.h, reload1.c,
3123 tree-ssa-operands.c: Likewise.
3124
3125 2007-07-26 Jan Hubicka <jh@suse.cz>
3126
3127 * tree-ssa-live.c: Include debug.h and flags.h.
3128 (mark_scope_block_unused): New function.
3129 (remove_unused_scope_block_p): New function.
3130 (remove_unused_locals): Remove unused blocks too.
3131
3132 2007-07-25 Ian Lance Taylor <iant@google.com>
3133
3134 * combine.c (combine_max_regno): Remove. Remove all uses.
3135 (struct reg_stat_struct): Rename from struct reg_stat.
3136 (reg_stat_type): Define, and declare VECs.
3137 (reg_stat): Change from pointer to VEC. Change all uses.
3138 (combine_split_insns): New static function.
3139 (try_combine, find_split_point): Call it instead of split_insns.
3140
3141 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
3142
3143 * cfghooks.c (split_block): Fix the information about loop latch.
3144
3145 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
3146
3147 * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
3148
3149 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
3150
3151 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
3152 Scan the new edge for loop exit info.
3153
3154 2007-07-25 Andreas Tobler <a.tobler@schweiz.org>
3155
3156 * config/darwin.c: Include debug.h.
3157
3158 2007-07-25 Steve Ellcey <sje@cup.hp.com>
3159
3160 PR target/32218
3161 * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
3162
3163 2007-07-25 Steve Ellcey <sje@cup.hp.com>
3164
3165 * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
3166 (HARD_REGNO_MODE_OK): Ditto.
3167 (MODES_TIEABLE_P): Ditto.
3168 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
3169 (CLASS_MAX_NREGS): Ditto.
3170 * config/ia64/ia64.c (ia64_print_operand_address): Add R format.
3171 * config/ia64/ia64.md (divsf3_internal_thr): Removed.
3172 (divdf3_internal_thr): Removed.
3173 * config/ia64/div.md: New file.
3174 * config/ia64/constraints.md: Add H constraint.
3175
3176 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3177
3178 * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount,
3179 sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p,
3180 sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not,
3181 sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg,
3182 sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b,
3183 sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p,
3184 sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c,
3185 sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c,
3186 sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap,
3187 dump_sbitmap_file, debug_sbitmap, popcount_table,
3188 sbitmap_popcount): Constify.
3189 * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New.
3190 (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap,
3191 dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal,
3192 sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg,
3193 sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c,
3194 sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c,
3195 sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b,
3196 sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg,
3197 sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p,
3198 sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap,
3199 sbitmap_popcount, sbitmap_verify_popcount): Constify.
3200
3201 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3202
3203 * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop,
3204 bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits,
3205 bitmap_first_set_bit, bitmap_and, bitmap_and_into,
3206 bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
3207 bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior,
3208 bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p,
3209 bitmap_intersect_p, bitmap_intersect_compl_p,
3210 bitmap_ior_and_compl, bitmap_ior_and_compl_into,
3211 debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash):
3212 Constify.
3213 * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p,
3214 bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and,
3215 bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into,
3216 bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
3217 bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into,
3218 debug_bitmap, debug_bitmap_file, bitmap_print,
3219 bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init,
3220 bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
3221
3222 2007-07-25 Daniel Berlin <dberlin@dberlin.org>
3223
3224 * config/darwin.c (darwin_override_options): Additional fix for
3225 debug info formats that don't support var tracking.
3226
3227 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3228
3229 * cselib.c (entry_and_rtx_equal_p): Constify.
3230 * gengtype.c (output_mangled_typename, write_types, write_local):
3231 Likewise.
3232 * gengtype.h (const_type_p): New.
3233 * see.c (eq_descriptor_extension, hash_descriptor_extension):
3234 Constify.
3235 * tlink.c (scan_linker_output): De-constify.
3236 * tree-ssa-loop-im.c (memref_eq): Constify.
3237 * tree-ssa-structalias.c (const_shared_bitmap_info_t): New.
3238 (shared_bitmap_hash, shared_bitmap_eq): Constify.
3239
3240 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3241
3242 * c-common.c (fname_as_string, c_type_hash): Constify.
3243 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
3244 * cgraph.c (edge_hash, edge_eq): Likewise.
3245 * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
3246 * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
3247 reg_attrs_htab_eq): Likewise.
3248 * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
3249 Likewise.
3250 * genautomata.c (const_reserv_sets_t, const_unit_decl_t,
3251 const_decl_t, const_state_t, const_automata_list_el_t): New.
3252 (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
3253 DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
3254 automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
3255 insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
3256 reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
3257 automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
3258 compare_max_occ_cycle_nums, out_state_arcs_num,
3259 compare_transition_els_num, units_cmp, state_reservs_cmp):
3260 Constify.
3261 * genmodes.c (cmp_modes): Likewise.
3262 * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
3263 * gimplify.c (compare_case_labels): Likewise.
3264 * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
3265 * loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
3266 * matrix-reorg.c (mtt_info_hash): Likewise.
3267 * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
3268 * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
3269 (htab_hash_bucket, htab_hash_elem): Constify.
3270 * tree-browser.c (TB_parent_eq): Likewise.
3271 * tree-scalar-evolution.c (hash_scev_info): Likewise.
3272 * tree-ssa-alias.c (sort_tags_by_id): Likewise.
3273 * tree-ssa-coalesce.c (const_coalesce_pair_p): New.
3274 (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
3275 Constify.
3276 * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
3277 * tree-ssa-pre.c (const_expr_pred_trans_t): New.
3278 (expr_pred_trans_hash, expr_pred_trans_eq): Constify.
3279 * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
3280 const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
3281 New.
3282 (vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
3283 vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
3284 vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
3285 * tree-ssa-threadupdate.c (redirection_data_hash,
3286 redirection_data_eq): Likewise.
3287 * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
3288 * tree-ssa.c (var_ann_eq): Likewise.
3289 * tree-vrp.c (compare_case_labels): Likewise.
3290 * tree.c (int_cst_hash_hash, int_cst_hash_eq,
3291 tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
3292 tree_not_check_failed, tree_class_check_failed,
3293 tree_range_check_failed, tree_not_class_check_failed,
3294 omp_clause_check_failed, omp_clause_range_check_failed,
3295 tree_contains_struct_check_failed, tree_operand_check_failed):
3296 Likewise.
3297 * tree.h (tree_contains_struct_check_failed, tree_check_failed,
3298 tree_not_check_failed, tree_class_check_failed,
3299 tree_range_check_failed, tree_not_class_check_failed,
3300 tree_operand_check_failed, omp_clause_operand_check_failed,
3301 tree_operand_length): Likewise.
3302 * var-tracking.c (const_variable): New.
3303 (variable_htab_hash, variable_htab_eq): Constify.
3304 * varasm.c (const_desc_hash): Likewise.
3305
3306 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3307
3308 * expr.c (handled_component_p): Constify.
3309 * fold-const.c (fit_double_type): Likewise.
3310 * real.h (real_value_from_int_cst): Likewise.
3311 * tree-flow-inline.h (gimple_in_ssa_p,
3312 gimple_aliases_computed_p, gimple_addressable_vars,
3313 gimple_call_clobbered_vars, gimple_referenced_vars,
3314 gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
3315 end_htab_p, end_referenced_vars_p, var_ann, function_ann,
3316 may_aliases, end_readonly_imm_use_p, has_zero_uses,
3317 has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
3318 is_label_stmt, is_global_var, phi_ssa_name_p,
3319 factoring_name_p, is_call_clobbered, tree_common_ann,
3320 op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
3321 unmodifiable_var_p, array_ref_contains_indirect_ref,
3322 ref_contains_array_ref, lookup_subvars_for_var,
3323 var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
3324 gimple_mem_ref_stats): Likewise.
3325 * tree-flow.h (tree_common_ann, var_ann, function_ann,
3326 may_aliases, is_exec_stmt, is_label_stmt,
3327 ref_contains_array_ref, array_ref_contains_indirect_ref,
3328 var_can_have_subvars, overlap_subvar, is_call_clobbered,
3329 unmodifiable_var_p): Likewise.
3330 * tree-gimple.c (is_gimple_min_invariant): Likewise.
3331 * tree-gimple.h (is_gimple_min_invariant): Likewise.
3332 * tree.c (type_hash_list, attribute_hash_list, tree_size,
3333 cst_and_fits_in_hwi, real_value_from_int_cst,
3334 build_real_from_int_cst, integer_zerop, integer_onep,
3335 integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
3336 tree_floor_log2, real_zerop, real_onep, real_twop,
3337 real_minus_onep, really_constant_p, purpose_member, chain_member,
3338 list_length, fields_length, int_size_in_bytes, bit_position,
3339 int_bit_position, byte_position, int_byte_position, expr_align,
3340 array_type_nelts, tree_node_structure,
3341 type_contains_placeholder_1, iterative_hash_pointer,
3342 is_attribute_with_length_p, is_attribute_p, check_qualified_type,
3343 tree_map_base_eq, type_hash_list, type_hash_eq,
3344 attribute_hash_list, type_num_arguments, tree_int_cst_equal,
3345 tree_int_cst_lt, tree_int_cst_compare, host_integerp,
3346 tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
3347 simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
3348 int_fits_type_p, get_containing_scope, decl_function_context,
3349 decl_type_context, omp_clause_operand_check_failed,
3350 initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
3351 * tree.h (omp_clause_operand_check_failed, tree_size,
3352 build_real_from_int_cst, array_type_nelts, purpose_member,
3353 tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
3354 host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
3355 is_attribute_p, check_qualified_type, expr_align,
3356 int_size_in_bytes, bit_position, int_bit_position, byte_position,
3357 int_byte_position, list_length, fields_length, initializer_zerop,
3358 integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
3359 integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
3360 tree_node_structure, handled_component_p, get_containing_scope,
3361 decl_function_context, decl_type_context, real_zerop,
3362 type_num_arguments, fit_double_type, really_constant_p,
3363 int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
3364 compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
3365 real_twop, real_minus_onep, int_cst_value): Likewise.
3366
3367 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3368
3369 * cfglayout.c (insn_scope, insn_line): Constify.
3370 * emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
3371 const_double_htab_hash, const_double_htab_eq,
3372 mem_attrs_htab_hash): Likewise.
3373 * loop-iv.c (biv_eq): Likewise.
3374 * print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
3375 print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
3376 debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
3377 Likewise.
3378 * rtl-error.c (location_for_asm, diagnostic_for_asm,
3379 error_for_asm, warning_for_asm, _fatal_insn,
3380 _fatal_insn_not_found): Likewise.
3381 * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
3382 rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
3383 rtl_check_failed_type2, rtl_check_failed_code1,
3384 rtl_check_failed_code2, rtl_check_failed_code_mode,
3385 rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
3386 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
3387 rtl_check_failed_type2, rtl_check_failed_code1,
3388 rtl_check_failed_code2, rtl_check_failed_code_mode,
3389 rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
3390 SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
3391 shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
3392 get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
3393 mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
3394 rtx_unstable_p, get_integer_term, get_related_value,
3395 offset_within_block_p, reg_mentioned_p, count_occurrences,
3396 reg_referenced_p, reg_used_between_p, no_labels_between_p,
3397 single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
3398 reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
3399 find_reg_note, find_regno_note, find_reg_equal_equiv_note,
3400 find_constant_src, find_reg_fusage, find_regno_fusage,
3401 pure_call_p, remove_note, side_effects_p, volatile_refs_p,
3402 volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
3403 may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
3404 computed_jump_p, auto_inc_p, in_expr_list_p,
3405 remove_node_from_expr_list, loc_mentioned_in_p,
3406 label_is_jump_target_p, reversed_comparison_code_parts,
3407 debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
3408 print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
3409 print_inline_rtx): Likewise.
3410 * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
3411 computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
3412 rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
3413 get_integer_term, get_related_value, offset_within_block_p,
3414 count_occurrences, reg_mentioned_p, no_labels_between_p,
3415 reg_used_between_p, reg_referenced_p, single_set_2,
3416 multiple_sets, set_noop_p, refers_to_regno_p,
3417 reg_overlap_mentioned_p, dead_or_set_p,
3418 covers_regno_no_parallel_p, covers_regno_p,
3419 dead_or_set_regno_p, find_reg_note, find_regno_note,
3420 find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
3421 find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
3422 remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
3423 side_effects_p, may_trap_p_1, may_trap_p,
3424 may_trap_after_code_motion_p, may_trap_or_fault_p,
3425 inequality_comparisons_p, tablejump_p, computed_jump_p_1,
3426 computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
3427 subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
3428 * simplify-rtx.c (neg_const_int, plus_minus_operand_p,
3429 mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
3430 Likewise.
3431 * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
3432 warning_for_asm): Likewise.
3433 * tree.h (print_rtl): Likewise.
3434 * varasm.c (get_pool_mode): Likewise.
3435
3436 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3437
3438 * c-lex.c (c_lex_with_flags, lex_string): Constify.
3439 * c-ppoutput.c (print_line, pp_dir_change): Likewise.
3440 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
3441 * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
3442 * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
3443 * ddg.c (compare_sccs): Likewise.
3444 * df-scan.c (df_ref_compare, df_mw_compare): Likewise.
3445 * dfp.c (decimal_real_from_string, decimal_to_decnumber,
3446 decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
3447 decimal_do_fix_trunc, decimal_real_to_integer,
3448 decimal_real_to_integer2, decimal_real_maxval): Likewise.
3449 * dse.c (const_group_info_t): New.
3450 (invariant_group_base_eq, invariant_group_base_hash): Constify.
3451 * dwarf2out.c (const_dw_die_ref): New.
3452 (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
3453 * tree-browser.c (TB_parent_eq): Likewise.
3454 * unwind-dw2-fde.c (__register_frame_info_bases,
3455 __deregister_frame_info_bases, fde_unencoded_compare, fde_split,
3456 add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
3457 Likewise.
3458 * unwind-dw2-fde.h (get_cie, next_fde): Likewise.
3459 * unwind-dw2.c (uw_frame_state_for): Likewise.
3460 * value-prof.c (histogram_hash, histogram_eq): Likewise.
3461 * value-prof.h (const_histogram_value): New.
3462
3463 2007-07-25 Richard Sandiford <richard@codesourcery.com>
3464
3465 * config/mips/mips.c (machine_function): Add
3466 initialized_mips16_gp_pseudo_p.
3467 (mips16_gp_pseudo_reg): Do not emit the initialization of
3468 mips16_gp_pseudo_rtx when being called from the gimple cost-
3469 calculation routines; emit it on the first use outside those
3470 routines.
3471
3472 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3473
3474 * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
3475 New.
3476
3477 * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
3478 RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK,
3479 RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3,
3480 RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6,
3481 RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND):
3482 Preserve const-ness of parameters through use of __typeof(),
3483 also constify and tidy.
3484
3485 * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2,
3486 TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4,
3487 NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5,
3488 CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK,
3489 OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK,
3490 GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK,
3491 PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK,
3492 TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK,
3493 TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise.
3494
3495 2007-07-25 Julian Brown <julian@codesourcery.com>
3496 Mark Shinwell <shinwell@codesourcery.com>
3497
3498 * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to...
3499 (alpha_mangle_type): This.
3500 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
3501 (TARGET_MANGLE_TYPE): Define this instead.
3502 * config/arm/arm-protos.h (arm_mangle_type): Add prototype.
3503 * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook.
3504 (arm_init_neon_builtins): Fix comment.
3505 (arm_mangle_map_entry): New.
3506 (arm_mangle_map): New.
3507 (arm_mangle_type): New.
3508 * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to...
3509 (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
3510 mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
3511 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
3512 (TARGET_MANGLE_TYPE): Define this instead.
3513 * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to...
3514 (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
3515 mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
3516 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
3517 (TARGET_MANGLE_TYPE): Define this instead.
3518 * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename
3519 to...
3520 (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT.
3521 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
3522 (TARGET_MANGLE_TYPE): Define this instead.
3523 * config/s390/s390.c (s390_mangle_fundamental_type): Rename to...
3524 (s390_mangle_type): This.
3525 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
3526 (TARGET_MANGLE_TYPE): Define this instead.
3527 * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to...
3528 (sparc_mangle_type): This.
3529 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
3530 (TARGET_MANGLE_TYPE): Define this instead.
3531 * cp/mangle.c (write_type): Call mangle_type target hook on all
3532 types before mangling. Use original type, not main variant, as
3533 argument.
3534 * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to...
3535 (TARGET_MANGLE_TYPE): This.
3536 * target.h (gcc_target): Rename mangle_fundamental_type to
3537 mangle_type.
3538 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
3539 (TARGET_MANGLE_TYPE): This. Note slightly different semantics.
3540
3541 2007-07-25 Julian Brown <julian@codesourcery.com>
3542 Paul Brook <paul@codesourcery.com>
3543 Joseph Myers <joseph@codesourcery.com>
3544 Mark Shinwell <shinwell@codesourcery.com>
3545
3546 * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
3547 * config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
3548 (with_fpu): Allow --with-fpu=neon.
3549 * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
3550 * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
3551 * config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
3552 * config/arm/arm-protos.h (neon_immediate_valid_for_move)
3553 (neon_immediate_valid_for_logic, neon_output_logic_immediate)
3554 (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
3555 (neon_emit_pair_result_insn, neon_disambiguate_copy)
3556 (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
3557 (output_move_neon): Add prototypes.
3558 * config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
3559 (all_fpus): Add FPUTYPE_NEON.
3560 (fp_model_for_fpu): Add NEON field.
3561 (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
3562 (arm_arg_partial_bytes): Allow NEON vectors to be passed partially
3563 in registers.
3564 (arm_legitimate_address_p): Don't support fancy addressing for NEON
3565 structure moves.
3566 (thumb2_legitimate_address_p): Likewise.
3567 (neon_valid_immediate): Recognize and prepare constants suitable for
3568 NEON instructions.
3569 (neon_immediate_valid_for_move): New function. Recognize and prepare
3570 immediates for NEON move instructions.
3571 (neon_immediate_valid_for_logic): New function. Recognize and
3572 prepare immediates for NEON logic instructions.
3573 (neon_output_logic_immediate): New function. Create asm string
3574 suitable for outputting immediate logic instructions.
3575 (neon_pairwise_reduce): New function. Implement reduction using
3576 pairwise operations.
3577 (neon_expand_vector_init): New function. Expand a (possibly
3578 non-constant) vector initialization.
3579 (neon_vector_mem_operand): New function. Memory operands supported
3580 for quad-word loads/stores to/from ARM or NEON registers. Don't
3581 allow base+offset addressing for core regs.
3582 (neon_struct_mem_operand): New function. Valid mems for NEON
3583 structure moves.
3584 (coproc_secondary_reload_class): Enable NEON registers to be loaded
3585 from neon_vector_mem_operand addresses without a secondary register.
3586 (add_minipool_forward_ref): Handle >8-byte minipool entries.
3587 (add_minipool_backward_ref): Likewise.
3588 (dump_minipool): Likewise.
3589 (push_minipool_fix): Likewise.
3590 (output_move_quad): New function. Output quad-word moves, loads and
3591 stores using ARM registers.
3592 (output_move_vfp): Add support for vectors in VFP (NEON) D
3593 registers.
3594 (output_move_neon): Output a NEON load/store to/from a quadword
3595 register.
3596 (arm_print_operand): Implement new codes:
3597 - 'c' for unadorned integers (without a # sign).
3598 - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
3599 mode.
3600 - 'e', 'f' for the low and high D parts of a NEON Q register.
3601 - 'q' outputs a NEON Q register.
3602 - 'h' outputs ranges of D registers for VLDM/VSTM etc.
3603 - 'T' prints NEON opcode features from a coded bitmask.
3604 - 'F' is similar to T, but signed/unsigned codes both print as
3605 'i'.
3606 - 't' is similar to T, but 'u' is printed instead of 'p'.
3607 - 'O' prints 'r' if NEON instruction should perform rounding (as
3608 specified by bitmask), else prints nothing.
3609 - '#' is a punctuation character to stop operand numbers from
3610 running together with following digits in the assembler
3611 strings for instructions (when using mode attributes).
3612 (arm_assemble_integer): Handle extra NEON vector modes. Permute
3613 constant vectors in big-endian mode, where necessary.
3614 (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
3615 Handle EI, OI, CI, XI modes.
3616 (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
3617 (ashrv2si3): Rename IWMMXT2_BUILTINs to...
3618 (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
3619 (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
3620 (neon_builtin_type_bits): Add enumeration, one bit for each vector
3621 type.
3622 (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
3623 (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
3624 to turn v8qi, etc. into bits defined above.
3625 (neon_itype): New enumeration. Classifications of NEON builtins.
3626 (neon_builtin_datum): Define struct. Contains information about
3627 a single builtin (with multiple modes).
3628 (CF): Define helper macro for...
3629 (VAR1...VAR10): Define builtins with a type, name and 1-10 different
3630 modes.
3631 (neon_builtin_data): New array. Define information about builtins
3632 for use during initialization/expansion.
3633 (arm_init_neon_builtins): New function.
3634 (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
3635 true.
3636 (neon_builtin_compare): New function.
3637 (locate_neon_builtin_icode): New function. Find an insn code for a
3638 builtin given a function code for that builtin. Also return type of
3639 builtin (NEON_BINOP, NEON_UNOP etc.).
3640 (builtin_arg): New enumeration. Types of arguments for builtins.
3641 (arm_expand_neon_args): New function. Expand a generic NEON builtin.
3642 Takes a variable argument list of builtin_arg types, terminated by
3643 NEON_ARG_STOP.
3644 (arm_expand_neon_builtin): New function. Expand a NEON builtin.
3645 (neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
3646 (neon_emit_pair_result_insn): New function. Support returning pairs
3647 of vectors via a pointer.
3648 (neon_disambiguate_copy): New function. Set up operands for a
3649 multi-word copy such that registers do not get clobbered.
3650 (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
3651 ARM_BUILTIN_NEON_BASE.
3652 (arm_file_start): Set float-abi attribute for NEON.
3653 (arm_vector_mode_supported_p): Enable NEON vector modes.
3654 (arm_mangle_map_entry): New.
3655 (arm_mangle_map): New.
3656 (arm_mangle_vector_type): New.
3657 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
3658 when appropriate.
3659 (TARGET_NEON): New macro. Target supports NEON.
3660 (fputype): Add FPUTYPE_NEON.
3661 (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
3662 for vectorization based on command-line arg.
3663 (NEON_REGNO_OK_FOR_NREGS): Define.
3664 (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
3665 (VALID_NEON_STRUCT_MODE): Define.
3666 (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
3667 (arm_builtins): Add ARM_BUILTIN_NEON_BASE.
3668 * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
3669 (consttable_16): Add pattern for outputting 16-byte minipool
3670 entries.
3671 (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
3672 vec-common.md).
3673 (vec-common.md, neon.md): Include md files.
3674 * config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
3675 * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
3676 (memory_constraint "Ut", "Un", "Us"): Define.
3677 * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
3678 (MMX_char): New mode attribute.
3679 (addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
3680 (*add<mode>3_iwmmxt): New insn pattern.
3681 (subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
3682 (*sub<mode>3_iwmmxt): New insn pattern.
3683 (mulv4hi3): Rename to...
3684 (*mulv4hi3_iwmmxt): This.
3685 (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
3686 (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
3687 (uminv4hi3, uminv2si3): Remove. Replace with...
3688 (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
3689 (*umin<mode>3_iwmmxt): These.
3690 (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
3691 (ashr<mode>3_iwmmxt): This new pattern.
3692 (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
3693 (lshr<mode>3_iwmmxt): This new pattern.
3694 (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
3695 (ashl<mode>3_iwmmxt): This new pattern.
3696 * config/arm/neon-docgen.ml: New file. Generate documentation for
3697 intrinsics.
3698 * config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
3699 * config/arm/arm_neon.h: New (autogenerated).
3700 * config/arm/neon-testgen.ml: New file. Generate NEON tests
3701 automatically.
3702 * config/arm/neon.md: New file. Define NEON instructions.
3703 * config/arm/neon.ml: New file. Abstract description of NEON
3704 instructions, used to generate arm_neon.h header, documentation and
3705 tests.
3706 * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
3707 * vec-common.md: New file. Shared parts for iWMMXt and NEON vector
3708 support.
3709 * doc/extend.texi (ARM Built-in Functions): Rename and remove
3710 extraneous comma.
3711 (ARM NEON Intrinsics): New subsection.
3712 * doc/arm-neon-intrinsics.texi: New (autogenerated).
3713
3714 2007-07-25 Danny Smith <dannysmith@users.sourceforge.net>
3715
3716 * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
3717 prototype.
3718
3719 2007-07-24 Jan Hubicka <jh@suse.cz>
3720
3721 * regclass.c (move_table): New type.
3722 (move_cost, may_move_in_cost, may_move_out_cost): Use it.
3723 (init_move_cost): Break out from ...
3724 (init_reg_sets_1): ... here; simplify computation of
3725 have_regs-of_mode and contains_reg_of_mode.
3726 (record_reg_classes): Unswitch internal loops.
3727 (copy_cost): Trigger lazy initialization of move cost
3728 (record_address_regs): Likewise.
3729
3730 2007-07-24 Daniel Berlin <dberlin@dberlin.org>
3731
3732 * config/darwin.c (darwin_override_options): Don't force on
3733 flag_var_tracking_uninit when no debug info is requested.
3734
3735 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
3736
3737 * cfgloop.c (init_loops_structure): New function.
3738 (flow_loops_find): Create root of the loop tree unconditionally.
3739
3740 2007-07-24 Daniel Jacobowitz <dan@codesourcery.com>
3741
3742 * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
3743
3744 2007-07-24 Jan Hubicka <jh@suse.cz>
3745
3746 * caller-save.c: Include ggc.h, gt-caller-save.h
3747 (reg_save_code, reg_restore_code): Rename to ...
3748 (cached_reg_save_code, cached_reg_restore_code): ... those.
3749 (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New.
3750 (reg_save_code, reg_restore_code): New functions.
3751 (init_caller_save): Do not intialize
3752 reg_save_code/reg_restore_code tables.
3753 * Makefile.in: (gt-caller-save.h): New.
3754
3755 2007-07-24 Andreas Krebbel <krebbel1@de.ibm.com>
3756
3757 * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand
3758 with the mode of the original operand instead of
3759 integer_one_node.
3760
3761 2007-07-23 Jan Hubicka <jH@suse.cz>
3762
3763 * i386.c (ix86_secondary_memory_needed): Break out to...
3764 (inline_secondary_memory_needed): ... here.
3765 (ix86_memory_move_cost): Break out to ...
3766 (inline_memory_move_cost): ... here; add support for IN value of 2 for
3767 maximum of input and output; fix handling of Q_REGS on 64bit.
3768 (ix86_secondary_memory_needed): Microoptimize.
3769
3770 2007-07-23 Sebastian Pop <sebpop@gmail.com>
3771
3772 * tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr,
3773 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
3774 stmts_from_loop, known_dependences_p, build_rdg): New.
3775 * tree-data-ref.h: Depends on graphds.h.
3776 (rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New.
3777 (build_rdg): Declared.
3778 * Makefile.in (TREE_DATA_REF_H): Depends on graphds.h.
3779
3780 2007-07-23 Daniel Berlin <dberlin@dberlin.org>
3781
3782 * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
3783 ccp_min_invariant.
3784
3785 2007-07-23 Peter Bergner <bergner@vnet.ibm.com>
3786 Jakub Jelinek <jakub@redhat.com>
3787
3788 PR middle-end/PR28690
3789 * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow EQ compares.
3790 * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
3791 and MEM_POINTER operands over REG and MEM operands.
3792 (swap_commutative_operands_p): Change return value to bool.
3793 * rtl.h: Update the corresponding prototype.
3794 * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
3795 instead of gen_rtx_PLUS.
3796 * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return
3797 value to bool. Change function arguments to rtx's and update code
3798 to match.
3799 (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp
3800 calls to match the new declaration.
3801 * simplify-rtx.c (simplify_associative_operation): Don't
3802 reorder simplify_binary_operation arguments.
3803
3804 2007-07-23 Richard Sandiford <richard@codesourcery.com>
3805
3806 * config/mips/mips.c (override_options): Use mips_costs to derive
3807 the default branch cost.
3808 * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather
3809 than mips_costs.
3810 * config/mips/mips.opt (mbranch-cost=): New option.
3811 * doc/invoke.texi (-mbranch-cost): Document new MIPS option.
3812
3813 2007-07-23 Richard Sandiford <richard@codesourcery.com>
3814
3815 * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete.
3816 (SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
3817 * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p
3818 instead of GR_REG_CLASS_P and COP_REG_CLASS_P.
3819
3820 2007-07-23 Richard Sandiford <richard@codesourcery.com>
3821
3822 * config/mips/constraints.md (ks): New constraint.
3823 * config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into...
3824 (*add<mode>3_mips16): ...here.
3825
3826 2007-07-21 Uros Bizjak <ubizjak@gmail.com>
3827
3828 * optabs.h (enum optab_index): Add new OTI_signbit.
3829 (signbit_optab): Define corresponding macro.
3830 (enum insn_code signbit_optab[]): Remove array.
3831 * optabs.c (init_optabs): Initialize signbit_optab using init_optab.
3832 (expand_copysign_absneg): If back end provides signbit insn, use it
3833 instead of bit operations on floating point argument.
3834 * builtins.c (enum insn_code signbit_optab[]): Remove array.
3835 (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code for
3836 availability of signbit insn.
3837
3838 * config/i386/i386.md (signbit<mode>2): New insn pattern to implement
3839 signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
3840 SSE mode is not active.
3841 (isinf<mode>2): Disable for mfpmath=sse,387.
3842
3843 2007-07-22 Ben Elliston <bje@au.ibm.com>
3844
3845 * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
3846 `class' parameter.
3847 * struct-equiv.c (note_local_live): Likewise for `y_regno'.
3848
3849 2007-07-20 Richard Guenther <rguenther@suse.de>
3850
3851 * tree-cfg.c (verify_expr): COND_EXPRs can have any
3852 integral typed condition.
3853 * tree-ssa.c (useless_type_conversion_p): Do not preserve
3854 booleanness. Only preserve conversions from a non-base
3855 type to a base type, not in general between types with
3856 different TYPE_MIN_VALUE or TYPE_MAX_VALUE.
3857 * tree.def (COND_EXPR): Document that the condition
3858 can be of any integral type.
3859
3860 2007-07-20 Nigel Stephens <nigel@mips.com>
3861 Richard Sandiford <richard@codesourcery.com>
3862
3863 * config/mips/mips.h (mips_dwarf_regno): Declare.
3864 (DBX_REGISTER_NUMBER): Remove redundant brackets.
3865 (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way.
3866 (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM)
3867 (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete.
3868 (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
3869 (REG_CLASS_NAMES): Update accordingly.
3870 * config/mips/mips.c (mips_dwarf_regno): New array.
3871 (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
3872 (mips_subword): Remove special handling for accumulator registers.
3873 (override_options): Initiailize mips_dwarf_regno. Remove use
3874 of ACC_HI_REG_P.
3875 (mips_swap_registers): New function.
3876 (mips_conditional_register_usage): Swap accumulator registers
3877 around if TARGET_LITTLE_ENDIAN.
3878 (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS.
3879 * config/mips/constraints.md (h, l): Use the endianness to choose
3880 between MD0_REG and MD1_REG.
3881 * config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string,
3882 alternative-dependent template.
3883
3884 2007-07-20 Richard Sandiford <richard@codesourcery.com>
3885
3886 * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
3887 no_new_pseudos.
3888
3889 2007-07-20 Zdenek Dvorak <dvorakz@suse.cz>
3890
3891 * function.c (thread_prologue_and_epilogue_insns): Fix exit
3892 predecessor fallthru flags.
3893
3894 2007-07-20 Zdenek Dvorak <dvorakz@suse.cz>
3895
3896 * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands
3897 of compare to the same type.
3898 * cfgloopmanip.c (add_loop): Update information about loop exits.
3899 (loop_version): Remove the innermost loop requirement.
3900 * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds
3901 to sizetype for pointers.
3902
3903 2007-07-18 H.J. Lu <hongjiu.lu@intel.com>
3904
3905 * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
3906 (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd.
3907 (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td.
3908
3909 * config/dfp-bit.c: Empty for TFmode conversions.
3910
3911 2007-07-18 Caroline Tice <ctice@apple.com>
3912
3913 * var-tracking.c (find_src_status): Check for COND_EXEC insns
3914 and handle them correctly; check that src is not NULL before
3915 trying to use it.
3916 (find_src_set_src): Likewise.
3917
3918 2007-07-18 Bob Wilson <bob.wilson@acm.org>
3919
3920 * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
3921 (struct alignment_context, init_alignment_context): New.
3922 (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
3923 * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
3924 (XCHAL_HAVE_S32C1I): Likewise.
3925 (TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
3926 * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
3927 (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
3928 (ATOMIC, HQI): New macros.
3929 (memory_barrier, *memory_barrier): New.
3930 (sync_lock_releasesi): New.
3931 (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
3932 (sync_lock_test_and_set<mode>): New.
3933 (sync_<atomic><mode>): New.
3934 (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
3935 * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
3936 (xtensa_expand_atomic): New.
3937
3938 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3939
3940 PR target/30652
3941
3942 * builtins.c (expand_builtin_interclass_mathfn): Provide a generic
3943 transformation for builtin ISNORMAL.
3944 (expand_builtin): Handle BUILT_IN_ISNORMAL.
3945 * builtins.def (BUILT_IN_ISNORMAL): New.
3946 * doc/extend.texi: Document isnormal.
3947
3948 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3949
3950 PR target/30652
3951
3952 * builtins.c (expand_builtin_interclass_mathfn): Allow for missing
3953 optabs infrastructure. Provide generic implementation for
3954 FINITE/ISFINITE.
3955 (expand_builtin): Handle FINITE/ISFINITE.
3956 (fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
3957 (fold_builtin_1): Likewise.
3958
3959 * builtins.def (BUILT_IN_ISFINITE): New.
3960
3961 * doc/extend.texi: Document isfinite.
3962
3963 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3964
3965 PR target/30652
3966 PR middle-end/20558
3967
3968 * builtins.c (expand_builtin_interclass_mathfn): Provide a
3969 generic fallback for isinf.
3970 * c-cppbuiltin.c (builtin_define_float_constants): Move FP max
3971 calculation code ...
3972 * real.c (get_max_float): ... to here.
3973 * real.h (get_max_float): New.
3974
3975 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3976
3977 PR middle-end/32668
3978
3979 * builtin-attrs.def (ATTR_TYPEGENERIC,
3980 ATTR_CONST_NOTHROW_TYPEGENERIC): New.
3981
3982 * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
3983 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
3984 BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
3985 BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.
3986
3987 * c-common.c (handle_type_generic_attribute): New.
3988 (c_common_attribute_table): Add "type generic".
3989
3990 * c-typeck.c (convert_arguments): Handle "type generic" functions.
3991
3992 2007-07-18 Daniel Berlin <dberlin@dberlin.org>
3993
3994 * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
3995 * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
3996 properly.
3997
3998 2007-07-18 Rask Ingemann Lambertsen <rask@sygehus.dk>
3999
4000 PR target/32808
4001 * config/cris/cris.c (cris_print_index): Don't use XEXP before
4002 checking that the operand is an expression.
4003
4004 2007-07-19 Christoph von Wittich <Christoph_vW@reactos.org>
4005 Danny Smith <dannysmith@users.sourceforge.net>
4006
4007 PR/other 30335
4008 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
4009 file mapping object in local namespace if Windows version later
4010 than NT4
4011
4012 2007-07-18 Richard Sandiford <richard@codesourcery.com>
4013
4014 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
4015 * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
4016 arm_cannot_force_const_mem.
4017 (arm_cannot_force_const_mem): New function.
4018 * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
4019 (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
4020 of arm_tls_referenced_p.
4021 * config/arm/arm.md (movsi): Split out-of-section constants when
4022 ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
4023 * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
4024
4025 2007-07-18 Richard Sandiford <richard@codesourcery.com>
4026
4027 * config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
4028
4029 2007-07-18 Richard Sandiford <richard@codesourcery.com>
4030
4031 * config/mips/mips.md (*extendqihi2): Convert the destination
4032 to SImode.
4033
4034 2007-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4035
4036 * config/pa/fptr.c: Update license header.
4037 * config/pa/milli64.S: Likewise.
4038
4039 2007-07-17 Nick Clifton <nickc@redhat.com>
4040
4041 * COPYING_v3: New file. Contains version 3 of the GNU General
4042 Public License.
4043 * COPYING.LIB_v3: New file. Contains version 3 of the GNU
4044 Lesser General Public License.
4045 * doc/include/gpl_v3.texi: New file. Contains version 3 of
4046 the GNU General Public License.
4047
4048 2007-07-17 Zdenek Dvorak <dvorakz@suse.cz>
4049
4050 PR rtl-optimization/32773
4051 * cfglayout.c (force_one_exit_fallthru): New function.
4052 (cfg_layout_finalize): Use it.
4053
4054 2007-07-16 Richard Guenther <rguenther@suse.de>
4055 Uros Bizjak <ubizjak@gmail.com>
4056
4057 * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
4058 before forcing it to gimple operand.
4059
4060 2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
4061 David Ung <davidu@mips.com>
4062
4063 * config/mips/mips.h (TUNE_24K): Define.
4064 (TUNE_MACC_CHAINS): Add TUNE_24K.
4065 * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
4066 imadd.
4067 * config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
4068 (r74k_int_madd): .. this new reservation.
4069 (define_bypass): Fixed bypasses for r74k_int_madd to use
4070 mips_linked_madd_p.
4071 * config/mips/24k.md (define_bypass): Define new
4072 r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
4073
4074 2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
4075 Nigel Stephens <nigel@mips.com>
4076
4077 * config/mips/mips.md: Include 20kc.md.
4078 * config/mips/20kc.md: New file.
4079 * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs.
4080 (mips_adjust_cost): Tweak for 20Kc.
4081 (mips_issue_rate): Likewise.
4082 * config/mips/mips.h (TUNE_20KC): Define.
4083
4084 2007-07-16 David Edelsohn <edelsohn@gnu.og>
4085
4086 * config/rs6000/rs6000.c (struct processor_cost): Add
4087 cache_line_size, l1_cache_lines, and simultaneous_prefetches
4088 fields.
4089 (*_cost): Add cache information.
4090 (rs6000_override_options): Set cache parameters.
4091
4092 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4093
4094 PR bootstrap/3456
4095 * config.gcc (mips-sgi-irix[56]*): Enable pthread support.
4096 * doc/install.texi (mips-sgi-irix6): pthread support works now.
4097
4098 2007-07-16 Paul Brook <paul@codesourcery.com>
4099
4100 PR target/32753
4101 * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
4102 (cirrus_thumb2_movsi_insn): Ditto.
4103
4104 2007-07-15 Geoffrey Keating <geoffk@apple.com>
4105
4106 * config/rs6000/darwin-fallback.c (interpret_libc): Change
4107 CR2_REGNO to R_CR2.
4108
4109 2007-07-15 Andrew Haley <aph@redhat.com>
4110
4111 * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL
4112 before looking in the context.
4113
4114 2007-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4115
4116 PR middle-end/32398
4117 PR middle-end/32769
4118 * pa-protos.h (pa_eh_return_handler_rtx): Declare.
4119 * pa.c (pa_extra_live_on_entry, rp_saved): Declare.
4120 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
4121 (pa_output_function_prologue): Use rp_saved and current_function_is_leaf
4122 to generate .CALLINFO statement.
4123 (hppa_expand_prologue): Set rp_saved.
4124 (hppa_expand_epilogue): Use rp_saved.
4125 (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions.
4126 * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx.
4127
4128 2007-07-14 Dirk Mueller <dmueller@suse.de>
4129
4130 * omega.c (coalesce): Fix memory leak on early exit.
4131 * matrix-reorg.c (check_allocation_function): Likewise.
4132 * tree-vect-transform.c (vect_get_new_vect_var): free result
4133 of concat().
4134 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
4135 pass pointer to edge vector
4136 (partition_hot_cold_basic_blocks): Fix memory leak.
4137 * collect2.c (prefix_from_string): Free temporary storage.
4138 * reload1.c (fixup_abnormal_edges): Free sbitmap.
4139
4140 2007-07-14 Kaz Kojima <kkojima@gcc.gnu.org>
4141
4142 * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype.
4143 (DO_GLOBAL_DTORS_BODY): Likewise.
4144
4145 2007-07-14 Sandra Loosemore <sandra@codesourcery.com>
4146 Nigel Stephens <nigel@mips.com>
4147
4148 * config/mips/mips.c (mips_classify_symbol): Don't return
4149 SYMBOL_SMALL_DATA for constant pool addresses if
4150 TARGET_EMBEDDED_DATA is true.
4151
4152 2007-07-14 Uros Bizjak <ubizjak@gmail.com>
4153
4154 * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins
4155 except __builtin_ia32_emms, __builtin_ia32_ldmxcsr,
4156 __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups,
4157 __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps,
4158 __builtin_ia32_storehps, __builtin_ia32_storelps,
4159 __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence,
4160 __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd,
4161 __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
4162 __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq,
4163 __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence,
4164 __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor,
4165 __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa,
4166 __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins
4167 using def_builtin_const.
4168
4169 2007-07-14 Eric Botcazou <ebotcazou@adacore.com>
4170
4171 PR tree-optimization/32705
4172 * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
4173 (simplify_binary_expression): Use SSA_VAL consistently.
4174
4175 2007-07-13 David Edelsohn <edelsohn@gnu.org>
4176
4177 * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
4178 (SPEFSCR_REGNO): Delete definition.
4179 * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO.
4180 COUNT_REGISTER_REGNUM -> CTR_REGNO.
4181 * config/rs6000/rs6000.h: Do not define *_REGNO.
4182 LINK_REGISTER_REGNUM -> LR_REGNO.
4183 COUNT_REGISTER_REGNUM -> CTR_REGNO.
4184 * config/rs6000/predicates.md: LINK_REGISTER_REGNUM -> LR_REGNO.
4185 COUNT_REGISTER_REGNUM -> CTR_REGNO.
4186 * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0,
4187 R_VRSAVE, R_VSCR. Use them.
4188 * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2,
4189 R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR. Use them.
4190 * config/rs6000/rs6000.md: Define REGNO constants. Use them.
4191 * config/rs6000/aix.h: Define R_LR. Use it.
4192
4193 2007-07-13 Caroline Tice <ctice@apple.com>
4194
4195 * toplev.c (process_options): Turn flag_var_tracking_uninit off when
4196 flag_var_tracking is explicitly turned off (i.e. when variable
4197 tracking is not feasible); otherwise, turn flag_var_tracking on when
4198 flag_var_tracking_uninit is on.
4199 * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION
4200 note definitions, to allow recording of initialization status in the
4201 notes.
4202 * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit.
4203 (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to
4204 determine if two note locations are equal.
4205 (output_loc_list): Don't output list entries whose start & end labels
4206 are the same.
4207 (reg_loc_descriptor): Add parameter for initialization status; pass it
4208 to other loc descriptor functions.
4209 (one_reg_loc_descriptor): Add parameter for initialization status;
4210 check its value and add DW_OP_GNU_uninit to returned loc descr if
4211 appropriate.
4212 (multiple_reg_loc_descriptor): Add parameter for initialization
4213 status;
4214 pass init status argument to other loc descriptor functions; check
4215 value of intialization parameter and add DW_OP_GNU_uninit to returned
4216 loc descr if appropriate.
4217 (based_loc_descr): Add parameter for initialization status; add new
4218 variable for return value; check value of initialization parameter and
4219 add DW_OP_GNU_uninit to returned loc descr if appropriate.
4220 (concatn_mem_loc_descriptor): Add parameter for initialization status;
4221 pass init status argument to other loc descriptor functions; check
4222 value of intialization parameter and add DW_OP_GNU_uninit to returned
4223 loc descr if appropriate.
4224 (mem_loc_descriptor): Likewise.
4225 (concat_loc_descriptor): Likewise.
4226 (concatn_loc_descriptor): Likewise.
4227 (loc_descriptor): Add parameter for initialization status; pass it as
4228 argument to other loc descriptor function calls.
4229 (loc_descriptor_from_tree_1): Add appropriate initialization status
4230 to loc descriptor function calls.
4231 (add_location_or_const_value_attribute): Get initialization status
4232 from VAR_LOCATION note; add initialization status to loc descriptor
4233 function calls.
4234 * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit.
4235 * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if
4236 status is uninitialized, add "[uninint]" to output.
4237 * common.opt (fvar-tracking-uninit): New option, similar to
4238 fvar-tracking, to turn on tracking of uninitialized variables; creates
4239 a new global flag, flag_var_tracking_uninit.
4240 * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field.
4241 (enum var_init_status): New type, for var initialization status field.
4242 * var-tracking.c (struct location_chain_def): Two new fields, init,
4243 for initialization status, and set_src for the assignment value expr.
4244 (unshare_variable): New parameter for initialization status;
4245 initialize new init and set_src fields.
4246 (var_reg_set): New parameters for initialization status and value;
4247 pass them to set_variable_part.
4248 (var_mem_set): Likewise.
4249 (get_init_value): New function.
4250 (var_reg_delete_and_set): New initialization status & value
4251 parameters; add call to get_init_value if status is unknown; pass new
4252 parameters to clobber_variable_part and var_reg_set.
4253 (var_mem_delete_and_set): Likewise.
4254 (var_reg_delete): Pass null set_src value to clobber_variable_part.
4255 (var_mem_delete): Likewise.
4256 (variable_union): Pass status to unshare_variable; initialize new init
4257 and set_src fields. If flag_var_tracking_uninit is not set, force
4258 status to initialized.
4259 (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be
4260 used later to get the set_src value.
4261 (find_src_status): New function.
4262 (find_src_set_src): New function.
4263 (compute_bb_dataflow): Pass init status to calls to var_reg_set,
4264 var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for
4265 MO_SET, get set_src value and pass it to var_reg_delete_and_set
4266 and var_mem_delete_and_set.
4267 (dump_variable): Print out "[uninit]" if appropriate.
4268 (set_variable_part): Add new initialization and set_src parameters;
4269 pass status to unshare_variable; set node->init and node- >set_src
4270 fields and modify slot in hash table appropriately; save the init and
4271 set_src values if appropriate and assign to the new node.
4272 (clobber_variable_part): New set_src parameter; if two nodes have
4273 same variable and same location but different set_src (assignment)
4274 values, clobber old node.
4275 (delete_variable_part): Pass init status to unshare_variable.
4276 (emit_note_insn_var_location): Add initialized var; assign var's init
4277 status to new 'initialized'; pass new init status field to calls to
4278 gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force
4279 status to initialized.
4280 (emit_notes_in_bb): Pass initialization status to calls to
4281 var_reg_set, var_mem_set, var_reg_delete_and_set and
4282 var_mem_delete_and_set; for MO_SET, get set_src value and pass it to
4283 var_reg_delete_and_set and var_mem_delete_and_set; call
4284 emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to
4285 make up for change in add_stores.
4286 (vt_add_function_parameters): Add status to calls to
4287 set_variable_part.
4288 * config/darwin.c (darwin_override_options): Turn on uninitialized
4289 tracking automatically, if var_tracking is on and the system is
4290 10.5 or higher.
4291
4292 2007-07-13 Sa Liu <saliu@de.ibm.com>
4293
4294 * config.gcc: Add options for arch and tune on SPU.
4295 * config/spu/predicates.md: Add constant operands 0 and 1.
4296 * config/spu/spu-builtins.def: Add builtins for double precision
4297 floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt,
4298 si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1,
4299 spu_testsv.
4300 * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with
4301 a CELLEDP target.
4302 * config/spu/spu-protos.h: Add new function prototypes.
4303 * config/spu/spu.c (spu_override_options): Check options -march and
4304 -mtune.
4305 (spu_comp_icode): Add comparison code for DFmode and vector mode.
4306 (spu_emit_branch_or_set): Use the new code for DFmode and vector
4307 mode comparison.
4308 (spu_const_from_int): New. Create a vector constant from 4 ints.
4309 (get_vec_cmp_insn): New. Get insn index of vector compare instruction.
4310 (spu_emit_vector_compare): New. Emit vector compare.
4311 (spu_emit_vector_cond_expr): New. Emit vector conditional expression.
4312 * config/spu/spu.h: Add options -march and -mtune. Define processor
4313 types PROCESSOR_CELL and PROCESSOR_CELLEDP. Define macro
4314 CANONICALIZE_COMPARISON.
4315 * config/spu/spu.md: Add new insns for double precision compare
4316 and double precision vector compare. Add vcond and smax/smin patterns
4317 to enable DFmode vector conditional expression.
4318 * config/spu/spu.opt: Add options -march and -mtune.
4319 * config/spu/spu_internals.h: Add builtins for CELLEDP target:
4320 si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv. Add builtin for
4321 both CELL and CELLEDP targets: spu_testsv.
4322 * config/spu/spu_intrinsics.h: Add flag mnemonics for test special
4323 values.
4324
4325 2007-07-13 Richard Guenther <rguenther@suse.de>
4326
4327 PR tree-optimization/32721
4328 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve
4329 TREE_THIS_VOLATILE on the folded reference.
4330 * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops
4331 if the array reference has TREE_THIS_VOLATILE set.
4332
4333 2007-07-13 H.J. Lu <hongjiu.lu@intel.com>
4334
4335 PR other/32188
4336 * doc/libgcc.texi: Update DFP intrinsics for DPD and BID.
4337
4338 2007-07-13 Andreas Schwab <schwab@suse.de>
4339
4340 * gengtype-lex.l: Allow declarations to be indented.
4341
4342 2007-07-12 Geoffrey Keating <geoffk@apple.com>
4343
4344 * ginclude/tgmath.h: New.
4345 * config.gcc: Use GCC's tgmath.h on non-glibc systems.
4346 * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath.
4347 * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath.
4348 * configure: Regenerate.
4349
4350 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
4351
4352 * config/sh/linux-unwind.h (sh_fallback_frame_state): Use
4353 correct index when setting register save state for xd
4354 registers.
4355
4356 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
4357
4358 * config/sh/sh.c (mark_use): Remove.
4359
4360 2007-07-12 Paul Brook <paul@codesourcery.com>
4361
4362 * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
4363 reg does not overlap return value.
4364
4365 2007-07-12 Daniel Berlin <dberlin@dberlin.org>
4366
4367 * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
4368 (set_expression_vuses): Ditto.
4369 (init_pre): Initialize expression_vuses.
4370
4371 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
4372
4373 * config/i386/sse.md (storentdf, storentsf): New.
4374
4375 2007-07-12 Geoffrey Keating <geoffk@apple.com>
4376
4377 * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
4378 FUNCTION_DECL.
4379 * tree.c (build_decl_stat): Move code from here...
4380 (make_node_stat): ... to here. Don't uselessly clear DECL_USER_ALIGN.
4381 (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL. Add comment
4382 about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
4383 * tree.h (DECL_USER_ALIGN): Fix misplaced comment.
4384 * varasm.c (assemble_start_function): Use DECL_ALIGN instead of
4385 FUNCTION_BOUNDARY.
4386
4387 2007-07-12 Dorit Nuzman <dorit@il.ibm.com>
4388 Devang Patel <dpatel@apple.com>
4389
4390 PR tree-optimization/25413
4391 * targhooks.c (default_builtin_vector_alignment_reachable): New.
4392 * targhooks.h (default_builtin_vector_alignment_reachable): New.
4393 * tree.h (contains_packed_reference): New.
4394 * expr.c (contains_packed_reference): New.
4395 * tree-vect-analyze.c (vector_alignment_reachable_p): New.
4396 (vect_enhance_data_refs_alignment): Call
4397 vector_alignment_reachable_p.
4398 * target.h (vector_alignment_reachable): New builtin.
4399 * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
4400 * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
4401 (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
4402
4403 2007-07-12 Dorit Nuzman <dorit@il.ibm.com>
4404
4405 * target.h (builtin_vectorization_cost): Add new target builtin.
4406 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
4407 * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
4408 (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
4409 * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
4410 uninitialized variables.
4411 * tree-vect-transform.c (cost_for_stmt): New function.
4412 (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
4413 using cost 1 for all scalar stmts. Be less conservative when
4414 estimating the number of prologue/epulogue iterations. Call
4415 targetm.vectorize.builtin_vectorization_cost. Return
4416 min_profitable_iters-1.
4417 (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
4418 initialization cost instead of TARG_VEC_STMT_COST. Use
4419 TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
4420 epilogue code. Fix epilogue cost computation.
4421 * config/spu/spu.c (spu_builtin_vectorization_cost): New.
4422 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
4423 * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
4424 (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
4425 (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
4426 (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.
4427
4428 2007-07-12 Richard Guenther <rguenther@suse.de>
4429
4430 * gimplify.c (gimplify_conversion): Make sure that the result
4431 from maybe_fold_offset_to_reference is trivially convertible
4432 to the desired type before doing the simplification.
4433 (gimplify_expr): Likewise.
4434 * fold-const.c (fold_binary): Use the correct types for
4435 building the simplified expression.
4436
4437 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
4438
4439 PR rtl-optimization/32729
4440 * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
4441 that fallthru to exit.
4442
4443 2007-07-12 Kaz Kojima <kkojima@gcc.gnu.org>
4444
4445 * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
4446 (symDTPOFF2reg): Likewise.
4447
4448 2007-07-11 Daniel Berlin <dberlin@dberlin.org>
4449
4450 PR tree-optimization/32663
4451
4452 * tree.h (VALUE_HANDLE_VUSES): Remove.
4453 (struct tree_value_handle): Remove vuses.
4454
4455 * tree-vn.c (create_value_handle_for_expr): Don't set
4456 VALUE_HANDLE_VUSES.
4457
4458 * tree-ssa-pre.c (expression_vuses): New.
4459 (alloc_expression_id): Set up expression_vuses.
4460 (get_expression_vuses): New.
4461 (set_expression_vuses): Ditto.
4462 (clear_expression_ids): Modify for expression_vuses.
4463 (phi_translate_1): Ditto.
4464 (phi_translate_set): Ditto.
4465 (value_dies_in_block_x): Ditto
4466 (valid_in_sets): Ditto.
4467 (add_to_sets): Ditto.
4468 (find_existing_value_expr): Ditto.
4469 (create_value_handle_for_expr): Ditto.
4470 (make_values_for_stmt): Ditto.
4471 (vuse_equiv): Remove.
4472
4473 2007-07-11 Alexandre Oliva <aoliva@redhat.com>
4474
4475 * Makefile.in (mostlyclean): Remove object files.
4476
4477 2007-07-11 Kenneth Zadeck <zadeck@naturalbridge.com>
4478
4479 * toplev.c (no_new_pseudos): Deleted.
4480 * rtl.h (no_new_pseudos): Deleted.
4481 * tree-pass.h (pass_no_new_pseudos): Deleted.
4482 * passes.c (pass_no_new_pseudos): Deleted.
4483 * final.c (rest_of_clean_state): Removed no_new_pseudos.
4484 (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
4485 * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with
4486 reload_completed.
4487 * cfgcleanup.c (try_crossjump_to_edge): Ditto.
4488 * rtlhooks.c (gen_lowpart_general): Ditto.
4489 * optabs.c (prepare_operand): Ditto.
4490 * mode-switching.c (rest_of_handle_mode_switching): Deleted set of
4491 no_new_pseudos.
4492 * modulo-sched.c (rest_of_handle_sms): Ditto.
4493 * see.c (rest_of_handle_see): Ditto.
4494 * ifcvt.c (if_convert): Ditto.
4495 (gate_handle_if_after_combine): Replaced no_new_pseudos with
4496 reload_completed.
4497 * init-regs.c (gate_initialize_regs): Deleted set of
4498 no_new_pseudos.
4499 * lower-subreg.c (decompose_multiword_subregs): Ditto.
4500 * bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
4501 * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
4502
4503 2007-07-11 Uros Bizjak <ubizjak@gmail.com>
4504
4505 PR target/32661
4506 * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
4507 (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
4508 (*vec_extractv2di_1_rex64): New insn pattern.
4509
4510 2007-07-11 David Daney <ddaney@avtrex.com>
4511
4512 * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
4513 return address calculation. Substitute DWARF_ALT_FRAME_RETURN_COLUMN
4514 for SIGNAL_UNWIND_RETURN_COLUMN.
4515 * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
4516 (DWARF_FRAME_REGNUM): Rewrite.
4517 (DWARF_ALT_FRAME_RETURN_COLUMN) Define.
4518
4519 2007-07-11 Nick Clifton <nickc@redhat.com>
4520
4521 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
4522 delta and use gen_int_mode in place of GET_INT instead.
4523
4524 2007-07-11 Uros Bizjak <ubizjak@gmail.com>
4525
4526 * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
4527 and letter field.
4528
4529 2007-07-11 Douglas Gregor <doug.gregor@gmail.com>
4530
4531 * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
4532 (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical
4533 types or not.
4534 * params.h (VERIFY_CANONICAL_TYPES): Remove.
4535 (USE_CANONICAL_TYPES): New.
4536 * doc/invoke.texi (verify-canonical-types): Remove.
4537 (use-canonical-types): Add.
4538
4539 2007-07-11 Ulrich Weigand <uweigand@de.ibm.com>
4540
4541 * config/spu/spu.c (spu_optimization_options): Remove setting of
4542 parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
4543 (spu_override_options): Move it here.
4544
4545 2007-07-11 Richard Sandiford <richard@codesourcery.com>
4546
4547 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
4548 * config/mips/mips.c (mips_cpu_info_table): Mention
4549 MIPS_ISA_LEVEL_SPEC in the comment.
4550
4551 2007-07-11 Eric Botcazou <ebotcazou@adacore.com>
4552
4553 PR tree-optimization/32713
4554 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
4555
4556 2007-07-11 Paolo Carlini <pcarlini@suse.de>
4557
4558 PR middle-end/30482
4559 * c-opts.c (c_common_post_options): Do not change flag_complex_method
4560 conditional to flag_isoc99.
4561 (c_common_init_options): Do it here, unconditionally.
4562
4563 2007-07-11 Eric Botcazou <ebotcazou@adacore.com>
4564
4565 PR tree-optimization/32589
4566 * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
4567 * tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
4568 * tree-ssa-propagate.c (valid_gimple_expression_p): New
4569 predicate, extracted from...
4570 (set_rhs): ...here. Call it for the expression on entry.
4571 * tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
4572 * tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
4573 (simplify_binary_expression): Use valid_gimple_expression_p
4574 to validate the simplification.
4575 * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
4576
4577 2007-07-11 Danny Smith <dannysmith@users.sourceforge.net>
4578
4579 * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
4580 DWARF2_DEBUG on 32 bit target too.
4581 (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition.
4582
4583 2007-07-11 Nick Clifton <nickc@redhat.com>
4584
4585 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
4586 version for 64-bit hosts.
4587
4588 2007-07-10 David Daney <ddaney@avtrex.com>
4589
4590 * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
4591 predicate.
4592 (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of library
4593 call.
4594 * config/mips/mips.c (mips_expand_synci_loop): New function.
4595 * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
4596 (UNSPEC_RDHWR): Same.
4597 (UNSPEC_SYNCI): Same.
4598 (UNSPEC_SYNC): Same.
4599 (clear_cache): New expand.
4600 (sync): New insn.
4601 (synci): Same.
4602 (rdhwr): Same.
4603 (clear_hazard): Same.
4604 * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
4605 function.
4606 * testsuite/gcc.target/mips/clear-cache-1.c: New test.
4607 * testsuite/gcc.target/mips/clear-cache-2.c: New test.
4608
4609 2007-07-10 Ian Lance Taylor <iant@google.com>
4610
4611 * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
4612 no_new_pseudos.
4613
4614 2007-07-10 David Daney <ddaney@avtrex.com>
4615
4616 * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
4617 * builtins.c (expand_builtin___clear_cache): New function.
4618 (expand_builtin): Call expand_builtin___clear_cache for
4619 BUILT_IN_CLEAR_CACHE case.
4620 * doc/extend.texi (__builtin___clear_cache): Document new builtin.
4621 * doc/md.texi (clear_cache): Document new instruction pattern.
4622 * testsuite/gcc.dg/builtins-64.c: New test.
4623
4624 2007-07-11 Hans-Peter Nilsson <hp@axis.com>
4625
4626 * config/cris/cris.md ("movsi"): Fix typo in last change.
4627
4628 2007-07-09 Geoffrey Keating <geoffk@apple.com>
4629
4630 PR 32617
4631 * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
4632 FUNCTION_DECLs.
4633 (handle_aligned_attribute): Allow use on FUNCTION_DECLs.
4634 * varasm.c (assemble_start_function): Honor DECL_ALIGN
4635 for FUNCTION_DECLs. Don't use align_functions_log if
4636 DECL_USER_ALIGN.
4637 * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
4638 even for FUNCTION_DECLs.
4639 * c-decl.c (merge_decls): Propagate DECL_ALIGN even for
4640 FUNCTION_DECLs.
4641 * tree.h (DECL_ALIGN): Update for new location of 'align'.
4642 (DECL_FUNCTION_CODE): Update for new location and name of
4643 'function_code'.
4644 (DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
4645 (struct tree_decl_common): Move 'align' and 'off_align' out
4646 of union, ensure they're still on a 32-bit boundary. Remove
4647 other fields in union 'u1'.
4648 (struct tree_function_decl): Add field 'function_code' replacing
4649 'u1.f' in tree_decl_common.
4650 * tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
4651 * doc/extend.texi (Function Attributes): Add 'aligned' attribute.
4652 (Variable Attributes): Cross-reference 'aligned' attribute
4653 to Function Attributes.
4654 * flags.h (force_align_functions_log): Delete.
4655 * toplev.c (force_align_functions_log): Delete.
4656
4657 2007-07-10 Uros Bizjak <ubizjak@gmail.com>
4658
4659 PR target/32708
4660 * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
4661 (*vec_concatv2di_rex): New insn pattern.
4662
4663 2007-07-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4664
4665 PR target/32538
4666 * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
4667
4668 2007-07-10 Ian Lance Taylor <iant@google.com>
4669
4670 Replace no_new_pseudos in backends.
4671 * rtl.h (can_create_pseudo_p): Define.
4672 * config/darwin.c (machopic_indirect_data_reference): Use
4673 can_create_pseudo_p () instead of no_new_pseudos.
4674 (machopic_indirect_data_reference): Likewise.
4675 (machopic_legitimize_pic_address): Likewise.
4676 * config/alpha/alpha.c (alpha_legitimize_address): Likewise.
4677 (alpha_emit_set_const_1): Likewise.
4678 (alpha_emit_set_const): Likewise.
4679 (alpha_emit_conditional_move): Likewise.
4680 (alpha_split_conditional_move): Likewise.
4681 * config/alpha/alpha.md (various splitters): Likewise.
4682 (movti): Likewise.
4683 * config/arm/arm.c (legitimize_pic_address): Likewise.
4684 (arm_load_pic_register): Likewise.
4685 * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
4686 (movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
4687 * config/bfin/bfin.c (legitimize_pic_address): Likewise.
4688 * config/cris/cris.c (cris_expand_pic_call_address): Likewise.
4689 * config/cris/cris.md (movsi): Likewise.
4690 * config/frv/frv.md (symGOT2reg_hilo): Likewise.
4691 (symGOTOFF2reg_hilo): Likewise.
4692 (symGPREL2reg, symGPREL2reg_hilo): Likewise.
4693 * config/h8300/h8300.md (insv, extzv): Likewise.
4694 * config/i386/i386.c (ix86_expand_move): Likewise.
4695 (ix86_expand_vector_move): Likewise.
4696 (ix86_prepare_fp_compare_args): Likewise.
4697 (ix86_expand_carry_flag_compare): Likewise.
4698 * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
4699 (tls_dynamic_gnu2_combine_32): Likewise.
4700 (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
4701 * config/ia64/ia64.c (ia64_expand_move): Likewise.
4702 (ia64_expand_movxf_movrf): Likewise.
4703 * config/m32c/m32c.c (m32c_prepare_move): Likewise.
4704 (m32c_split_move): Likewise.
4705 (m32c_expand_insv): Likewise.
4706 * config/m68k/m68k.md (movsi): Likewise.
4707 * config/mips/mips.c (mips_force_temporary): Likewise.
4708 (mips_split_symbol): Likewise.
4709 (mips_move_integer): Likewise.
4710 (mips_legitimize_const_move): Likewise.
4711 * config/mn10300/mn10300.md (movsi): Likewise.
4712 * config/pa/pa.c (emit_move_sequence): Likewise.
4713 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
4714 (rs6000_got_register): Likewise.
4715 (create_TOC_reference): Likewise.
4716 (rs6000_machopic_legitimize_pic_address): Likewise.
4717 * config/rs6000/rs6000.md (add<mode>3): Likewise.
4718 (various splitters): Likewise.
4719 (iorsi3, xorsi3, iordi3, xordi3): Likewise.
4720 (movsi_got): Likewise.
4721 * config/s390/s390.c (emit_symbolic_move): Likewise.
4722 * config/s390/s390.md (movhi, movqi): Likewise.
4723 (load_multiple, store_multiple): Likewise.
4724 * config/score/score.c (score_force_temporary): Likewise.
4725 * config/sh/sh.c (prepare_move_operands): Likewise.
4726 (prepare_cbranch_operands): Likewise.
4727 (emit_fpu_switch): Likewise.
4728 (fpscr_set_from_mem): Likewise.
4729 * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
4730 (adddi3, subsi3): Likewise.
4731 (various splitters): Likewise.
4732 (divsi_inv_fp_combine): Likewise.
4733 (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
4734 (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
4735 (sne): Likewise.
4736 * config/sh/predicates.md (xor_operand): Likewise.
4737 * config/sparc/sparc.c (legitimize_tls_address): Likewise.
4738 * config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
4739 (movdi_pic_label_ref): Likewise.
4740 * config/spu/spu.c (spu_split_immediate): Likewise.
4741 * config/alpha/alpha.md (various splitters): Remove test
4742 !no_new_pseudos || reload_completed.
4743 * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
4744 no_new_pseudos.
4745 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
4746 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
4747 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
4748 * config/score/score.c (th_output_mi_thunk): Likewise.
4749 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4750 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
4751
4752 2007-07-10 Kaz Kojima <kkojima@gcc.gnu.org>
4753
4754 PR rtl-optimization/32664
4755 * mode-switching.c (create_pre_exit): Skip barrier insns.
4756
4757 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
4758
4759 * tree-scalar-evolution.c (scev_const_prop): Add arguments to
4760 force_gimple_operand_bsi.
4761 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
4762 rewrite_use_compare): Ditto.
4763 * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
4764 Ditto.
4765 * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
4766 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
4767 * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
4768 * tree-profile.c (prepare_instrumented_value,
4769 tree_gen_interval_profiler, tree_gen_pow2_profiler,
4770 tree_gen_one_value_profiler, tree_gen_ic_profiler,
4771 tree_gen_ic_func_profiler, tree_gen_average_profiler,
4772 tree_gen_ior_profiler): Ditto.
4773 * tree-ssa-reassoc.c (negate_value): Ditto.
4774 * matrix-reorg.c (transform_access_sites, transform_allocation_sites):
4775 Use force_gimple_operand_bsi.
4776 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
4777 * tree-if-conv.c (add_to_dst_predicate_list,
4778 find_phi_replacement_condition): Ditto.
4779 * gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
4780 Call mark_symbols_for_renaming for new statements.
4781 * tree-flow.h (force_gimple_operand_bsi): Declaration changed.
4782
4783 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
4784
4785 * cfghooks.c (remove_edge): New function.
4786 (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
4787 loop exit rescans.
4788 * cfghooks.h (remove_edge): Declare.
4789 * cfg.c (remove_edge): Renamed to remove_edge_raw.
4790 * basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
4791
4792 2007-07-09 Wolfgang Gellerich <gellerich@de.ibm.com>
4793
4794 * optabs.h: Added declaration for signbit_optab.
4795 * optabs.c: (init_optabs): Added initialization for signbit_optab.
4796 * genoptinit.c (optabs): Added entry for signbit insns.
4797 * builtins.c (expand_builtin_signbit): Added code to use a signbit
4798 insn, if available.
4799 * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.
4800 * config/s390/s390.md (signbit<mode>2): New expander.
4801
4802 2007-07-09 Richard Guenther <rguenther@suse.de>
4803
4804 PR middle-end/32698
4805 * fold-const.c (fold_plusminus_mult_expr): Move constant
4806 arguments second to allow decomposing.
4807
4808 2007-07-09 Alexandre Oliva <aoliva@oliva.athome.lsd.ic.unicamp.br>
4809
4810 Revert:
4811 2007-07-06 Alexandre Oliva <aoliva@redhat.com>
4812 PR debug/23551
4813 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
4814 Disregard DECL_FROM_INLINE.
4815
4816 2007-07-09 Uros Bizjak <ubizjak@gmail.com>
4817
4818 PR target/27855
4819 * doc/invoke.texi: Add ftree-reassoc flag.
4820 * common.opt (ftree-reassoc): New flag.
4821 * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
4822 (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
4823
4824 2007-07-09 Uros Bizjak <ubizjak@gmail.com>
4825
4826 PR tree-optimization/32681
4827 * tree-if-conv.c (find_phi_replacement_condition): Use the condition
4828 saved in second_edge->aux when first_bb is a loop header.
4829
4830 2007-07-09 Jan HUbicka <jh@suse.cz>
4831
4832 * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
4833
4834 2007-07-09 Richard Guenther <rguenther@suse.de>
4835
4836 * c-decl.c (start_function): Do not promote return type.
4837
4838 2007-07-08 Daniel Franke <franke.daniel@gmail.com>
4839
4840 * function.c (do_warn_unused_parameter): Do not warn if
4841 TREE_NO_WARNING is set.
4842
4843 2007-07-08 Andreas Schwab <schwab@suse.de>
4844
4845 * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
4846
4847 2007-07-08 Sandra Loosemore <sandra@codesourcery.com>
4848
4849 Revert this patch:
4850 2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
4851
4852 * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
4853 apply to assembly language, too.
4854 * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
4855
4856 2007-07-07 Daniel Berlin <dberlin@dberlin.org>
4857
4858 Revert (note the sccvn portions are *not* reverted)
4859 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
4860
4861 Fix PR tree-optimization/23488
4862
4863 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
4864 handles.
4865 * tree-flow-inline.h (get_value_handle): Ditto.
4866 * tree-ssa-pre.c (decl_vh_map): New.
4867 (decl_node_pool): New.
4868 (can_value_number_operation): Support DECL_P.
4869 (can_PRE_operation): Ditto.
4870 (create_expression_by_pieces): Ditto.
4871 (find_existing_value_expr): Modify to differnetiate between
4872 addressing and top level.
4873 (create_value_handle_for_expr): Handle DECL's.
4874 (poolify_tree): Ditto.
4875 (make_values_for_phi): Don't insert into PHI_GEN during FRE.
4876 (make_values_for_stmt): Handle DECL's properly.
4877 (init_pre): Reorg to not init useless things during FRE.
4878 (fini_pre): Ditto.
4879 * tree-flow.h: Include pointer-set.h.
4880 (decl_vh_map): Declare.
4881 * Makefile.in (TREE_FLOW_H): Add pointer-set.h
4882
4883 2007-07-07 Eric Weddington <eweddington@cso.atmel.com>
4884
4885 * config/avr/constraints.md (define_memory_constraint "Q"): Fix
4886 the constraint description.
4887 * doc/md.texi: Update documentation of AVR constraints.
4888
4889 2007-07-07 Kazu Hirata <kazu@codesourcery.com>
4890
4891 * auto-inc-dec.c, config/arm/arm.c,
4892 config/m32r/constraints.md, config/mips/mips.md,
4893 config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
4894 df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
4895 tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
4896 typos. Follow spelling conventions.
4897 * doc/invoke.texi, doc/rtl.texi: Fix typos.
4898
4899 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
4900 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
4901
4902 * tree-ssa-operands.c (realloc_vop, realloc_vdef,
4903 realloc_vuse): Remove.
4904 * tree-ssa-operands.h: Remove the prototype for realloc_vdef
4905 and realloc_vuse.
4906
4907 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
4908
4909 Fix PR tree-optimization/23488
4910
4911 * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
4912 (try_to_simplify): Ditto.
4913 (visit_use): Ditto.
4914 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
4915 handles.
4916 * tree-flow-inline.h (get_value_handle): Ditto.
4917 * tree-ssa-pre.c (decl_vh_map): New.
4918 (decl_node_pool): New.
4919 (can_value_number_operation): Support DECL_P.
4920 (can_PRE_operation): Ditto.
4921 (create_expression_by_pieces): Ditto.
4922 (find_existing_value_expr): Modify to differnetiate between
4923 addressing and top level.
4924 (create_value_handle_for_expr): Handle DECL's.
4925 (poolify_tree): Ditto.
4926 (make_values_for_phi): Don't insert into PHI_GEN during FRE.
4927 (make_values_for_stmt): Handle DECL's properly.
4928 (init_pre): Reorg to not init useless things during FRE.
4929 (fini_pre): Ditto.
4930 * tree-flow.h: Include pointer-set.h.
4931 (decl_vh_map): Declare.
4932 * Makefile.in (TREE_FLOW_H): Add pointer-set.h
4933
4934 2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
4935
4936 * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
4937 apply to assembly language, too.
4938 * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
4939
4940 2007-07-06 Ian Lance Taylor <iant@google.com>
4941 Zack Weinberg <zackw@panix.com>
4942
4943 PR middle-end/32441
4944 * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
4945
4946 2007-07-06 Richard Sandiford <richard@codesourcery.com>
4947
4948 * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
4949 (prefetch): Likewise if "pref" would be used.
4950
4951 2007-07-06 Josh Conner <jconner@apple.com>
4952
4953 PR middle-end/32602
4954 PR middle-end/32603
4955 * calls.c (store_one_arg): Handle arguments which are partially
4956 on the stack when detecting argument overlap.
4957
4958 2007-07-06 Bernd Schmidt <bernd.schmidt@analog.com>
4959
4960 * reload1.c (choose_reload_regs): Set reload_spill_index for regs
4961 chosen during find_reloads.
4962
4963 2007-07-06 Richard Guenther <rguenther@suse.de>
4964
4965 * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
4966 TYPE_ARG_TYPES for verification of argument types. Use
4967 DECL_ARG_TYPE instead of the PARM_DECL type. Take excess
4968 parameters as variable arguments.
4969
4970 2007-07-06 Andreas Krebbel <krebbel1@de.ibm.com>
4971
4972 * libgcc2.h (word_type): Type definition removed.
4973 (cmp_return_type, shift_count_type): Type definitions added.
4974 (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
4975 replaced with shift_count_type.
4976 (__cmpdi2, __ucmpdi2): word_type of return type replaced with
4977 cmp_return_type.
4978 * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
4979 changed from word_type to Wtype.
4980 (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
4981 replaced with shift_count_type.
4982 (__cmpdi2, __ucmpdi2): word_type of return type replaced with
4983 cmp_return_type.
4984 * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
4985 and libgcc_shift_count attribute added.
4986 * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
4987 TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
4988 (TARGET_INITIALIZER): New target hooks added.
4989 * targhooks.c (default_libgcc_cmp_return_mode,
4990 default_libgcc_shift_count_mode): Default implementations for the new
4991 target hooks added.
4992 * targhooks.h (default_libgcc_cmp_return_mode,
4993 default_libgcc_shift_count_mode): Function prototypes added.
4994 * target.h (struct gcc_target): Fields for the new target hooks added.
4995 * optabs.c (expand_binop): Use shift_count_mode when expanding shift
4996 as library call.
4997 (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
4998 library call.
4999
5000 * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
5001 TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
5002
5003 * config/s390/s390.c (s390_libgcc_cmp_return_mode,
5004 s390_libgcc_shift_count_mode): Functions added.
5005 (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE):
5006 Target hooks defined.
5007
5008 2007-07-06 Richard Sandiford <richard@codesourcery.com>
5009
5010 * config/mips/mips.c (compute_frame_size): Restore the original
5011 gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
5012 fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
5013 Document why the difference is needed.
5014
5015 2007-07-06 Richard Guenther <rguenther@suse.de>
5016
5017 * c-common.c (boolean_increment): Use correctly typed
5018 constant.
5019
5020 2007-07-06 Richard Sandiford <richard@codesourcery.com>
5021
5022 * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
5023 the topmost argument register is not also included in the save mask.
5024 (mips16e_collect_argument_save_p): Take a pointer to the argument
5025 register, rather than a pointer to the number of arguments.
5026 (mips16e_collect_argument_saves): Only include argument saves
5027 that aren't in the register mask.
5028
5029 2007-07-06 Uros Bizjak <ubizjak@gmail.com>
5030
5031 PR rtl-optimization/32450
5032 * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
5033 to ensure that instructions are not moved into the prologue when
5034 profiling is on. Remove unused prologue_end variable.
5035 (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
5036 as a scheduling barrier.
5037
5038 2007-07-06 Alexandre Oliva <aoliva@redhat.com>
5039
5040 PR debug/23551
5041 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
5042 Disregard DECL_FROM_INLINE.
5043
5044 2007-07-05 Adam Nemet <anemet@caviumnetworks.com>
5045
5046 * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
5047 IORing with a constant.
5048
5049 2007-07-05 Seongbae Park <seongbae.park@gmail.com>
5050
5051 PR rtl-optimization/32475
5052 * df-scan.c (df_def_record_1): Add a use of the stack pointer
5053 for every definition of the stack pointer.
5054
5055 2007-07-05 Richard Earnshaw <rearnsha@arm.com>
5056
5057 * arm.c (vfp3_const_double_index): Copy signed results of
5058 REAL_VALUE_TO_INT into unsigned vars.
5059
5060 2007-07-05 Richard Guenther <rguenther@suse.de>
5061
5062 PR middle-end/32639
5063 * alias.c (get_alias_set): Tread METHOD_TYPE the same as
5064 FUNCTION_TYPE.
5065 * tree-ssa.c (useless_type_conversion_p): Check canonical
5066 types early.
5067
5068 2007-07-05 Anatoly Sokolov <aesok@post.ru>
5069
5070 * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2,
5071 zero_extendhisi2): Change to define_insn_and_split.
5072 (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
5073
5074 2007-07-05 Paolo Bonzini <bonzini@gnu.org>
5075
5076 * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
5077 pass_match_asm_constraints): New.
5078 * passes.c (init_optimization_passes): Add new pass.
5079 * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
5080 * function.h (struct function): Add has_asm_statement bit.
5081 (current_function_has_asm_statement): New.
5082 * tree-pass.h (pass_match_asm_constraints): New.
5083
5084 2007-07-05 Richard Sandiford <rsandifo@nildram.co.uk>
5085
5086 * config/mips/mips.c (mips_file_start): Avoid declaration
5087 after code.
5088
5089 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
5090
5091 * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
5092
5093 2007-07-05 Uros Bizjak <ubizjak@gmail.com>
5094
5095 * rtl.def (NOTE): Change print format string to print
5096 operand 5 as a note insn name.
5097
5098 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
5099 David Ung <davidu@mips.com>
5100
5101 * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
5102 * doc/invoke.texi: (MIPS Options): Document them.
5103
5104 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
5105 David Ung <davidu@mips.com>
5106
5107 Add support for SmartMIPS ASE.
5108
5109 * optabs.c (expand_binop_directly): New, broken out from...
5110 (expand_binop): Here. Make it try rotating in the other
5111 direction even when the second operand isn't constant.
5112 * config/mips/mips.md (*lwxs): New.
5113 * config/mips/mips.opt (msmartmips): New.
5114 * config/mips/mips.c (mips_lwxs_address_p): New.
5115 (mips_rtx_costs): Make it recognize scaled indexed addressing.
5116 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
5117 __mips_smartmips when compiling for TARGET_SMARTMIPS.
5118 (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
5119 (ISA_HAS_LWXS): New.
5120 (ASM_SPEC): Add -msmartmips/-mno-smartmips.
5121 * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
5122 * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
5123 * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
5124 * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
5125 * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
5126 * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
5127
5128 2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
5129
5130 * tree-vectorizer.c (new_loop_vec_info): Initialize
5131 LOOP_VINFO_COST_MODEL_MIN_ITERS.
5132 * tree-vectorizer.h (_loop_vec_info): Added new filed
5133 min_profitable_iters.
5134 (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
5135 (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
5136 * tree-vect-analyze.c (vect_analyze_operations): Set
5137 LOOP_VINFO_COST_MODEL_MIN_ITERS.
5138 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
5139 VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
5140 Fix calculation of peel_iters_prologue. Move consideration of epilogue
5141 and prologue cost to after they are computed.
5142 (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
5143 TARG_VEC_STMT_COST.
5144 (vect_model_simple_cost): Takes additional argument dt. Consider cost
5145 of creating vectors from scalars according to dt.
5146 (vect_model_store_cost): Likewise.
5147 (vectorizable_call): Use dt array instead of scalar dt. Call
5148 vect_model_simple_cost with additional argument dt.
5149 (vectorizable_assignment): Likewise.
5150 (vectorizable_operation): Likewise.
5151 (vectorizable_type_demotion): Likewise.
5152 (vectorizable_type_promotion): Likewise.
5153 (vectorizable_store): Use dt array instead of scalar dt. Call
5154 vect_model_store_cost with additional argument dt.
5155 (vect_do_peeling_for_loop_bound): Don't call
5156 vect_estimate_min_profitable_iters. Instead, lookup
5157 LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
5158 "may not be profitable".
5159
5160 2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
5161
5162 PR testsuite/32014
5163 * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
5164 (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
5165 (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
5166 (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns.
5167
5168 2007-07-05 Zdenek Dvorak <dvorakz@suse.cz>
5169
5170 * config/i386/i386.c (ix86_address_cost): Do not consider more complex
5171 addressing modes cheaper.
5172
5173 2007-07-05 Alexandre Oliva <aoliva@redhat.com>
5174
5175 * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
5176 (dw_ranges_struct): Rename block_num to num. Adjust.
5177 (dw_ranges_by_label_struct): New.
5178 (ranges_by_label, ranges_by_label_allocated,
5179 ranges_by_label_in_use): New variables.
5180 (add_ranges_num): Factored most of the code out of...
5181 (add_ranges): ... this one. Rewrite in terms of the former.
5182 (add_ranges_by_labels): New.
5183 (output_ranges): Output by-label ranges.
5184 (dwarf2out_finish): Output range for multiple-section
5185 compile_unit. Output standard DW_AT_low_pc in addition to
5186 unexpected DW_AT_entry_pc.
5187
5188 2007-07-04 Daniel Berlin <dberlin@dberlin.org>
5189
5190 PR tree-optimization/32604
5191 PR tree-optimization/32606
5192
5193 * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
5194 (compute_antic_safe): Removed.
5195 (ANTIC_SAFE_LOADS): Ditto.
5196 (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
5197 (execute_pre): Don't call compute_antic_safe.
5198 (vuse_equiv): New function.
5199 (make_values_for_stmt): Use it
5200 * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
5201 not always true.
5202
5203 2007-07-04 Anatoly Sokolov <aesok@post.ru>
5204
5205 PR target/31331
5206 * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
5207 rather than a decl.
5208 (avr_attribute_table): Make "naked" attribute apply to function types
5209 rather than to decls.
5210 (avr_handle_fntype_attribute): New function.
5211
5212 2007-07-04 Joseph Myers <joseph@codesourcery.com>
5213
5214 * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
5215 after \.
5216
5217 2007-07-04 David Ung <davidu@mips.com>
5218 Joseph Myers <joseph@codesourcery.com>
5219
5220 * config/mips/mips.md (type): Add logical, signext and move.
5221 (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
5222 *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
5223 *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
5224 combinations", *zero_extend<SHORT:mode><GPR:mode>2,
5225 *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
5226 *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
5227 *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
5228 *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
5229 *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
5230 *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
5231 movv2sf_hardfloat_64bit): Use the new types.
5232 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
5233 *movdf_softfloat, *movdf_mips16): Use "multi".
5234 (extendqihi2): Replace with a define_expand.
5235 (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
5236 Based on extend<SHORT:mode><GPR:mode>2 patterns.
5237 * config/mips/74k.md (r74k_int_logical): New reservation and
5238 bypasses.
5239 (r74k_int_arith): Remove "slt".
5240 * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
5241 config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
5242 config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
5243 config/mips/sb1.md, config/mips/sr71k.md: Add new types to
5244 reservations for "arith".
5245
5246 2007-07-04 Richard Guenther <rguenther@suse.de>
5247
5248 * tree-ssa.c (useless_type_conversion_p): Add handling for
5249 scalar float and vector types. Only call the types_compatible_p
5250 langhook for aggregate types as last resort. Follow the
5251 rules.
5252
5253 2007-07-04 Richard Guenther <rguenther@suse.de>
5254
5255 * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
5256 the same as NOP_EXPR.
5257
5258 2007-07-04 Nick Clifton <nickc@redhat.com>
5259
5260 * target.h (struct gcc_target): Add target_help field.
5261 * target-def.h (TARGET_HELP): New.
5262 (TARGET_INITIALIZER): Use TARGET_HELP.
5263 * opts.c (command_handle_option): Invoke target_help function, if
5264 defined, when the user has specified --target-help on the command
5265 line.
5266 * doc/invoke.texi: Mention that --target-help might print
5267 additional information.
5268 * doc/tm.texi: Document TARGET_HELP hook.
5269
5270 * arm.c (TARGET_HELP): Override default definition.
5271 (arm_target_help): New - display a wrapped list of cores and
5272 architectures supported.
5273
5274 2007-07-04 Rask Ingemann Lambertsen <rask@sygehus.dk>
5275
5276 * config/v850/v850.c (expand_prologue): Make sure
5277 GEN_INT() argument is sign extended rather than zero extended.
5278 (expand_epilogue): Likewise.
5279 (output_move_double): Delete.
5280 * config/v850/v850-protos.h (output_move_double): Delete.
5281 * config/v850/v850.md (movdi): Delete.
5282 (*movdi_internal): Delete.
5283 (movdf): Delete.
5284 (*movdf_internal): Delete.
5285
5286 2007-07-04 Richard Sandiford <richard@codesourcery.com>
5287
5288 * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
5289 unless compiling RTP PIC.
5290
5291 2007-07-04 Richard Guenther <rguenther@suse.de>
5292
5293 PR tree-optimization/32482
5294 * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
5295 original ssa name if we didn't find a shift expression.
5296 Fix shift constant for bit zero test.
5297
5298 2007-07-04 Richard Sandiford <richard@codesourcery.com>
5299
5300 * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
5301
5302 2007-07-04 Richard Sandiford <richard@codesourcery.com>
5303
5304 * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
5305 * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
5306 * config/arm/vxworks.h (ASM_SPEC): Delete.
5307 (SUBTARGET_EXTRA_ASM_SPEC): Define.
5308
5309 2007-07-04 Sebastian Pop <sebpop@gmail.com>
5310
5311 * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
5312 (DDR_REVERSED_P): New.
5313 * tree-data-ref.c (initialize_data_dependence_relation,
5314 build_classic_dist_vector): Set DDR_REVERSED_P.
5315
5316 2007-07-04 Sebastian Pop <sebpop@gmail.com>
5317
5318 PR middle-end/32457
5319 * tree-data-ref.c (analyze_siv_subscript_cst_affine,
5320 compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
5321 init_omega_for_ddr_1): Use non conservative number of iterations
5322 estimations.
5323 (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
5324 (analyze_siv_subscript): Remove FIXME and reinitialization of
5325 last_conflicts to chrec_dont_know.
5326 * testsuite/gfortran.dg/vect/pr32457.f90: New.
5327
5328 2007-07-04 Douglas Gregor <doug.gregor@gmail.com>
5329
5330 * tree.c (maybe_canonicalize_argtypes): Improve description.
5331
5332 2007-07-04 Douglas Gregor <doug.gregor@gmail.com>
5333
5334 * tree.c (maybe_canonicalize_argtypes): New.
5335 (build_function_type): Set canonical type.
5336 (build_method_type_directly): Ditto.
5337 (reconstruct_complex_type): Rebuild the METHOD_TYPE node
5338 properly.
5339
5340 2007-07-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
5341
5342 * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
5343 like PLUS_EXPR.
5344 (rewrite_use_nonlinear_expr): Likewise.
5345
5346 2007-07-03 Seongbae Park <seongbae.park@gmail.com>
5347
5348 * rtl.def (UNSPEC, USE, CLOBBER): More comments.
5349
5350 2007-07-04 Ben Elliston <bje@au.ibm.com>
5351
5352 * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
5353 of this file.
5354
5355 * c-objc-common.c (c_types_compatible_p): Fix indentation.
5356
5357 * doc/tm.texi (Run-time Target): Capitalise "CPU".
5358 (Exception Handling): Likewise.
5359
5360 2007-07-03 Jan Hubicka <jh@suse.cz>
5361
5362 * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
5363
5364 2007-07-03 Eric Christopher <echristo@apple.com>
5365
5366 * doc/cppopts.texi: Add conflicting option note to -dM.
5367 * doc/invoke.texi: Add note about possible conflicts with
5368 -E for -dCHARS and note that -dM will not produce
5369 any results if there is no machine dependent reorg.
5370
5371 2007-07-03 Geoffrey Keating <geoffk@apple.com>
5372
5373 * tree.h (DECL_ALIGN): Back out previous change.
5374
5375 2007-07-03 Joseph Myers <joseph@codesourcery.com>
5376
5377 * configure.ac: Test for .dtprelword support on MIPS.
5378 * configure, config.in: Regenerate.
5379 * config/mips/mips.c (mips_output_dwarf_dtprel): New.
5380 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
5381
5382 2007-07-03 Julian Brown <julian@codesourcery.com>
5383
5384 * config.gcc (with_fpu): Allow --with-fpu=vfp3.
5385 * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
5386 * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
5387 * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
5388 capability.
5389 (all_fpus): Add FPUTYPE_VFP3.
5390 (fp_model_for_fpu): Add VFPv3 field.
5391 (arm_rtx_costs_1): Give cost to VFPv3 constants.
5392 (vfp3_const_double_index): New function. Return integer index of
5393 VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
5394 isn't suitable.
5395 (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
5396 and argument represents a valid RTX for a VFPv3 constant.
5397 (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
5398 two instructions.
5399 (vfp_emit_fstmd): Similar, for fstmd.
5400 (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
5401 constants, represented as integer indices.
5402 (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
5403 VFP_REGNO_OK_FOR_DOUBLE macros.
5404 (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
5405 (arm_file_start): Set float-abi attribute for VFPv3, and output
5406 correct ".fpu" assembler directive.
5407 (arm_dbx_register_numbering): Add FIXME.
5408 * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
5409 (fputype): Add FPUTYPE_VFP3.
5410 (FIXED_REGISTERS): Add 32 registers for D16-D31.
5411 (CALL_USED_REGISTERS): Likewise.
5412 (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
5413 of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
5414 (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
5415 (D7_VFP_REGNUM): New.
5416 (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
5417 (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
5418 (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
5419 (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
5420 (REG_ALLOC_ORDER): Adjust for VFPv3.
5421 (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
5422 (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
5423 VFP_LO_REGS, VFP_HI_REGS.
5424 (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
5425 (IS_VFP_CLASS): Define macro.
5426 (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
5427 IS_VFP_CLASS.
5428 (REGISTER_MOVE_COST): Likewise.
5429 * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
5430 * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
5431 (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
5432 (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
5433 (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
5434 (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
5435 (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
5436 (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
5437 (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
5438 (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
5439 (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
5440 where appropriate for single-word registers.
5441 (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
5442 As above. Fix type attributes.
5443 * config/arm/constraints.md (register_contraint "t"): Define.
5444 (register_constraint "w"): Change to D0-D15, or D0-D31 for
5445 VFPv3/NEON.
5446 (register_constraint "x"): Define.
5447 (constraint "Dv"): Define.
5448
5449 2007-07-03 Geoffrey Keating <geoffk@apple.com>
5450
5451 * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
5452
5453 2007-07-03 Tom Tromey <tromey@redhat.com>
5454
5455 * c-parser.c (objc_pq_context): Removed.
5456 (objc_need_raw_identifier): Likewise.
5457 (c_parser) <objc_pq_context>: New field.
5458 <objc_need_raw_identifier>: Likewise.
5459 (OBJC_NEED_RAW_IDENTIFIER): Removed.
5460 (c_lex_one_token): Update.
5461 (c_parser_objc_protocol_definition): Update.
5462 (c_parser_objc_method_definition): Update.
5463 (c_parser_objc_methodproto): Update.
5464 (c_parser_declspecs): Update.
5465
5466 2007-07-03 David Ung <davidu@mips.com>
5467
5468 * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
5469
5470 2007-07-03 David Ung <davidu@mips.com>
5471 Richard Sandiford <richard@codesourcery.com>
5472
5473 * doc/invoke.texi: Document -march=74kf3_2.
5474 * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
5475 (TUNE_74K): Check for it.
5476 * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
5477 (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
5478 * config/mips/mips.md (cpu): Add 74kf3_2.
5479 * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
5480 (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
5481 (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
5482 (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
5483 74kf3_2 to the CPU list.
5484 (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
5485 (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
5486 (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
5487 (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
5488 (r74kf3_2_fxfer_from_c1): New insn reservations.
5489
5490 2007-07-03 Richard Sandiford <richard@codesourcery.com>
5491 David Ung <davidu@mips.com>
5492
5493 * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
5494 -march=24kx with -march=24kf1_1. Likewise 24ke[fx], 34k[fx]
5495 and 74k[fx]. Document aliases for the new options.
5496 * config/mips/mips.h (PROCESSOR_24KF): Rename to...
5497 (PROCESSOR_24KF2_1): ...this.
5498 (PROCESSOR_24KX): Rename to...
5499 (PROCESSOR_24KF1_1): ...this.
5500 (PROCESSOR_74KF): Rename to...
5501 (PROCESSOR_74KF2_1): ...this.
5502 (PROCESSOR_74KX): Rename to...
5503 (PROCESSOR_74KF1_1): ...this.
5504 (TUNE_74K): Update PROCESSOR_* names.
5505 * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
5506 for 24kf. Add 24kf1_1 and 24kfx as synonyms for 24kx. Likewise
5507 the 24ke*, 34k* and 74k* processors. Update PROCESSOR_* names.
5508 (mips_rtx_cost_data): Update processor names in comments.
5509 (mips_issue_rate): Update PROCESSOR_* names.
5510 * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
5511 24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
5512 * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
5513 to r24kf2_1_*. Rename r24kx_* insn reservations to r24kf1_1_*.
5514 Update cpu attribute names.
5515 (r24k_fpu_iss): Rename this reservation to...
5516 (r24kf2_1_fpu_iss): ...this and update all uses.
5517 (r24kx_fpu_iss): Rename this reservation to...
5518 (r24kf1_1_fpu_iss): ...this and update all uses.
5519 * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
5520 to r74kf2_1_*. Rename r74kx_* insn reservations to r74kf1_1_*.
5521 Update cpu attribute names.
5522
5523 2007-07-01 Kaz Kojima <kkojima@gcc.gnu.org>
5524
5525 * config/m32r/constraints.md: New file.
5526 * config/m32r/m32r.c: Include tm-constrs.h.
5527 (small_data_operand): Use satisfies_constraint_* instead of macro.
5528 (addr24_operand, gen_compare): Likewise.
5529 * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
5530 (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
5531 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
5532 EXTRA_CONSTRAINT): Likewise.
5533 * config/m32r/m32r.md: Include constraints.md.
5534 (*movsi_insn): Use satisfies_constraint_* instead of macro.
5535 (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
5536 * config/m32r/predicates.md (conditional_move_operand): Likewise.
5537 (two_insn_const_operand, int8_operand, uint16_operand,
5538 reg_or_int16_operand, reg_or_uint16_operand,
5539 reg_or_cmp_int16_operand, cmp_int16_operand,
5540 seth_add3_operand): Likewise.
5541
5542 2007-07-03 Eric Christopher <echristo@gmail.com>
5543
5544 * libgcc2.h: Conditionally declare __bswapsi2 and
5545 __bswapdi2.
5546
5547 2007-07-03 H.J. Lu <hongjiu.lu@intel.com>
5548
5549 * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
5550 defined.
5551
5552 2007-07-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5553
5554 PR target/28307
5555 * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
5556 (__gthrw_pragma): Provide default definition.
5557 (__gthrw2): Use it.
5558 * gthr-posix.c (__gthrw_pragma): Define.
5559
5560 2007-07-03 Daniel Berlin <dberlin@dberlin.org>
5561
5562 * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
5563 before declaring inequality.
5564
5565 2007-07-03 Rask Ingemann Lambertsen <rask@sygehus.dk>
5566
5567 * combine.c (recog_for_combine): Log the success or failure of
5568 matching new insn patterns against the machine description in
5569 detailed dumps.
5570
5571 2007-07-03 Revital Eres <eres@il.ibm.com>
5572
5573 * ddg.c (print_sccs): New function.
5574 (check_sccs): New function.
5575 (create_ddg_all_sccs): Use it.
5576 * ddg.h (print_sccs): Declare.
5577 * modulo-sched.c (sms_order_nodes): Call print_sccs.
5578
5579 2007-07-03 Uros Bizjak <ubizjak@gmail.com>
5580
5581 * targhooks.h (default_mode_for_suffix): New function declaration.
5582 * targhooks.c (default_mode_for_suffix): New default target hook.
5583 * target.h (struct c): New structure in the targetm struct.
5584 (mode_for_suffix): New target hook as part of struct c.
5585 target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
5586 default_mode_for_suffix.
5587 (TARGET_C): New define.
5588 * c-lex.c: Include "target.h".
5589 (interpret_float): Use targetm.c.mode_for_suffix to determine
5590 the mode for a given non-standard suffix.
5591 Makefile.in (c-lex.o): Depend on $(TARGET_H).
5592
5593 * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
5594 (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
5595
5596 * doc/extend.texi (Floating Types): New node. Document __float80 and
5597 __float128 types. Document 'w', 'W', 'q' and 'Q' suffixes.
5598
5599 2007-07-03 Kaz Kojima <kkojima@gcc.gnu.org>
5600
5601 PR target/32506
5602 * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
5603 predicate instead of target_operand.
5604 (divsi3_i1_media, divsi3_media_2): Likewise.
5605
5606 2007-07-02 Eric Botcazou <ebotcazou@adacore.com>
5607
5608 * tree.h (alias_sets_might_conflict_p): Rename into
5609 alias_sets_must_conflict_p.
5610 * alias.c (alias_sets_might_conflict_p): Likewise.
5611 (alias_sets_conflict_p): Use it.
5612 (objects_must_conflict_p): Likewise.
5613 * c-common.c (strict_aliasing_warning): Adjust.
5614
5615 2007-07-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
5616
5617 * rtlhooks.c (gen_lowpart_if_possible): Check for
5618 invalid subreg before calling gen_lowpart_SUBREG.
5619
5620 2007-07-02 Geoffrey Keating <geoffk@apple.com>
5621
5622 * config/darwin9.h: Add copyright notice.
5623 (LINK_COMMAND_SPEC): Add comment.
5624 (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
5625 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
5626 DARWIN_LIBSYSTEM_HAS_UNWIND.
5627
5628 2007-07-02 Jakub Jelinek <jakub@redhat.com>
5629
5630 PR libgomp/32468
5631 * omp-low.c (check_combined_parallel): New function.
5632 (lower_omp_parallel): Call it via walk_stmts, set
5633 OMP_PARALLEL_COMBINED if appropriate.
5634 (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
5635 isn't the only statement in WS_ENTRY_BB or OMP_RETURN
5636 the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
5637 don't consider it as combined parallel.
5638
5639 2007-07-02 Richard Sandiford <richard@codesourcery.com>
5640
5641 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
5642 (gcc_tooldir): Likewise.
5643 * configure: Regenerate.
5644 * Makefile.in (libsubdir_to_prefix): New variable, based on the
5645 old configure.ac gcc_tooldir setting.
5646 (prefix_to_exec_prefix): New variable.
5647 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
5648 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
5649
5650 2007-07-02 Daniel Berlin <dberlin@dberlin.org>
5651
5652 Fix PR tree-optimization/32583
5653 Fix PR tree-optimization/32584
5654 * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
5655 (phi_translate_set): Use phi_translate directly now.
5656 (make_values_for_stmt): Don't value number RHS if we already know
5657 it is constant.
5658
5659 2007-07-02 Steve Ellcey <sje@cup.hp.com>
5660 Jim Wilson <wilson@specifix.com>
5661
5662 PR target/31684
5663 * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
5664 copy_insn.
5665
5666 2007-07-02 Sandra Loosemore <sandra@codesourcery.com>
5667 Richard Sandiford <richard@codesourcery.com>
5668 Nigel Stephens <nigel@mips.com>
5669
5670 * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
5671 (mips16e_output_save_restore): Declare.
5672 (mips16e_save_restore_pattern_p): Likewise.
5673 * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
5674 * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
5675 for GENERATE_MIPS16E_SAVE_RESTORE. Return 0x400 for TARGET_MIPS16
5676 && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
5677 (BITSET_P): New global macro, extracted from...
5678 (mips_for_each_saved_reg): ...here.
5679 (mips16e_save_restore_info): New struct.
5680 (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
5681 (mips16e_save_restore_regs): New variable.
5682 (mips_split_plus, mips16e_find_first_register): New functions.
5683 (mips16e_mask_registers): New function.
5684 (compute_frame_size): Expand the commentary before the function.
5685 Enforce the MIPS16e save and restore register range restrictions.
5686 Pad the general register save area at the low end.
5687 (mips16e_save_restore_reg, mips16e_build_save_restore)
5688 (mips16e_save_restore_pattern_p, mips16e_add_register_range)
5689 (mips16e_output_save_restore, mips16e_collect_propagate_value)
5690 (mips16e_collect_argument_save, mips16e_collect_argument_saves):
5691 New functions.
5692 (mips_expand_prologue, mips_expand_epilogue): Handle
5693 GENERATE_MIPS16E_SAVE_RESTORE.
5694 * config/mips/mips.md (*mips16e_save_restore): New pattern.
5695
5696 2007-07-02 Uros Bizjak <ubizjak@gmail.com>
5697
5698 PR tree-optimization/31966
5699 PR tree-optimization/32533
5700 * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
5701 "basic_block" description as its third argument. Update function
5702 calls to get destination bb from "edge" argument. Save "cond" into
5703 aux field of the edge. Update prototype for changed arguments.
5704 (if_convertible_loop_p): Clear aux field of incoming edges if bb
5705 contains phi node.
5706 (find_phi_replacement_condition): Operate on incoming edges, not
5707 on predecessor blocks. If there is a condition saved in the
5708 incoming edge aux field, AND it with incoming bb predicate.
5709 Return source bb of the first edge.
5710 (clean_predicate_lists): Clean aux field of outgoing node edges.
5711 (tree_if_conversion): Do not initialize cond variable. Move
5712 variable declaration into the loop.
5713 (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
5714 initializations of new_stmt, arg0 and arg1 variables.
5715
5716 2007-07-02 Jakub Jelinek <jakub@redhat.com>
5717
5718 * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
5719 SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
5720
5721 2007-07-02 Richard Guenther <rguenther@suse.de>
5722
5723 * tree-ssa.c (useless_type_conversion_p): Document
5724 future intent as defining the middle-end type system.
5725 Re-structure to call langhook last, group by type class,
5726 mark questionable parts.
5727
5728 2007-07-02 Richard Guenther <rguenther@suse.de>
5729
5730 * tree-flow.h (types_compatible_p): Declare.
5731 * tree-ssa.c (types_compatible_p): New function.
5732 * ipa-type-escape.c (discover_unique_type): Use
5733 types_compatible_p instead of lang_hooks.types_compatible_p.
5734 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
5735 * tree-vn.c (expressions_equal_p): Likewise.
5736 * tree.c (fields_compatible_p): Likewise.
5737 * tree-ssa-dom.c (avail_expr_eq): Likewise.
5738 (cprop_operand): Use useless_type_conversion_p instead of
5739 lang_hooks.types_compatible_p.
5740 * tree-inline.c (setup_one_parameter): Likewise.
5741 (declare_return_variable): Likewise.
5742 * tree-nrv.c (tree_nrv): Likewise.
5743 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
5744 (maybe_fold_offset_to_component_ref): Likewise.
5745 (maybe_fold_offset_to_reference): Likewise.
5746 * tree-ssa-copy.c (may_propagate_copy): Likewise.
5747 (merge_alias_info): Likewise.
5748 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
5749 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
5750 * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
5751 * tree-tailcall.c (find_tail_calls): Likewise.
5752 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
5753 * gimplify.c (canonicalize_addr_expr): Likewise.
5754 (fold_indirect_ref_rhs): Likewise.
5755 (gimplify_addr_expr): Likewise. Swap parameters to cpt_same_type.
5756 (cpt_same_type): Likewise.
5757 (check_pointer_types_r): Swap parameters to cpt_same_type
5758 where appropriate.
5759 * fold-const.c (fold_convert): Revert fix for PR15988.
5760 * tree-inline.c (setup_one_parameter): Instead fix it here by
5761 using fold_build1 instead of fold_convert and checking for
5762 error_mark_node. Convert only if the conversion is necessary.
5763
5764 2007-07-02 Joseph Myers <joseph@codesourcery.com>
5765
5766 * configure.ac: Check for .gnu_attribute on Power.
5767 * configure: Regenerate.
5768 * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
5769 attribute for floating-point ABI.
5770
5771 2007-07-02 Ira Rosen <irar@il.ibm.com>
5772
5773 PR tree-optimization/32230
5774 PR tree-optimization/32477
5775 * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base
5776 address is a constant.
5777
5778 2007-07-02 Richard Sandiford <richard@codesourcery.com>
5779
5780 * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
5781 (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
5782 (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
5783 stanzas. Use the first part of the triplet to set MIPS_ISA_DEFAULT.
5784 Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
5785 64-bit targets. Add support for *-elfoabi*.
5786 * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
5787 different settings if $(tm_defines) does not select the EABI.
5788 (MULTILIB_EXCLUSIONS): Define in those circumstances.
5789 * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
5790 (MIPS_ARCH_OPTION_SPEC): Likewise.
5791 (MIPS_ISA_LEVEL_SPEC): Likewise.
5792 (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
5793 * config/mips/elfoabi.h: New file.
5794
5795 2007-07-02 Richard Guenther <rguenther@suse.de>
5796
5797 * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
5798 (useless_type_conversion_p): ... this.
5799 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
5800 (useless_type_conversion_p): ... this.
5801 * builtins.c (fold_builtin_memory_op): Rename
5802 tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
5803 * tree-cfg.c (verify_expr): Likewise.
5804 * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
5805 * tree-ssa-ccp.c (ccp_fold): Likewise.
5806 * tree-ssa-copy.c (may_propagate_copy): Likewise.
5807 * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
5808 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
5809 * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
5810 * tree-ssa-pre.c (eliminate): Likewise.
5811 * tree-ssa.c (delete_tree_ssa): Likewise.
5812 (tree_ssa_useless_type_conversion): Likewise.
5813 * tree.c (build2_stat): Likewise.
5814
5815 2007-07-01 Daniel Berlin <dberlin@dberlin.org>
5816
5817 Fix PR tree-optimization/32571
5818 * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
5819 simplifying them.
5820
5821 2007-07-01 Daniel Berlin <dberlin@dberlin.org>
5822
5823 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
5824 and other expected operations explicitly, change default to
5825 gcc_unreachable.
5826
5827 2007-07-01 Daniel Jacobowitz <dan@codesourcery.com>
5828
5829 * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
5830 PARALLEL.
5831 * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
5832 (tls_load_dot_plus_eight): Move the label number into the unspec.
5833 * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
5834
5835 2007-07-01 Andreas Schwab <schwab@suse.de>
5836
5837 * dwarf2out.c (initial_return_save): Define only if used.
5838
5839 2007-07-01 Kenneth Zadeck <zadeck@naturalbridge.com>
5840
5841 Unreverting Richard's Revert of:
5842
5843 2007-06-27 Richard Sandiford <richard@codesourcery.com>
5844
5845 * dce.c (deletable_insn_p_1): New function, split out from...
5846 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
5847 specially, not those inside PARALLELs. Remove BODY argument
5848 and adjust recursive call accordingly.
5849 (prescan_insns_for_dce): Update call to delete_insn_p.
5850
5851 2007-07-01 Vladimir Yanovsky <yanov@il.ibm.com>
5852 Revital Eres <eres@il.ibm.com>
5853
5854 * ddg.c (create_ddg_all_sccs): Fix missed
5855 initialization of scc_nodes.
5856
5857 2007-07-01 Uros Bizjak <ubizjak@gmail.com>
5858
5859 PR middle-end/32559
5860 * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
5861 X + ~X to 1 only for INTEGRAL_TYPE_P type.
5862
5863 2007-06-30 Joseph Myers <joseph@codesourcery.com>
5864
5865 * configure.ac: Check for .gnu_attribute on MIPS.
5866 * configure, config.in: Regenerate.
5867 * config/mips/mips.c (mips_file_start): If supported, output
5868 attribute for floating-point ABI.
5869
5870 2007-06-30 Uros Bizjak <ubizjak@gmail.com>
5871
5872 PR target/32433
5873 * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
5874 (ffs_cmove): New expander to expand using ctz pattern.
5875 (*ffs_cmove): Remove pattern.
5876 (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
5877 (ffsdi2): Expand using ctz pattern.
5878 (*ffs_rex64): Remove pattern.
5879
5880 2007-06-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5881
5882 PR rtl-optimization/32296
5883 * pa.md (return): Delete pattern.
5884 (return_internal): Remove "(const_int 1)" from pattern.
5885 (epilogue): Use return_internal pattern for trivial returns.
5886 * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
5887 * pa.c (hppa_can_use_return_insn_p): Delete function. Include "df.h".
5888
5889 2007-06-30 Daniel Berlin <dberlin@dberlin.org>
5890
5891 * tree-ssa-pre.c (is_exception_related): New function
5892 (can_value_number_operation): Use it.
5893
5894 2007-06-30 Daniel Berlin <dberlin@dberlin.org>
5895
5896 Fix PR tree-optimization/32540
5897 Fix PR tree-optimization/31651
5898
5899 * tree-ssa-sccvn.c: New file.
5900
5901 * tree-ssa-sccvn.h: Ditto.
5902
5903 * tree-vn.c: Include tree-ssa-sccvn.h
5904 (val_expr_paid_d): Removed.
5905 (value_table): Ditto.
5906 (vn_compute): Ditto.
5907 (val_expr_pair_hash): Ditto.
5908 (val_expr_pair_expr_eq): Ditto.
5909 (copy_vuses_from_stmt): Ditto.
5910 (vn_delete): Ditto.
5911 (vn_init): Ditto.
5912 (shared_vuses_from_stmt): Ditto.
5913 (print_creation_to_file): Moved up.
5914 (sort_vuses): Ditto.
5915 (sort_vuses_heap): Ditto.
5916 (set_value_handle): Make non-static.
5917 (make_value_handle): Ditto.
5918 (vn_add): Rewritten to use sccvn lookups.
5919 (vn_add_with_vuses): Ditto.
5920 (vn_lookup): Ditto (and second argument removed).
5921 (vn_lookup_with_vuses): Ditto.
5922 (vn_lookup_or_add): Ditto (and second argument removed);
5923 (vn_lookup_or_add_with_vuses): Ditto.
5924 (vn_lookup_with_stmt): New.
5925 (vn_lookup_or_add_with_stmt): Ditto.
5926 (create_value_handle_for_expr): Ditto.
5927
5928 * tree-ssa-pre.c: Include tree-ssa-sccvn.h.
5929 (seen_during_translate): New function.
5930 (phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
5931 (phi_trans_add): Ditto.
5932 (constant_expr_p): FIELD_DECL is always constant.
5933 (phi_translate_1): Renamed from phi_translate, add seen bitmap.
5934 Use constant_expr_p.
5935 Avoid infinite recursion on mutually valued expressions.
5936 Change callers of vn_lookup_or_add.
5937 (phi_translate): New function.
5938 (compute_antic_safe): Allow phi nodes.
5939 (create_component_ref_by_pieces): Update for FIELD_DECL change.
5940 (find_or_generate_expression): Rewrite slightly.
5941 (create_expression_by_pieces): Updated for vn_lookup_or_add
5942 change.
5943 Update VN_INFO for new names.
5944 (insert_into_preds_of_block): Update for new names.
5945 (add_to_exp_gen): New function.
5946 (add_to_sets): Use vn_lookup_or_add_with_stmt.
5947 (find_existing_value_expr): Rewrite to changed vn_lookup.
5948 (create_value_expr_from): Ditto, and use add_to_exp_gen.
5949 (try_look_through_load): Removed.
5950 (try_combine_conversion): Ditto.
5951 (get_sccvn_value): New function.
5952 (make_values_for_phi): Ditto.
5953 (make_values_for_stmt): Ditto.
5954 (compute_avail): Rewritten for vn_lookup_or_add changes and to use
5955 SCCVN.
5956 (init_pre): Update for SCCVN changes.
5957 (fini_pre): Ditto.
5958 (execute_pre): Ditto.
5959
5960 * tree-flow.h (make_value_handle): Declare.
5961 (set_value_handle): Ditto.
5962 (sort_vuses_heap): Ditto.
5963 (vn_lookup_or_add_with_stmt): Ditto.
5964 (vn_lookup_with_stmt): Ditto.
5965 (vn_compute): Remove.
5966 (vn_init): Ditto.
5967 (vn_delete): Ditto.
5968 (vn_lookup): Update arguments.
5969
5970 * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
5971 (tree-vn.o): Ditto.
5972 (tree-ssa-sccvn.o): New.
5973 (OBJS-common): Add tree-ssa-sccvn.o
5974
5975 2007-06-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5976
5977 PR c/4076
5978 * c-typeck.c (build_external_ref): Don't mark as used if called
5979 from itself.
5980 * calls.c (rtx_for_function_call): Likewise.
5981
5982 2007-06-30 Richard Sandiford <richard@codesourcery.com>
5983
5984 Revert:
5985
5986 2007-06-27 Richard Sandiford <richard@codesourcery.com>
5987
5988 * dce.c (deletable_insn_p_1): New function, split out from...
5989 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
5990 specially, not those inside PARALLELs. Remove BODY argument
5991 and adjust recursive call accordingly.
5992 (prescan_insns_for_dce): Update call to delete_insn_p.
5993
5994 2007-06-30 Rask Ingemann Lambertsen <rask@sygehus.dk>
5995
5996 * combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
5997 (try_combine): Move potential calls to undo_all() so they happen
5998 before we commit to using the combined insns.
5999
6000 2006-06-30 Jan Hubicka <jh@suse.cz>
6001
6002 * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
6003 code.
6004
6005 2006-06-30 Thomas Neumann <tneumann@users.sourceforge.net>
6006
6007 * ipa.c (cgraph_postorder): Cast according to the coding conventions.
6008 (cgraph_remove_unreachable_nodes): Likewise.
6009 * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
6010 * ipa-inline.c (update_caller_keys): Cast according to the coding
6011 conventions.
6012 (cgraph_decide_recursive_inlining): Likewise.
6013 (cgraph_decide_inlining_of_small_function): Likewise.
6014 (try_inline): Likewise.
6015 (cgraph_decide_inlining_incrementally): Likewise.
6016 * ipa-pure-const.c (get_function_state): Likewise.
6017 (scan_function): Likewise.
6018 (analyze_function): Likewise.
6019 (static_execute): Likewise.
6020 * ipa-reference.c (scan_for_static_refs): Likewise.
6021 (merge_callee_local_info): Likewise.
6022 (analyze_function): Use type safe memory macros.
6023 (static_execute): Likewise. Cast according to the coding conventions.
6024 * ipa-type-escape.c (scan_for_regs): Cast according to the coding
6025 conventions.
6026 * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
6027 names.
6028 (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
6029 * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
6030 variable names.
6031
6032 2007-06-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
6033
6034 PR middle-end/30024
6035 * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
6036 for complex modes (both int and real).
6037
6038 2007-06-29 Jan Hubicka <jh@suse.cz>
6039
6040 * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
6041
6042 2007-06-29 Jan Hubicka <jh@suse.cz>
6043
6044 PR middle-end/32372
6045 * cse.c (cse_insn): Avoid invalid sharing in between register note and
6046 the insn pattern.
6047
6048 2007-06-29 Anatoly Sokolov <aesok@post.ru>
6049
6050 PR target/32335
6051 * config/avr/avr.c: Include dataflow header file.
6052 (expand_prologue): Adjust for prologue insn change.
6053 * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
6054 inside a insn.
6055
6056 2007-06-29 Richard Guenther <rguenther@suse.de>
6057
6058 PR middle-end/32493
6059 * gimplify.c (gimplify_call_expr): Ignore variable argument parts
6060 during type verification.
6061
6062 2007-06-29 Jan Hubicka <jh@suse.cz>
6063
6064 * recog.c (validate_change_rtx_1): Unshare TO argument.
6065
6066 2007-06-29 Uros Bizjak <ubizjak@gmail.com>
6067
6068 PR tree-optimization/24659
6069 * tree-vect-transform.c (vectorizable_call): Handle
6070 (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
6071
6072 * config/i386/sse.md (vec_pack_sfix_v2df): New expander.
6073 * config/i386/i386.c (enum ix86_builtins)
6074 [IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
6075 (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
6076 description.
6077 (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
6078 const using def_builtin_const.
6079 (ix86_expand_binop_builtin): Remove bogus assert() that insn wants
6080 input operands in the same modes as the result.
6081 (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.
6082
6083 2007-06-29 Richard Sandiford <rsandifo@nildram.co.uk>
6084
6085 * df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
6086 (df_set_dead_notes_for_mw): Likewise.
6087
6088 2007-06-29 Eric Botcazou <ebotcazou@adacore.com>
6089
6090 * c-common.c (pointer_int_sum): Do the negation in sizetype.
6091
6092 2007-06-28 DJ Delorie <dj@redhat.com>
6093
6094 * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.
6095
6096 2007-06-28 Geoffrey Keating <geoffk@apple.com>
6097
6098 * doc/invoke.texi (C++ Dialect Options): Document
6099 fvisibility-ms-compat.
6100 * c.opt (fvisibility-ms-compat): New.
6101
6102 2007-06-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
6103
6104 PR tree-opt/32417
6105 * tree-affine.c (aff_combination_add_elt): Handle
6106 pointer addition specially.
6107
6108 2007-06-28 Jakub Jelinek <jakub@redhat.com>
6109
6110 * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
6111 decl is non-external for AIX ABI.
6112
6113 2007-06-28 David Edelsohn <edelsohn@gnu.org>
6114
6115 * config/rs6000/predicates.md (current_file_function_operand):
6116 Ensure the symbol is non-external for AIX ABI.
6117
6118 2007-06-28 Nick Clifton <nickc@redhat.com>
6119
6120 * common.opt (fipa-matrix-reorg): Add Optimization attribute.
6121 (fdce, fdse, fpredictive-commoning): Likewise.
6122
6123 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
6124
6125 PR other/31400
6126 * gcc.c (process_command): Recognize the new -static-libgfortran
6127 option.
6128
6129 2007-06-27 Rask Ingemann Lambertsen <rask@sygehus.dk>
6130
6131 PR target/32418
6132 * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix:
6133 Use a call clobbered hard reg instead of a pseudo reg.
6134
6135 2007-06-27 Kaz Kojima <kkojima@gcc.gnu.org>
6136
6137 * config/sh/sh.md (load_gbr): Use correct operand constraint.
6138
6139 2007-06-27 Kaz Kojima <kkojima@gcc.gnu.org>
6140
6141 PR target/32479
6142 * config/sh/sh.md (udivsi3): Don't wrap the sequence with
6143 REG_LIBCALL and REG_RETVAL notes.
6144 (divsi3, mulsi3): Likewise.
6145 (mulhisi3): Likewise. Use emit_libcall_block.
6146 (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.
6147
6148 2007-06-27 Seongbae Park <seongbae.park@gmail.com>
6149
6150 PR rtl-optimization/32481
6151 * combine.c (adjust_for_new_dest): Rescan the changed insn.
6152
6153 2007-06-27 Richard Sandiford <richard@codesourcery.com>
6154
6155 * dce.c (deletable_insn_p_1): New function, split out from...
6156 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
6157 specially, not those inside PARALLELs. Remove BODY argument
6158 and adjust recursive call accordingly.
6159 (prescan_insns_for_dce): Update call to delete_insn_p.
6160
6161 2007-06-27 Richard Guenther <rguenther@suse.de>
6162
6163 PR middle-end/32492
6164 * tree.h (fold_convertible_p): Declare.
6165 * fold-const.c (fold_convertible_p): New function.
6166 * gimplify.c (gimplify_call_expr): Use fold_convertible_p
6167 instead of lang_hooks.types_compatible_p.
6168
6169 2007-06-26 Jan Hubicka <jh@suse.cz>
6170
6171 * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
6172 * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
6173 early use validate_unshare_change.
6174 (reload_combine): Likewise.
6175 * recog.c (change_t): New field unshare.
6176 (validate_change_1): Rename from validate_change; add argument unshare.
6177 (validate_change): Turn into wrapper of validate_change_1; update
6178 prototype for bools.
6179 (validate_unshare_change): New.
6180 (confirm_change_group): Unshare changes if asked for; avoid unnecesary
6181 calls of df_insn_rescan.
6182 * recog.h (validate_change): Replace ints by bools.
6183 (validate_unshare_change): Declare.
6184
6185 2007-06-26 Kenneth Zadeck <zadeck@naturalbridge.com>
6186
6187 * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
6188
6189 2007-06-26 Steve Ellcey <sje@cup.hp.com>
6190
6191 * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
6192
6193 2007-06-25 Jan Hubicka <jh@suse.cz>
6194
6195 * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
6196 uninlinable call.
6197 (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
6198 cgraph_decide_inlining_incrementally): Move uninlinability checks to
6199 places other call site specific checks are performed.
6200
6201 2007-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
6202
6203 PR tree-opt/32421
6204 * tree-vect-transform.c (vectorizable_operation): Convert
6205 POINTER_PLUS_EXPR over to PLUS_EXPR.
6206
6207 2007-06-25 Chao-ying Fu <fu@mips.com>
6208
6209 * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
6210 UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
6211 Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
6212 Document GET_MODE_IBIT, and GET_MODE_FBIT.
6213
6214 * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
6215 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
6216 (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
6217 SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
6218 SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
6219 ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
6220 ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
6221 SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
6222 ALL_FIXED_POINT_MODE_P): New define.
6223 (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
6224 MODE_UACCUM.
6225 (GET_MODE_IBIT, GET_MODE_FBIT): New define.
6226
6227 * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
6228 MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
6229 MODE_VECTOR_UACCUM): New mode classes.
6230
6231 * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
6232 UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
6233 Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
6234 USA, UDA, and UTA.
6235
6236 * genmodes.c (struct mode_data): Add ibit and fbit fields.
6237 (blank_mode): Initialize ibit and fbit.
6238 (adj_ibit, adj_fbit): New to adjust ibit and fbit.
6239 (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
6240 MODE_UACCUM.
6241 (new_adjust): Change required_class to required_class_from and
6242 required_class_to for testing within a range.
6243 (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
6244 MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
6245 MODE_VECTOR_UACCUM.
6246 (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
6247 (make_fixed_point_mode): New.
6248 (_ADD_ADJUST): Change C to C1 and C2.
6249 (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
6250 use a range for machine classes.
6251 (ADJUST_IBIT, ADJUST_FBIT): New.
6252 (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
6253 CONST_MODE_FBIT.
6254 (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
6255 MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
6256 Emit adjustment for ibit and fbit.
6257 (emit_mode_ibit, emit_mode_fbit): New.
6258 (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
6259
6260 2007-06-25 Nathan Froyd <froydnj@codesourcery.com>
6261
6262 * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
6263 as the source of the set.
6264
6265 2007-06-25 Roman Zippel <zippel@linux-m68k.org>
6266
6267 * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
6268 FP_REGNO_P): Use IN_RANGE.
6269 (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
6270 (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
6271 (DATA_REG_P): Use DATA_REGNO_P.
6272 (FP_REG_P): Use FP_REGNO_P.
6273 (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
6274 * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
6275 REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
6276
6277 2007-06-24 Jan Hubicka <jh@suse.cz>
6278
6279 PR middle-end/30563
6280 * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
6281
6282 2007-06-24 Sebastian Pop <sebpop@gmail.com>
6283
6284 PR middle-end/32461
6285 * fold-const.c (fold_binary): Strip nops of operand 0
6286 of BIT_NOT_EXPR before calling operand_equal_p.
6287 * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
6288 * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
6289
6290 2007-06-23 Mark Mitchell <mark@codesourcery.com>
6291
6292 * doc/extend.texi: Document that dllimport and dllexport imply
6293 default visibility.
6294 * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
6295 imported or exported declaration, including type declarations.
6296 * c-common.c (handle_visibility_attribute): Check for conflicts
6297 with dllimport/dllexport.
6298 (c_determine_visibility): Handle dllimport/dllexport as an
6299 explicit visibility atttribute.
6300
6301 2007-06-23 Richard Guenther <rguenther@suse.de>
6302
6303 PR tree-optimization/16876
6304 PR middle-end/29478
6305 * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
6306 for CALL_EXPRs.
6307 * tree-inline.c (initialize_inlined_parameters): Do not call
6308 lang_hooks.tree_inlining.convert_parm_for_inlining.
6309 * cgraphbuild.c (initialize_inline_failed): Set inline failed
6310 reason for mismatched types.
6311 * gimplify.c (gimplify_call_expr): Verify the call expression
6312 arguments match the called function type signature. Otherwise
6313 mark the call expression to be not considered for inlining
6314 using CALL_CANNOT_INLINE_P flag.
6315 * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
6316 edges call expression.
6317 (cgraph_decide_inlining_of_small_function): Likewise.
6318 (cgraph_decide_inlining): Likewise.
6319 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
6320 Remove define.
6321 * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
6322 * c-typeck.c (c_convert_parm_for_inlining): Remove.
6323 * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
6324 Remove declaration.
6325 (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
6326 * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
6327 Remove.
6328 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
6329 convert_parm_for_inlining member.
6330
6331 2007-06-23 Richard Earnshaw <rearnsha@arm.com>
6332
6333 PR target/31152
6334 * arm.md (negscc): Match the correct operand for optimized LT0 test.
6335 Remove optimization for GT.
6336
6337 2007-06-23 Kenneth Zadeck <zadeck@naturalbridge.com>
6338
6339 PR middle-end/32437
6340 * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
6341 is a PARALLEL.
6342 (prescan_insns_for_dce): Add extra parameter.
6343
6344 2007-06-23 Jan Hubicka <jh@suse.cz>
6345
6346 PR middle-end/31541
6347 * gimplify.c (mark_addressable): New function.
6348 (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
6349
6350 2007-06-22 Uros Bizjak <ubizjak@gmail.com>
6351
6352 PR middle-end/32374
6353 * expr.c (store_constructor): Do not clobber non-zeroed memory.
6354
6355 2007-06-22 Uros Bizjak <ubizjak@gmail.com>
6356
6357 PR target/32413
6358 * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
6359 moves between MMX/SSE registers to at least 8 units to prevent
6360 ICE caused by non-tieable SI/HI/QImodes in SSE registers.
6361
6362 2007-06-22 Uros Bizjak <ubizjak@gmail.com>
6363
6364 * config/i386/i386.c (override_options): Correct x86_sahf
6365 setting condition.
6366
6367 2007-06-21 David Daney <ddaney@avtrex.com>
6368
6369 PR target/32406
6370 * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
6371 to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
6372 (exception_receiver): Renamed to ...
6373 (nonlocal_goto_receiver): ... this.
6374
6375 2007-06-22 Roman Zippel <zippel@linux-m68k.org>
6376
6377 * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
6378 (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
6379 partial register accesses.
6380
6381 2007-06-21 Adam Nemet <anemet@caviumnetworks.com>
6382
6383 * fold-const.c (debug_fold_checksum): Move it under
6384 ENABLE_FOLD_CHECKING.
6385
6386 2007-06-21 Sebastian Pop <sebpop@gmail.com>
6387
6388 PR middle-end/20623
6389 * tree.h (debug_fold_checksum): Declared.
6390 * fold-const.c (build_fold_addr_expr_with_type_1): New.
6391 (build_fold_addr_expr_with_type, build_fold_addr_expr): Use
6392 build_fold_addr_expr_with_type_1.
6393 (fold_addr_expr, debug_fold_checksum): New.
6394 (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
6395 (fold_unary, fold_comparison, split_address_to_core_and_offset):
6396 Use fold_addr_expr.
6397
6398 2007-06-21 Sebastian Pop <sebpop@gmail.com>
6399
6400 PR tree-optimization/19590
6401 * tree-vrp.c (adjust_range_with_scev): Set the range when the result
6402 of scev is a constant.
6403 * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
6404
6405 2007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
6406
6407 * df-problems.c (df_note_bb_compute): Made computation of live
6408 info consistent with df_lr.
6409
6410 2007-06-21 Richard Guenther <rguenther@suse.de>
6411
6412 PR tree-optimization/32453
6413 * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
6414 for pointer anti-range.
6415
6416 2007-06-21 H.J. Lu <hongjiu.lu@intel.com>
6417
6418 * config/i386/i386.c (processor_target_table): Increase maximum
6419 skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
6420 default 64bit.
6421
6422 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
6423 byte alignment if > 8 byte alignment is preferred.
6424 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
6425
6426 2007-06-21 Jakub Jelinek <jakub@redhat.com>
6427
6428 PR tree-optimization/31866
6429 * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
6430 if ASM_EXPR's input is not a SSA_NAME.
6431
6432 PR middle-end/32362
6433 * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
6434 but decl is a global var, instead return decl.
6435 * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
6436 even for is_global_var decls, if they are private in some outer
6437 context.
6438
6439 2007-06-21 Richard Guenther <rguenther@suse.de>
6440
6441 PR tree-optimization/32451
6442 * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
6443
6444 2007-06-21 Christian Bruel <christian.bruel@st.com>
6445
6446 * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
6447 * config/sh/sh.c (sh_loads_bankedreg_p): New function.
6448 (push_regs): Changed saving order or banked registers.
6449 (sh_expand_epilogue): Likewise.
6450 * config/sh/sh.h (BANKED_REGISTER_P): New macro.
6451 (FIRST_BANKED_REG): Likewise.
6452 (LAST_BANKED_REG): Likewise.
6453 * config/sh/sh.md (banked) New attribute.
6454 (in_delay_slot): Check banked attribute.
6455
6456 2007-06-20 Sebastian Pop <sebpop@gmail.com>
6457
6458 PR tree-optimization/32075
6459 * tree-data-ref.c (subscript_dependence_tester_1,
6460 analyze_miv_subscript, analyze_overlapping_iterations,
6461 add_distance_for_zero_overlaps, build_classic_dist_vector,
6462 subscript_dependence_tester_1, analyze_overlapping_iterations,
6463 subscript_dependence_tester, access_functions_are_affine_or_constant_p,
6464 compute_affine_dependence, compute_all_dependences): Pass loop_nest
6465 to evolution_function_is_affine_multivariate_p.
6466
6467 2007-06-20 Eric Botcazou <ebotcazou@libertysurf.fr>
6468
6469 * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
6470
6471 2007-06-20 Rask Ingemann Lambertsen <rask@sygehus.dk>
6472
6473 PR target/32335
6474 * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
6475 for TARGET_A16.
6476 * config/m32c/prologue.md (epilogue_exitd_16): New.
6477 (epilogue_reit_16): New.
6478 (epilogue_exitd): Rename to epilogue_exitd_24.
6479 (epilogue_reit): Rename to epilogue_reit_24.
6480
6481 2007-06-20 Seongbae Park <seongbae.park@gmail.com>
6482 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6483
6484 * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
6485 New counters.
6486 * haifa-sched.c (queue_to_ready): Don't requeue next insn
6487 if dbg_cnt (sched_insn) reaches the limit.
6488 (choose_ready): New parameter INSN_PTR and new return value.
6489 (schedule_block): Handle dbg_cnt (sched_insn). Handle
6490 the new return value from choose_ready.
6491 * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
6492 (rest_of_handle_global_alloc): New global_alloc_at_func.
6493
6494 2007-06-20 Adam Nemet <anemet@caviumnetworks.com>
6495
6496 PR tree-optimization/25737
6497 * tree.h (struct tree_struct_field_tag): Add new field alias_set.
6498 (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
6499 * tree-flow.h (struct fieldoff): Add new field alias_set.
6500 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
6501 argument addressable_type. Set alias_set of fieldoff.
6502 * tree-ssa-alias.c (create_sft): Add new argument alias_set.
6503 (create_overlap_variables_for): Pass alias_set from fieldoff to
6504 create_sft.
6505 * alias.c (get_alias_set): Use alias_set from SFT if set.
6506
6507 2007-06-20 Hui-May Chang <hm.chang@apple.com>
6508
6509 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
6510 of a variable as an unsigned HOST_WIDE_INT integer.
6511
6512 2007-06-20 Zdenek Dvorak <dvorakz@suse.cz>
6513
6514 PR rtl-optimization/32405
6515 * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
6516
6517 2007-06-20 Jakub Jelinek <jakub@redhat.com>
6518
6519 * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
6520
6521 PR middle-end/31959
6522 * builtins.c: Include diagnostic.h.
6523 (expand_builtin_expect): Make gcc_assert more permissive.
6524 * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
6525
6526 PR inline-asm/32109
6527 * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
6528 and !allows_mem.
6529
6530 PR middle-end/32285
6531 * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
6532 if ACCUMULATE_OUTGOING_ARGS.
6533
6534 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
6535
6536 * config/m68hc11/m68hc11.c: Include dataflow header file.
6537 (m68hc11_reorg): Port to dataflow.
6538
6539 2007-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
6540
6541 * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
6542 (struct df_problem.free_blocks_on_set_blocks): New field.
6543 (struct dataflow.optional_p): New field.
6544 (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
6545 (df_live_set_all_dirty): New function.
6546 * df-scan.c (df_scan_alloc): Initialize optional_p.
6547 (problem_SCAN): Initialize free_blocks_on_set_blocks.
6548 * df-core.c (df_set_blocks): Removed use of
6549 DF_FIRST_OPTIONAL_PROBLEM. Now uses
6550 df_problem.free_blocks_on_set_blocks to determine which blocks are
6551 recycled.
6552 (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
6553 (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now
6554 uses dataflow.optional_p to determine if problem should be
6555 deleted.
6556 (rest_of_handle_df_initialize): Only start live problem if
6557 -02 or above.
6558 (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
6559 * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
6560 df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
6561 (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
6562 problem_NOTE): Initialize free_blocks_on_set_blocks.
6563 (df_lr_bb_local_compute): Recompute luids if df_live problem is
6564 not active.
6565 (df_live_set_all_dirty, df_note_alloc): New function.
6566 * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
6567 df_get_live_*.
6568 * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
6569 * postreload.c (reload_combine): Ditto.
6570 * cse.c (cse_extended_basic_block): Ditto.
6571 * regmove.c (mark_flags_life_zones): Ditto.
6572 * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
6573 erase_matching_seqs): Ditto.
6574 * bt-load.c (compute_defs_uses_and_gen): Ditto.
6575 * integrate (allocate_initial_values): Ditto.
6576 * combine.c (reg_dead_at_p): Ditto.
6577 * resource.c (mark_target_live_regs): Ditto.
6578 * sched-rgn.c (check_live_1, update_live_1): Ditto.
6579 * config/sh/sh.c (find_r0_life_regions): Ditto.
6580 * global.c (rest_of_handle_global_alloc): Only add back df_live
6581 for -O > 1.
6582 * local-alloc.c (rest_of_handle_local_alloc): Only remove
6583 df_live for -O > 1.
6584 * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
6585 df_get_live_*.
6586 (if_convert): Make sure df_live is there at -O == 1.
6587 (pass_if_after_combine): Cleanup flags.
6588 * init-regs.c (initialize_uninitialized_regs): Make sure df_live
6589 is there at -O == 1.
6590
6591 2007-06-19 Seongbae Park <seongbae.park@gmail.com>
6592
6593 * config/arm/arm.c (arm_get_frame_offsets): Set
6594 offsets->locals_base to avoid negative stack size.
6595 (thumb1_expand_prologue): Assert on negative stack size.
6596
6597 2007-06-19 Sebastian Pop <sebpop@gmail.com>
6598
6599 PR tree-optimization/32367
6600 * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side
6601 of the chrec has no evolution in that loop.
6602 * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
6603
6604 2007-06-19 Bob Wilson <bob.wilson@acm.org>
6605
6606 * config/xtensa/xtensa.c: Include "df.h".
6607 (xtensa_builtin_saveregs): Use adjust_address instead of
6608 change_address.
6609 (xtensa_va_start): Invoke make_tree with sizetype for
6610 expand_builtin_saveregs and then convert the result to a pointer.
6611 Use POINTER_PLUS_EXPR. Use size_int instead of build_int_cst.
6612 (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
6613 Subtract argument size from index value as integers and then use
6614 POINTER_PLUS_EXPR to add the result to the array address.
6615
6616 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
6617
6618 PR target/32335
6619 * config/m32c/m32c.c: Include dataflow header file.
6620 (m32c_emit_prologue): Adjust for prologue insn change.
6621 * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
6622 once inside a PARALLEL. Assume frame size passed in operand 0
6623 includes space to save the fb register.
6624 (prologue_enter_24): Likewise.
6625 (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
6626
6627 2007-06-19 David Daney <ddaney@avtrex.com
6628
6629 PR target/32313
6630 * config/mips/mips.md (cprestore): Mark $gp as used.
6631
6632 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
6633
6634 PR target/32369
6635 * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
6636 (frv_ifcvt_modify_insn): Likewise.
6637
6638 2007-06-19 Richard Guenther <rguenther@suse.de>
6639
6640 * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
6641 only handle positive offsets that fit in a HOST_WIDE_INT.
6642
6643 2007-06-19 Uros Bizjak <ubizjak@gmail.com>
6644
6645 * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
6646 result of rsqrt insn for zero input argument to avoid NaN.
6647
6648 2007-06-19 Richard Guenther <rguenther@suse.de>
6649
6650 PR middle-end/31950
6651 * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
6652
6653 2007-06-19 Jakub Jelinek <jakub@redhat.com>
6654
6655 PR tree-optimization/32353
6656 * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
6657
6658 2007-06-19 Nick Clifton <nickc@redhat.com>
6659
6660 * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
6661
6662 2007-06-18 Uros Bizjak <ubizjak@gmail.com>
6663
6664 PR target/32389
6665 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
6666 * config/i386/i386.c (assign_386_stack_local): Assert that
6667 SLOT_VIRTUAL is valid only before virtual regs are instantiated.
6668 (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
6669 Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
6670 * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
6671
6672 2007-06-18 Steve Ellcey <sje@cup.hp.com>
6673
6674 * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
6675
6676 2007-06-18 Seongbae Park <seongbae.park@gmail.com>
6677
6678 PR rtl-optimization/32321
6679 * gcse.c (replace_store_insn): Update the note before
6680 calling emit_insn_after.
6681
6682 2007-06-18 Kenneth Zadeck <zadeck@naturalbridge.com>
6683
6684 PR middle-end/32355
6685 * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
6686 cse_main.
6687 * df-problems.c (df_note_bb_compute): Fix dumping info.
6688
6689 2007-06-18 Kazu Hirata <kazu@codesourcery.com>
6690
6691 * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
6692 insn with emit_jump_insn.
6693
6694 2007-06-18 Uros Bizjak <ubizjak@gmail.com>
6695
6696 PR tree-optimization/32383
6697 * targhooks.c (default_builtin_reciprocal): Add new bool argument.
6698 * targhooks.h (default_builtin_reciprocal): Update prototype.
6699 * target.h (struct gcc_target): Update builtin_reciprocal.
6700 * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
6701 * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
6702 where arg1 is not SSA_NAME. Pass true to targetm.builtin_reciprocal
6703 when fndecl is in BUILT_IN_MD class.
6704 (execute_convert_to_rsqrt): Ditto.
6705
6706 * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
6707 argument. Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
6708 Convert BUILT_IN_SQRTF code only when md_fn is false.
6709
6710 2007-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
6711
6712 * bt-load.c (move_btr_def): Fix the order of arguments
6713 to validate_replace_rtx.
6714
6715 2007-06-18 Nathan Sidwell <nathan@codesourcery.com>
6716
6717 * config/m68k/m68k-devices.def: Add 54450..54455.
6718
6719 2007-06-17 Uros Bizjak <ubizjak@gmail.com>
6720
6721 PR rtl-optimization/32366
6722 * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
6723 FLOAT_EXTEND]: Prevent non-scalar modes from entering
6724 significand_size.
6725
6726 2007-06-17 Kenneth Zadeck <zadeck@naturalbridge.com>
6727
6728 PR middle-end/32349
6729 * modulo-sched (generate_reg_moves): Added rescan parameter and if
6730 this is true, rescan insn being modified.
6731 (sms_schedule): Added rescan parameter.
6732 (rest_of_handle_sms): Moved freeing of dominance info to before
6733 getting out of cfg_layout.
6734
6735 2007-06-17 Nathan Sidwell <nathan@codesourcery.com>
6736
6737 * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
6738 * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
6739 appropriate.
6740
6741 * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
6742 FL_CF_EMAC from the entry for isac.
6743
6744 * config/m68k/predicates.md (const_call_operand): Adjust comment.
6745 (const_sibcall_operand): New.
6746 (sibcall_operand): Use it.
6747 * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
6748 (m68k_isas): ISAC does not imply FPU or EMAC.
6749 (override_options): Add ISA_C logic for symbolic jump & call.
6750
6751 2007-06-17 Eric Botcazou <ebotcazou@libertysurf.fr>
6752
6753 * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
6754 return mode from the builtin itself.
6755 (sparc_fold_builtin): Fix cast of zero constant.
6756
6757 2007-06-16 Uros Bizjak <ubizjak@gmail.com>
6758
6759 * targhooks.c (default_builtin_reciprocal): New default target hook.
6760 * targhooks.h (default_builtin_reciprocal): Add prototype.
6761 * hooks.c (hook_tree_tree_bool_null): Remove hook.
6762 * hooks.h (hook_tree_tree_bool_null): Remove prototype.
6763 * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
6764 default_builtin_reciprocal.
6765
6766 2007-06-16 Uros Bizjak <ubizjak@gmail.com>
6767
6768 PR middle-end/31723
6769 * hooks.c (hook_tree_tree_bool_null): New hook.
6770 * hooks.h (hook_tree_tree_bool_null): Add prototype.
6771 * tree-pass.h (pass_convert_to_rsqrt): Declare.
6772 * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
6773 * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
6774 and convert it to reciprocal a*rfunc(b).
6775 (execute_convert_to_rsqrt): New function.
6776 (gate_convert_to_rsqrt): New function.
6777 (pass_convert_to_rsqrt): New pass definition.
6778 * target.h (struct gcc_target): Add builtin_reciprocal.
6779 * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
6780 (TARGET_INITIALIZER): Initialize builtin_reciprocal with
6781 TARGET_BUILTIN_RECIPROCAL.
6782 * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
6783
6784 * config/i386/i386.h (TARGET_RECIP): New define.
6785 * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
6786 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
6787 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
6788 and not optimizing for size.
6789 (*rcpsf2_sse): New insn pattern.
6790 (*rsqrtsf2_sse): Ditto.
6791 (rsqrtsf2): New expander. Expand by calling ix86_emit_swsqrtsf
6792 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
6793 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
6794 and not optimizing for size.
6795 (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
6796 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
6797 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
6798 and not optimizing for size.
6799 * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
6800 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
6801 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
6802 and not optimizing for size.
6803 (*sse_rsqrtv4sf2): Do not export.
6804 (sqrtv4sf2): Ditto.
6805 (sse_rsqrtv4sf2): New expander. Expand by calling ix86_emit_swsqrtsf
6806 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
6807 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
6808 and not optimizing for size.
6809 (sqrtv4sf2): Ditto.
6810 * config/i386/i386.opt (mrecip): New option.
6811 * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
6812 (ix86_emit_swsqrtsf): Ditto.
6813 * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
6814 (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
6815 builtin definition.
6816 (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
6817 ix86_expand_unop1_builtin.
6818 (ix86_emit_swdivsf): New function.
6819 (ix86_emit_swsqrtsf): Ditto.
6820 (ix86_builtin_reciprocal): New function.
6821 (TARGET_BUILTIN_RECIPROCAL): Use it.
6822 (ix86_vectorize_builtin_conversion): Rename from
6823 ix86_builtin_conversion.
6824 (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
6825 * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
6826 "i386 and x86_64 Options" section.
6827 (Intel 386 and AMD x86_64 Options): Document -mrecip.
6828
6829 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
6830 Zdenek Dvorak <dvorakz@suse.cz>
6831 Richard Guenther <rguenther@suse.de>
6832 Kaz Kojima <kkojima@gcc.gnu.org>
6833
6834 * tree-vrp.c (compare_values_warnv): Convert val2 to
6835 the type of val1.
6836 (extract_range_from_assert): Create
6837 POINTER_PLUS_EXPR for pointer types.
6838 (extract_range_from_binary_expr): Handle
6839 only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
6840 for pointer types.
6841 * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
6842 * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
6843 POINTER_PLUS_EXPR as PLUS_EXPR.
6844 (number_of_iterations_lt_to_ne):
6845 For pointer types, use sizetype when
6846 creating MINUS_EXPR/PLUS_EXPRs.
6847 (assert_loop_rolls_lt): For pointer types, use sizetype when
6848 creating MINUS_EXPR/PLUS_EXPRs.
6849 (number_of_iterations_le): Likewise.
6850 (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
6851 (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
6852 like PLUS_EXPR and MINUS_EXPR.
6853 * tree-pretty-print.c (dump_generic_node): Handle
6854 POINTER_PLUS_EXPR.
6855 (op_prio): Likewise.
6856 (op_symbol_1): Likewise.
6857 * optabs.c (optab_for_tree_code): Likewise.
6858 * tree-ssa-loop-manip.c (create_iv): Handle pointer base
6859 specially.
6860 * tree-tailcall.c (process_assignment): Mention
6861 POINTER_PLUS_EXPR in a TODO comment.
6862 * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or
6863 MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
6864 not used with a pointer and an integer type.
6865 * tree-scalar-evolution.c (add_to_evolution_1): Convert the
6866 increment using chrec_convert_rhs instead of chrec_convert.
6867 (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
6868 PLUS_EXPR except for the right hand side's type will be
6869 sizetype.
6870 (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
6871 (fold_used_pointer_cast): Kill.
6872 (pointer_offset_p): Kill.
6873 (fold_used_pointer): Kill.
6874 (pointer_used_p): Kill.
6875 (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
6876 call fold_used_pointer.
6877 (instantiate_parameters_1): Convert the increment
6878 using chrec_convert_rhs instead of chrec_convert.
6879 Handle POINTER_PLUS_EXPR as PLUS_EXPR.
6880 * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
6881 instead of PLUS_EXPR.
6882 (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
6883 PLUS_EXPR for pointers.
6884 (std_gimplify_va_arg_expr): Likewise.
6885 (fold_builtin_memory_op): Likewise.
6886 (fold_builtin_strstr): Likewise.
6887 (fold_builtin_strchr): Likewise.
6888 (fold_builtin_strrchr): Likewise.
6889 (fold_builtin_strpbrk): Likewise.
6890 (expand_builtin_memory_chk): Likewise.
6891 (fold_builtin_memory_chk): Likewise.
6892 (std_expand_builtin_va_start): Use
6893 sizetype for the call to make_tree and then convert
6894 to the pointer type.
6895 (fold_builtin_memchr): Use POINTER_PLUS_EXPR
6896 instead of PLUS_EXPR for adding to a pointer.
6897 (std_gimplify_va_arg_expr): Use fold_build2 for
6898 the creating of POINTER_PLUS_EXPR. For the BIT_AND_EXPR, cast
6899 the operands to sizetype first and then cast the BIT_AND_EXPR
6900 back to the pointer type.
6901 * fold-const.c (build_range_check): Handle pointer types
6902 specially.
6903 (extract_array_ref): Look for POINTER_PLUS_EXPR instead
6904 of PLUS_EXPR's. Make sure the offset is converted to
6905 sizetype.
6906 (try_move_mult_to_index): Strip the NOPs from the offset.
6907 Remove code argument and replace all uses with PLUS_EXPR.
6908 (fold_to_nonsharp_ineq_using_bound): Handle pointer types
6909 specially. Don't use a pointer type for MINUS_EXPR.
6910 (fold_unary): Handle for (T1)(X op Y),
6911 only p+ as that is the only as that can be handled for
6912 binary operators now.
6913 (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
6914 POINTER_PLUS_EXPR.
6915 <case PLUS_EXPR>: Add folding of PTR+INT into
6916 PTR p+ INT.
6917 Don't call try_move_mult_to_index.
6918 <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
6919 into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
6920 (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
6921 Don't call try_move_mult_to_index.
6922 (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
6923 (tree_expr_nonzero_p): Likewise.
6924 (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
6925 of PLUS_EXPR for the complex expression folding.
6926 * tree-chrec.c (chrec_fold_plus_poly_poly): If the
6927 first chrec is a pointer type, then the second should
6928 be sizetype and not the first's type.
6929 For POINTER_PLUS_EXPR, use a different right hand side type.
6930 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
6931 (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
6932 different right hand side type.
6933 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
6934 (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
6935 instead of PLUS_EXPR.
6936 When either operand is zero, convert the other operand.
6937 (chrec_apply): Use chrec_convert_rhs
6938 on the argument x instead of chrec_convert.
6939 (reset_evolution_in_loop): For pointer types, the new_evol
6940 should be sizetype.
6941 (convert_affine_scev): For POINTER_PLUS_EXPR, use a
6942 different right hand side type.
6943 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
6944 (chrec_convert_rhs): New function.
6945 (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
6946 different right hand side type.
6947 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
6948 * tree-chrec.h (chrec_convert_rhs): New prototype.
6949 (build_polynomial_chrec): For pointer types, the right hand
6950 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
6951 POINTER_PLUS_EXPR instead of PLUS_EXPR's.
6952 Remove subtraction case as it is always addition now.
6953 Make sure the offset is converted to sizetype.
6954 (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
6955 Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
6956 * tree-ssa-loop-ivopts.c (determine_base_object): Abort for
6957 PLUS_EXPR in pointer type.
6958 Handle POINTER_PLUS_EXPR.
6959 (tree_to_aff_combination): Likewise.
6960 (force_expr_to_var_cost): Likewise.
6961 (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
6962 instead of PLUS_EXPR for pointers.
6963 * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
6964 instead of PLUS_EXPR of pointer types.
6965 * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
6966 as PLUS_EXPR.
6967 (check_va_list_escapes): Likewise.
6968 (check_all_va_list_escapes): Likewise.
6969 * dwarf2out.c (loc_descriptor_from_tree_1):
6970 Handle POINT_PLUS_EXPR as a PLUS_EXPR.
6971 * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
6972 (string_constant): Likewise.
6973 * tree-ssa-address.c (tree_mem_ref_addr): When adding
6974 the offset to the base, use POINTER_PLUS_EXPR.
6975 (add_to_parts): Convert the index to sizetype.
6976 (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
6977 * matrix-reorg.c (collect_data_for_malloc_call): Stmt
6978 will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
6979 Offset only holds something for PLUS_EXPR.
6980 (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
6981 a PLUS_EXPR.
6982 (analyze_transpose): POINTER_PLUS_EXPR will only show up now
6983 and not PLUS_EXPR.
6984 (analyze_accesses_for_modify_stmt): Likewise.
6985 Remove comment about the type being integral type as it is
6986 wrong now.
6987 (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
6988 PLUS_EXPR.
6989 (transform_access_sites): POINTER_PLUS_EXPR will only show up now
6990 and not PLUS_EXPR.
6991 Correct the type which the artimentic is done in (is now
6992 sizetype).
6993 Reindent one loop.
6994 * tree-data-ref.c (split_constant_offset): Handle
6995 POINTER_PLUS_EXPR
6996 * tree-affine.c (tree_to_aff_combination): Likewise.
6997 * c-typeck.c (build_unary_op): For pointers create the increment
6998 as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
6999 for pointers.
7000 * gimplify.c (gimplify_self_mod_expr): Create a
7001 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
7002 (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
7003 * tree.def (POINTER_PLUS_EXPR): New tree code.
7004 * tree-predcom.c (ref_at_iteration): If we have a pointer
7005 type do the multiplication in sizetype.
7006 * tree-mudflap.c (mf_xform_derefs_1): Create a
7007 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
7008 * tree-ssa-forwprop.c
7009 (forward_propagate_addr_into_variable_array_index):
7010 Don't expect there to be a cast for the index as that
7011 does not exist anymore.
7012 (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
7013 instead of PLUS_EXPR.
7014 Don't check for the first operand of the POINTER_PLUS_EXPR
7015 was the index as it cannot be.
7016 Call forward_propagate_addr_into_variable_array_index with
7017 the SSA_NAME instead of the statement.
7018 * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
7019 (compare_constant): Likewise.
7020 (copy_constant): Likewise.
7021 (compute_reloc_for_constant): Likewise.
7022 (output_addressed_constants): Likewise.
7023 (initializer_constant_valid_p): Likewise.
7024 * tree-ssa.c (tree_ssa_useless_type_conversion_1):
7025 Convert the MIN/MAX of the inner type to the outer
7026 type before comparing them.
7027 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle
7028 POINTER_PLUS_EXPR instead of PLUS_EXPR.
7029 (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
7030 of PLUS_EXPR for pointers.
7031 * tree-inline.c (estimate_num_insns_1): Handle
7032 POINTER_PLUS_EXPR.
7033 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
7034 Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
7035 (bump_vector_ptr): Create a POINTER_PLUS_EXPR
7036 instead of PLUS_EXPR for the pointer increment statement.
7037 (vect_update_ivs_after_vectorizer): For pointer types, create
7038 POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
7039 MULT_EXPR in sizetype.
7040 (vect_gen_niters_for_prolog_loop): Add a cast when creating
7041 byte_misalign.
7042 * tree-object-size.c (plus_expr_object_size): Handle
7043 POINTER_PLUS_EXPR instead of PLUS_EXPR. Removing all the extra
7044 code which is trying to figure out which side is a pointer and
7045 is the index.
7046 (check_for_plus_in_loops_1): Likewise.
7047 (check_for_plus_in_loops): Likewise.
7048 * c-common.c (pointer_int_sum): Create a
7049 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
7050 * tree-ssa-structalias.c (handle_ptr_arith): Handle
7051 only POINTER_PLUS_EXPR. Removing all the extra
7052 code which is trying to figure out which side is a pointer and
7053 is the index.
7054 * tree-cfg.c (verify_expr): Add extra checking for pointers and
7055 PLUS_EXPR and MINUS_EXPR.
7056 Also add checking to make sure the operands of POINTER_PLUS_EXPR
7057 are correct.
7058 * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
7059 with make_tree, instead of a pointer type.
7060 * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
7061 for pointers instead of PLUS_EXPR.
7062 (s390_gimplify_va_arg): Likewise.
7063 * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
7064 instead of PLUS_EXPR when doing addition on pointer
7065 types. Use sizetype for the second operand.
7066 (spu_gimplify_va_arg_expr): Likewise.
7067 * config/sparc/sparc.c (sparc_gimplify_va_arg): Use
7068 POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
7069 a pointer. Don't create a BIT_AND_EXPR for pointer types.
7070 * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
7071 for the pointer addition and also use size_int/sizetype
7072 for the offset.
7073 (ix86_gimplify_va_arg): Likewise.
7074 Perform BIT_AND_EXPR on sizetype arguments.
7075 * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
7076 and convert its result to a pointer type. Use POINTER_PLUS_EXPR
7077 for the pointer additions and also use size_int for the offsets.
7078 (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
7079 additions and also use size_int for the offsets. Perform
7080 BIT_AND_EXPR on sizetype arguments.
7081 * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
7082 POINTER_PLUS_EXPR for pointers and create the
7083 BIT_AND_EXPR in sizetype.
7084 * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
7085 instead of PLUS_EXPR for pointer addition.
7086 (rs6000_va_start): Likewise.
7087 Also use sizetype for the offset.
7088 * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
7089 as PLUS_EXPR/MINUS_EXPR.
7090 (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
7091 PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
7092 Don't use BIT_AND_EXPR on a pointer type, convert the
7093 expression to sizetype first.
7094 * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
7095 for pointers.
7096 (mips_gimplify_va_arg_expr): Likewise.
7097 Don't create BIT_AND_EXPR in a pointer type.
7098
7099 2007-06-15 Eric Christopher <echristo@apple.com>
7100
7101 * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
7102 (x86_64-*-darwin*): Ditto.
7103 * config/i386/darwin.h (CRTEND_SPEC): New. Add support
7104 for above.
7105
7106 2007-06-15 Matthew Wilcox <matthew@wil.cx>
7107
7108 * doc/extend.texi: Document behavior of __attribute__((aligned))
7109 on typedefs.
7110
7111 2007-06-15 Mark Mitchell <mark@codesourcery.com>
7112
7113 * rtlanal.c (note_stores): Improve documentation.
7114
7115 2007-06-15 Bernd Schmidt <bernd.schmidt@analog.com>
7116
7117 * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
7118 LOCAL_LABEL_PREFIX): Delete.
7119 * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
7120 (bfin_internal_label): Delete.
7121
7122 2007-06-15 Uros Bizjak <ubizjak@gmail.com>
7123
7124 * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
7125 define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
7126 otherwise define to LIBGCC2_TF_CEXT.
7127 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
7128 (LIBGCC_TF_CEXT): Ditto.
7129 (TF_SIZE): Ditto.
7130
7131 2007-06-14 Seongbae Park <seongbae.park@gmail.com>
7132
7133 PR rtl-optimization/32339
7134 * df-scan.c (df_uses_record): Don't modify flags but just add to
7135 it for df_ref_record.
7136
7137 2007-06-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
7138
7139 * tree-mudflap.c: Fix whitespace issues.
7140
7141 2007-06-15 Kazu Hirata <kazu@codesourcery.com>
7142
7143 * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
7144
7145 2007-06-14 Eric Christopher <echristo@apple.com>
7146
7147 * config/i386/sse.md (movdi_to_sse): Rewrite body.
7148 (movv4sf): Use gcc_unreachable instead of abort.
7149
7150 2007-06-14 Uros Bizjak <ubizjak@gmail.com>
7151
7152 PR target/32268
7153 * config/i386/sfp-machine.h (CMPtype): New define.
7154 (mach stubs): Use CMPtype instead of int as a return type.
7155
7156 2007-06-14 Uros Bizjak <ubizjak@gmail.com>
7157
7158 * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
7159 config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
7160 config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
7161 config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
7162 config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
7163 config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
7164 config/soft-fp/soft-fp.h: Update from glibc CVS.
7165
7166 2007-06-14 Bernd Schmidt <bernd.schmidt@analog.com>
7167
7168 * config/bfin/uclinux.h (MFWRAP_SPEC): New.
7169
7170 2007-06-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
7171
7172 PR target/32341
7173 * config/v850/v850.c: Include dataflow header file.
7174 (substitute_ep_register): Fix typo.
7175
7176 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
7177
7178 * configure.ac: Fix earlier checkin.
7179 * configure: Regenerated.
7180
7181 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
7182
7183 * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
7184 * aclocal.m4: Regenerate.
7185 * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
7186 ACX_PROG_CC_WARNINGS_ARE_ERRORS,
7187 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
7188 * configure: Regenerate.
7189 * Makefile.in (LOOSE_WARN): Subst loose_warn.
7190
7191 * Makefile.in (quickstrap): Build libgcc too.
7192
7193 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
7194
7195 * configure.ac: Add --enable-checking=df. Explicitly mention that
7196 the variables are initialized as for "release".
7197 * df-core.c: Use it.
7198 * configure: Regenerate.
7199 * config.in: Regenerate.
7200
7201 2007-06-14 Bob Wilson <bob.wilson@acm.org>
7202
7203 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
7204 validate_replace_rtx instead of replace_rtx.
7205 (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
7206
7207 2007-06-14 Danny Smith <dannysmith@users.sourceforge.net>
7208
7209 * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
7210 (DWARF2_UNWIND_INFO): Override default if configured with
7211 SJLJ EH disabled.
7212 * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
7213 (ENDFILE_SPEC): Add crtend.o.
7214 * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
7215 (ENDFILE_SPEC): Add crtend.o.
7216 (TARGET_USE_JCR_SECTION): Define.
7217 (MD_UNWIND_SUPPORT): Define for 32-bit target.
7218
7219 * config/i386/cygming-crtbegin.c: New file.
7220 * config/i386/cygming-crtend.c: New file.
7221
7222 2007-06-14 Pascal Obry Pascal Obry <obry@adacore.com>
7223
7224 * config/i386/w32-unwind.h: New file.
7225
7226 2007-06-13 Eric Christopher <echristo@apple.com>
7227
7228 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
7229 the user set a value below STACK_BOUNDARY.
7230
7231 2007-06-13 Thiemo Seufer <ths@networkno.de>
7232
7233 * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
7234 imply -lpthread for -pthread.
7235
7236 2007-06-13 Kazu Hirata <kazu@codesourcery.com>
7237
7238 * basic-block.h: Remove the prototype for
7239 free_basic_block_vars.
7240 * cfglayout.h: Remove the prototype for
7241 insn_locators_initialize.
7242 * tree.h: Remove the prototype for emit_line_note.
7243
7244 * tree-ssa-pre.c (mergephitemp): Remove.
7245 (init_pre): Don't use mergephitemp.
7246
7247 2007-06-13 Eric Christopher <echristo@apple.com>
7248
7249 * config/i386/i386.c (override_options): If we've specified
7250 an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
7251
7252 2007-06-13 Bob Wilson <bob.wilson@acm.org>
7253
7254 * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
7255 is defined.
7256
7257 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
7258
7259 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
7260 * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
7261 (eh_store_handler): New pattern.
7262 (eh_return): Emit it instead of a plain move.
7263
7264 2007-06-13 Uros Bizjak <ubizjak@gmail.com>
7265
7266 * config/i386/i386.c (ix86_init_mmx_sse_builtins)
7267 [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
7268 [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
7269 def_builtin_const.
7270
7271 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
7272
7273 * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
7274 (find_next_insn_start, find_load): New functions.
7275 (bfin_reorg): Use them to deal with the fact that parallel insns are
7276 no longer represented as a SEQUENCE.
7277
7278 2007-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
7279
7280 * config/sparc/sparc.c (sparc_override_options): Initialize
7281 fpu mask correctly.
7282
7283 2007-06-13 Dave Korn <dave.korn@artimi.com>
7284
7285 * config/i386/i386.c (ix86_eax_live_at_start_p): Use
7286 df_get_live_out.
7287
7288 2007-06-13 Kazu Hirata <kazu@codesourcery.com>
7289
7290 * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
7291 config/sh/divcost-analysis, dbgcnt.def, df-core.c,
7292 df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
7293 tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
7294 tree-vect-transform.c: Fix comment typos. Follow spelling
7295 conventions.
7296
7297 2007-06-12 Seongbae Park <seongbae.park@gmail.com>
7298
7299 * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
7300 to the exit block use set.
7301 (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring".
7302 * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
7303 * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
7304
7305 2007-06-12 Seongbae Park <seongbae.park@gmail.com>
7306
7307 * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
7308 * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
7309 to indicate an error.
7310 (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters):
7311 New functions.
7312 (dbg_cnt_process_opt): Print an error on a bad argument.
7313 * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
7314 * common.opt (-fdbg-cnt-list): New.
7315 * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
7316
7317 2007-06-12 Eric Botcazou <ebotcazou@adacore.com>
7318
7319 * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
7320 flag on ref-all pointers.
7321
7322 2007-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
7323
7324 PR middle-end/31579
7325 * expr.c (expand_expr_addr_expr_1): Call expand_expr
7326 for the offset with the modifier as EXPAND_INITIALIZER
7327 if the modifier is EXPAND_INITIALIZER.
7328 (expand_expr_real_1 <case INTEGER_CST>): Don't force to
7329 a register if we had an overflow.
7330
7331 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7332
7333 * real.c (real_isfinite): New.
7334 (real_sqrt): Use it.
7335 * real.h (real_isfinite): New.
7336 * builtins.c: Use it.
7337
7338 2007-06-12 Ian Lance Taylor <iant@google.com>
7339 Daniel Berlin <dberlin@dberlin.org>
7340
7341 PR libstdc++/29286
7342 * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
7343 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
7344 (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
7345 (DECL_NO_TBAA_P): Define.
7346 (struct tree_decl_common): Add no_tbaa_flag field.
7347 * tree-ssa-structalias.c (struct variable_info): Add
7348 no_tbaa_pruning field.
7349 (new_var_info): Initialize no_tbaa_pruning field.
7350 (unify_nodes): Copy no_tbaa_pruning field.
7351 (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
7352 (dump_solution_for_var): Print no_tbaa_pruning flag.
7353 (set_uids_in_ptset): Add no_tbaa_pruning parameter. Change all
7354 callers.
7355 (compute_tbaa_pruning): New static function.
7356 (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
7357 Call compute_tbaa_pruning.
7358 * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
7359 * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
7360 * gimple-low.c (lower_stmt): Likewise.
7361 * tree-gimple.c (is_gimple_stmt): Likewise.
7362 * tree-ssa-operands.c (get_expr_operands): Likewise.
7363 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
7364 * tree-inline.c (estimate_num_insns_1): Likewise.
7365 (copy_result_decl_to_var): Likewise.
7366 * expr.c (expand_expr_real_1): Likewise.
7367 * tree-pretty-print.c (dump_generic_node): Likewise.
7368 * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
7369 * omp-low.c (omp_copy_decl_2): Likewise.
7370 * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
7371 * doc/c-tree.texi (Expression trees): Document
7372 CHANGE_DYNAMIC_TYPE_EXPR.
7373
7374 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7375
7376 * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
7377 with !HONOR_NANS and !HONOR_INFINITIES.
7378 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
7379
7380 2007-06-12 Tristan Gingold <gingold@adacore.com>
7381
7382 * gcov.c: Comments updated.
7383 (source_info): Add file_time field.
7384 (source_index): New variable.
7385 (mutiple_files): New variable.
7386 (generate_results): New function extracted from process_file.
7387 (process_file): Save and restore chain of functions, generate
7388 results and free structures only if not merging results.
7389 (release_structures): File names are now freed in create_file_names
7390 (create_file_names): Free previous file names.
7391 (find_source): File date is now read here and modifications in
7392 source files is checked here.
7393 (read_graph_file): Only reverse order of functions for the current
7394 object file.
7395 (make_gcov_file_name): Do not generate long names if input_name is
7396 NULL.
7397 (output_lines): If merging results do not display graph, data and
7398 runs informations.
7399 Checking source file modification is done in find_source.
7400
7401 * doc/gcov.texi: Append an s to sourcefile.
7402
7403 2007-06-12 Bernd Schmidt <bernd.schmidt@analog.com>
7404
7405 * config/bfin/bfin.md (UNSPEC_NOP): New constant.
7406 (forced_nop): New pattern.
7407 * config/bfin/bfin.c: Include "df.h".
7408 (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
7409 (bfin_discover_loop): Use df_get_live_in instead of
7410 global_live_at_start.
7411 (bfin_reorder_loops): Pass 0 to cfg_layout_initialize. Call
7412 df_analyze when done.
7413 (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
7414 the insns. Use QImode for the final insn in a bundle. Call
7415 df_insn_rescan on generated NOPs; use gen_forced_nop instead of
7416 gen_nop.
7417 (reorder_var_tracking_notes): New function.
7418 (bfin_reorg): Pass no argument to split_all_insns. Don't call
7419 update_life_info. Call df_analyze after scheduling and bundle
7420 generation. Call reorder_var_tracking_notes if generating these
7421 notes. Call df_finish_pass at the end.
7422
7423 2007-06-12 Dirk Mueller <dmueller@suse.de>
7424
7425 * optabs.c (debug_optab_libfuncs): fix gcc_assert to
7426 a comparison, not an assignment.
7427
7428 2007-06-12 Olivier Hainque <hainque@adacore.com>
7429
7430 * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
7431 Request walking the subtrees only, leaving the current is_lhs/val_only
7432 untouched.
7433 (convert_non_local_reference): Likewise.
7434
7435 2007-06-12 Nathan Sidwell <nathan@codesourcery.com>
7436
7437 * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
7438
7439 2007-06-12 Richard Guenther <rguenther@suse.de>
7440
7441 PR tree-optimization/15353
7442 PR tree-optimization/31657
7443 * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
7444 * timevar.def: Add TV_TREE_IFCOMBINE.
7445 * tree-pass.h (pass_tree_ifcombine): Declare.
7446 * tree-ssa-ifcombine.c: New file.
7447 * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
7448 * tree-flow.h (blocks_in_phiopt_order): Declare.
7449 * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
7450 (tree-ssa-ifcombine.o): New dependencies.
7451
7452 2007-06-12 Uros Bizjak <ubizjak@gmail.com>
7453
7454 PR rtl-optimization/32293
7455 * combine.c (simplify_if_then_else): Truncate return from
7456 nonzero_bits() to correct mode.
7457
7458 2007-06-12 Uros Bizjak <ubizjak@gmail.com>
7459
7460 * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
7461 into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
7462
7463 2007-06-11 Diego Novillo <dnovillo@google.com>
7464
7465 * Makefile.in (reload1.o-warn): Remove.
7466
7467 2007-06-11 Seongbae Park <seongbae.park@gmail.com>
7468
7469 * combine.c (subst): Use reg_overlap_mentioned_p
7470 instead of comparing register numbers directly.
7471
7472 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
7473
7474 * reload1.c (mark_home_live_1): Use the mode parameter.
7475
7476 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
7477
7478 * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
7479 df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
7480 word "deferred".
7481 * df-core.c: Ditto.
7482
7483 2007-06-11 Daniel Berlin <dberlin@dberlin.org>
7484
7485 * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
7486
7487 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
7488
7489 * config/i386/i386.md ("*movtf_internal): Penalize moves to and
7490 from integer registers.
7491 (FP mode splitters): Handle TFmode.
7492
7493 2007-06-11 Eric Botcazou <ebotcazou@adacore.com>
7494
7495 * tree-ssa-structalias.c (find_what_p_points_to): Return false
7496 for ref-all pointers that point-to anything.
7497
7498 2007-06-11 Joseph Myers <joseph@codesourcery.com>
7499
7500 * config/arm/arm.c (arm_output_dwarf_dtprel,
7501 TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
7502
7503 2007-06-11 Bernd Schmidt <bernd.schmidt@analog.com>
7504
7505 * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
7506 movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
7507 to memory moves.
7508
7509 2007-06-11 Rafael Avila de Espindola <espindola@google.com>
7510
7511 * tree.c (signed_or_unsigned_type_for): New.
7512 (unsigned_type_for): Use signed_or_unsigned_type_for.
7513 (signed_type_for): Use signed_or_unsigned_type_for.
7514 * tree.h (signed_or_unsigned_type_for): New.
7515 (get_signed_or_unsigned_type): Remove.
7516 * fold-const.c (fold_negate_expr): Use signed_type_for instead of
7517 lang_hooks.types.signed_type
7518 (size_diffop): Likewise.
7519 (all_ones_mask_p): Likewise.
7520 (build_range_check): Likewise.
7521 (fold_cond_expr_with_comparison): Likewise.
7522 (fold_cond_expr_with_comparison): Likewise.
7523 (unextend): Likewise.
7524 (extract_muldiv_1): Likewise.
7525 (fold_single_bit_test_into_sign_test): Likewise.
7526 (fold_binary): Likewise.
7527 (fold_ternary): Likewise.
7528 (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
7529 instead of get_signed_or_unsigned_type.
7530 * c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
7531 (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
7532 * expr.c (signed_or_unsigned_type_for): Use
7533 signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
7534 * langhooks.c (get_signed_or_unsigned_type): Remove.
7535 (lhd_signed_or_unsigned_type): Remove.
7536 * langhooks.h (lang_hooks_for_types): Remove signed_type and
7537 signed_or_unsigned_type.
7538 (lhd_signed_or_unsigned_type): Remove.
7539 * expmed.c (make_tree): Use signed_type_for instead of
7540 lang_hooks.types.signed_type.
7541 * c-common.c (same_scalar_type_ignoring_signedness): Use
7542 c_common_signed_type instead of lang_hooks.types.signed_type.
7543 (c_common_unsigned_type): New.
7544 (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
7545 (shorten_compare): Use c_common_unsigned_type instead of
7546 c_common_signed_or_unsigned_type.
7547 (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
7548 unsigned_type_for.
7549 * convert.c (convert_to_integer): Use signed_type_for instead of
7550 lang_hooks.types.signed_type.
7551 * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
7552 (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
7553 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
7554 * c-format.c (check_format_types): Use c_common_unsigned_type
7555 instead of unsigned_type_for.
7556 * c-decl.c (groakdeclarator): Likewise.
7557 * c-typeck.c (convert_for_assignment): Likewise.
7558 * c-common.h (c_common_unsigned_type): New.
7559
7560 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
7561
7562 PR target/32280
7563 * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
7564 * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
7565
7566 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
7567
7568 PR middle-end/32279
7569 * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
7570 into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
7571
7572 2007-06-10 Jan Sjodin <jan.sjodin@amd.com>
7573 Sebastian Pop <sebpop@gmail.com>
7574
7575 * lambda-code.c (remove_iv): New.
7576 (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
7577
7578 2007-06-10 Zdenek Dvorak <dvorakz@suse.cz>
7579
7580 * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
7581 * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
7582 * tree-ssa-loop-prefetch.c: Include optabs.h.
7583 (FENCE_FOLLOWING_MOVNT): New macro.
7584 (struct mem_ref): Add independent_p and storent_p fields.
7585 (record_ref): Initalize the new fields.
7586 (gather_memory_references_ref): Return true if the reference
7587 could be analysed.
7588 (gather_memory_references): Check whether all memory accesses
7589 in loop were recorded.
7590 (should_issue_prefetch_p): Return false for nontemporal stores.
7591 (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
7592 may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
7593 (determine_loop_nest_reuse): Detect independent memory references.
7594 (loop_prefetch_arrays): Call mark_nontemporal_stores.
7595 * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
7596 * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
7597 * config/i386/i386.h (x86_mfence): Declare.
7598 (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
7599 * config/i386/i386.c (x86_mfence): New variable.
7600 (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
7601
7602 * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
7603 * optabs.c (init_optabs): Initialize storent_optab.
7604 * optabs.h (enum optab_index): Add OTI_storent.
7605 (storent_optab): Declare.
7606 * genopinit.c (optabs): Add initialization for storent_optab.
7607 * tree.h (MOVE_NONTEMPORAL): New macro.
7608 * expr.c (expand_assignment, store_expr, store_constructor_field,
7609 store_constructor, store_field, expand_expr_real_1): Propagate
7610 nontemporality of the expanded store.
7611 (emit_storent_insn): New function.
7612 * expr.h (expand_assignment, store_expr): Declaration changed.
7613 * function.c (assign_parm_setup_reg): Pass false as nontemporality
7614 to expand_assignment.
7615 * stmt.c (expand_asm_expr): Ditto.
7616 * calls.c (initialize_argument_information): Pass false as
7617 nontemporality to store_expr.
7618 * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
7619 storentsi): New.
7620
7621 2007-06-09 Daniel Berlin <dberlin@dberlin.org>
7622
7623 * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
7624 parameter, use it.
7625 (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
7626
7627 2007-06-09 Daniel Berlin <dberlin@dberlin.org>
7628
7629 * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
7630 and allow DECL_P here.
7631
7632 2007-06-09 Zdenek Dvorak <dvorakz@suse.cz>
7633
7634 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
7635 follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
7636 track of the size of the expression.
7637 * cfghooks.c (merge_blocks): Remove block from loops structure only
7638 after call of the merge_blocks hook.
7639
7640 2007-06-09 Tom Tromey <tromey@redhat.com>
7641
7642 * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
7643 (deprecated_state): Removed.
7644 (start_decl): Update.
7645 (enum deprecated_states): Moved earlier.
7646 (groktypename): Update.
7647 (push_parm_decl): Likewise.
7648 (grokfield): Likewise.
7649 (start_function): Likewise.
7650
7651 2007-06-09 Ian Lance Taylor <iant@google.com>
7652
7653 PR tree-optimization/32169
7654 * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
7655 CONVERT_EXPR, check whether min and max both converted to an
7656 overflow infinity representation.
7657
7658 2007-06-08 Eric Botcazou <ebotcazou@adacore.com>
7659
7660 * reload1.c (fixup_abnormal_edges): Clear bb field for insns
7661 not inserted on the edge.
7662
7663 2007-06-08 Bob Wilson <bob.wilson@acm.org>
7664
7665 * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
7666 instructions if they are supported.
7667 (__divsi3, __umodsi3, __modsi3): Likewise.
7668 (__ashldi3, __ashrdi3, __lshrdi3): New.
7669 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
7670
7671 2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com>
7672 Tony Linthicum <tony.linthicum@amd.com>
7673
7674 * doc/invoke.texi: Add fvect-cost-model flag.
7675 * common.opt (fvect-cost-model): New flag.
7676 * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
7677 cost fields in stmt_vec_info struct for STMT.
7678 * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
7679 fields in stmt_vec_info struct and access functions for the same.
7680 (TARG_COND_BRANCH_COST): Define cost of conditional branch.
7681 (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
7682 load, store and vector to scalar operation.
7683 (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
7684 (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
7685 (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
7686 (TARG_VEC_STORE_COST): Define cost of vector store.
7687 (vect_estimate_min_profitable_iters): Define new function.
7688 * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
7689 check to evaluate if loop iterations are less than minimum profitable
7690 iterations determined by cost model or minimum vect loop bound defined
7691 by user, whichever is more conservative.
7692 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
7693 run-time check to evaluate if loop iterations are less than minimum
7694 profitable iterations determined by cost model or minimum vect loop
7695 bound defined by user, whichever is more conservative.
7696 (vect_estimate_min_profitable_iterations): New function to estimate
7697 mimimimum iterartions required for vector version of loop to be
7698 profitable over scalar version.
7699 (vect_model_reduction_cost): New function.
7700 (vect_model_induction_cost): New function.
7701 (vect_model_simple_cost): New function.
7702 (vect_cost_strided_group_size): New function.
7703 (vect_model_store_cost): New function.
7704 (vect_model_load_cost): New function.
7705 (vectorizable_reduction): Call vect_model_reduction_cost during
7706 analysis phase.
7707 (vectorizable_induction): Call vect_model_induction_cost during
7708 analysis phase.
7709 (vectorizable_load): Call vect_model_load_cost during analysis phase.
7710 (vectorizable_store): Call vect_model_store_cost during analysis phase.
7711 (vectorizable_call, vectorizable_assignment, vectorizable_operation,
7712 vectorizable_promotion, vectorizable_demotion): Call
7713 vect_model_simple_cost during analysis phase.
7714
7715 2007-06-08 Simon Baldwin <simonb@google.com>
7716
7717 * reg-stack.c (get_true_reg): Readability change. Moved default case
7718 label into direct switch statement scope.
7719
7720 2007-06-08 Simon Baldwin <simonb@google.com>
7721
7722 * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
7723 in gcc_assert() with '==' comparison.
7724
7725 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
7726
7727 * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
7728 TARGET_ABM handling of x86_popcnt variable.
7729
7730 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
7731
7732 * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
7733 __builtin_copysignq and __builtin_infq built-in functions.
7734
7735 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
7736
7737 * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
7738 SSE4.2 section. Correct built-in function names in SSE4A section.
7739
7740 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
7741
7742 PR tree-optimization/32243
7743 * tree-vect-transform.c (vectorizable_type_promotion): Move check
7744 for ncopies after ratio check between nunits_out and nunits_in.
7745 (vectorizable_type_demotion): Remove single-use variable "scalar_type".
7746
7747 2007-06-08 Dorit Nuzman <dorit@il.ibm.com>
7748
7749 PR tree-optimization/32224
7750 * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
7751 vectorization upon a non GIMPLE_MODIFY_STMT.
7752
7753 2007-06-08 Christian Bruel <christian.bruel@st.com>
7754
7755 PR target/29953
7756 * config/sh/sh.md (doloop_end): New pattern and splitter.
7757 * loop-iv.c (simple_rhs_p): Check for hardware registers.
7758
7759 2007-06-08 Zdenek Dvorak <dvorakz@suse.cz>
7760
7761 PR middle-end/32209
7762 * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
7763 functions.
7764 (verify_dominators): Do not change dominance tree.
7765
7766 2007-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
7767
7768 * config/sh/constraints.md: New file.
7769 * config/sh/sh.c: Include tm-constrs.h.
7770 (reg_class_from_letter): Remove.
7771 (prepare_cbranch_operands): Use satisfies_constraint_*
7772 function instead of macro.
7773 (andcosts, broken_move, sh_secondary_reload): Likewise.
7774 * config/sh/predicates.md (trapping_target_operand): Likewise.
7775 (and_operand, arith_operand, arith_reg_or_0_operand,
7776 cmp_operand, logical_operand, target_operand,
7777 ua_address_operand, ua_offset, xor_operand): Likewise.
7778 * config/sh/sh.md: Include constraints.md.
7779 (*movsicc_t_false): Use satisfies_constraint_* function
7780 instead of macro.
7781 (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
7782 lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
7783 movdi_const_16bit+1, beq, bne, *ptb): Likewise.
7784 * config/sh/sh.h (reg_class_from_letter): Remove prototype.
7785 (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
7786 (REG_CLASS_FROM_CONSTRAINT): Remove.
7787 (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
7788 CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
7789 CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
7790 CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
7791 CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
7792 (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
7793 function instead of macro.
7794 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
7795 (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
7796 EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
7797 EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
7798 (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
7799 (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
7800 (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
7801 (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
7802 (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
7803 EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
7804 EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
7805 EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
7806 EXTRA_CONSTRAINT_STR): Likewise.
7807 (GO_IF_LEGITIMATE_INDEX): Fix indentation.
7808
7809 2007-06-07 Geoffrey Keating <geoffk@apple.com>
7810
7811 * config/i386/darwin.h (STACK_BOUNDARY): Define.
7812
7813 2007-06-07 Simon Martin <simartin@users.sourceforge.net>
7814
7815 PR c++/30759
7816 * c-common.h (flag_cpp0x): Replaced by...
7817 (cxx_dialect): ... this new variable specifying the C++ dialect that
7818 is used.
7819 * c-common.c (flag_cpp0x): Removed.
7820 (cxx_dialect): Defined.
7821 * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
7822 cxx_dialect.
7823 * c-opts.c (c_common_post_options): Likewise.
7824 (set_std_cxx98): Set cxx_dialect to cxx98.
7825 (set_std_cxx0x): Set cxx_dialect to cxx0x.
7826
7827 2007-06-07 Geoffrey Keating <geoffk@apple.com>
7828 Hui-May Chang <hm.chang@apple.com>
7829
7830 * doc/invoke.texi (Darwin Options): Update documentation for
7831 -mmacosx-version-min.
7832 * config.gcc (*-*-darwin*): Set extra_gcc_objs.
7833 * config/darwin-driver.c: New file.
7834 * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
7835 * config/t-darwin (darwin-driver.o): New rule.
7836
7837 * config/darwin-c.c (version_as_macro): Ignore low digit.
7838
7839 2007-06-07 Uros Bizjak <ubizjak@gmail.com>
7840
7841 * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
7842 (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
7843 (CSGNMODE): New mode macro.
7844 (CSGNVMODE): New mode attribute.
7845 (copysign<mode>3): Rename from copysingsf3 and copysigndf3. Macroize
7846 expander using CSGNMODE mode macro. Handle TFmode.
7847 (copysign<mode>3_const): Rename from copysignsf3_const and
7848 copysigndf3_const. Macroize pattern using CSGNMODE mode macro.
7849 Handle TFmode.
7850 (copysign<mode>3_var): Rename from copysignsf3_var and
7851 copysigndf3_var. Macroize pattern using CSGNMODE mode macro.
7852 Handle TFmode.
7853 (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
7854 mode macro. Handle TFmode.
7855 * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
7856 (iortf3, *iortf3): Ditto.
7857 (xortf3, *xortf3): Ditto.
7858 * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
7859 TFmode and TImode masks.
7860 (ix86_expand_copysign): Expand TFmode copysign insn.
7861 (IX86_BUILTIN_INFQ): New.
7862 (IX86_BUILTIN_FABSQ): Ditto.
7863 (IX86_BUILTIN_COPYSIGNQ): Ditto.
7864 (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
7865 [__builtin_fabsq]: Ditto.
7866 [__builtin_copysignq]: Ditto.
7867 (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
7868 [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
7869 [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
7870 ix86_expand_binop_builtin().
7871
7872 2007-06-07 Bob Wilson <bob.wilson@acm.org>
7873
7874 * config/xtensa/lib1funcs.asm: Clean up whitespace.
7875
7876 2007-06-07 Steve Ellcey <sje@cup.hp.com>
7877
7878 PR target/31850
7879 * rtl.h (push_to_sequence2): New.
7880 * emit-rtl.c (push_to_sequence2): New.
7881 * function.c (assign_parm_data_all): Add new fields.
7882 (assign_parm_setup_block): Call push_to_sequence2 instead of
7883 push_to_sequence.
7884 (assign_parm_setup_reg): Ditto.
7885 (assign_parm_setup_stack): Ditto.
7886 (assign_parms_unsplit_complex): Ditto.
7887 (assign_parms): Change field name.
7888
7889 2007-06-07 Zdenek Dvorak <dvorakz@suse.cz>
7890
7891 PR tree-optimization/32220
7892 * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
7893 phi node is reached before defining statement.
7894
7895 2007-06-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
7896
7897 PR tree-opt/32231
7898 * tree-vect-transform.c (vectorizable_call): Call update_stmt
7899 after changing the right hand side of the assignment.
7900
7901 2007-06-06 Eric Christopher <echristo@apple.com>
7902
7903 * config.gcc (i?86-*-darwin*): Remove arch parameter.
7904 (x86_64-*-darwin*): Ditto.
7905 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
7906 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
7907
7908 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
7909
7910 * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
7911 coding conventions.
7912 (add_key): Likewise.
7913 * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
7914 * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
7915 variable names.
7916 * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory
7917 macros.
7918 (add_cost_one_coalesce): Likewise.
7919 * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
7920 variable names. Rename orig to orig_name for consistency.
7921 * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the
7922 coding conventions.
7923 (cprop_into_successor_phis): Avoid using C++ keywords as variable
7924 names.
7925 (record_equivalences_from_stmt): Likewise.
7926 * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
7927 the coding conventions.
7928 (memory_ssa_name_same): Likewise.
7929 (dse_optimize_stmt): Likewise.
7930 (dse_record_phis): Likewise.
7931 (dse_finalize_block): Likewise.
7932 * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
7933 keywords as variable names.
7934 (may_move_till): Cast according to the coding conventions.
7935 (force_move_till_expr): Avoid using C++ keywords as variable names.
7936 (force_move_till): Cast according to the coding conventions.
7937 (memref_hash): Likewise.
7938 (memref_eq): Likewise.
7939 (gather_mem_refs_stmt): Likewise.
7940 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid
7941 using C++ keywords as variable names.
7942 (idx_find_step): Cast according to the coding conventions.
7943 (idx_record_use): Likewise.
7944 (find_depends): Likewise.
7945 (prepare_decl_rtl): Likewise.
7946 (mbc_entry_hash): Likewise.
7947 (mbc_entry_eq): Likewise.
7948 * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
7949 (simplify_replace_tree): Avoid using C++ keywords as variable names.
7950 (idx_infer_loop_bounds): Cast according to the coding conventions.
7951 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
7952 * tree-ssa-math-opts.c (occ_new ): Likwise.
7953 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
7954 macros.
7955 * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as
7956 variable names.
7957 (add_use_op): Likewise.
7958 (add_vop): Likewise.
7959 (add_vuse_op): Likewise.
7960 (add_vdef_op): Likewise.
7961 (get_expr_operands): Likewise.
7962 (push_stmt_changes): Use type safe memory macros.
7963 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
7964 keywords as variable names.
7965 (conditional_replacement): Likewise.
7966 (minmax_replacement): Likewise.
7967 (abs_replacement): Likewise.
7968 * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
7969 coding conventions.
7970 (insert_fake_stores): Avoid using C++ keywords as variable names.
7971 * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
7972 conventions.
7973 * tree-ssa-structalias.c (heapvar_lookup): Likewise.
7974 (heapvar_insert): Use type safe memory macros.
7975 (new_var_info): Cast according to the coding conventions.
7976 (new_constraint): Likewise.
7977 (remove_preds_and_fake_succs): Use type safe memory macros.
7978 * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
7979 conventions.
7980 (thread_single_edge): Likewise.
7981 (thread_through_loop_header): Likewise.
7982
7983 2007-06-06 Eric Christopher <echristo@apple.com>
7984
7985 * config/i386/i386.c (override_options): Move handling
7986 of TARGET_SUBTARGET* earlier.
7987
7988 2007-06-06 Paolo Bonzini <bonzini@gnu.org>
7989
7990 * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
7991 use %n on printf.
7992
7993 2007-06-06 Zdenek Dvorak <dvorakz@suse.cz>
7994
7995 * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
7996 emited outside of basic block.
7997 * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
7998 the created blocks.
7999 * rtl.h (delete_insn_chain): Declaration changed.
8000 * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
8001 non-removed insns.
8002 (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
8003 (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
8004 rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
8005 to delete_insn_chain.
8006 (rtl_verify_flow_info_1): Verify that the insns in header and footer
8007 do not have bb field set.
8008 (rtl_verify_flow_info): Verify that insns between basic blocks do not
8009 have bb field set.
8010 * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
8011 * cfgcleanup.c (try_optimize_cfg): Ditto.
8012
8013 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
8014
8015 * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
8016 (lambda_body_vector_new): Use type safe memory macros.
8017 (lambda_linear_expression_new): Likewise.
8018 (lambda_loopnest_new): Likewise.
8019 (lambda_lattice_new): Likewise.
8020 (replace_uses_equiv_to_x_with_y): Cast according to the coding
8021 conventions. Use type safe memory macros.
8022 * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
8023 (lambda_body_vector_s): Likewise.
8024 * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
8025 * lambda-trans.c (lambda_trans_matrix_new): Likewise.
8026
8027 2007-06-06 Richard Guenther <rguenther@suse.de>
8028
8029 * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
8030 if we need to schedule cfg_cleanup.
8031 (tree_ssa_forward_propagate_single_use_vars): Do so.
8032
8033 2007-06-06 Ian Lance Taylor <iant@google.com>
8034
8035 * fold-const.c (merge_ranges): If range_successor or
8036 range_predecessor fail, just return 0.
8037
8038 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
8039
8040 PR tree-optimization/32216
8041 * tree-vectorizer.c (supportable_widening_operation): Determine
8042 signedness of FIX_TRUNC_EXPR from output operand.
8043 (supportable_narrowing_operation): Ditto.
8044 * tree-vect-generic.c (expand_vector_operations_1): Determine
8045 signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
8046 from input operand.
8047
8048 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
8049
8050 * config/i386/i386.c (enum pta_flags): Move out of struct scope...
8051 (struct pta): ...from here. Change flags to unsigned to avoid
8052 excessive casting (as it is used as a bit mask).
8053 (override_options): Add casts according to the coding convenventions.
8054 (x86_64_elf_unique_section): Likewise.
8055 (examine_argument): Avoid using C++ keywords as variable names.
8056 (construct_container): Likewise.
8057 (legitimize_pic_address): Likewise.
8058 (get_dllimport_decl): Cast according to the coding conventions. Use
8059 type safe memory macros.
8060 (legitimize_address): Cast according to the coding conventions.
8061 (emit_i387_cw_initialization): Corrected the type of slot to enum
8062 ix86_stack_slot.
8063 (ix86_init_machine_status): Use type safe memory macros.
8064 (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
8065 (bdesc_pcmpistr): Likewise.
8066 (bdesc_crc32): Likewise.
8067 (bdesc_sse_3arg): Likewise.
8068 (bdesc_2arg): Likewise.
8069 (bdesc_1arg): Likewise.
8070 (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
8071 (ix86_expand_sse_pcmpistr): Likewise.
8072 (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
8073 (ix86_builtin_vectorized_function): Change the type of fn to unsigned
8074 int to match the langhook definition.
8075 (ix86_builtin_conversion): Change the type of code to unsigned init to
8076 match the langhook definition.
8077 (ix86_preferred_reload_class): Avoid using C++ keywords as variable
8078 names.
8079 (ix86_preferred_output_reload_class): Likewise.
8080 (ix86_cannot_change_mode_class): Likewise.
8081 (ix86_memory_move_cost): Likewise.
8082 (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
8083 avoid excessive casting later on.
8084 (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
8085
8086 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
8087
8088 * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
8089 as flags setting insn.
8090 (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
8091
8092 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
8093
8094 * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
8095 (UNSPEC_ROUND): New.
8096 ("sse4_1_round<mode>2"): New insn pattern.
8097 ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
8098 SSE4.1 targets.
8099 ("floor<mode>2"): Rename from floordf2 and floorsf2. Macroize
8100 expander using SSEMODEF mode macro. Expand using
8101 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
8102 ("ceil<mode>2"): Rename from ceildf2 and ceilsf2. Macroize
8103 expander using SSEMODEF mode macro. Expand using
8104 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
8105 ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2. Macroize
8106 expander using SSEMODEF mode macro. Expand using
8107 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
8108 * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
8109 UNSPEC_ROUND instead of UNSPEC_ROUNDP.
8110 ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
8111 UNSPEC_ROUNDS.
8112
8113 2007-06-06 Jan Sjodin <jan.sjodin@amd.com>
8114 Sebastian Pop <sebpop@gmail.com>
8115
8116 * lambda.h (build_linear_expr): New.
8117 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
8118 Use build_linear_expr, call fold and force_gimple_operand.
8119 (lambda_loopnest_to_gcc_loopnest): Check that there is
8120 something to insert.
8121 * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
8122
8123 2007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
8124
8125 PR preprocessor/23479
8126 * doc/extend.texi: Document the 0b-prefixed binary integer
8127 constant extension.
8128
8129 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
8130
8131 PR tree-optimization/32215
8132 * tree-vectorizer.c (supportable_widening_operation): Return false
8133 for unsupported FIX_TRUNC_EXPR tree code.
8134 (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
8135
8136 2007-06-06 Nathan Froyd <froydnj@codesourcery.com>
8137
8138 * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
8139 register on SPE targets. Change documentation to reflect
8140 reality.
8141 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
8142 Change FIXED_SCRATCH to 14 and document why we're keeping r14
8143 out of the register allocation pool.
8144 (rs6000_reg_live_or_pic_offset_p): New function.
8145 (rs6000_emit_prologue): Move the actual saving of LR up to free
8146 r0 for holding r11. Split saving of SPE 64-bit registers into
8147 its own case. Ensure that offsets will always be in-range for
8148 'evstdd' by using r11 as a scratch register to point at the start
8149 of the SPE save area. Save r11 if necessary, as it is the static
8150 chain register.
8151 (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
8152 into its own case. Ensure that offsets will always be in-range
8153 for 'evldd' by using r11 as a scratch register to point at the
8154 start of the SPE save area. Also adjust r11 when restoring
8155 the stack pointer to compensate for pre-loading r11.
8156
8157 2007-06-05 Thomas Neumann <tneumann@users.sourceforge.net>
8158
8159 * cfg.c (init_flow): Use type safe memory macros.
8160 (alloc_block): Likewise.
8161 (unchecked_make_edge): Likewise.
8162 (dump_flow_info): Avoid using C++ keywords as variable names.
8163 (copy_original_table_clear): Cast according to the coding conventions.
8164 (copy_original_table_set): Likewise.
8165 * cfgexpand (label_rtx_for_bb): Likewise.
8166 (expand_gimple_basic_block): Likewise.
8167 * cfghooks.c (dump_bb): Likewise.
8168 (lv_adjust_loop_header_phi): Avoid using C++ keywords as
8169 variable names.
8170 (lv_add_condition_to_bb): Likewise.
8171 * cfglayout (relink_block_chain): Cast according to the coding
8172 conventions.
8173 (fixup_reorder_chain): Likewise.
8174 (fixup_fallthru_exit_predecessor): Likewise.
8175 * cfgloop.c (glb_enum_p): Likewise.
8176 (get_exit_description): Likewise.
8177 (dump_recorded_exit): Likewise.
8178 * cfgloop.h (enum loop_estimation): Move out of struct scope...
8179 (struct loop): ... from here.
8180 * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
8181 conventions.
8182 * cfgrtl.c (rtl_create_basic_block): Likewise.
8183 (rtl_split_block): Likewise.
8184 (rtl_dump_bb): Likewise.
8185 (cfg_layout_split_block): Likewise.
8186 (init_rtl_bb_info): Use typesafe memory macros.
8187
8188 * graphds.h (struct graph_edge): Renamed edge to graph_edge.
8189 * graphds.h: Updated all usages of edge to graph_edge.
8190 * graphds.c: Likewise.
8191 * cfgloopanal.c: Likewise.
8192
8193 2007-06-05 Ian Lance Taylor <iant@google.com>
8194
8195 * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
8196 PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
8197 (extract_range_from_assert): Set TREE_NO_WARNING when creating an
8198 expression.
8199 (test_for_singularity): Likewise.
8200
8201 2007-06-05 H.J. Lu <hongjiu.lu@intel.com>
8202
8203 * config/i386/constraints.md ("Y2"): Replaced by ...
8204 ("Yt"): This.
8205 * config/i386/i386.md: Likewise.
8206 * config/i386/mmx.md: Likewise.
8207 * config/i386/sse.md: Likewise.
8208
8209 2007-06-05 H.J. Lu <hongjiu.lu@intel.com>
8210
8211 * config/i386/constraints.md ("z"): Replaced by ...
8212 ("Y0"): This.
8213 * config/i386/sse.md (sse4_1_blendvpd): Likewise.
8214 (sse4_1_blendvps): Likewise.
8215 (sse4_1_pblendvb): Likewise.
8216 (sse4_2_pcmpestr): Likewise.
8217 (sse4_2_pcmpestrm): Likewise.
8218 (sse4_2_pcmpestr_cconly): Likewise.
8219 (sse4_2_pcmpistr): Likewise.
8220 (sse4_2_pcmpistrm): Likewise.
8221 (sse4_2_pcmpistr_cconly): Likewise.
8222
8223 2007-06-05 Razya Ladelsky <razya@il.ibm.com>
8224
8225 * matrix-reorg.c (transform_access_sites): Fix computation.
8226 (transform_allocation_sites): Same.
8227
8228 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
8229
8230 * config/i386/i386.c (override_options): Use
8231 TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
8232
8233 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
8234
8235 * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
8236 (nonimm_not_xmm0_operand): Ditto.
8237 * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
8238 as operand[0] and operand[1] predicate. Use "nonimm_not_xmm0_operand"
8239 as operand[2] predicate. Require "z" class XMM register for
8240 operand[3]. Adjust asm template.
8241 ("sse4_1_blendvpd"): Ditto.
8242 ("sse4_1_pblendvb"): Ditto.
8243 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
8244 force op2 into xmm0 register for variable blend instructions.
8245
8246 2007-06-04 Tom Tromey <tromey@redhat.com>
8247
8248 * c-tree.h (start_enum): Update.
8249 (build_enumerator): Likewise.
8250 * c-decl.c (enum_next_value): Removed.
8251 (enum_overflow): Likewise.
8252 (start_enum): Add c_enum_contents argument. Don't use globals.
8253 (build_enumerator): Likewise.
8254 * c-tree.h (struct c_enum_contents): New struct.
8255
8256 2007-06-04 Tom Tromey <tromey@redhat.com>
8257
8258 * c-common.c (c_common_get_alias_set): Fix indentation.
8259
8260 2007-06-04 Ian Lance Taylor <iant@google.com>
8261
8262 * tree-vrp.c (adjust_range_with_scev): When loop is not expected
8263 to overflow, reduce overflow infinity to regular infinity.
8264 (vrp_var_may_overflow): New static function.
8265 (vrp_visit_phi_node): Check vrp_var_may_overflow.
8266
8267 2007-06-04 Kazu Hirata <kazu@codesourcery.com>
8268
8269 * stor-layout.c (layout_type): Remove duplicate code.
8270
8271 2007-06-04 Uros Bizjak <ubizjak@gmail.com>
8272
8273 PR c/32191
8274 * c-common.c (c_define_builtins): Call targetm.init_builtins ()
8275 before build_common_builtin_nodes ().
8276
8277 2007-06-04 Steve Ellcey <sje@cup.hp.com>
8278
8279 PR target/31733
8280 * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
8281
8282 2007-06-04 Jan Hubicka <jh@suse.cz>
8283
8284 * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
8285 reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
8286 instead of _stat version.
8287
8288 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
8289
8290 PR tree-optimization/32194
8291 * tree-predcom.c (determine_offset): Check that both references have
8292 the same type.
8293
8294 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
8295
8296 * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
8297 Change dom_bbs to vector. Add argument to iterate_fix_dominators call.
8298 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
8299 * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
8300 Add argument to iterate_fix_dominators call.
8301 (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
8302 * gcse.c (hoist_code): Change domby to vector.
8303 * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
8304 Add argument to iterate_fix_dominators call.
8305 * loop-doloop.c (doloop_modify): Changed recount_dominator to
8306 recompute_dominator.
8307 * lambda-code.c (perfect_nestify): Ditto.
8308 * cfgloopanal.c: Include graphds.h.
8309 (struct edge, struct vertex, struct graph, dump_graph, new_graph,
8310 add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
8311 (mark_irreducible_loops): Use graphds_scc. Remove argument from
8312 add_edge call.
8313 * graphds.c: New file.
8314 * graphds.h: New file.
8315 * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
8316 (get_dominated_by, get_dominated_by_region): Change return type to
8317 vector.
8318 (verify_dominators): Recompute all dominators and compare the results.
8319 (recount_dominator): Renamed to ...
8320 (recompute_dominator): ... this. Do not check that the block is
8321 dominated by entry.
8322 (iterate_fix_dominators): Reimplemented.
8323 (prune_bbs_to_update_dominators, root_of_dom_tree,
8324 determine_dominators_for_sons): New functions.
8325 * et-forest.c (et_root): New function.
8326 * et-forest.h (et_root): Declare.
8327 * Makefile.in (graphds.o): Add.
8328 (cfgloopanal.o): Add graphds.h dependency.
8329 (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
8330 * basic-block.h (get_dominated_by, get_dominated_by_region,
8331 iterate_fix_dominators): Declaration changed.
8332 (recount_dominator): Renamed to ...
8333 (recompute_dominator): ... this.
8334 * tree-ssa-threadupdate.c (thread_block): Free dominance info.
8335 (thread_through_all_blocks): Do not free dominance info.
8336
8337 2007-06-03 Andreas Schwab <schwab@suse.de>
8338
8339 * config/m68k/m68k.c (override_options): Don't override
8340 REAL_MODE_FORMAT.
8341 * config/m68k/m68k-modes.def (SF, DF): Define to use
8342 motorola_single_format and motorola_double_format, resp.
8343 * real.c (motorola_single_format): Renamed from
8344 coldfire_single_format.
8345 (motorola_double_format): Renamed from coldfire_double_format.
8346 (encode_ieee_extended): Generate a proper canonical NaN image
8347 respecting canonical_nan_lsbs_set.
8348 (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
8349 true.
8350 * real.h: Adjust declarations.
8351
8352 2007-06-03 Kaz Kojima <kkojima@gcc.gnu.org>
8353
8354 PR target/32163
8355 * config/sh/sh.md (symGOT_load): Don't schedule insns when
8356 the symbol is generated with the stack protector.
8357
8358 2007-06-03 Kazu Hirata <kazu@codesourcery.com>
8359
8360 * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
8361 (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
8362 "interrupt".
8363 * doc/extend.texi (interrupt): Mention m68k.
8364
8365 2007-06-02 Uros Bizjak <ubizjak@gmail.com>
8366
8367 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
8368 safe_vector_operand() if input operand is VECTOR_MODE_P operand.
8369 (ix86_expand_sse_pcmpestr): Do not check operands for
8370 "register_operand", when insn operand predicate is "register_operand".
8371 (ix86_expand_sse_pcmpistr): Ditto.
8372
8373 2007-06-02 H.J. Lu <hongjiu.lu@intel.com>
8374 Uros Bizjak <ubizjak@gmail.com>
8375
8376 * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
8377 (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
8378 (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
8379 (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
8380 * config/i386/constraints.md ("z"): New register constraint
8381 for members of SSE_FIRST_REG class.
8382 * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
8383 * config/i386/i386.c (regclass_map): Change class of %xmm0 to
8384 SSE_FIRST_REG class.
8385 (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
8386 (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
8387 (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
8388 (IX86_BUILTIN_PCMPESTRM128): Likewise.
8389 (IX86_BUILTIN_PCMPESTRA128): Likewise.
8390 (IX86_BUILTIN_PCMPESTRC128): Likewise.
8391 (IX86_BUILTIN_PCMPESTRO128): Likewise.
8392 (IX86_BUILTIN_PCMPESTRS128): Likewise.
8393 (IX86_BUILTIN_PCMPESTRZ128): Likewise.
8394 (IX86_BUILTIN_PCMPISTRI128): Likewise.
8395 (IX86_BUILTIN_PCMPISTRM128): Likewise.
8396 (IX86_BUILTIN_PCMPISTRA128): Likewise.
8397 (IX86_BUILTIN_PCMPISTRC128): Likewise.
8398 (IX86_BUILTIN_PCMPISTRO128): Likewise.
8399 (IX86_BUILTIN_PCMPISTRS128): Likewise.
8400 (IX86_BUILTIN_PCMPISTRZ128): Likewise.
8401 (struct builtin_description): Change "flag" field to unsigned.
8402 (bdesc_pcmpestr): New builtin description table.
8403 (bdesc_pcmpistr): Likewise.
8404 (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
8405 v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
8406 Initialize pcmp[ei]str[im] insns for SSE4.2.
8407 (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
8408 (ix86_expand_sse_pcmpistr): Likewise.
8409 (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
8410 * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
8411 (UNSPEC_PCMPISTR): Likewise.
8412 * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
8413 (sse4_2_pcmpestri):New isns pattern.
8414 (sse4_2_pcmpestrm): Likewise.
8415 (sse4_2_pcmpestr_cconly): Likewise.
8416 (sse4_2_pcmpistr): New insn patern and splitter.
8417 (sse4_2_pcmpistri):New isns pattern.
8418 (sse4_2_pcmpistrm): Likewise.
8419 (sse4_2_pcmpistr_cconly): Likewise.
8420 * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
8421 in SSE4.2.
8422
8423 2007-06-01 David Daney <ddaney@avtrex.com>
8424
8425 * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
8426 LOADGP_ABSOLUTE and not binds_local_p.
8427
8428 2007-06-01 Geoffrey Keating <geoffk@apple.com>
8429
8430 * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
8431
8432 2007-06-01 Ian Lance Taylor <iant@google.com>
8433
8434 * tree-vrp.c (compare_name_with_value): Always set
8435 used_strict_overflow if we get a result from the variable itself.
8436
8437 2007-06-01 Ian Lance Taylor <iant@google.com>
8438
8439 PR rtl-optimization/31455
8440 * lower-subreg.c (find_decomposable_subregs): Don't decompose
8441 subregs which have a cast between modes which are not tieable.
8442
8443 2007-06-01 Uros Bizjak <ubizjak@gmail.com>
8444
8445 * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
8446 breaks after return statements.
8447
8448 2007-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
8449
8450 * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
8451 only after no_new_pseudos.
8452
8453 2007-05-31 Eric Christopher <echristo@apple.com>
8454
8455 * expr.c (convert_move): Assert that we don't have a BLKmode
8456 operand.
8457 (store_expr): Handle BLKmode moves by calling emit_block_move.
8458
8459 2007-05-31 Daniel Berlin <dberlin@dberlin.org>
8460
8461 * c-typeck.c (build_indirect_ref): Include type in error message.
8462 (build_binary_op): Pass types to binary_op_error.
8463 * c-common.c (binary_op_error): Take two type arguments, print out
8464 types with error.
8465 * c-common.h (binary_op_error): Update prototype.
8466
8467 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
8468
8469 * config/i386/i386.c: Correct coments on -mno-sse4.
8470
8471 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
8472
8473 * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
8474 (x86_64-*-*): Likewise.
8475 * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
8476 (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
8477 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
8478 (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
8479 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
8480 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
8481 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
8482 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
8483 (OPTION_MASK_ISA_SSE4): Likewise.
8484 (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
8485 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
8486 (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET. Handle SSE4.2.
8487 (override_options): Support SSE4.2.
8488 (ix86_build_const_vector): Support SImode and DImode.
8489 (ix86_build_signbit_mask): Likewise.
8490 (ix86_expand_int_vcond): Support V2DImode.
8491 (IX86_BUILTIN_CRC32QI): New for SSE4.2.
8492 (IX86_BUILTIN_CRC32HI): Likewise.
8493 (IX86_BUILTIN_CRC32SI): Likewise.
8494 (IX86_BUILTIN_CRC32DI): Likewise.
8495 (IX86_BUILTIN_PCMPGTQ): Likewise.
8496 (bdesc_crc32): Likewise.
8497 (bdesc_sse_3arg): Likewise.
8498 (ix86_expand_crc32): Likewise.
8499 (ix86_init_mmx_sse_builtins): Support SSE4.2.
8500 (ix86_expand_builtin): Likewise.
8501 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
8502 __SSE4_2__ for -msse4.2.
8503 * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
8504 (CRC32MODE): Likewise.
8505 (crc32modesuffix): Likewise.
8506 (crc32modeconstraint): Likewise.
8507 (sse4_2_crc32<mode>): Likewise.
8508 (sse4_2_crc32di): Likewise.
8509 * config/i386/i386.opt (msse4.2): New for SSE4.2.
8510 (msse4): Likewise.
8511 * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
8512 * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
8513 * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
8514 (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
8515 (vcondu<mode>): Likewise.
8516 * doc/extend.texi: Document SSE4.2 built-in functions.
8517 * doc/invoke.texi: Document -msse4.2/-msse4.
8518
8519 2007-05-31 Zdenek Dvorak <dvorakz@suse.cz>
8520
8521 PR tree-optimization/32160
8522 * tree-predcom.c (predcom_tmp_var): New function. Mark created
8523 variable as gimple reg.
8524 (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
8525
8526 2007-05-31 Kazu Hirata <kazu@codesourcery.com>
8527
8528 * gcc.c (main): Don't consider linker options when issuing the
8529 warning about a linker input file not being used.
8530
8531 2007-05-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8532
8533 * tree-vrp.c (compare_names): Initialize sop.
8534
8535 2007-05-30 Dirk Mueller <dmueller@suse.de>
8536
8537 * cgraphunit.c (cgraph_analyze_function): Remove
8538 computation of inline parameters.
8539
8540 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
8541
8542 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
8543
8544 2007-05-30 Richard Sandiford <richard@codesourcery.com>
8545
8546 * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
8547 Add vx-common.h. Include vxworks.h between vx-common.h and
8548 arm/vxworks.h.
8549 * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
8550 redefining.
8551 * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
8552 (TARGET_ASM_DESTRUCTOR): Likewise.
8553 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
8554 instead of arm_is_xscale. Use VXWORKS_OS_CPP_BUILTINS.
8555 (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
8556 (CC1_SPEC): Add -tstrongarm. Line up backslashes.
8557 (VXWORKS_ENDIAN_SPEC): Define.
8558 (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
8559 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
8560 VXWORKS_* equivalents.
8561 (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
8562 (ASM_FILE_START): Delete.
8563 (TARGET_VERSION): Reformat.
8564 (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
8565 (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
8566 * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
8567 (FPBIT, DPBIT): Define.
8568 (fp-bit.c, dp-bit.c): New rules.
8569 (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
8570 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
8571 * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
8572 * config/arm/arm.h: Include vxworks-dummy.h.
8573 * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
8574 Mark with ATTRIBUTE_UNUSED.
8575 (arm_override_options): Do not allow VxWorks RTP PIC to be used
8576 for Thumb. Force r9 to be the PIC register for VxWorks RTPs and
8577 make it incompatible with -msingle-pic-base.
8578 (arm_function_ok_for_sibcall): Return false for calls that might
8579 go through a VxWorks PIC PLT entry.
8580 (require_pic_register): New function, split out from...
8581 (legitimize_pic_address): ...here. Do not use GOTOFF accesses
8582 for VxWorks RTPs.
8583 (arm_load_pic_register): Handle the VxWorks RTP initialization
8584 sequence. Use pic_reg as a shorthand for cfun->machine->pic_reg.
8585 (arm_emit_call_insn): New function.
8586 (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
8587 * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
8588 (pic_offset_arm): New pattern.
8589 (call, call_value): Use arm_emit_call_insn.
8590 (call_internal, call_value_internal): New expanders.
8591 * config/arm/lib1funcs.asm (__PLT__): Define to empty for
8592 VxWorks unless __PIC__.
8593
8594 2007-05-30 Eric Christopher <echristo@gmail.com>
8595
8596 * genrecog.c: Include regs.h in generated file.
8597 * genemit.c: Ditto. Fix up formatting.
8598 * config/mn10300/constraints.md: New.
8599 * config/mn10300/mn10300.md: Include.
8600 * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
8601 Fix up for removed macro.
8602 * config/mn10300/predicates.md (call_address_operand): Ditto.
8603 * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
8604 (CONST_OK_FOR_I): Ditto.
8605 (CONST_OK_FOR_J): Ditto.
8606 (CONST_OK_FOR_K): Ditto.
8607 (CONST_OK_FOR_L): Ditto.
8608 (CONST_OK_FOR_M): Ditto.
8609 (CONST_OK_FOR_N): Ditto.
8610 (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
8611 (OK_FOR_Q): Ditto.
8612 (OK_FOR_R): Ditto.
8613 (OK_FOR_T): Ditto.
8614 (EXTRA_CONSTRAINT): Ditto.
8615
8616 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
8617
8618 * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
8619 Remove defines.
8620 * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
8621 OPTION_MASK_ISA_64BIT.
8622 * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
8623
8624 2007-05-30 Richard Guenther <rguenther@suse.de>
8625
8626 PR middle-end/32152
8627 * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
8628 types for comparison.
8629 * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
8630 with original typed arguments.
8631 * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
8632
8633 2007-05-30 Jakub Jelinek <jakub@redhat.com>
8634
8635 PR tree-optimization/31769
8636 * except.c (duplicate_eh_regions): Clear prev_try if
8637 ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
8638
8639 2007-05-30 Zdenek Dvorak <dvorakz@suse.cz>
8640
8641 * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
8642 * tree-ssa-sink.c (statement_sink_location): Return basic block and
8643 bsi of the location where statements should be inserted.
8644 (sink_code_in_bb): Take bsi from statement_sink_location.
8645 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
8646 instead of bsi_start.
8647 * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
8648 bsi_insert_after.
8649 * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
8650 (bsi_move_before): Document inconsistency with bsi_move_after.
8651 (tree_redirect_edge_and_branch): Do not create labels if not necessary.
8652
8653 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
8654
8655 * config/i386/i386.h (TARGET_ABM): New define.
8656 (TARGET_POPCNT): Ditto.
8657 (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
8658 New temporary defines to redefine from OPTION_ISA_* defines.
8659 (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
8660 New temporary defines to redefine from OPTION_MASK_ISA_* defines.
8661 (ix86_isa_flags): New extern int declaration.
8662 (TARGET_SUBTARGET_DEFAULT): New define.
8663 (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
8664 (TARGET_SUBTARGET32_DEFAULT): Ditto.
8665 (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
8666 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
8667 * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
8668 * config/i386/darwin.h: Change TARGET_64BIT define to
8669 OPTION_ISA_64BIT.
8670
8671 * config/i386/i386.opt (m3dnowa): Define as undocumented option
8672 using existing "ix86_isa_flags" varible.
8673 (m32, m64): Use existing "ix86_isa_flags" variable.
8674 (mmmx, m3dnow): Ditto.
8675 (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
8676 (mabm): Define as non-negative option using "x86_abm" variable.
8677 (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
8678
8679 * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
8680 Rewrite feature test bitmap.
8681 (ix86_isa_flags): New initialized global int varible.
8682 (ix86_isa_flags_explicit): New static int variable.
8683 (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
8684 msse, msse2, msse3, msse4.1 and msse4a option is processed. Change
8685 i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
8686 target_flags_explicit.
8687 (override_options): Remove "target_enable" and "target_disable" fields
8688 from "struct ptt". Update processor_target_table accordingly. Remove
8689 PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
8690 defined and rearrange PTA_* bits. Use "ix86_isa_flags" instead of
8691 "target_flags" and "ix86_isa_flags_explicit" instead of
8692 "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
8693 MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*. Set "x86_abm" to true when
8694 PTA_ABM is set in processor_alias_table flags entry. Set "x86_popcnt"
8695 to true when either of PTA_POPCNT or PTA_ABM is set in
8696 processor_alias_table flags entry. Set "x86_prefetch_sse" to true
8697 when either of PTA_PREFETCH_SSE or PTA_SSE is set in
8698 processor_alias_table flags entry. Remove handling of
8699 "target_enable" and "target_disable" fields of processor_target_table.
8700 Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
8701 targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
8702 Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
8703 targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
8704 (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
8705 "target_flags".
8706 (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
8707
8708 2007-05-29 David Daney <ddaney@avtrex.com>
8709
8710 PR gcc/31975
8711 * config/mips/mips.c (mips_output_mi_thunk): Emit
8712 NOTE_INSN_PROLOGUE_END at beginning of the thunk.
8713
8714 2007-05-29 Hui-May Chang <hm.chang@apple.com>
8715 * config/i386/i386.c (ix86_function_regparm): Added checking of
8716 ix86_force_align_arg_pointer to determine the number of
8717 register parameters.
8718
8719 2007-05-29 Zdenek Dvorak <dvorakz@suse.cz>
8720
8721 * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
8722 (SET_DR_MISALIGNMENT): New.
8723 * tree-vect-analyze.c (vect_compute_data_ref_alignment,
8724 vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
8725 Use SET_DR_MISALIGNMENT.
8726 * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
8727 pointer.
8728 * tree-data-ref.c (create_data_ref, compute_all_dependences,
8729 find_loop_nest): Export.
8730 * tree-data-ref.h (struct data_reference): Change aux field to pointer.
8731 (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
8732 * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
8733 (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
8734 New macros.
8735 (struct mem_ref): Add field reuse_distance.
8736 (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
8737 Initialize reuse_distance field.
8738 (issue_prefetch_ref): Select temporality of prefetch according to
8739 reuse_distance.
8740 (volume_of_references, volume_of_dist_vector, add_subscript_strides,
8741 self_reuse_distance, determine_loop_nest_reuse): New functions.
8742 (loop_prefetch_arrays): Call determine_loop_nest_reuse.
8743 (tree_ssa_prefetch_arrays): Dump L2 cache size.
8744 * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
8745 dependency.
8746
8747 2007-05-29 Daniel Berlin <dberlin@dberlin.org>
8748
8749 * tree-ssa-alias.c: Add aliasing overview.
8750
8751 2007-05-29 Zuxy Meng <zuxy.meng@gmail.com>
8752 Danny Smith <dannysmith@users.sourceforge.net>
8753
8754 PR target/29498
8755 * config/i386/t-crtfm: Compile crtfastmath.o with
8756 -minline-all-stringops.
8757 * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
8758 * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
8759
8760 2007-05-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8761
8762 * doc/md.texi: Document constraints on HP PA-RISC.
8763
8764 * pa/constraints.md: New file.
8765 * pa.md: Include constraints.md.
8766 * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
8767 (integer_store_memory_operand, ldil_cint_p): New functions.
8768 * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
8769 * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
8770 IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
8771 * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
8772 * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
8773
8774 2007-05-28 Andrew Pinski <Andrew_pinski@playstation.sony.com>
8775
8776 PR c/31339
8777 * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
8778 case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
8779 case POSTDECREMENT_EXPR>): Return the error_mark_node
8780 if either the real or imaginary parts would an
8781 error_mark_node.
8782
8783 2007-05-28 Daniel Berlin <dberlin@dberlin.org>
8784
8785 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
8786 name when we remove it from a call.
8787
8788 2007-05-28 Kazu Hirata <kazu@codesourcery.com>
8789
8790 * targhooks.c (default_narrow_bitfield): Remove.
8791 * targhooks.h: Remove the prototype for
8792 default_narrow_bitfield.
8793
8794 * langhooks-def.h: Remove the prototype for
8795 hook_get_alias_set_0.
8796 * langhooks.c (hook_get_alias_set_0): Remove.
8797
8798 * global.c (EXECUTE_IF_CONFLICT): Remove.
8799
8800 2007-05-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
8801
8802 PR tree-opt/32100
8803 * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
8804 return true when truth_value_p is true and the type
8805 is of signed:1.
8806
8807 2007-05-28 Gerald Pfeifer <gerald@pfeifer.com>
8808
8809 * doc/install.texi (Prerequisites): We no longer require Autoconf
8810 2.13 for the top-level.
8811
8812 2007-05-28 Uros Bizjak <ubizjak@gmail.com>
8813
8814 * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
8815 memory access via x86_expand_vector_move_misalign() only for
8816 TImode values on 32-bit targets.
8817
8818 2007-05-28 Razya Ladelsky <razya@il.ibm.com>
8819
8820 * matrix-reorg.c: New file. Implement matrix flattening and
8821 transposing optimization.
8822 * tree-pass.h: Add matrix reorg pass.
8823 * common.opt: Add fipa-mreorg flag.
8824 * Makefile.in: Add matrix-reorg.c.
8825 * passes.c: Add matrix reorg pass.
8826 * varpool.c (add_new_static_var): New function.
8827 * cgraph.h (add_new_static_var): Declare.
8828
8829 2007-05-27 Eric Christopher <echristo@apple.com>
8830
8831 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
8832 sp_offset depending on stack size. Save r12 depending
8833 on registers we're saving later.
8834 (rs6000_emit_epilogue): Update sp_offset depending only
8835 on stack size.
8836
8837 2007-05-27 Zdenek Dvorak <dvorakz@suse.cz>
8838
8839 * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
8840 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
8841 * ifcvt.c (if_convert): Ditto.
8842 * tree-ssa-threadupdate.c (thread_block): Ditto.
8843 (thread_through_all_blocks): Ditto. Assert that loops were analysed.
8844 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
8845 verify_loop_closed_ssa): Check number_of_loops instead of
8846 current_loops.
8847 * predict.c (tree_estimate_probability): Ditto.
8848 * tree-if-conv.c (main_tree_if_conversion): Ditto.
8849 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
8850 * modulo-sched.c (sms_schedule): Ditto.
8851 * tree-scalar-evolution.c (scev_const_prop): Ditto.
8852 (scev_finalize): Do not do anything if scev analysis was not
8853 initialized.
8854 * cfgloopanal.c (mark_irreducible_loops): Do not check whether
8855 current_loops == NULL.
8856 (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
8857 * loop-init.c (loop_optimizer_init): Do not free current_loops when
8858 there are no loops.
8859 (loop_optimizer_finalize): Assert that loops were analyzed.
8860 (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
8861 rtl_doloop): Check number_of_loops instead of current_loops.
8862 * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
8863 current_loops == NULL.
8864 (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
8865 gate_tree_vectorize tree_linear_transform, check_data_deps,
8866 tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
8867 tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
8868 Check number_of_loops instead of current_loops.
8869 (tree_ssa_loop_done): Do not check whether current_loops == NULL.
8870 * tree-ssa-pre.c (fini_pre): Do not take do_fre argument. Always
8871 free loops if available.
8872 (execute_pre): Do not pass do_fre to fini_pre.
8873
8874 2007-05-27 Tobias Burnus <burnus@net-b.de>
8875
8876 PR middle-end/32083
8877 * real.c (mpfr_from_real): Fix sign of -Inf.
8878
8879 2007-05-27 H.J. Lu <hongjiu.lu@intel.com>
8880
8881 * tree-vect-transform.c (vectorizable_conversion): Initialize
8882 tree_code variables to ERROR_MARK.
8883 (vectorizable_type_demotion): Likewise.
8884 (vectorizable_type_promotion): Likewise.
8885
8886 2007-05-26 Uros Bizjak <ubizjak@gmail.com>
8887
8888 PR target/32065
8889 * config/i386/i386.md (movti): Handle push operands via
8890 ix86_expand_push().
8891
8892 2007-05-26 Kazu Hirata <kazu@codesourcery.com>
8893
8894 * basic-block.h: Remove the prototype for merge_seq_blocks.
8895 * cfgcleanup.c (merge_seq_blocks): Remove.
8896
8897 * tree-flow.h: Remove the prototype for is_aliased_with.
8898 * tree-ssa-alias.c (is_aliased_with): Remove.
8899
8900 2007-05-26 H.J. Lu <hongjiu.lu@intel.com>
8901
8902 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
8903
8904 * config/i386/i386.c (ix86_expand_sse4_unpack): New.
8905
8906 * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
8907 ix86_expand_sse4_unpack if SSE4.1 is enabled.
8908 (vec_unpacks_hi_v16qi): Likewise.
8909 (vec_unpacku_lo_v16qi): Likewise.
8910 (vec_unpacks_lo_v16qi): Likewise.
8911 (vec_unpacku_hi_v8hi): Likewise.
8912 (vec_unpacks_hi_v8hi): Likewise.
8913 (vec_unpacku_lo_v8hi): Likewise.
8914 (vec_unpacks_lo_v8hi): Likewise.
8915 (vec_unpacku_hi_v4si): Likewise.
8916 (vec_unpacks_hi_v4si): Likewise.
8917 (vec_unpacku_lo_v4si): Likewise.
8918 (vec_unpacks_lo_v4si): Likewise.
8919
8920 2007-05-26 Kazu Hirata <kazu@codesourcery.com>
8921
8922 * c-typeck.c, config/arm/arm.c, config/darwin.c,
8923 config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
8924 omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
8925 follow spelling conventions in various
8926 warning/error/diagnostic messages.
8927
8928 * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
8929 df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
8930 fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
8931 tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
8932 tree-vrp.c: Fix comment typos. Follow spelling conventions.
8933 * doc/tm.texi: Follow spelling conventions.
8934
8935 2007-05-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
8936
8937 PR tree-opt/32090
8938 * tree-ssa-forwprop.c
8939 (forward_propagate_addr_into_variable_array_index): Remove
8940 the lhs argument. Use the type of def_rhs instead of lhs.
8941 (forward_propagate_addr_expr_1): Update use of
8942 forward_propagate_addr_into_variable_array_index.
8943
8944 2007-05-25 Sandra Loosemore <sandra@codesourcery.com>
8945 Nigel Stephens <nigel@mips.com>
8946
8947 * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
8948 function attributes, "far" being an alias for "long_call".
8949 (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
8950 (mips_near_type_p, mips_far_type_p): New.
8951 (mips_comp_type_attributes): New function to check that attributes
8952 attached to a function type are compatible.
8953 (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
8954 TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
8955 to the target function of the thunk.
8956 (mips_encode_section_info): Check for "near" and "far" function
8957 attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
8958
8959 * config/mips/predicates.md (const_call_insn_operand): Test only
8960 SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
8961
8962 * doc/extend.texi (Function Attributes): Document MIPS "near" and
8963 "far" attributes.
8964
8965 * testsuite/gcc.target/mips/near-far-1.c: New test case.
8966 * testsuite/gcc.target/mips/near-far-2.c: New test case.
8967 * testsuite/gcc.target/mips/near-far-3.c: New test case.
8968 * testsuite/gcc.target/mips/near-far-4.c: New test case.
8969
8970 2007-05-25 Eric Christopher <echristo@apple.com>
8971
8972 * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
8973 to x86-darwin configurations.
8974 * config/i386/t-darwin: Add softfp support.
8975 * config/i386/t-darwin64: Ditto.
8976 * config/i386/sfp-machine.h: If mach then don't use
8977 aliasing, emit a stub to call.
8978
8979 2007-05-25 Kazu Hirata <kazu@codesourcery.com>
8980
8981 * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
8982 haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
8983 tree-predcom.c, tree-ssa-alias-warnings.c,
8984 tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
8985 comment typos. Follow spelling conventions.
8986 * doc/cpp.texi, doc/invoke.texi: Fix typos.
8987
8988 2007-05-26 Uros Bizjak <ubizjak@gmail.com>
8989
8990 PR target/32065
8991 * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
8992 constants into memory. Expand unaligned memory references for
8993 SSE modes via x86_expand_vector_move_misalign() function.
8994
8995 2007-05-25 Uros Bizjak <ubizjak@gmail.com>
8996
8997 * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
8998 "memory" attribute for "sseishft" type insn without operands[2].
8999
9000 2007-05-25 Dirk Mueller <dmueller@suse.de>
9001 Marcus Meissner <meissner@suse.de>
9002
9003 * doc/extend.texi (alloc_size): New attribute.
9004 * c-common.c (handle_alloc_size_attribute): New.
9005 * tree-object-size.c (alloc_object_size): Use alloc_size
9006 attribute, if available.
9007
9008 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
9009
9010 * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
9011 with MASK_SSE2.
9012 (__builtin_ia32_vec_ext_v2di): Likewise.
9013 (__builtin_ia32_vec_ext_v4si): Likewise.
9014 (__builtin_ia32_vec_ext_v8hi): Likewise.
9015 (__builtin_ia32_vec_ext_v16qi): Likewise.
9016 (__builtin_ia32_vec_set_v8hi): Likewise.
9017
9018 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
9019
9020 * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
9021
9022 2007-05-25 Richard Sandiford <richard@codesourcery.com>
9023
9024 * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
9025 (arm_is_longcall_p): Rename to...
9026 (arm_is_long_call_p): ...this. Take a single tree argument and
9027 return a bool.
9028 * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
9029 (CUMULATIVE_ARGS): Remove call_cookie.
9030 (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
9031 (ENCODED_LONG_CALL_ATTR_P): Delete.
9032 (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
9033 LONG_CALL_FLAG_CHAR cases.
9034 (ARM_DECLARE_FUNCTION_SIZE): Delete.
9035 * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
9036 ARM_DECLARE_FUNCTION_SIZE.
9037 * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
9038 (arm_function_arg): Return const0_rtx for VOIDmode arguments.
9039 (arm_encode_call_attribute, current_file_function_operand): Delete.
9040 (arm_function_in_section_p): New function.
9041 (arm_is_longcall_p): Rename to...
9042 (arm_is_long_call_p): ...this. Take the target function as a single
9043 argument and return a bool. Do not rely on call cookies. Check
9044 whether the target symbol is in the same section as the current
9045 function, not just the same compilation unit.
9046 (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
9047 (arm_encode_section_info): Don't encode a call type.
9048 * config/arm/arm.md (call, call_value): Update calls to
9049 arm_is_long(_)call_p. Simplify logic.
9050 (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
9051 Update calls to arm_is_long(_)call_p.
9052
9053 2007-05-25 Richard Guenther <rguenther@suse.de>
9054
9055 PR tree-optimization/31982
9056 * tree-ssa-forwprop.c
9057 (forward_propagate_addr_into_variable_array_index): Handle arrays
9058 with element size one.
9059
9060 2007-05-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
9061
9062 * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
9063 (umulsi3_highpart): Likewise.
9064
9065 2007-05-24 Ian Lance Taylor <iant@google.com>
9066
9067 PR rtl-optimization/32069
9068 * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
9069 is NULL.
9070
9071 2007-05-24 Ollie Wild <aaw@google.com>
9072
9073 * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
9074 description.
9075
9076 2007-05-24 Richard Sandiford <rsandifo@nildram.co.uk>
9077
9078 * postreload-gcse.c (reg_changed_after_insn_p): New function.
9079 (oprs_unchanged_p): Use it to check all registers in a REG.
9080 (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
9081 (reg_set_between_after_reload_p): Delete.
9082 (reg_used_between_after_reload_p): Likewise.
9083 (reg_set_or_used_since_bb_start): Likewise.
9084 (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
9085 and reg_used_between_p instead of reg_set_or_used_since_bb_start.
9086 Use reg_set_between_p instead of reg_set_between_after_reload_p.
9087 * rtlanal.c (reg_set_p): Check whether REG overlaps
9088 regs_invalidated_by_call, rather than just checking the
9089 membership of REGNO (REG).
9090
9091 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
9092
9093 * doc/passes.texi: Document predictive commoning.
9094 * doc/invoke.texi (-fpredictive-commoning): Document.
9095 * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
9096 * tree-ssa-loop-im.c (get_lsm_tmp_name): Export. Allow
9097 adding indices to the generated name.
9098 (schedule_sm): Pass 0 to get_lsm_tmp_name.
9099 * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
9100 * tree-pretty-print.c (op_symbol_1): Renamed to ...
9101 (op_symbol_code): ... and exported.
9102 (dump_omp_clause, op_symbol): Use op_symbol_code
9103 instead of op_symbol_1.
9104 * tree-pass.h (pass_predcom): Declare.
9105 * timevar.def (TV_PREDCOM): New timevar.
9106 * tree-ssa-loop.c (run_tree_predictive_commoning,
9107 gate_tree_predictive_commoning, pass_predcom): New.
9108 * tree-data-ref.c (find_data_references_in_loop): Find the
9109 references in dominance order.
9110 (canonicalize_base_object_address): Ensure that the result has
9111 pointer type.
9112 (dr_analyze_innermost): Export.
9113 (create_data_ref): Code to fail for references with invariant
9114 address moved ...
9115 (find_data_references_in_stmt): ... here.
9116 * tree-data-ref.h (dr_analyze_innermost): Declare.
9117 * tree-affine.c: Include tree-gimple.h and hashtab.h.
9118 (aff_combination_find_elt, name_expansion_hash,
9119 name_expansion_eq, tree_to_aff_combination_expand,
9120 double_int_constant_multiple_p, aff_combination_constant_multiple_p):
9121 New functions.
9122 * tree-affine.h (aff_combination_constant_multiple_p,
9123 tree_to_aff_combination_expand): Declare.
9124 * tree-predcom.c: New file.
9125 * common.opt (fpredictive-commoning): New option.
9126 * tree-flow.h (op_symbol_code, tree_predictive_commoning,
9127 stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
9128 * Makefile.in (tree-predcom.o): Add.
9129 (tree-affine.o): Add TREE_GIMPLE_H dependency.
9130 * passes.c (init_optimization_passes): Add dceloop after
9131 copy propagation in loop optimizer. Add predictive commoning
9132 to loop optimizer passes.
9133
9134 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
9135
9136 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
9137 default hook.
9138
9139 2007-05-24 Jan Hubicka <jh@suse.cz>
9140
9141 * gengenrtl.c (gendecl, gendef): Output the gens annotated for
9142 statistics.
9143 (genheader): Include statistics.h.
9144
9145 * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
9146 notes are gone.
9147 * print-rtl.c (flag_dump_unnumbered): Update comments.
9148 (print_rtl): Fix my previous change.
9149 * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
9150 specific data.
9151
9152 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
9153
9154 PR middle-end/32018
9155 * tree-ssa-threadupdate.c (thread_through_loop_header): Use
9156 set_loop_copy.
9157 (thread_through_all_blocks): Call initialize_original_copy_tables
9158 and free_original_copy_tables.
9159 * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
9160 Use set_loop_copy.
9161 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
9162 * cfghooks.c (duplicate_block): Use get_loop_copy.
9163 * cfg.c: Include cfgloop.h.
9164 (loop_copy): New hash table.
9165 (initialize_original_copy_tables): Initialize loop_copy table.
9166 (free_original_copy_tables): Free loop_copy table.
9167 (copy_original_table_clear, copy_original_table_set,
9168 set_loop_copy, get_loop_copy): New functions.
9169 (set_bb_original, set_bb_copy): Use copy_original_table_set.
9170 * cfgloop.h (struct loop): Remove copy field.
9171 * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
9172 * basic-block.h (set_loop_copy, get_loop_copy): Declare.
9173
9174 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
9175
9176 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
9177 -msse/-msse2/-msse3.
9178
9179 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
9180
9181 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
9182 __builtin_ia32_vec_set_v2di with MASK_64BIT.
9183
9184 2007-05-24 Danny Smith <dannysmith@users.sourceforge.net>
9185
9186 PR target/27067
9187 * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
9188 * targhooks.h (default_mangle_decl_assembler_name): Declare
9189 default hook.
9190 * targhooks.c (default_mangle_decl_assembler_name): Define
9191 default hook.
9192 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
9193 default hook.
9194 * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
9195 * langhooks.c (lhd_set_decl_assembler_name): Call
9196 targetm.mangle_decl_assembler_name for names with global scope.
9197
9198 * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
9199 default.
9200 (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
9201 * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
9202 Declare.
9203 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
9204 New. Factored out of i386_pe_encode_section_info.
9205 (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
9206 Move check for prior decoration of stdcall
9207 symbols to i386_pe_encode_section_info.
9208 (i386_pe_encode_section_info): Adjust call to
9209 gen_stdcall_or_fastcall_suffix. Use
9210 i386_pe_maybe_mangle_decl_assembler_name, if needed.
9211 (i386_pe_mangle_decl_assembler_name): New. Wrap
9212 i386_pe_maybe_mangle_decl_assembler_name.
9213
9214 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
9215
9216 * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
9217 INTEGRAL_TYPE_P and TYPE_UNSIGNED.
9218 * langhooks.c (get_signed_or_unsigned_type): Don't check for
9219 INTEGRAL_TYPE_P or TYPE_UNSIGNED.
9220 (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
9221 TYPE_UNSIGNED.
9222
9223 2007-05-23 Sandra Loosemore <sandra@codesourcery.com>
9224 Nigel Stephens <nigel@mips.com>
9225 Richard Sandiford <richard@codesourcery.com>
9226
9227 Fix up MIPS16 hard float and add support for complex.
9228
9229 * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
9230 (TARGET_SOFT_FLOAT_ABI): New.
9231 (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
9232 __mips_soft_float to reflect the ABI in use, not whether the
9233 FPU is directly accessible (e.g., in MIPS16 mode).
9234 (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
9235 (UNITS_PER_FPVALUE): Likewise.
9236
9237 * config/mips/mips.c (mips_expand_call): Remove redundant
9238 TARGET_MIPS16 check.
9239 (mips_arg_regno): New.
9240 (function_arg_advance): When setting bits in cum->fp_code for
9241 MIPS16, don't subtract 1 from cum->arg_number, since it is now
9242 zero-based.
9243 (function_arg): Use mips_arg_regno.
9244 (mips_return_mode_in_fpr_p): New.
9245 (mips16_call_stub_mode_suffix): New.
9246 (mips16_cfun_returns_in_fpr_p): New.
9247 (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
9248 (mips_output_function_prologue): Test mips16_hard_float, not
9249 !TARGET_SOFT_FLOAT, to decide when a function stub is required.
9250 (mips_expand_epilogue): Call MIPS16 helper routines to copy
9251 return value into a floating-point register.
9252 (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
9253 (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
9254 (mips16_fp_args): Handle MIPS32r2 ISA which supports
9255 TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
9256 word of double arguments from or to the high bits of 64-bit
9257 floating point registers.
9258 (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
9259 (mips16_fpret_double): New helper function.
9260 (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p. Add
9261 support for complex modes. Fill in DECL_RESULT for stubdecl.
9262 (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
9263
9264 * config/mips/mips16.S
9265 (RET, ARG1, ARG2): New.
9266 (MERGE_GPRf, MERGE_GPRt): New.
9267 (DELAYt, DELAYf): New.
9268 (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
9269 (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
9270 (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
9271 (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
9272 (SFOP): Renamed to...
9273 (OPSF3): This, and macro-ified. Updated all uses.
9274 (SFOP2): Renamed to...
9275 (OPSF2): This, and macro-ified. Updated all uses.
9276 (SFCMP): Renamed to...
9277 (CMPSF): This, and macro-ified. Updated all uses.
9278 (SFREVCMP): Renamed to...
9279 (REVCMPSF): This, and macro-ified. Updated all uses.
9280 (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
9281 (LDDBL1, LDDBL2, RETDBL): Deleted.
9282 (DFOP): Renamed to...
9283 (OPDF3): This, and macro-ified. Updated all uses.
9284 (DFOP2): Renamed to...
9285 (OPDF2): This, and macro-ified. Updated all uses.
9286 (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
9287 (DFCMP): Renamed to...
9288 (CMPDF): This, and macro-ified. Updated all uses.
9289 (DFREVCMP): Renamed to...
9290 (REVCMPDF): This, and macro-ified. Updated all uses.
9291 (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
9292 (RET_FUNCTION): New.
9293 (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
9294 (__mips16_ret_sc, __mips16_ret_dc): New.
9295 (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
9296 STUB_ARGS_6, STUB_ARGS_10): New.
9297 (CALL_STUB_NO_RET): New.
9298 (__mips16_call_stub_1): Macro-ified.
9299 (__mips16_call_stub_5): Macro-ified.
9300 (__mips16_call_stub_2): Macro-ified.
9301 (__mips16_call_stub_6): Macro-ified.
9302 (__mips16_call_stub_9): Macro-ified.
9303 (__mips16_call_stub_10): Macro-ified.
9304 (CALL_STUB_RET): New.
9305 (__mips16_call_stub_sf_0): Macro-ified.
9306 (__mips16_call_stub_sf_1): Macro-ified.
9307 (__mips16_call_stub_sf_5): Macro-ified.
9308 (__mips16_call_stub_sf_2): Macro-ified.
9309 (__mips16_call_stub_sf_6): Macro-ified.
9310 (__mips16_call_stub_sf_9): Macro-ified.
9311 (__mips16_call_stub_sf_10): Macro-ified.
9312 (__mips16_call_stub_df_0): Macro-ified.
9313 (__mips16_call_stub_df_1): Macro-ified.
9314 (__mips16_call_stub_df_5): Macro-ified.
9315 (__mips16_call_stub_df_2): Macro-ified.
9316 (__mips16_call_stub_df_6): Macro-ified.
9317 (__mips16_call_stub_df_9): Macro-ified.
9318 (__mips16_call_stub_df_10): Macro-ified.
9319 (__mips16_call_stub_sc_0): New.
9320 (__mips16_call_stub_sc_1): New.
9321 (__mips16_call_stub_sc_5): New.
9322 (__mips16_call_stub_sc_2): New.
9323 (__mips16_call_stub_sc_6): New.
9324 (__mips16_call_stub_sc_9): New.
9325 (__mips16_call_stub_sc_10): New.
9326 (__mips16_call_stub_dc_0): New.
9327 (__mips16_call_stub_dc_1): New.
9328 (__mips16_call_stub_dc_5): New.
9329 (__mips16_call_stub_dc_2): New.
9330 (__mips16_call_stub_dc_6): New.
9331 (__mips16_call_stub_dc_9): New.
9332 (__mips16_call_stub_dc_10): New.
9333
9334 * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
9335 * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
9336 * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
9337
9338 2007-05-23 Ian Lance Taylor <iant@google.com>
9339
9340 * doc/invoke.texi (Invoking GCC): Document that the order of the
9341 -l option matters.
9342
9343 2007-05-23 Chen Liqin <liqin@sunnorth.com.cn>
9344
9345 PR target/30987
9346 * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
9347 * config/score/predicate.md (const_pow2, const_npow2): Remove.
9348 * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
9349 undef.
9350
9351 PR target/30474
9352 * config/score/score.c (score_print_operand): Make sure that only
9353 lower bits are used.
9354
9355 2007-05-22 Ian Lance Taylor <iant@google.com>
9356
9357 * tree-vrp.c (avoid_overflow_infinity): New static function,
9358 broken out of set_value_range_to_value.
9359 (set_value_range_to_value): Call avoid_overflow_infinity.
9360 (extract_range_from_assert): Likewise.
9361
9362 2007-05-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
9363
9364 PR middle-end/31095
9365 * builtins.c (expand_builtin_memmove_args): Strip nops that don't
9366 change the type before looking for a COMPOUND_EXPR.
9367
9368 2007-05-22 Ian Lance Taylor <iant@google.com>
9369
9370 * lower-subreg.c (decompose_multiword_subregs): If we change an
9371 insn, call remove_retval_note on it.
9372
9373 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
9374
9375 * regs.h (end_hard_regno): New function.
9376 (END_HARD_REGNO, END_REGNO): New macros.
9377 (add_to_hard_reg_set): New function.
9378 (remove_from_hard_reg_set): Likewise.
9379 (in_hard_reg_set_p): Likewise.
9380 (overlaps_hard_reg_set_p): Likewise.
9381 * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
9382 (note_btr_set): Use END_HARD_REGNO.
9383 * caller-save.c (setup_save_areas): Use end_hard_regno.
9384 (mark_set_regs): Use END_HARD_REGNO.
9385 (add_stored_regs): Use end_hard_regno.
9386 (mark_referenced_regs): Use add_to_hard_reg_set.
9387 * combine.c (update_table_tick): Use END_REGNO.
9388 (record_value_for_reg): Likewise.
9389 (record_dead_and_set_regs): Likewise.
9390 (get_last_value_validate): Likewise.
9391 (use_crosses_set_p): Likewise.
9392 (reg_dead_at_p_1): Likewise.
9393 (reg_dead_at_p): Likewise.
9394 (mark_used_regs_combine): Use add_to_hard_reg_set.
9395 (move_deaths): Use END_HARD_REGNO.
9396 (reg_bitfield_target_p): Use end_hard_regno.
9397 (distribute_notes): Use END_HARD_REGNO.
9398 * cse.c (mention_regs): Use END_REGNO.
9399 (insert): Use add_to_hard_reg_set.
9400 (invalidate): Use END_HARD_REGNO.
9401 (invalidate_for_call): Likewise.
9402 (exp_equiv_p): Use END_REGNO.
9403 (cse_insn): Likewise.
9404 * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
9405 * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
9406 * df-scan.c (df_ref_record): Use END_HARD_REGNO.
9407 * function.c (keep_stack_depressed): Use end_hard_regno.
9408 * global.c (global_alloc): Use end_hard_regno.
9409 (global_conflicts): Use add_to_hard_reg_set instead of
9410 mark_reg_live_nc.
9411 (find_reg): Likewise.
9412 (mark_reg_store): Likewise.
9413 (mark_reg_conflicts): Likewise.
9414 (mark_reg_death): Use remove_from_hard_reg_set.
9415 (mark_reg_live_nc): Delete.
9416 (set_preference): Use end_hard_regno.
9417 * local-alloc.c (mark_life): Use add_to_hard_reg_set and
9418 remove_from_hard_reg_set.
9419 (post_mark_life): Use add_to_hard_reg_set.
9420 * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
9421 (reg_becomes_live): Use add_to_hard_reg_set.
9422 * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
9423 (peep2_find_free_register): Use add_to_hard_reg_set.
9424 * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
9425 * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
9426 * regrename.c (note_sets): Use add_to_hard_reg_set.
9427 (clear_dead_regs): Use remove_from_hard_reg_set.
9428 (regrename_optimize): Use add_to_hard_reg_set.
9429 (find_oldest_value_reg): Use in_hard_reg_set_p.
9430 * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
9431 (hard_reg_set_here_p): Use end_hard_regno.
9432 (decompose): Likewise.
9433 (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
9434 (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
9435 * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
9436 (mark_home_live): Use end_hard_regno.
9437 (spill_hard_reg): Likewise.
9438 (clear_reload_reg_in_use): Likewise.
9439 * reorg.c (delete_prior_computation): Use END_REGNO.
9440 * resource.c (update_live_status): Use END_HARD_REGNO.
9441 (mark_referenced_resources): Use add_to_hard_reg_set.
9442 (mark_set_resources): Likewise.
9443 (mark_target_live_regs): Likewise. Use remove_from_hard_reg_set.
9444 * rtlanal.c (refers_to_regno_p): Use END_REGNO.
9445 (reg_overlap_mentioned_p): Likewise.
9446 (dead_or_set_p): Likewise. Use an exclusive upper loop bound.
9447 (covers_regno_no_parallel_p): Use END_REGNO.
9448 (find_regno_note): Likewise.
9449 (find_reg_fusage): Use END_HARD_REGNO.
9450 * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
9451 * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
9452
9453 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
9454
9455 * mode-switching.c (reg_dies): Change type of second argument to
9456 "HARD_REG_SET *".
9457 (optimize_mode_switching): Update accordingly.
9458
9459 2007-05-22 Richard Sandiford <richard@codesourcery.com>
9460
9461 * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
9462 in favor of...
9463 (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
9464 (hard_reg_set_empty_p): ...these new functions.
9465 * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
9466 GO_IF_HARD_REG_SUBSET.
9467 * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
9468 instead of GO_IF_HARD_REG_EQUAL.
9469 * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
9470 instead of GO_IF_HARD_REG_EQUAL.
9471 * global.c (find_reg): Use hard_reg_set_empty_p instead of
9472 GO_IF_HARD_REG_SUBSET.
9473 (modify_reg_pav): Use hard_reg_set_empty_p instead of
9474 GO_IF_HARD_REG_EQUAL.
9475 * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
9476 of GO_IF_HARD_REG_SUBSET.
9477 * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
9478 instead of GO_IF_HARD_REG_EQUAL.
9479 * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
9480 hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
9481 (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
9482 of GO_IF_HARD_REG_SUBSET,
9483 * reload1.c (finish_spills): Use hard_reg_subset_p instead of
9484 GO_IF_HARD_REG_SUBSET.
9485 * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
9486 instead of GO_IF_HARD_REG_EQUAL.
9487 * config/sh/sh.c (push_regs, calc_live_regs): Use
9488 hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
9489 (hard_regs_intersect_p): Delete.
9490
9491 2007-05-22 Janis Johnson <janis187@us.ibm.com>
9492
9493 * doc/sourcebuild.texi (Test Directives) Add dg-message.
9494
9495 2007-05-22 H.J. Lu <hongjiu.lu@intel.com>
9496 Richard Henderson <rth@redhat.com>
9497
9498 * config.gcc (i[34567]86-*-*): Add smmintrin.h to
9499 extra_headers.
9500 (x86_64-*-*): Likewise.
9501
9502 * i386/i386-modes.def (V2QI): New.
9503
9504 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
9505 SSE4A.
9506 (override_options): Support SSE4.1.
9507 (IX86_BUILTIN_BLENDPD): New for SSE4.1.
9508 (IX86_BUILTIN_BLENDPS): Likewise.
9509 (IX86_BUILTIN_BLENDVPD): Likewise.
9510 (IX86_BUILTIN_BLENDVPS): Likewise.
9511 (IX86_BUILTIN_PBLENDVB128): Likewise.
9512 (IX86_BUILTIN_PBLENDW128): Likewise.
9513 (IX86_BUILTIN_DPPD): Likewise.
9514 (IX86_BUILTIN_DPPS): Likewise.
9515 (IX86_BUILTIN_INSERTPS128): Likewise.
9516 (IX86_BUILTIN_MOVNTDQA): Likewise.
9517 (IX86_BUILTIN_MPSADBW128): Likewise.
9518 (IX86_BUILTIN_PACKUSDW128): Likewise.
9519 (IX86_BUILTIN_PCMPEQQ): Likewise.
9520 (IX86_BUILTIN_PHMINPOSUW128): Likewise.
9521 (IX86_BUILTIN_PMAXSB128): Likewise.
9522 (IX86_BUILTIN_PMAXSD128): Likewise.
9523 (IX86_BUILTIN_PMAXUD128): Likewise.
9524 (IX86_BUILTIN_PMAXUW128): Likewise.
9525 (IX86_BUILTIN_PMINSB128): Likewise.
9526 (IX86_BUILTIN_PMINSD128): Likewise.
9527 (IX86_BUILTIN_PMINUD128): Likewise.
9528 (IX86_BUILTIN_PMINUW128): Likewise.
9529 (IX86_BUILTIN_PMOVSXBW128): Likewise.
9530 (IX86_BUILTIN_PMOVSXBD128): Likewise.
9531 (IX86_BUILTIN_PMOVSXBQ128): Likewise.
9532 (IX86_BUILTIN_PMOVSXWD128): Likewise.
9533 (IX86_BUILTIN_PMOVSXWQ128): Likewise.
9534 (IX86_BUILTIN_PMOVSXDQ128): Likewise.
9535 (IX86_BUILTIN_PMOVZXBW128): Likewise.
9536 (IX86_BUILTIN_PMOVZXBD128): Likewise.
9537 (IX86_BUILTIN_PMOVZXBQ128): Likewise.
9538 (IX86_BUILTIN_PMOVZXWD128): Likewise.
9539 (IX86_BUILTIN_PMOVZXWQ128): Likewise.
9540 (IX86_BUILTIN_PMOVZXDQ128): Likewise.
9541 (IX86_BUILTIN_PMULDQ128): Likewise.
9542 (IX86_BUILTIN_PMULLD128): Likewise.
9543 (IX86_BUILTIN_ROUNDPD): Likewise.
9544 (IX86_BUILTIN_ROUNDPS): Likewise.
9545 (IX86_BUILTIN_ROUNDSD): Likewise.
9546 (IX86_BUILTIN_ROUNDSS): Likewise.
9547 (IX86_BUILTIN_PTESTZ): Likewise.
9548 (IX86_BUILTIN_PTESTC): Likewise.
9549 (IX86_BUILTIN_PTESTNZC): Likewise.
9550 (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
9551 (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
9552 (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
9553 (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
9554 (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
9555 (bdesc_ptest): New.
9556 (bdesc_sse_3arg): Likewise.
9557 (bdesc_2arg): Likewise.
9558 (bdesc_1arg): Likewise.
9559 (ix86_init_mmx_sse_builtins): Support SSE4.1. Handle SSE builtins
9560 with 3 args.
9561 (ix86_expand_sse_4_operands_builtin): New.
9562 (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
9563 smaller than 8 bits as the 2nd arg.
9564 (ix86_expand_sse_ptest): New.
9565 (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
9566 (ix86_expand_vector_set): Support SSE4.1.
9567 (ix86_expand_vector_extract): Likewise.
9568
9569 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
9570 __SSE4_1__ for -msse4.1.
9571
9572 * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
9573 (UNSPEC_INSERTPS): Likewise.
9574 (UNSPEC_DP): Likewise.
9575 (UNSPEC_MOVNTDQA): Likewise.
9576 (UNSPEC_MPSADBW): Likewise.
9577 (UNSPEC_PHMINPOSUW): Likewise.
9578 (UNSPEC_PTEST): Likewise.
9579 (UNSPEC_ROUNDP): Likewise.
9580 (UNSPEC_ROUNDS): Likewise.
9581
9582 * config/i386/i386.opt (msse4.1): New for SSE4.1.
9583
9584 * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
9585 (const_pow2_1_to_32768_operand): Likewise.
9586
9587 * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
9588 file.
9589
9590 * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
9591 SSE4.1.
9592 (sse4_1_insertps): Likewise.
9593 (*sse4_1_extractps): Likewise.
9594 (sse4_1_ptest): Likewise.
9595 (sse4_1_mulv2siv2di3): Likewise.
9596 (*sse4_1_mulv4si3): Likewise.
9597 (*sse4_1_smax<mode>3): Likewise.
9598 (*sse4_1_umax<mode>3): Likewise.
9599 (*sse4_1_smin<mode>3): Likewise.
9600 (*sse4_1_umin<mode>3): Likewise.
9601 (sse4_1_eqv2di3): Likewise.
9602 (*sse4_1_pinsrb): Likewise.
9603 (*sse4_1_pinsrd): Likewise.
9604 (*sse4_1_pinsrq): Likewise.
9605 (*sse4_1_pextrb): Likewise.
9606 (*sse4_1_pextrb_memory): Likewise.
9607 (*sse4_1_pextrw_memory): Likewise.
9608 (*sse4_1_pextrq): Likewise.
9609 (sse4_1_blendpd): Likewise.
9610 (sse4_1_blendps): Likewise.
9611 (sse4_1_blendvpd): Likewise.
9612 (sse4_1_blendvps): Likewise.
9613 (sse4_1_dppd): Likewise.
9614 (sse4_1_dpps): Likewise.
9615 (sse4_1_movntdqa): Likewise.
9616 (sse4_1_mpsadbw): Likewise.
9617 (sse4_1_packusdw): Likewise.
9618 (sse4_1_pblendvb): Likewise.
9619 (sse4_1_pblendw): Likewise.
9620 (sse4_1_phminposuw): Likewise.
9621 (sse4_1_extendv8qiv8hi2): Likewise.
9622 (*sse4_1_extendv8qiv8hi2): Likewise.
9623 (sse4_1_extendv4qiv4si2): Likewise.
9624 (*sse4_1_extendv4qiv4si2): Likewise.
9625 (sse4_1_extendv2qiv2di2): Likewise.
9626 (*sse4_1_extendv2qiv2di2): Likewise.
9627 (sse4_1_extendv4hiv4si2): Likewise.
9628 (*sse4_1_extendv4hiv4si2): Likewise.
9629 (sse4_1_extendv2hiv2di2): Likewise.
9630 (*sse4_1_extendv2hiv2di2): Likewise.
9631 (sse4_1_extendv2siv2di2): Likewise.
9632 (*sse4_1_extendv2siv2di2): Likewise.
9633 (sse4_1_zero_extendv8qiv8hi2): Likewise.
9634 (*sse4_1_zero_extendv8qiv8hi2): Likewise.
9635 (sse4_1_zero_extendv4qiv4si2): Likewise.
9636 (*sse4_1_zero_extendv4qiv4si2): Likewise.
9637 (sse4_1_zero_extendv2qiv2di2): Likewise.
9638 (*sse4_1_zero_extendv2qiv2di2): Likewise.
9639 (sse4_1_zero_extendv4hiv4si2): Likewise.
9640 (*sse4_1_zero_extendv4hiv4si2): Likewise.
9641 (sse4_1_zero_extendv2hiv2di2): Likewise.
9642 (*sse4_1_zero_extendv2hiv2di2): Likewise.
9643 (sse4_1_zero_extendv2siv2di2): Likewise.
9644 (*sse4_1_zero_extendv2siv2di2): Likewise.
9645 (sse4_1_roundpd): Likewise.
9646 (sse4_1_roundps): Likewise.
9647 (sse4_1_roundsd): Likewise.
9648 (sse4_1_roundss): Likewise.
9649 (mulv4si3): Don't expand for SSE4.1.
9650 (smax<mode>3): Likewise.
9651 (umaxv4si3): Likewise.
9652 (uminv16qi3): Likewise.
9653 (umin<mode>3): Likewise.
9654 (umaxv8hi3): Rewrite. Only enabled for SSE4.1.
9655
9656 * doc/extend.texi: Document SSE4.1 built-in functions.
9657
9658 * doc/invoke.texi: Document -msse4.1.
9659
9660 2007-05-22 Nathan Sidwell <nathan@codesourcery.com>
9661
9662 * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
9663 * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
9664 * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
9665 (ASM_SPEC): Add asm_pcrel_spec.
9666 (EXTRA_SPECS): Add asm_pcrel_spec.
9667
9668 2007-05-21 David Daney <ddaney@avtrex.com>
9669
9670 * doc/install.texi (Building a cross compiler): Add requirements
9671 for Java cross compiler.
9672
9673 2007-05-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
9674
9675 PR middle-end/31995
9676 * tree-chrec.c (evolution_function_is_affine_multivariate_p):
9677 Add loopno argument. Use evolution_function_is_invariant_rec_p
9678 instead of evolution_function_is_constant_p.
9679 Update calls to evolution_function_is_affine_multivariate_p.
9680 * tree-chrec.h (evolution_function_is_affine_multivariate_p):
9681 Add loopno argument.
9682 * tree-scalar-evolution.c (gather_chrec_stats): Call
9683 evolution_function_is_affine_multivariate_p with a loop
9684 number of 0.
9685 * tree-data-ref.c (analyze_miv_subscript): Likewise.
9686 (analyze_overlapping_iterations): Likewise.
9687 (access_functions_are_affine_or_constant_p): Likewise.
9688 (build_classic_dist_vector_1): If the access functions
9689 are equal, don't do anything.
9690
9691 2007-05-21 Paolo Bonzini <bonzini@gnu.org>
9692 Paolo Carlini <pcarlini@suse.de>
9693 Uros Bizjak <ubizjak@gmail.com>
9694
9695 * c-cppbuiltin.c (c_cpp_builtins): Define
9696 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
9697 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
9698 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
9699 * doc/cpp.texi ([Standard Predefined Macros]): Document.
9700
9701 2007-05-21 Mike Stump <mrs@apple.com>
9702
9703 * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
9704 handling as well.
9705 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
9706
9707 2007-05-21 Uros Bizjak <ubizjak@gmail.com>
9708
9709 * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
9710 implementation if __OPTIMIZE__ is not defined.
9711 (_mm_alignr_pi8): Ditto.
9712 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
9713 (_mm_inserti_si64): Ditto.
9714 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
9715 (_mm_slli_epi16): Ditto.
9716 (_mm_slli_epi32): Ditto.
9717 (_mm_slli_epi64): Ditto.
9718 (_mm_srai_epi16): Ditto.
9719 (_mm_srai_epi32): Ditto.
9720 (_mm_srli_si128): Ditto.
9721 (_mm_slli_si128): Ditto.
9722 (_mm_srli_epi16): Ditto.
9723 (_mm_srli_epi32): Ditto.
9724 (_mm_srli_epi64): Ditto.
9725 (_mm_extract_epi16): Ditto.
9726 (_mm_insert_epi16): Ditto.
9727 (_mm_shufflehi_epi16): Ditto.
9728 (_mm_shufflelo_epi16): Ditto.
9729 (_mm_shuffle_epi32): Ditto.
9730 * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
9731 (_m_pextrw): Ditto.
9732 (_mm_insert_pi16): Ditto.
9733 (_m_pinsrw): Ditto.
9734 (_mm_shuffle_pi16): Ditto.
9735 (_m_pshufw): Ditto.
9736 (_mm_shufle_ps): Ditto.
9737 (_mm_prefetch): Ditto.
9738
9739 2007-05-21 Andreas Krebbel <krebbel1@de.ibm.com>
9740
9741 * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
9742 * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
9743 * real.c (encode_i370_single, decode_i370_single,
9744 encode_i370_double, decode_i370_double): Functions removed.
9745 (i370_single_format, i370_double_format): Initializations removed.
9746 (real_maxval, round_for_format, exact_real_truncate, significand_size):
9747 Consider the log2_b field to always be one.
9748 (ieee_single_format, mips_single_format, coldfire_single_format,
9749 ieee_double_format, mips_double_format, coldfire_double_format,
9750 ieee_extended_motorola_format, ieee_extended_intel_96_format,
9751 ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
9752 ibm_extended_format, mips_extended_format, ieee_quad_format,
9753 mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
9754 decimal_single_format, decimal_double_format, decimal_quad_format,
9755 c4x_single_format, c4x_extended_format, real_internal_format): Remove
9756 initialization of log2_b.
9757 * real.h (i370_single_format, i370_double_format): Declarations
9758 removed.
9759 * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
9760 field to always be one.
9761
9762 2007-05-21 Andreas Schwab <schwab@suse.de>
9763
9764 * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
9765 NOTE_INSN_BASIC_BLOCK_P.
9766 (process_for_unwind_directive): Likewise.
9767
9768 2007-05-21 Nathan Sidwell <nathan@codesourcery.com>
9769
9770 * builtins.c (expand_builtin_setjmp_setup): Update comment.
9771 * function.h (struct function): Move va_list_gpr_size,
9772 va_list_fpr_size, function_frequency to front of bitfields. Add
9773 calls_unwind_init.
9774 (current_function_calls_unwind_init): New.
9775 * except.c (expand_builtin_unwind_init): Set
9776 current_function_calls_unwind_init not
9777 current_function_has_nonlocal_label.
9778 * reload1.c (has_nonexceptional_receiver): New.
9779 (reload): Use it and current_function_calls_unwind_init to
9780 determine whether call-saved regs must be saved.
9781
9782 2007-05-20 Jan Hubicka <jh@suse.cz>
9783
9784 * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
9785 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
9786 * ddg.c (create_ddg): LIkewise.
9787 * final.c (final): Remove hunk moving line number notes around since
9788 they are no longer present at this stage.
9789 (final_scan_insn): Use NOTE_KIND instead of
9790 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
9791 (output_asm_label): Likewise.
9792 * reorg.c (dbr_schedule): Likewise.
9793 * haifa-sched.c (unlink_other_notes): Likewise.
9794 * mode-switching.c (optimize_mode_switching): Likewise.
9795 * graph.c (start_bb): Likewise.
9796 * rtl.def (NOTE): Update description.
9797 * jump.c (squeeze_notes): Delete.
9798 (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
9799 NOTE_INSN_BASIC_BLOCK_P when possible.
9800 * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
9801 * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
9802 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
9803 (dwarf2out_var_location): Likewise.
9804 * cfgbuild.c (make_edges): Likewise.
9805 (find_basic_blocks_1): Likewise.
9806 * function.c (reorder_blocks_1): Likewise.
9807 (epilogue_done): Likewise.
9808 (reposition_prologue_and_epilogue_notes): Likewise.
9809 * print-rtl.c (print_rtx): Likewise; drop code for printing
9810 line number notes.
9811 (print_rtl): Likewise.
9812 (print_rtl_single): Likewise.
9813 * gcse.c (insert_insn_start_bb): Likewise.
9814 * alias.c (init_alias_analysis): Likewise.
9815 * calls.c (fixup_tail_calls): Likewise.
9816 * except.c (sjlj_emit_function_enter): Likewise.
9817 * emit-rtl.c (add_insn_after): Likeiwse.
9818 (emit_label_before): Likewise.
9819 (emit_label_after): Likewise.
9820 (emit_note_before, emit_note_after, emit_note): Update
9821 parameter to be enum insn_note; do not deal with source
9822 files.
9823 * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
9824 Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
9825 when possible.
9826 (merge_blocks_move_successor_nojumps): Simplify now when
9827 we don't have BLOCK notes.
9828 (try_optimize_cfg): Likewise.
9829 * cfglayout.c (skip_insns_after_block): Likewise.
9830 (record_effective_endpoints): Likewise.
9831 (duplicate_insn_chain): Likewise.
9832 * varasm.c (output_constant_pool_1): Likewise.
9833 * sched-deps.c (sched_analyze): Likewise.
9834 * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
9835 Exterminate.
9836 (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
9837 * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
9838 (SET_INSN_DELETED): Simplify.
9839 (NOTE_LINE_NUMBER): Exterminate.
9840 (NOTE_LINE_KIND): New.
9841 (NOTE_INSN_BASIC_BLOCK_P): Update.
9842 (enum insn_note): Simplify.
9843 (GET_NOTE_INSN_NAME) Simplify.
9844 (emit_note_before, emit_note_after, emit_note): Update prototype.
9845 (squeeze_notes): Remove.
9846 * sched-int.h (NOTE_NOT_BB_P): Update.
9847 * resource.c (mark_target_live_regs): Update.
9848 * sched-rgn.c (debug_dependencies): Update.
9849 * sched-vis.c (print_insn): Update.
9850 * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
9851 * config/i386/i386.c (ix86_output_function_epilogue): Update.
9852 * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
9853 (TARGET_ADJUST_UNROLL_MAX): Likewise.
9854 (split_branches): Update.
9855 (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
9856 4.0.0.
9857 (sh_adjust_unroll_max): Exterminate.
9858 * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
9859 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
9860 (m68hc11_reorg): Likewise.
9861 * config/ia64/ia64.c (emit_insn_group_barriers): Update.
9862 (emit_predicate_relation_info): Update.
9863 (process_for_unwind_directive): Update.
9864 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
9865 (output_call): Update.
9866 * config/pa/pa.c (output_lbranch): Update.
9867 (output_millicode_call): Update.
9868 (output_call): Update.
9869 (pa_combine_instructions): Update.
9870 * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
9871 * config/bfin/bfin.c (gen_one_bundle): Update.
9872 * cfgrtl.c (can_delete_note_p): Update.
9873 (delete_insn): Update.
9874 (rtl_merge_blocks): Update.
9875 (commit_one_edge_insertion): Update.
9876 (rtl_verify_flow_info): Update.
9877 * stmt.c (expand_case): Do not call squeeze_notes.
9878
9879 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9880
9881 PR middle-end/7651
9882 PR c++/11856
9883 PR c/12963
9884 PR c/23587
9885 PR other/29694
9886 * c.opt (Wtype-limits): New.
9887 * doc/invoke.texi (Wtype-limits): Document it.
9888 (Wextra): Enabled by -Wextra.
9889 * c-opts.c (c_common_post_options): Enabled by -Wextra.
9890 * c-common.c (shorten_compare): Warn with Wtype-limits.
9891
9892 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
9893
9894 * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
9895 inlined function, not as a macro.
9896 (_mm_alignr_pi8): Ditto.
9897 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
9898 (_mm_inserti_si64): Ditto.
9899 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
9900 (_mm_extract_epi16): Ditto.
9901 (_mm_insert_epi16): Ditto.
9902 (_mm_shufflehi_epi16): Ditto.
9903 (_mm_shufflelo_epi16): Ditto.
9904 (_mm_shuffle_epi32): Ditto.
9905 * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
9906 * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
9907 all functions.
9908 (_m_from_float): Add __extension__ to conversion. Use 0.0f for
9909 float constant.
9910 (_m_to_float): Use C89 compatible assignment.
9911
9912 2007-05-20 Martin Michlmayr <tbm@cyrius.com>
9913
9914 PR target/32007
9915 * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
9916
9917 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9918
9919 PR middle-end/7651
9920 * doc/invoke.texi (Wreturn-type): Complete description.
9921 (Wextra): Delete item about return-type warning.
9922 * c-decl.c: Delete redundant Wextra warning.
9923
9924 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
9925
9926 PR target/31585
9927 * config/i386/pmmintrin.h: Do not include xmmintrin.h
9928 * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
9929 inlined function, not as a macro.
9930 (_mm_prefetch): Ditto.
9931 (_m_pextrw): Ditto.
9932 (_mm_insert_pi16): Ditto.
9933 (_m_pinsrw): Ditto.
9934 (_mm_shuffle_pi16): Ditto. Add const to __N argument.
9935 (_m_pshufw): Ditto. Add const to __N argument.
9936 (_mm_shufle_ps): Ditto. Add const to __mask argument.
9937 * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
9938 (_mm_slli_epi32): Ditto.
9939 (_mm_srli_si128): Implement as always inlined function, not as a
9940 macro. Add __inline to function declaration.
9941 (_mm_slli_si128): Ditto.
9942
9943 2007-05-19 Uros Bizjak <ubizjak@gmail.com>
9944
9945 * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
9946 FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
9947 New constants.
9948 (struct fenv): New structure.
9949 (FP_HANDLE_EXCEPTIONS): New define.
9950 (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
9951 (_FP_DECL_EXP): New define.
9952 (FP_INIT_ROUNDMODE): New define.
9953 (FP_ROUNDMODE): New define.
9954
9955 2007-05-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9956
9957 * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
9958 (Wconversion): Update description.
9959 (Wconversion-sign): New.
9960 * c.opt (Wconversion-sign): New.
9961 * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
9962 means disabled for C++. Otherwise, take the status of Wconversion.
9963 * c-common.c (conversion_warning): Warn with either Wconversion or
9964 Wconversion-sign.
9965 (warnings_for_convert_and_check): Conditions are already checked by
9966 conversion_warning.
9967 (convert_and_check): Don't check warnings if the conversion failed.
9968
9969 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
9970 Anatoly Sokolov <aesok@dol.ru>
9971
9972 * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
9973 avr_epilogue_uses) : Add declaration.
9974 * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
9975 * config/avr/constraints.md (R): New constraint.
9976 config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
9977 UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
9978 (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
9979 (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
9980 (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
9981 call_prologue_saves, epilogue_restores, return_from_epilogue,
9982 return_from_main_epilogue, return_from_interrupt_epilogue,
9983 return_from_naked_epilogue, prologue, epilogue): New patterns.
9984 (jump): Handle symbol reference.
9985 * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
9986 avr_output_function_prologue, avr_output_function_epilogue): Remove
9987 functions.
9988 (avr_init_machine_status, expand_prologue, expand_epilogue,
9989 avr_asm_function_end_prologue, avr_epilogue_uses,
9990 avr_asm_function_begin_epilogue): New functions.
9991 (prologue_size, epilogue_size, jump_tables_size): Remove global
9992 variables.
9993 (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
9994 (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
9995 (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
9996 (avr_override_options): Initialise init_machine_status.
9997 (output_movhi): Handle all stack pointer loads.
9998 (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
9999 (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
10000 * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
10001 (EPILOGUE_USES) Redefine.
10002 (machine_function) Declare.
10003
10004 2007-05-19 Richard Sandiford <richard@codesourcery.com>
10005
10006 * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
10007 Use a single return statement.
10008
10009 2007-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10010
10011 PR middle-end/30250
10012 * builtins.c (do_mpfr_lgamma_r): New.
10013 (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
10014 * tree.h (CASE_FLT_FN_REENT): New.
10015
10016 2007-05-18 Geoffrey Keating <geoffk@apple.com>
10017
10018 * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
10019 (output_die): Use 'unsigned long' with %x.
10020 * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
10021 HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
10022 * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
10023
10024 * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
10025
10026 2007-05-18 H.J. Lu <hongjiu.lu@intel.com>
10027
10028 PR target/31989
10029 PR target/31681
10030 PR target/31666
10031 * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
10032 true if function has no argument.
10033
10034 2007-05-18 DJ Delorie <dj@redhat.com>
10035
10036 * config/mips/mips.c (mips_offset_within_alignment_p): New.
10037 (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
10038
10039 2007-05-18 Uros Bizjak <ubizjak@gmail.com>
10040
10041 * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
10042 sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
10043 count_trailing_zeros.
10044 (__i386__): Implement count_leading_zeros using __builtin_clz().
10045 Implement count_trailing_zeros usign __builtin_ctz().
10046
10047 2007-05-18 Richard Sandiford <richard@codesourcery.com>
10048
10049 * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
10050
10051 2007-05-18 Uros Bizjak <ubizjak@gmail.com>
10052
10053 PR middle-end/31344
10054 * expr.c (emit_move_change_mode): Change mode of push operands here.
10055
10056 2007-05-17 Ian Lance Taylor <iant@google.com>
10057
10058 PR tree-optimization/31953
10059 * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
10060 Change all callers.
10061 (set_value_range_to_null): Call set_value_range_to_value.
10062 (extract_range_from_comparison): Likewise.
10063
10064 2007-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10065
10066 * toplev.c (print_version): Output GMP/MPFR version info.
10067
10068 * builtins.c (CASE_MATHFN_REENT): New macro.
10069 (mathfn_built_in): Use it.
10070 * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
10071 BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
10072 BUILT_IN_LGAMMAL_R): New.
10073 * doc/extend.texi: Document new builtins.
10074
10075 PR middle-end/31796
10076 * builtins.c (do_mpfr_remquo): New.
10077 (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
10078 (fold_builtin_3): Handle BUILT_IN_REMQUO.
10079
10080 PR middle-end/30251
10081 * builtins.c (fold_builtin_1): Handle y0, y1.
10082 (fold_builtin_2): Handle yn.
10083
10084 PR middle-end/30251
10085 * builtins.c (do_mpfr_bessel_n): New.
10086 (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
10087 (fold_builtin_2): Handle BUILT_IN_JN.
10088
10089 2007-05-17 Danny Smith <dannysmith@users.sourceforge.net>
10090
10091 PR target/31965
10092 * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
10093 TYPE_PRECISION (intmax_type_node).
10094
10095 2007-05-17 Steve Ellcey <sje@cup.hp.com>
10096
10097 PR target/31850
10098 * reload.c (subst_reloads): Remove checking.
10099
10100 2007-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
10101
10102 PR rtl-optimization/31691
10103 * combine.c (simplify_set): Build a new src pattern instead of
10104 substituting its operands in the COMPARE case.
10105
10106 2007-05-17 Zdenek Dvorak <dvorakz@suse.cz>
10107
10108 * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
10109 (execute_vrp): Preserve loops through jump threading.
10110 * tree-ssa-threadupdate.c (thread_single_edge,
10111 dbds_continue_enumeration_p, determine_bb_domination_status,
10112 thread_through_loop_header): New functions.
10113 (create_edge_and_update_destination_phis,
10114 create_edge_and_update_destination_phis): Set loops for the new blocks.
10115 (prune_undesirable_thread_requests): Removed.
10116 (redirect_edges): Do not pretend that redirect_edge_and_branch can
10117 create new blocks.
10118 (thread_block): Do not call prune_undesirable_thread_requests.
10119 Update loops.
10120 (mark_threaded_blocks): Select edges to thread here.
10121 (thread_through_all_blocks): Take may_peel_loop_headers argument.
10122 Thread edges through loop headers independently.
10123 * cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
10124 * tree-pass.h (TODO_mark_first_instance): New.
10125 (first_pass_instance): Declare.
10126 * cfghooks.c (duplicate_block): Put the block to the original loop
10127 if copy is not specified.
10128 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
10129 jump threading. Pass may_peel_loop_headers to
10130 thread_through_all_blocks according to first_pass_instance.
10131 * cfgloop.h (create_preheader): Declare.
10132 * tree-flow.h (thread_through_all_blocks): Declaration changed.
10133 * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
10134 * passes.c (first_pass_instance): New variable.
10135 (next_pass_1): Set TODO_mark_first_instance.
10136 (execute_todo): Set first_pass_instance.
10137
10138 2007-05-17 Uros Bizjak <ubizjak@gmail.com>
10139
10140 PR tree-optimization/24659
10141 * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
10142 OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
10143 OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
10144 OTI_vec_pack_ufix_trunc.
10145 (vec_unpacks_float_hi_optab): Define new macro.
10146 (vec_unpacks_float_lo_optab): Ditto.
10147 (vec_unpacku_float_hi_optab): Ditto.
10148 (vec_unpacku_float_lo_optab): Ditto.
10149 (vec_pack_sfix_trunc_optab): Ditto.
10150 (vec_pack_ufix_trunc_optab): Ditto.
10151 * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
10152 and vec_pack_[s|u]fix_trunc_optab using
10153 vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
10154 * tree-vectorizer.c (supportable_widening_operation): Handle
10155 FLOAT_EXPR and CONVERT_EXPR. Update comment.
10156 (supportable_narrowing_operation): New function.
10157 * tree-vectorizer.h (supportable_narrowing_operation): Prototype.
10158 * tree-vect-transform.c (vectorizable_conversion): Handle
10159 (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
10160 (vect_gen_widened_results_half): Move before vectorizable_conversion.
10161 (vectorizable_type_demotion): Call supportable_narrowing_operation()
10162 to check for target support.
10163 * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
10164 for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
10165 for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
10166 for VEC_PACK_FIX_TRUNC_EXPR.
10167 (expand_binop): Special case mode of the result for
10168 vec_pack_[u|s]fix_trunc_optab.
10169 (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
10170 vec_pack_[u|s]fix_trunc_optab.
10171
10172 * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
10173 VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
10174 * tree-pretty-print.c (dump_generic_node): Handle
10175 VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
10176 VEC_PACK_FIX_TRUNC_EXPR.
10177 (op_prio): Ditto.
10178 * expr.c (expand_expr_real_1): Ditto.
10179 * tree-inline.c (estimate_num_insns_1): Ditto.
10180 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
10181
10182 * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
10183 (vec_unpacks_float_lo_v8hi): Ditto.
10184 (vec_unpacku_float_hi_v8hi): Ditto.
10185 (vec_unpacku_float_lo_v8hi): Ditto.
10186 (vec_unpacks_float_hi_v4si): Ditto.
10187 (vec_unpacks_float_lo_v4si): Ditto.
10188 (vec_pack_sfix_trunc_v2df): Ditto.
10189
10190 * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
10191 Document.
10192 [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
10193 [VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
10194 * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
10195 [vec_pack_ufix_trunc]: Ditto.
10196 [vec_unpacks_float_hi]: Ditto.
10197 [vec_unpacks_float_lo]: Ditto.
10198 [vec_unpacku_float_hi]: Ditto.
10199 [vec_unpacku_float_lo]: Ditto.
10200
10201 2007-05-16 Uros Bizjak <ubizjak@gmail.com>
10202
10203 * soft-fp/README: Update for new files.
10204 * soft-fp/floattisf.c: New file.
10205 * soft-fp/floattidf.c: New file.
10206 * soft-fp/floattitf.c: New file.
10207 * soft-fp/floatuntisf.c: New file.
10208 * soft-fp/floatuntidf.c: New file.
10209 * soft-fp/floatuntitf.c: New file.
10210 * soft-fp/fixsfti.c: New file.
10211 * soft-fp/fixdfti.c: New file.
10212 * soft-fp/fixtfti.c: New file.
10213 * soft-fp/fixunssfti.c: New file.
10214 * soft-fp/fixunsdfti.c: New file.
10215 * soft-fp/fixunstfti.c: New file.
10216 * soft-fp/extendxftf.c: New file.
10217 * soft-fp/trunctfxf.c: New file.
10218
10219 * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
10220 (__trunctfxf2): Ditto.
10221
10222 * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
10223 __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
10224 __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
10225 __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
10226 __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
10227 __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.
10228
10229 * config/i386/t-fprules-softfp64: New file.
10230 * config/i386/sfp-machine.h: New file.
10231 * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
10232 x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
10233 and soft-fp/t-softfp to tmake_file.
10234 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
10235 i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
10236
10237 * config/i386/t-linux64 (softfp_wrap_start): New.
10238 (softfp_wrap_end): New.
10239 * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
10240 supported for TARGET_64BIT.
10241
10242 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
10243
10244 * c-common.c (c_common_signed_or_unsigned_type): Emulate
10245 c_common_unsigned_type behavior.
10246
10247 2007-05-16 Paolo Bonzini <bonzini@gnu.org>
10248
10249 * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
10250 calls as pure.
10251
10252 2007-05-16 Eric Christopher <echristo@apple.com>
10253
10254 * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
10255 saving after stack push. Set sp_offset whenever we push.
10256 (rs6000_emit_epilogue): Move altivec register restore before
10257 stack push.
10258
10259 2007-05-16 Richard Sandiford <richard@codesourcery.com>
10260
10261 * configure.ac: Allow sysroots to be relocated under $prefix as
10262 well as $exec_prefix.
10263 * configure: Regenerate.
10264
10265 2007-05-16 Richard Sandiford <richard@codesourcery.com>
10266
10267 Revert:
10268
10269 2007-05-12 Richard Sandiford <richard@codesourcery.com>
10270
10271 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
10272 (gcc_tooldir): Likewise.
10273 * configure: Regenerate.
10274 * Makefile.in (libsubdir_to_prefix): New variable, based on the
10275 old configure.ac gcc_tooldir setting.
10276 (prefix_to_exec_prefix): New variable.
10277 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
10278 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
10279
10280 2007-05-14 Janis Johnson <janis187@us.ibm.com>
10281
10282 * c-typeck.c (build_binary_op): Return early for error.
10283
10284 2007-05-15 Zdenek Dvorak <dvorakz@suse.cz>
10285
10286 * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
10287 struct nb_iter_bound.
10288 (free_numbers_of_iterations_estimates_loop): Use ggc_free.
10289 * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
10290 * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
10291 * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
10292 (struct scev_info_str, scalar_evolution_info): Add GTY markers.
10293 (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
10294 (del_scev_info): Use ggc_free.
10295 (scev_initialize): Allocate scalar_evolution_info in gc memory.
10296 * loop-init.c: Include ggc.h.
10297 (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
10298 (loop_optimizer_finalize): Use ggc_free.
10299 * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
10300 pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
10301 pass_iv_optimize): Add TODO_ggc_collect.
10302 * function.h (struct function): Remove skip marker from
10303 x_current_loops.
10304 * cfgloop.c: Include ggc.h.
10305 (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
10306 memory.
10307 (establish_preds): Vector superloops is gc allocated.
10308 (alloc_loop): Allocate loop using GGC_CNEW. Allocate head of
10309 loop->exits list.
10310 (flow_loops_find): Vector larray is gc allocated.
10311 (loop_exit_free): Use ggc_free.
10312 (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit. Reflect
10313 that head of exits list is now not a part of struct loop.
10314 (record_loop_exits): Allocate exits table in gc memory.
10315 (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect
10316 that head of exits list is now not a part of struct loop.
10317 * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
10318 struct loop_exit): Add GTY marker.
10319 (struct loop): Add GTY marker. Make superloops vector gc allocated.
10320 Add skip marker to aux field. Make head of exits list a separate
10321 object.
10322 (struct loops): Add GTY marker. Make larray vector gc allocated.
10323 Add param marker to exits table.
10324 (get_loops): Type changed.
10325 * Makefile.in (tree-scalar-evolution.o): Add
10326 gt-tree-scalar-evolution.h dependency.
10327 (cfgloop.o, loop-init.o): Add ggc.h dependency.
10328 (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
10329 * basic-block.h (struct basic_block_def): Remove skip marker from
10330 loop_father field.
10331
10332 2007-05-14 Uros Bizjak <ubizjak@gmail.com>
10333
10334 * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
10335 of 0 in the call to expand_expr().
10336 (expand_builtin_mathfn_3): Ditto.
10337 (expand_builtin_interclass_mathfn): Ditto.
10338 (expand_builtin_cexpi): Ditto.
10339 (expand_builtin_int_roundingfn): Ditto.
10340 (expand_builtin_int_roundingfn_2): Ditto.
10341 (expand_builtin_pow): Ditto.
10342 (expand_builtin_powi): Ditto.
10343 (expand_builtin_bswap): Ditto.
10344 (expand_builtin_unop): Ditto.
10345 (expand_builtin_fabs): Ditto.
10346 (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
10347 the call to expand_expr().
10348 (expand_builtin_sync_operation): Ditto.
10349 (expand_builtin_compare_and_swap): Ditto.
10350 (expand_builtin_lock_test_and_set): Ditto.
10351 * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
10352 instead of 0 in the call to expand_expr().
10353 (expand_builtin_extract_return_addr): Ditto.
10354 (expand_builtin_eh_return): Ditto.
10355 (expand_eh_return): Ditto.
10356 * explow.c (expr_size): Ditto.
10357 * expr.c (optimize_bitfield_assignment_op): Ditto.
10358 (expand_assignement): Ditto.
10359 (store_expr): Ditto.
10360 (store_field): Ditto.
10361 (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
10362 the call to expand_expr().
10363 (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
10364 in the call to expand_expr().
10365 [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
10366 BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
10367 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
10368 of expand_expr().
10369 * optabs.c (expand_vec_shift_expr): Ditto.
10370 (expand_vec_cond_expr): Ditto.
10371 (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
10372 call to expand_expr().
10373 * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
10374 in the call to expand_expr().
10375
10376 2007-05-14 Dave Korn <dave.korn@artimi.com>
10377
10378 * genautomata.c (gen_regexp_el): Allocate correct size for regexp.
10379
10380 2007-05-14 Rafael Avila de Espindola <espindola@google.com>
10381
10382 * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
10383 instead of c_common_unsigned_type.
10384 (c_common_unsigned_type): Remove.
10385 (shorten_compare): Use c_common_signed_or_unsigned_type instead of
10386 c_common_unsigned_type.
10387 (c_common_nodes_and_builtins): Use unsigned_type_for instead of
10388 c_common_unsigned_type.
10389 * c-common.h (c_common_unsigned_type): Remove.
10390 * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
10391 c_common_unsigned_type.
10392 * c-format.c (check_format_types): Use unsigned_type_for instead of
10393 c_common_unsigned_type.
10394 * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
10395 * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead
10396 of c_common_unsigned_type.
10397 * convert.c (convert_to_integer): Use unsigned_type_for instead of
10398 lang_hooks.types.unsigned_type.
10399 * expmed.c (make_tree): Use unsigned_type_for instead of
10400 lang_hooks.types.unsigned_type.
10401 * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
10402 lang_hooks.types.unsigned_type.
10403 (build_range_check): Likewise.
10404 (fold_unary): Likewise.
10405 (fold_binary): Likewise.
10406 (fold_ternary): Likewise.
10407 * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
10408 * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
10409 * tree.c (get_unsigned_type): New.
10410 (unsigned_type_for): Use get_unsigned_type instead of
10411 lang_hooks.types.unsigned_type.
10412
10413 2007-05-14 Kazu Hirata <kazu@codesourcery.com>
10414
10415 * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
10416 to m68k_get_function_kind. Update its prototype.
10417 * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
10418 interrupt_thread.
10419 (m68k_interrupt_function_p): Return enum m68k_function_type
10420 instead of bool. Rename to m68k_get_function_kind.
10421 (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
10422 target is not fido.
10423 (m68k_compute_frame_layout): Don't mark any register for save
10424 if an interrupt_thread attribute is specified.
10425 (m68k_hard_regno_rename_ok): Update a use of
10426 m68k_interrupt_function_p.
10427 * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
10428 m68k_interrupt_function_p.
10429 (m68k_function_type): New.
10430 * config/m68k/m68k.md (*return): Output a 'sleep' instruction
10431 for a function with an interrupt_thread attribute.
10432 * doc/extend.texi: Document the interrupt_thread attribute.
10433
10434 2007-05-13 Daniel Berlin <dberlin@dberlin.org>
10435
10436 Fix PR tree-optimization/31911
10437 * tree-ssa-pre.c (phi_translate): Make sure to cache results even
10438 if they didn't change the expression.
10439
10440 2007-05-13 Zdenek Dvorak <dvorakz@suse.cz>
10441
10442 * tree-scalar-evolution.c (resolve_mixers): Exported.
10443 * tree-scalar-evolution.h (resolve_mixers): Declare.
10444 * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
10445 ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
10446 record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
10447 base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
10448 init_array_ref, init_pointer_ref, analyze_indirect_ref,
10449 strip_conversion, analyze_offset_expr, address_analysis,
10450 object_analysis, analyze_offset): Removed.
10451 (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
10452 split_constant_offset, canonicalize_base_object_address,
10453 object_address_invariant_in_loop_p, disjoint_objects_p,
10454 dr_may_alias_p, dr_address_invariant_p): New functions.
10455 (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
10456 and dr_analyze_alias.
10457 (initialize_data_dependence_relation): Use dr_may_alias_p
10458 and object_address_invariant_in_loop_p.
10459 (compute_self_dependence): Handle the case when
10460 DDR_ARE_DEPENDENT (ddr) is chrec_dont_know.
10461 (find_data_references_in_stmt): Restrict the analysis of data
10462 references to the given loop nest.
10463 (find_data_references_in_loop): Made static. Pass loop nest to
10464 find_data_references_in_stmt.
10465 (compute_data_dependences_for_loop): Use DR_VOPS.
10466 (free_data_ref): Free DR_VOPS.
10467 * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
10468 (struct innermost_loop_behavior): ... new.
10469 (struct base_object_info): Replaced by ...
10470 (struct indices): ... new.
10471 (struct dr_alias): New.
10472 (enum data_ref_type): Removed.
10473 (struct data_reference): Consist of struct innermost_loop_behavior,
10474 struct indices and struct dr_alias.
10475 (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
10476 (DR_MEMTAG): Renamed to ...
10477 (DR_SYMBOL_TAG): ... this.
10478 (find_data_references_in_loop): Declaration removed.
10479 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
10480 instead of DR_OFFSET_MISALIGNMENT. DR_ALIGNED_TO is never NULL.
10481 (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
10482 * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
10483
10484 2007-05-13 Revital Eres <eres@il.ibm.com>
10485
10486 * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
10487 which walks virtual def-use chains to find redundant stores.
10488 (dse_optimize_stmt): Call it.
10489
10490 2007-05-12 Steven Bosscher <steven@gcc.gnu.org>
10491
10492 * gcse.c (gcse_main): Do jump bypassing in CPROP2.
10493 * passes.c (init_optimization_passes): Move pass_jump_bypass
10494 after loop2.
10495
10496 * basic-block.h (bb_has_eh_pred): Fix style issue.
10497
10498 2007-05-12 Steven Bosscher <steven@gcc.gnu.org>
10499
10500 PR rtl-optimization/31848
10501 * loop-invariant.c (move_invariant_reg): If we move an insn
10502 with a REG_EQUAL note, and that insn is not always executed,
10503 remove the REG_EQUAL note.
10504
10505 2007-05-12 Richard Guenther <rguenther@suse.de>
10506
10507 PR tree-optimization/31797
10508 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
10509 propagate into a stmt that has volatile ops.
10510
10511 2007-05-12 Richard Sandiford <richard@codesourcery.com>
10512
10513 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
10514 (gcc_tooldir): Likewise.
10515 * configure: Regenerate.
10516 * Makefile.in (libsubdir_to_prefix): New variable, based on the
10517 old configure.ac gcc_tooldir setting.
10518 (prefix_to_exec_prefix): New variable.
10519 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
10520 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
10521
10522 2007-05-11 Silvius Rus <rus@google.com>
10523
10524 * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
10525 * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
10526 * c-common.h (strict_aliasing_warning): Change return type.
10527 * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
10528 * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
10529 (build_c_cast): Condition call to strict_aliasing_warning.
10530 * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
10531 * flags.h (set_Wstrict_aliasing): Declare.
10532 * opts.c (set_Wstrict_alising): Define, add call to.
10533 * tree-flow.h (strict_aliasing_warning_backend): Declare.
10534 * tree-ssa-alias-warnings.c: New file.
10535 * tree-ssa-alias.c (compute_may_aliases): Add call to
10536 strict_aliasing_warning_backend.
10537
10538 2007-05-11 Zdenek Dvorak <dvorakz@suse.cz>
10539
10540 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
10541 Use loop_depth and loop_outer accessor functions.
10542 * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
10543 determine_invariantness_stmt, move_computations_stmt): Ditto.
10544 * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
10545 add_loop, loopify, unloop, fix_loop_structure): Ditto.
10546 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
10547 * tree-scalar-evolution.c (interpret_loop_phi,
10548 compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
10549 instantiate_parameters_1, scev_const_prop): Ditto.
10550 * cfghooks.c (make_forwarder_block): Ditto.
10551 * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
10552 * modulo-sched.c (loop_canon_p): Ditto.
10553 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
10554 slpeel_can_duplicate_loop_p): Ditto.
10555 * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
10556 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
10557 * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
10558 cancel_loop, verify_loop_structure): Ditto.
10559 (flow_loop_nested_p, superloop_at_depth, flow_loop_free,
10560 add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
10561 superloops vector instead of "pred" array.
10562 (establish_preds): Take father loop as an argument. Initialize the
10563 superloops vector.
10564 (flow_loop_tree_node_add): Pass father loop to establish_preds.
10565 Do not initialize loop->outer.
10566 (flow_loop_tree_node_remove): Truncate the superloops vector.
10567 * cfgloop.h (struct loop): Removed field "outer", fields "depth" and
10568 "pred" merged to "superloops" vector.
10569 (loop_depth, loop_outer): New.
10570 (fel_init): Use loop_outer.
10571
10572 2007-05-11 Jan Hubicka <jh@suse.cz>
10573
10574 * cgraphunit.c: Include gt-cgraphunit.h
10575 (static_ctors, static_dtors): New static vars.
10576 (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
10577 based on implementation in c-common.c
10578 (cgraph_finalize_function): Call record_cdtor_fn.
10579 (cgraph_optimize): Call cgraph_build_cdtor_fns.
10580 * decl.c (finish_function): Do not call c_record_cdtor_fn.
10581 (c_write_global_declarations): Do not call c_build_cdtor_fns.
10582 * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
10583 build_cdtor, c_build_cdtor_fns): Remove.
10584 * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
10585 c_build_cdtor_fns): Remove prototype.
10586
10587 2007-05-11 Paolo Carlini <pcarlini@suse.de>
10588
10589 PR other/31852
10590 * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
10591 * builtins.def: Add BUILT_IN_MEMCHR, use the latter.
10592 * builtins.c (fold_builtin_memchr): New.
10593 (expand_builtin_memchr): Call the latter.
10594 (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
10595 * doc/extend.texi ([Other built-in functions provided by GCC]):
10596 Document memchr.
10597
10598 2007-05-11 Andreas Krebbel <krebbel1@de.ibm.com>
10599
10600 * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
10601 PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
10602 PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
10603 PFPO_OP1_TYPE_SHIFT): Constants added.
10604 (DFP_ALL): Mode macro defined.
10605 ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
10606 "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
10607 Insn definitions added.
10608 ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
10609 "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
10610 Expanders added.
10611
10612 2007-05-10 Zdenek Dvorak <dvorakz@suse.cz>
10613
10614 PR tree-optimization/31885
10615 * tree-chrec.c (chrec_contains_undetermined): Do not consider
10616 NULL_TREE to be undetermined.
10617 (automatically_generated_chrec_p): Return false for NULL.
10618
10619 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
10620
10621 * config/bfin/bfin.h (MOVE_RATIO): Define.
10622
10623 2007-05-10 Richard Sandiford <richard@codesourcery.com>
10624
10625 * config.gcc (sparc-wrs-vxworks): New target.
10626 * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
10627 * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
10628 * config/sparc/sparc.h: Include vxworks-dummy.h.
10629 (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
10630 include LABEL_REFs too.
10631 * config/sparc/sparc.c (sparc_expand_move): Don't assume that
10632 _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
10633 VxWorks.
10634 (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
10635 on VxWorks.
10636 (load_pic_register): Use gen_vxworks_load_got for VxWorks.
10637 (sparc_emit_call_insn): New function.
10638 (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
10639 functions when generating VxWorks PIC.
10640 * config/sparc/sparc.md (vxworks_load_got): New pattern.
10641 (call, call_value): Use sparc_emit_call_insn instead of
10642 emit_call_insn.
10643
10644 2007-05-09 Bob Wilson <bob.wilson@acm.org>
10645
10646 * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
10647
10648 2007-05-09 Bob Wilson <bob.wilson@acm.org>
10649
10650 * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
10651 for floating-point values if HOST_BITS_PER_LONG > 32. Use
10652 split_double instead of operand_subword.
10653
10654 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
10655
10656 * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
10657 * config/bfin/bfin.c (bfin_local_alignment): New function.
10658 * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.
10659
10660 2007-05-08 Chao-ying Fu <fu@mips.com>
10661
10662 * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
10663 * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
10664 (smsub_widen_optab, umsub_widen_optab): Define.
10665 * optabs.c (init_optabs): Initialize smsub_widen_optab and
10666 umsub_widen_optab.
10667 * genopinit.c (optabs): Fill in smsub_widen_optab and
10668 umsub_widen_optab.
10669 * expr.c (expand_expr_real_1): Try to use smsub_widen_optab
10670 and umsub_widen_optab to implement multiply-subtract sequences.
10671 * config/mips/mips.md (*msac<u>_di): Rename to...
10672 (<u>msubsidi4): ...this. Extend condition to include
10673 GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
10674 of operand 0 to "ka" and use the three-operand form of msub<u>
10675 for TARGET_DSPR2.
10676 * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
10677 to define_expands.
10678
10679 2007-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
10680
10681 PR rtl-optimization/28011
10682 * reload.c (push_reload): Set dont_share if IN appears in OUT
10683 also when IN is a PLUS rtx.
10684 (reg_overlap_mentioned_for_reload_p): Return true if X and IN
10685 are same PLUS rtx.
10686
10687 2007-05-08 Kazu Hirata <kazu@codesourcery.com>
10688
10689 * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL. Don't
10690 call unshare_all_decls.
10691 (unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
10692 (unshare_all_decls): Remove.
10693
10694 2007-05-08 Simon Martin <simartin@users.sourceforge.net>
10695
10696 PR 31847
10697 * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
10698 dumps.
10699
10700 2007-05-08 Sandra Loosemore <sandra@codesourcery.com>
10701 Nigel Stephens <nigel@mips.com>
10702
10703 * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
10704 Update comments and all uses.
10705 (MIN_FPRS_PER_FMT): Define.
10706 * config/mips/mips.c (function_arg): Fix to correctly handle
10707 the -mips32r2 -mfp64 -mabi=32 case.
10708 (override_options): Enable use of odd-numbered registers for
10709 SFmode values on MIPS32.
10710 (mips_save_reg_p): Save whole floating-point register pair if
10711 either half is used.
10712 (compute_frame_size): Fix comment.
10713
10714 2007-05-08 Jie Zhang <jie.zhang@analog.com>
10715
10716 * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
10717 argument of type bool.
10718 * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
10719 argument. Safely select temporary P register according to it.
10720 (do_link): Change call site of add_to_reg accordingly.
10721 (do_unlink): Add epilogue_p as a fourth argument and pass it
10722 to add_to_reg.
10723 (expand_interrupt_handler_epilogue): Change call of do_unlink
10724 accordingly.
10725 (bfin_expand_prologue): Add a third argument sibcall_p.
10726 * config/bfin/bfin.md (epilogue): Change call of
10727 bfin_expand_epilogue accordingly.
10728 (sibcall_epilogue): Likewise.
10729 (eh_return_internal): Likewise.
10730
10731 * config/bfin/bfin-protos.h (enum bfin_cpu): Add
10732 BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
10733 * config/bfin/bfin.c (bfin_handle_option): Handle
10734 -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
10735 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
10736 Support bf534, bf536 and bf561.
10737 * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
10738
10739 2007-05-08 Uros Bizjak <ubizjak@gmail.com>
10740
10741 PR target/31854
10742 * config/i386/i386.c (ix86_function_regparm): Process local
10743 functions only when TREE_CODE (decl) equals FUNCTION_DECL.
10744
10745 2007-05-07 Mike Stump <mrs@apple.com>
10746
10747 * doc/invoke.texi (Warning Options): Document that -Wempty-body
10748 also checks for and while statements in C++.
10749
10750 2007-05-07 Nathan Froyd <froydnj@codesourcery.com>
10751
10752 * gcc.c (at_file_supplied): New variable.
10753 (main): Set it if we expanded argv.
10754 (do_spec_1): Pass an @-file to the linker if we were called with
10755 an @-file argument and HAVE_GNU_LD.
10756 * collect2.c (at_file_supplied): New variable.
10757 (response_file): New variable.
10758 (collect_exit): Unlink response_file if necessary.
10759 (handler): Likewise.
10760 (do_wait): Likewise.
10761 (main): Set at_file_supplied if we expanded argv.
10762 (collect_execute): Pass an @-file to subprocesses if we were called
10763 with an @-file argument.
10764 * configure.ac: Add define for HAVE_GNU_LD.
10765 * configure: Regenerate.
10766 * config.in: Regenerate.
10767
10768 2007-05-07 Naveen.H.S <naveen.hs@kpitcummins.com>
10769
10770 * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
10771 operand to HI mode.
10772 (mulsi3): New.
10773 (divsi3): New.
10774 (udivsi3): New.
10775
10776 2007-05-07 Jayant Sonar <jayants@kpitcummins.com>
10777
10778 * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
10779 (TARGET_ENCODE_SECTION_INFO): Re-define.
10780 (m32c_encode_section_info): New
10781 (function_vector_handler): New
10782 (current_function_special_page_vector): New
10783 (m32c_special_page_vector_p): New.
10784 * config/m32c/m32c-protos.h (m32c_special_page_vector_p):
10785 Prototype.
10786 * config/m32c/jump.md: Added instruction JSRS for functions
10787 with attribute "function_vector".
10788 * doc/extend.texi (function_vector): Added description
10789 for M16C, M32C targets.
10790
10791 2007-05-07 DJ Delorie <dj@redhat.com>
10792
10793 PR 31794
10794 * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
10795 ashrpsi3, lshrpsi3): Update shift count constraint.
10796
10797 2007-05-07 Danny Smith <dannysmith@users.sourceforge.net>
10798 Nathan Froyd <froydnj@codesourcery.com>
10799
10800 PR 22133
10801 * c-incpath.c (add_path): Strip trailing path separators.
10802
10803 2007-05-07 Eric Botcazou <ebotcazou@adacore.com>
10804
10805 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
10806 Free dominance info before purging EH edges.
10807 (eliminate_degenerate_phis): Likewise.
10808 (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
10809
10810 2007-05-07 Jan Hubicka <jh@suse.cz>
10811
10812 * gimplify.c (gimplify_expr): Do not crash when folding
10813 (void *)(int)&a + 4.
10814
10815 2007-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
10816
10817 PR driver/31694
10818 * c-opts.c (lang_fortran): Make it non static.
10819 * c-common.h (lang_fortran): New prototype.
10820 * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
10821 -lang-fortran option was passed by the driver.
10822
10823 2007-05-06 Eric Botcazou <ebotcazou@adacore.com>
10824
10825 * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
10826 of ASSERT_CHECKING. Tweak message.
10827
10828 2007-05-06 Revital Eres <eres@il.ibm.com>
10829
10830 PR 30957
10831 * loop-unroll.c (insert_var_expansion_initialization):
10832 Initialize the expansions with -zero instead of +zero.
10833
10834 2007-05-05 Aurelien Jarno <aurelien@aurel32.net>
10835
10836 * config/pa/pa.md: Split tgd_load, tld_load and tie_load
10837 into pic and non-pic versions. Mark r19 as used for
10838 tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
10839 for tgd_load, tld_load and tie_load .
10840 * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
10841 version of tgd_load, tld_load and tie_load depending on the
10842 value of flag_pic.
10843
10844 2007-05-04 Ulrich Drepper <drepper@redhat.com>
10845 Jakub Jelinek <jakub@redhat.com>
10846
10847 * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
10848 (__do_global_dtors_aux): Use more paranoid loop to run
10849 destructors if HIDDEN_DTOR_LIST_END.
10850 (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
10851
10852 2007-05-04 Jakub Jelinek <jakub@redhat.com>
10853
10854 * varasm.c (align_variable): Don't increase alignment for
10855 DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
10856 DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
10857
10858 2007-05-04 Josh Conner <jconner@apple.com>
10859
10860 * basic-block.h (cdi_direction): Assign values to all enumeration
10861 constants.
10862 (dom_computed): Remove.
10863 (dom_info_state): New.
10864 (set_dom_info_availability): New.
10865 * tree-ssa-loop-im.c (determine_invariantness): Initialize
10866 walk_data.dom_direction.
10867 * cfghooks.c (delete_basic_block): Use dom_info_available_p()
10868 instead of dom_computed[].
10869 (split_edge): Likewise.
10870 (create_basic_block): Likewise.
10871 (merge_blocks): Likewise.
10872 * ifcvt.c (find_if_header): Likewise.
10873 * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
10874 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
10875 * tree-ssa.c (verify_ssa): Likewise.
10876 * tree-cfg.c (tree_verify_flow_info): Likewise.
10877 (remove_edge_and_dominated_blocks): Likewise.
10878 * dominance.c (dom_computed): Make static.
10879 (calc_dfs_tree_nonrec): Change third param to a bool.
10880 (calc_dfs_tree): Change second param to a bool.
10881 (calc_idioms): Change second param to a bool. Use
10882 dom_convert_dir_to_idx.
10883 (init_dom_info): Validate dir before using.
10884 (dom_convert_dir_to_idx): New.
10885 (calculate_dominance_info): Use dom_convert_dir_to_idx. New
10886 variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
10887 (free_dominance_info): Use dom_convert_dir_to_idx.
10888 (get_immediate_dominator): Likewise.
10889 (set_immediate_dominator): Likewise.
10890 (get_dominated_by): Likewise.
10891 (redirect_immediate_dominators): Likewise.
10892 (nearest_common_denominator): Likewise.
10893 (dominated_by_p): Likewise.
10894 (bb_dom_dfs_in): Likewise.
10895 (bb_dom_dfs_out): Likewise.
10896 (recount_dominator): Likewise.
10897 (iterate_fix_dominators): Likewise.
10898 (add_to_dominance_info): Likewise.
10899 (delete_from_dominance_info): Likewise.
10900 (first_dom_son): Likewise.
10901 (next_dom_son): Likewise.
10902 (dom_info_available_p): Likewise.
10903 (dom_info_state): New.
10904 (set_dom_info_availability): New.
10905
10906 2007-05-04 Andreas Krebbel <krebbel1@de.ibm.com>
10907
10908 * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
10909 Expander removed.
10910 ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
10911
10912 2007-05-04 Bob Wilson <bob.wilson@acm.org>
10913
10914 * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
10915 (subdi3, subdi_carry): Delete.
10916
10917 2007-05-04 Jan Hubicka <jh@suse.cz>
10918 Richard Guenther <rguenther@suse.de>
10919
10920 * opts.c (decode_options): Do not fiddle with inlining
10921 parameters in case of optimizing for size.
10922 * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
10923 for size do nothing.
10924 (cgraph_decide_inlining_of_small_function): When optimizing for
10925 size never inline functions increasing caller size.
10926 (cgraph_early_inlining): Inline for size when optimizing for size.
10927
10928 2007-05-04 Bernd Schmidt <bernd.schmidt@analog.com>
10929
10930 * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
10931 logical operations piecewise.
10932 (<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
10933 zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
10934 subdi_sesidi_di): Delete.
10935 (add_with_carry): Produce carry in CC instead of a DREG to shorten
10936 the generated sequence. Allow three-reg add in constraints. Rewrite
10937 the rtl expression for carry to avoid zero_extend of a constant.
10938 (sub_with_carry): New pattern.
10939 (adddi3, subdi3): Change into define_expand. For subtract, generate a
10940 different sequence not involving jumps.
10941 (notbi): Now a named pattern.
10942
10943 2007-05-04 Bradley Lucier <lucier@math.purdue.edu>
10944
10945 * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
10946 Add the note about a significant loss of accuracy of some
10947 mathematical routines when these options are used.
10948
10949 2007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
10950
10951 * haifa-sched.c (rtx_vec_t): New typedef.
10952 (contributes_to_priority_p): Extract piece of priority () into new
10953 static function.
10954 (priority): Use the function. Add assertion.
10955 (rank_for_schedule, set_priorities): Add assertion to check that
10956 insn's priority is initialized.
10957 (clear_priorities, calc_priorities): Change signature. Make it update
10958 all relevant insns. Update all callers ('add_to_speculative_block ()'
10959 and 'create_block_check_twin ()').
10960 * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
10961 Add new field 'priority_status'.
10962 (INSN_PRIORITY_STATUS): New macro.
10963 (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
10964
10965 2007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
10966
10967 * sched-ebb.c (debug_ebb_dependencies): New static function.
10968 (init_ready_list): Use it.
10969
10970 * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
10971 with changed signature and 'debug_rgn_dependencies ()'.
10972 (debug_rgn_dependencies): New static function.
10973 (init_ready_list): Use it.
10974
10975 * sched-int.h (debug_dependencies): Declare.
10976
10977 2007-05-04 Andreas Krebbel <krebbel1@de.ibm.com>
10978
10979 * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.
10980
10981 2007-05-04 Dirk Mueller <dmueller@suse.de>
10982
10983 * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.
10984
10985 2007-05-03 Jan Hubicka <jh@suse.cz>
10986
10987 * fold-const.c (fold_unary): Convert (T1)(X op Y) into
10988 ((T1)X op (T1)Y), for pointer type in more cases than before.
10989
10990 * gimplify.c (gimplify_expr): Fold (void *)&a + 4.
10991
10992 * tree-object-size.c (plus_expr_object_size): When operand size is
10993 unknown, return unknown.
10994
10995 2007-05-03 Dirk Mueller <dmueller@suse.de>
10996
10997 * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.
10998
10999 * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
11000 options.
11001
11002 * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.
11003
11004 2007-05-03 Janis Johnson <janis187@us.ibm.com>
11005
11006 * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.
11007
11008 2007-05-03 Joseph Myers <joseph@codesourcery.com>
11009
11010 * config/soft-fp/double.h, config/soft-fp/extended.h,
11011 config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
11012 config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
11013 config/soft-fp/op-2.h, config/soft-fp/op-4.h,
11014 config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
11015 glibc CVS.
11016
11017 2007-05-03 Ian Lance Taylor <iant@google.com>
11018
11019 * config/rs6000/rs6000.c (rs6000_override_options): Don't set
11020 MASK_PPC_GFXOPT for 8540 or 8548.
11021
11022 2007-05-03 Uros Bizjak <ubizjak@gmail.com>
11023
11024 * tree-vect-transform.c (vect_update_inits_of_drs): Use
11025 vect_print_dump_info() to output debug information.
11026
11027 2007-05-03 Uros Bizjak <ubizjak@gmail.com>
11028
11029 PR target/31768
11030 * config/i386/i386.c (print_operand) ['z']: Output 'w' for
11031 operands of size 2 when operand is not MEM_P.
11032
11033 2007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
11034
11035 PR tree-optimization/30565
11036 * lambda-code.c (perfect_nestify): Fix updating of dominators.
11037
11038 2007-05-03 Bernd Schmidt <bernd.schmidt@analog.com>
11039
11040 * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
11041 (umulsi3_highpart): Use them.
11042 * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
11043 for final accumulator to D regisster tranfser.
11044
11045 2007-05-03 Dorit Nuzman <dorit@il.ibm.com>
11046
11047 PR tree-optimization/31699
11048 * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove
11049 wrong code.
11050 (vect_enhance_data_refs_alignment): Compute peel amount using
11051 TYPE_VECTOR_SUBPARTS instead of vf.
11052 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.
11053
11054 2007-05-02 Brooks Moses <brooks.moses@codesourcery.com>
11055
11056 PR bootstrap/31776
11057 * system.h: Remove inclusion of double-int.h
11058 * tree.h: Include double-int.h
11059 * gengtype.c: Likewise
11060 * cfgloop.h: Likewise
11061 * Makefile.in: Adjust dependencies on double-int.h
11062
11063 2007-05-02 Eric Christopher <echristo@apple.com>
11064
11065 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate
11066 -shared to -Zdynamiclib.
11067
11068 2007-05-02 Seongbae Park <seongbae.park@gmail.com>
11069
11070 PR c++/31663
11071 * c-common.c (strip_pointer_or_array_types): New function.
11072 * c-common.h (strip_pointer_or_array_types): New function declaration.
11073
11074 2007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
11075
11076 PR tree-optimization/31771
11077 * tree-cfg.c (move_block_to_fn): Assign bb to the correct index.
11078
11079 2007-05-02 Paul Brook <paul@codesourcery.com>
11080
11081 * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow.
11082
11083 2007-05-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
11084
11085 PR middle-end/29715
11086 * fold-const.c (fold_comparision): Remove the "foo++ == CONST"
11087 transformation.
11088
11089 2007-05-02 Nick Clifton <nickc@redhat.com>
11090
11091 * config/frv/predicates.md (symbolic_operand): Accept CONSTs.
11092
11093 2007-05-02 Richard Guenther <rguenther@suse.de>
11094
11095 PR tree-optimization/31146
11096 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
11097 argument, single_use_p. If we have a single use that is
11098 a conversion to the definition rhs type, propagate that rhs.
11099 (forward_propagate_addr_expr): Pass single_use_p argument
11100 to forward_propagate_addr_expr_1.
11101
11102 2007-05-01 H.J. Lu <hongjiu.lu@intel.com>
11103
11104 * config/i386/i386.c (ix86_expand_sse_comi): Remove unused
11105 variable.
11106
11107 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
11108
11109 * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of
11110 'AMD Family 10 core'.
11111
11112 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
11113
11114 * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3
11115 and athlon64-sse3 as improved versions of k8, opteron and athlon64
11116 with SSE3 instruction set support.
11117 * doc/invoke.texi: Likewise.
11118
11119 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
11120
11121 * config/i386/i386.c (override_options): Tuning 32-byte loop
11122 alignment for amdfam10 architecture. Increasing the max loop
11123 alignment to 24 bytes.
11124
11125 2007-05-01 Kazu Hirata <kazu@codesourcery.com>
11126
11127 * config/m68k/constraints.md: New.
11128 * config/m68k/m68k.h (REG_CLASS_FROM_LETTER,
11129 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
11130 EXTRA_CONSTRAINT): Remove.
11131 * config/m68k/m68k.md: Include constraints.md.
11132 * expr.c (expand_expr_real_1): Copy DECL_RTL before using it.
11133
11134 2007-05-01 Ian Lance Taylor <iant@google.com>
11135
11136 PR tree-optimization/31739
11137 * tree-vrp.c (vrp_val_is_max): New static function.
11138 (vrp_val_is_min): New static function.
11139 (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
11140 copying the node.
11141 (set_value_range): Use vrp_val_is_{max,min}.
11142 (extract_range_from_assert): Likewise.
11143 (extract_range_from_binary_expr): Likewise.
11144 (extract_range_from_unary_expr): Likewise.
11145 (dump_value_range, vrp_meet): Likewise.
11146 (vrp_visit_phi_node): Likewise.
11147 * tree.c (build_distinct_type_copy): Revert change of 2007-04-27.
11148
11149 2007-05-01 Mark Mitchell <mark@codesourcery.com>
11150
11151 * config/i386/gmon-sol2.c (size_t): New type.
11152 (intptr_t): Likewise.
11153 (s_textsize): Declare as size_t.
11154 (sbrk): Declare.
11155 (monstartup): Use size_t for sizes.
11156 (_mcount): Save and restore registers.
11157 (internal_mcount): Pass 0 as the first argument to monstartup
11158 in 64-bit mode.
11159 (moncontrol): Convert pointer to appropriately sized integer
11160 before passing to profil.
11161
11162 2007-05-01 Joseph Myers <joseph@codesourcery.com>
11163
11164 * config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if
11165 __NO_FPRS__, not just if _SOFT_DOUBLE.
11166 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise.
11167 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord
11168 also for E500 double.
11169 * config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt,
11170 suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT
11171 && !TARGET_FPRS).
11172
11173 2007-05-01 Richard Guenther <rguenther@suse.de>
11174
11175 * tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt
11176 is NULL.
11177
11178 2007-05-01 Joseph Myers <joseph@codesourcery.com>
11179
11180 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
11181
11182 2007-05-01 Jan Hubicka <jh@suse.cz>
11183
11184 * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is
11185 invariant.
11186
11187 2007-05-01 Jan Hubicka <jh@suse.cz>
11188
11189 * tree.h (maybe_fold_offset_to_component_ref): Remove.
11190 (maybe_fold_offset_to_reference): Declare.
11191 * fold-const.c (fold_unary): Do not fold
11192 (type *)&A into &A->field_of_type_and_offset_0
11193 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type
11194 size is unknown, give up.
11195 (maybe_fold_offset_to_component_ref): Ignore firelds with unknown
11196 offsets.
11197 (maybe_fold_offset_to_reference): New.
11198 (maybe_fold_stmt_indirect): Use it.
11199 (fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset.
11200 * gimplify.c (gimplify_conversion): Canonicalize conversions to
11201 field references.
11202 (gimplify_expr): Likewise for plus_expr.
11203
11204 2007-05-01 Zdenek Dvorak <dvorakz@suse.cz>
11205
11206 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
11207 bsi_after_labels. Always insert statements before bsi.
11208 * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
11209 * predict.c (apply_return_prediction): Check for empty blocks.
11210 * cfgexpand.c (lab_rtx_for_bb): New variable.
11211 (label_rtx_for_bb): Do not create new tree labels.
11212 (expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
11213 (tree_expand_cfg): Initialize lab_rtx_for_bb.
11214 * tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
11215 creating edges.
11216 (label_for_bb): Add field used.
11217 (update_eh_label, main_block_label): Mark the label used.
11218 (cleanup_dead_labels): Remove unused labels.
11219
11220 2007-05-01 Richard Guenther <rguenther@suse.de>
11221
11222 * tree-vrp.c (set_value_range): Do not allocate equiv bitmap
11223 if it is not about to be set.
11224 (get_value_range): Do not pre-allocate equiv bitmap.
11225 (update_value_range): No need to clear equiv field.
11226 (add_equivalence): Change prototype to get bitmap pointer.
11227 Allocate bitmap here if it is not already.
11228 (extract_range_from_assert): Do not allocate bitmap here.
11229 Update callers to add_equivalence.
11230 (extract_range_from_ssa_name): Likewise.
11231 (get_vr_for_comparison): New static helper.
11232 (compare_name_with_value): Handle NULL equiv bitmap by
11233 peeling the first iteration of the comparison loop.
11234 Use get_vr_for_comparison.
11235 (compare_names): Handle NULL equiv bitmaps by using fake
11236 ones. Use get_vr_for_comparison.
11237
11238 2007-04-30 Brooks Moses <brooks.moses@codesourcery.com>
11239
11240 * double-int.c (mpz_set_double_int): Moved from
11241 tree-ssa-loop-niter.c.
11242 (mpz_get_double_int): Likewise; also, add option to wrap
11243 out-of-range integers.
11244 * double-int.h: New prototypes for above.
11245 * tree.c (get_static_type_bounds): Moved from
11246 tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and
11247 TYPE_MAX_VALUE if they exist..
11248 * tree.h: New prototype for above.
11249 * tree-ssa-loop-niter.c: Adjust mpz_to_double_int and
11250 get_type_bounds calls.
11251 (mpz_set_double_int): Move to double-int.c.
11252 (get_type_bounds): Move to tree.c, rename to
11253 get_static_type_bounds.
11254 (mpz_to_double_int): Move to double-int.c, rename to
11255 mpz_get_double_int.
11256
11257 2007-04-30 Bob Wilson <bob.wilson@acm.org>
11258
11259 * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
11260 DIV0 exception can fall through to a normal return.
11261
11262 2007-04-30 Alexandre Oliva <aoliva@redhat.com>
11263
11264 PR middle-end/22156
11265 Temporarily revert:
11266 2007-04-06 Andreas Tobler <a.tobler@schweiz.org>
11267 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
11268 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
11269 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
11270 initialize align to silence bogus warning.
11271 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
11272 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
11273 all_no_warning.
11274 (struct sra_walk_fns): Remove use_all parameter from use.
11275 (sra_hash_tree): Handle BIT_FIELD_REFs.
11276 (sra_elt_hash): Don't hash bitfld blocks.
11277 (sra_elt_eq): Skip them in parent compares as well. Handle
11278 BIT_FIELD_REFs.
11279 (sra_walk_expr): Don't maintain or pass down use_all_p.
11280 (scan_use): Remove use_all parameter.
11281 (scalarize_use): Likewise. Re-expand assignment to
11282 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
11283 output, and re-scalarize after output. Don't mark anything
11284 for no warning.
11285 (scalarize_ldst): Adjust.
11286 (scalarize_walk_gimple_modify_statement): Likewise.
11287 (build_element_name_1): Handle BIT_FIELD_REFs.
11288 (instantiate_element): Don't warn for any element whose parent
11289 is used as a whole.
11290 (instantiate_missing_elements_1): Return the sra_elt.
11291 (canon_type_for_field): New.
11292 (try_instantiate_multiple_fields): New.
11293 (instantiate_missing_elemnts): Use them.
11294 (mark_no_warning): Removed.
11295 (generate_one_element_ref): Handle BIT_FIELD_REFs.
11296 (REPLDUP, sra_build_elt_assignment): New.
11297 (generate_copy_inout): Use them.
11298 (generate_element_copy): Likewise. Handle bitfld differences.
11299 (generate_element_zero): Don't recurse for blocks. Use
11300 sra_build_elt_assignment.
11301 (generate_one_element_int): Take elt instead of var. Use
11302 sra_build_elt_assignment.
11303 (generate_element_init_1): Adjust.
11304 (scalarize_use, scalarize_copy): Use REPLDUP.
11305 (scalarize_ldst): Move assert before dereference.
11306 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
11307
11308 2007-04-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
11309
11310 PR C++/31721
11311 * tree.c (reconstruct_complex_type): Reconstruct a reference
11312 correctly.
11313 Also use the same mode for the pointer as the old pointer type.
11314
11315 2007-04-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
11316
11317 * doc/trouble.texi (Interoperation): Remove note about Ultrix
11318 Fortran compiler.
11319
11320 2007-04-29 Zdenek Dvorak <dvorakz@suse.cz>
11321
11322 PR rtl-optimization/31676
11323 * df-scan.c (record_nonlocal_goto_receiver_defs): New function.
11324 (df_refs_record): Call it.
11325
11326 2007-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
11327
11328 * rtl.def (SS_ABS): New code.
11329 * config/bfin/bfin.c (print_operand): New modifier 'v'.
11330 (enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32,
11331 BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32,
11332 BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32.
11333 (bfin_init_builtins): Define them.
11334 (bdesc_1arg, bdesc_2arg): Add some of them here, ...
11335 (bfin_expand_builtin): ... and handle the others here.
11336 * config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3,
11337 flag_mul_macv2hi_parts_acconly_andcc0): New patterns.
11338 (ss_absv2hi2): Renamed from absv2hi; use ss_abs code.
11339 (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count
11340 operand is only HImode.
11341
11342 2007-04-29 Steven Bosscher <steven@gcc.gnu.org>
11343
11344 * regclass.c (scan_one_insn): Remove splitting of
11345 two address insns.
11346
11347 2007-04-28 Sandra Loosemore <sandra@codesourcery.com>
11348 Nigel Stephens <nigel@mips.com>
11349
11350 * config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16.
11351
11352 2007-04-28 Jan Hubicka <jh@suse.cz>
11353
11354 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use
11355 insn_locators_alloc instead of insn_locators_initialize;
11356 call reset_block_changes.
11357 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
11358 * config/sh/sh.c (sparc_output_mi_thunk): Likewise.
11359 * config/is64/ia64.c (ia64_output_mi_thunk): Likewise.
11360 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
11361 * config/score/score.c (th_output_mi_thunk): Likewise.
11362 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
11363 * cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block):
11364 tolerate uninitialized locator info.
11365
11366 Re-apply:
11367 * function.c (init_function_start): Don't init line number info.
11368 (expand_function_end): Update.
11369 (reset_block_changes, record_block_change, finalize_block_changes,
11370 check_block_change, free_block_changes): Kill.
11371 * function.h (reset_block_changes, record_block_change,
11372 finalize_block_changes, check_block_change, free_block_changes):
11373 Remove prototypes.
11374 (struct function): Remove ib_boundaries_block.
11375 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
11376 Use curr_insn_locator to initialize locator.
11377 (emit_line_note): Remove.
11378 * cfgexpand.c (expand_gimple_cond_expr): Update.
11379 (construct_exit_block): Likewise.
11380 (tree_expand_cfg): Initialize/finalize locators.
11381 * expr.c (expand_expr_real): Update.
11382 * cfglayout.c (line_locators_locs, line_locators_lines,
11383 file_locators_locs, file_locators_files): Remove.
11384 (set_block_levels): Move to cfgexpand.c.
11385 (insn_locators_initialize): Remove.
11386 (pass_insn_locators_initialize): Remove.
11387 (locations_locators_locs, locations_locators_vals): New static vars.
11388 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
11389 Likewise.
11390 (insn_locators_alloc, insn_locators_finalize,
11391 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
11392 New functions.
11393 (locator_location): New.
11394 (locator_line, locator_file): Rewrite.
11395 * rtl.h (emit_line_note): Kill.
11396 (insn_locators_alloc, insn_locators_finalize,
11397 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
11398 Declare.
11399 * tree-inline.c (initialize_cfun): Do not initialize
11400 ib_boundaries_block.
11401 * passes.c (pass_insn_locators_initialize): Remove.
11402
11403 2007-04-28 Zdenek Dvorak <dvorakz@suse.cz>
11404
11405 * tree-cfg.c (move_block_to_fn): Release bb from dominance
11406 info. Update last_basic_block correctly.
11407
11408 2007-04-27 Kaz Kojima <kkojima@gcc.gnu.org>
11409
11410 PR target/31701
11411 * config/sh/sh.c (output_stack_adjust): Avoid using the frame
11412 register itself to hold the offset constant. Tell flow the use
11413 of r4 and r5 when they are used.
11414
11415 2007-04-27 Richard Guenther <rguenther@suse.de>
11416
11417 * tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track
11418 if we simplified anything.
11419 (tree_ssa_forward_propagate_single_use_vars): Defer overflow
11420 warnings until we did a simplification and the stmt was not
11421 marked as TREE_NO_WARNING.
11422
11423 2007-04-27 Mike Stump <mrs@apple.com>
11424
11425 * config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove.
11426
11427 2007-04-27 Ian Lance Taylor <iant@google.com>
11428
11429 PR middle-end/31710
11430 * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
11431 TYPE_MAX_VALUE exist, convert them to the new type.
11432
11433 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
11434
11435 * tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info
11436 if it claims to be available.
11437 * tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when
11438 edge is redirected.
11439 (perform_tree_ssa_dce): Always free postdominators.
11440
11441 2007-04-27 Richard Henderson <rth@redhat.com>
11442
11443 * config/alpha/predicates.md (aligned_memory_operand): Mark
11444 as define_special_predicate.
11445 (unaligned_memory_operand, normal_memory_operand): Likewise.
11446 (reg_or_unaligned_mem_operand): Remove.
11447 (any_memory_operand): Match the documentation and check for
11448 non-renumbered pseudos during reload.
11449 * config/alpha/alpha.c (alpha_secondary_reload): Rename from
11450 alpha_secondary_reload_class, update to new interface, make static.
11451 Handle CQImode like HImode. Remove FP subreg check.
11452 (alpha_expand_mov): Use replace_equiv_address.
11453 (alpha_expand_mov_nobwx): Use any_memory_operand.
11454 (TARGET_SECONDARY_RELOAD): New.
11455 * config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove.
11456 (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
11457 * config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ...
11458 * config/alpha/alpha.md: ... here.
11459 (RELOAD12, reloadmode): New.
11460 (movcqi): New.
11461 (reload_in<RELOAD12>): Macro-ize from reload_inqi, reload_inhi.
11462 Don't handle the aligned case here.
11463 (reload_out<RELOAD12>): Macro-ize from reload_outqi, reload_outhi.
11464 (reload_in<I12MODE>_aligned): Macro-ize from reload_inqi_help,
11465 reload_inhi_help. Don't expect a scratch register.
11466 (reload_out<I12MODE>_aligned): Macro-ize from reload_outqi_help,
11467 reload_outhi_help.
11468 * config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove.
11469
11470 2007-04-27 Richard Guenther <rguenther@suse.de>
11471
11472 * tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo.
11473
11474 2007-04-27 Richard Guenther <rguenther@suse.de>
11475
11476 PR tree-optimization/30965
11477 PR tree-optimization/30978
11478 * Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H).
11479 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove.
11480 (find_equivalent_equality_comparison): Likewise.
11481 (simplify_cond): Likewise.
11482 (get_prop_source_stmt): New helper.
11483 (get_prop_dest_stmt): Likewise.
11484 (can_propagate_from): Likewise.
11485 (remove_prop_source_from_use): Likewise.
11486 (combine_cond_expr_cond): Likewise.
11487 (forward_propagate_comparison): New function.
11488 (forward_propagate_into_cond): Rewrite to use fold for
11489 tree combining.
11490 (tree_ssa_forward_propagate_single_use_vars): Call
11491 forward_propagate_comparison to propagate comparisons.
11492
11493 2007-04-27 Richard Guenther <rguenther@suse.de>
11494
11495 PR tree-optimization/31715
11496 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make
11497 sure to do computation on the offset in an appropriate
11498 signed type.
11499
11500 2007-04-27 Richard Sandiford <richard@codesourcery.com>
11501
11502 * reload.h (elimination_target_reg_p): Declare.
11503 * reload.c (find_reloads): Don't apply the reg_rtx move
11504 optimization if the SET_DEST satisfies elimination_target_reg_p.
11505 * reload1.c (elimination_target_reg_p): New function.
11506 (gen_reload): In the move/add2 fallback, make sure that op0
11507 does not overlap the destination register.
11508
11509 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
11510
11511 * tree-ssa-loop-im.c (determine_invariantness_stmt): Attempt to
11512 transform only GIMPLE_MODIFY_STMTs.
11513 * tree-complex.c (expand_complex_operations_1): Ditto.
11514 (expand_complex_div_wide): Do not create gotos in COND_EXPR branches.
11515 * tree-ssa-loop-manip.c (build_if_stmt): Removed.
11516 (tree_transform_and_unroll_loop): Do not create gotos in COND_EXPR
11517 branches.
11518 * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
11519 tree_mod_subtract, tree_ic, tree_stringop_fixed_value): Ditto.
11520 * omp-low.c (expand_parallel_call, expand_omp_for_generic,
11521 expand_omp_for_static_chunk, expand_omp_for_static_nochunk): Ditto.
11522 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes,
11523 slpeel_add_loop_guard): Ditto.
11524 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
11525 * lambda-code.c (perfect_nestify): Ditto.
11526 * tree-iterator.c (tsi_split_statement_list_before): Fix splitting
11527 before the first statement.
11528 * tree-optimize.c (execute_free_datastructures): Fix comments.
11529 (execute_free_cfg_annotations): Do not call disband_implicit_edges.
11530 * tree-flow.h (disband_implicit_edges): Declaration removed.
11531 * tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR
11532 branches.
11533 (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle
11534 COND_EXPRs without gotos.
11535 (disband_implicit_edges, has_label_p): Removed.
11536 (tree_verify_flow_info): Verify that COND_EXPR branches are empty.
11537 (tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR
11538 branches.
11539 * tree.c (build3_stat): Mark COND_EXPRs used as statements as having
11540 side effects.
11541 * tree-pretty-print.c (dump_implicit_edges): Dump implicit edges
11542 also for COND_EXPRs.
11543 * cfgexpand.c (label_rtx_for_bb): New function.
11544 (expand_gimple_cond_expr): Do not expect gotos in COND_EXPR branches.
11545 Use label_rtx_for_bb to find the labels.
11546 (expand_gimple_basic_block): Remove RETURN_EXPR at the end of the
11547 last block. Detect fallthru edges.
11548
11549 2007-04-26 Ian Lance Taylor <iant@google.com>
11550
11551 PR target/28675
11552 * reload.c (find_reloads_subreg_address): If the address was valid
11553 in the original mode but not in the new mode, reload the whole
11554 address.
11555
11556 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
11557
11558 * tree-cfgcleanup.c (cfgcleanup_altered_bbs): New global variable.
11559 (remove_fallthru_edge): Use remove_edge_and_dominated_blocks.
11560 (cleanup_control_expr_graph): Do not invalidate dominance info.
11561 Record altered blocks.
11562 (cleanup_control_flow, cleanup_forwarder_blocks): Removed.
11563 (cleanup_control_flow_bb, split_bbs_on_noreturn_calls,
11564 cleanup_tree_cfg_bb): New functions.
11565 (remove_forwarder_block): Do not maintain the worklist of blocks.
11566 Record altered blocks.
11567 (cleanup_tree_cfg_1): Iterate over cfgcleanup_altered_bbs,
11568 not over whole cfg.
11569 (cleanup_tree_cfg): Do not iterate cleanup_tree_cfg_1. Only call
11570 delete_unreachable_blocks if dominators are not available.
11571 * tree-inline.c (optimize_inline_calls): Free dominance information
11572 earlier.
11573 * tree-flow.h (remove_edge_and_dominated_blocks,
11574 cfgcleanup_altered_bbs): Altered.
11575 * tree-cfg.c (replace_uses_by, tree_merge_blocks): Record altered
11576 blocks.
11577 (get_all_dominated_blocks, remove_edge_and_dominated_blocks): New
11578 functions.
11579 (tree_purge_dead_eh_edges): Use remove_edge_and_dominated_blocks,
11580 do not invalidate dominators.
11581
11582 2007-04-26 Anatoly Sokolov <aesok@post.ru>
11583
11584 * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and
11585 ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
11586 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
11587 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
11588
11589 2007-04-26 Steve Ellcey <sje@cup.hp.com>
11590
11591 * config/ia64/ia64.md (ip_value): Fix itanium_class attribute.
11592
11593 2007-04-26 Richard Guenther <rguenther@suse.de>
11594
11595 PR tree-optimization/31703
11596 * tree-ssa-loop-im.c (rewrite_bittest): Make sure to use
11597 the right type for the target of the bittest.
11598
11599 2007-04-26 Richard Sandiford <richard@codesourcery.com>
11600
11601 * config/i386/vx-common.h (RETURN_IN_MEMORY): Use
11602 ix86_sol10_return_in_memory.
11603
11604 2007-04-26 Richard Sandiford <richard@codesourcery.com>
11605
11606 * config/i386/i386.c (ix86_sol10_return_in_memory): Remove unused
11607 variables.
11608
11609 2007-04-26 Jakub Jelinek <jakub@redhat.com>
11610
11611 PR c++/31598
11612 * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
11613
11614 PR tree-optimization/30558
11615 * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
11616 clear this_state.prev_try.
11617
11618 2007-04-26 Richard Sandiford <richard@codesourcery.com>
11619 Mark Mitchell <mark@codesourcery.com>
11620
11621 * config/i386/i386-protos.h (ix86_sol10_return_in_memory): Declare.
11622 * config/i386/i386.c (ix86_sol10_return_in_memory): New function.
11623 * config/i386/sol2-10.h (RETURN_IN_MEMORY): Use it.
11624
11625 2007-04-26 Richard Sandiford <richard@codesourcery.com>
11626
11627 PR driver/31107
11628 * doc/invoke.texi (%:print-asm-header): Document.
11629 * gcc.c (asm_options): Use %:print-asm-header() for --target-help
11630 and -ftarget-help.
11631 (static_spec_functions): Add print-asm-header.
11632 (main): Print a banner before the --target-help linker options.
11633 (print_asm_header_spec_function): New function.
11634
11635 2007-04-25 Kaz Kojima <kkojima@gcc.gnu.org>
11636
11637 PR target/31403
11638 * config/sh/sh.md (movsi_ie): Fix length for TARGET_SH2A.
11639 (movsf_ie): Likewise.
11640
11641 2007-04-25 Paolo Carlini <pcarlini@suse.de>
11642
11643 * doc/extend.texi ([Type Traits]): Adjust per N2255.
11644
11645 2007-04-25 Bob Wilson <bob.wilson@acm.org>
11646
11647 * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an
11648 exception for divide-by-zero.
11649 (__umodsi3, __modsi3): Likewise.
11650
11651 2007-04-25 Dirk Mueller <dmueller@suse.de>
11652
11653 * c-typeck.c (build_compound_expr): Annotate warning()
11654 call with OPT_Wunused_value.
11655 * tree-ssa.c (warn_uninit): Annotate warning with
11656 OPT_Wunintialized.
11657 * c-common.c (handle_sentinel_attribute): Annotate warning
11658 call with OPT_Wattributes.
11659
11660 2007-04-25 Thiemo Seufer <ths@mips.com>
11661
11662 * config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options.
11663 (mips16): Fix typo.
11664 * config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx
11665 on to the assembler. Improve handling of -mno-mips16. Add handling
11666 of -mno-mips3d, -mno-dsp, -mno-dspr2.
11667 * doc/invoke.texi (MIPS Options): Whitespace cleanup. Fix wrong use
11668 of @itemx. Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx,
11669 -mno-mdmx, -mno-mips3d, -mmt and -mno-mt.
11670
11671 2007-04-25 Danny Smith <dannysmith.users.sourceforge.net>
11672
11673 PR target/31680
11674 * config/i386/winnt.c (i386_pe_file_end): Strip only
11675 USER_LABEL_PREFIX when writing export name.
11676
11677 2007-04-25 Richard Sandiford <richard@codesourcery.com>
11678
11679 * config.gcc (sh-wrs-vxworks): Don't include dbxelf.h. Include
11680 sh/elf.h, vx-common.h and vxworks.h.
11681 * config/sh/sh.h: Include config/vxworks-dummy.h.
11682 (SUBTARGET_OVERRIDE_OPTIONS): Define.
11683 (OVERRIDE_OPTIONS): Use it.
11684 * config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs.
11685 (vxworks_picreg): New pattern.
11686 * config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
11687 VXWORKS_OS_CPP_BUILTINS.
11688 (LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine
11689 to their VXWORKS_* equivalents.
11690 (SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
11691 (SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define.
11692 * config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC.
11693 (set_fpscr, ic_invalidate): Add VxWorks PIC sequences.
11694 * config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and
11695 -mrtp/-fPIC multilibs.
11696 (MULTILIB_EXCEPTIONS): Generalize globs accordingly.
11697 (MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define.
11698 (MULTILIB_OSDIRNAMES): Delete.
11699
11700 2007-04-25 Anatoly Sokolov <aesok@post.ru>
11701
11702 PR target/18989
11703 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
11704
11705 2007-04-24 Brooks Moses <brooks.moses@codesourcery.com>
11706
11707 * real.c (mpfr_from_real): Handle Inf and NaN, and allow the
11708 rounding mode to be specified by the caller.
11709 (real_to_mpfr) Likewise.
11710 * real.h: Update mpfr_from_real, mpfr_to_real prototypes to
11711 include new arguments.
11712 * builtins.c: Update mpfr_from_real, mpfr_to_real calls.
11713
11714 2007-04-24 Ian Lance Taylor <iant@google.com>
11715
11716 PR tree-optimization/31605
11717 * tree-vrp.c (set_value_range): Check that min and max are not
11718 both overflow infinities.
11719 (set_value_range_to_value): New static function.
11720 (extract_range_from_binary_expr): Call set_value_range_to_value.
11721 (extract_range_from_cond_expr): Likewise.
11722 (extract_range_from_expr): Likewise.
11723 (extract_range_from_unary_expr): Likewise. Don't create a range
11724 which overflows on both sides.
11725 (vrp_meet): Check for a useless range.
11726 (vrp_visit_phi_node): If we see a constant which looks like an
11727 overflow infinity, turn off the TREE_OVERFLOW flag.
11728
11729 2007-04-24 Ian Lance Taylor <iant@google.com>
11730
11731 * flow.c (elim_reg_cond): Handle a comparison of a subreg.
11732
11733 2007-04-24 Simon Martin <simartin@users.sourceforge.net>
11734
11735 PR diagnostic/25923
11736 * tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a
11737 diagnostic message is being built.
11738 * tree-pretty-print.c (dump_generic_node): Only write the
11739 formatted text into BUFFER's stream if we are not building a
11740 diagnostic message.
11741 * toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to
11742 dump_generic_node.
11743 * Makefile.in (toplev.o): Depend on tree-pass.h.
11744
11745 2007-04-24 Ian Lance Taylor <iant@google.com>
11746
11747 PR tree-optimization/31602
11748 * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
11749 conditionals in the copied loop header.
11750 * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
11751 warnings if TREE_NO_WARNING is set.
11752 * doc/invoke.texi (Warning Options): Clarify that
11753 -Wstrict-overflow does not warn about loops.
11754
11755 2007-04-24 Janis Johnson <janis187@us.ibm.com>
11756
11757 * config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
11758 expand on the comment about _Decimal128 arguments and check the
11759 integer result of the modulus operation; for 64-bit ELF ABI, ensure
11760 that _Decimal128 argument uses even/odd register pair.
11761 (function_arg): Ditto.
11762
11763 2007-04-24 Hui-May Chang <hm.chang@apple.com>
11764
11765 * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
11766 instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
11767
11768 2007-04-24 Richard Guenther <rguenther@suse.de>
11769 Olga Golovanevsky <olga@il.ibm.com>
11770
11771 * fold-const.c (multiple_of_p): Check for bottom
11772 to be zero.
11773
11774 2007-04-24 Richard Henderson <rth@redhat.com>
11775
11776 * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from
11777 IS_IBM_EXTENDED. Also define in terms of WIDEST_HARDWARE_FP_SIZE.
11778 * libgcc2.c (__floatdisf): Avoid double-word arithmetic when
11779 looking for non-zero bits shifted out. Avoid a recursive call
11780 when constructing the scalar.
11781 (__floatundisf): Likewise.
11782
11783 2007-04-24 Nathan Froyd <froydnj@codesourcery.com>
11784
11785 * dwarf2out.c (field_byte_offset): Move the existing logic
11786 under the control of PCC_BITFIELD_TYPE_MATTERS and just use
11787 the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS.
11788
11789 2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
11790
11791 PR target/31641
11792 * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant
11793 length argument of 0 for memset.
11794 (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
11795 unsigned shift instead of the signed variant.
11796
11797 2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
11798
11799 * config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
11800 "fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
11801 "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
11802 "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
11803 "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
11804 "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
11805 "*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
11806 "*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
11807 "*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
11808 ("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
11809 "truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
11810 "mul<mode>3", "div<mode>3"): Insn definitions added.
11811 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
11812 "fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
11813 to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
11814 ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
11815 "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
11816 "sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
11817 ("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
11818 * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
11819 TARGET_FLOAT_FORMAT): Macro definitions removed.
11820 (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
11821 * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
11822 z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
11823 (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
11824 (s390_gen_rtx_const_DI): Function removed.
11825 * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.
11826
11827 2007-04-24 Richard Sandiford <richard@codesourcery.com>
11828
11829 * optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
11830 over an external ffs function.
11831
11832 2007-04-24 Chao-ying Fu <fu@mips.com>
11833 Richard Sandiford <richard@nildram.co.uk>
11834
11835 * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
11836 * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
11837 (smadd_widen_optab, umadd_widen_optab): Define.
11838 * optabs.c (init_optabs): Initialize smadd_widen_optab and
11839 umadd_widen_optab.
11840 * genopinit.c (optabs): Fill in smadd_widen_optab and
11841 umadd_widen_optab.
11842 * expr.c (expand_expr_real_1): Try to use smadd_widen_optab
11843 and umadd_widen_optab to implement multiply-add sequences.
11844 * config/mips/mips.md (*<su>mul_acc_di): Rename to...
11845 (<u>maddsidi4): ...this. Extend condition to include
11846 GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
11847 of operand 0 to "ka" and use the three-operand form of madd<u>
11848 for TARGET_DSPR2.
11849 * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
11850 to define_expands.
11851 * config/mips/constraints.md (ka): New register constraint.
11852
11853 2007-04-24 Jan Hubicka <j@suse.cz>
11854
11855 Revert:
11856
11857 2007-04-23 Jan Hubicka <jh@suse.cz>
11858 * function.c (init_function_start): Don't init line number info.
11859 (expand_function_end): Update.
11860 (reset_block_changes, record_block_change, finalize_block_changes,
11861 check_block_change, free_block_changes): Kill.
11862 * function.h (reset_block_changes, record_block_change,
11863 finalize_block_changes, check_block_change, free_block_changes):
11864 Remove prototypes.
11865 (struct function): Remove ib_boundaries_block.
11866 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
11867 Use curr_insn_locator to initialize locator.
11868 (emit_line_note): Remove.
11869 * cfgexpand.c (expand_gimple_cond_expr): Update.
11870 (construct_exit_block): Likewise.
11871 (tree_expand_cfg): Initialize/finalize locators.
11872 * expr.c (expand_expr_real): Update.
11873 * cfglayout.c (line_locators_locs, line_locators_lines,
11874 file_locators_locs, file_locators_files): Remove.
11875 (set_block_levels): Move to cfgexpand.c.
11876 (insn_locators_initialize): Remove.
11877 (pass_insn_locators_initialize): Remove.
11878 (locations_locators_locs, locations_locators_vals): New static vars.
11879 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
11880 Likewise.
11881 (insn_locators_alloc, insn_locators_finalize,
11882 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
11883 New functions.
11884 (locator_location): New.
11885 (locator_line, locator_file): Rewrite.
11886 * rtl.h (emit_line_note): Kill.
11887 (insn_locators_alloc, insn_locators_finalize,
11888 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
11889 Declare.
11890 * tree-inline.c (initialize_cfun): Do not initialize
11891 ib_boundaries_block.
11892 * passes.c (pass_insn_locators_initialize): Remove.
11893
11894 2007-04-24 Daniel Franke <franke.daniel@gmail.com>
11895
11896 * doc/invoke.texi: Removed leading '-' from option index entries.
11897
11898 2007-04-23 Zdenek Dvorak <dvorakz@suse.cz>
11899
11900 * tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
11901 Use phi_nodes_ptr.
11902 (create_phi_node): Use set_phi_nodes.
11903 * omp-low.c (expand_omp_parallel): Use bb_stmt_list.
11904 * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
11905 (combine_blocks): Use bb_stmt_list and set_bb_stmt_list.
11906 * tree-flow-inline.h (phi_nodes, set_phi_nodes,
11907 (bsi_start, bsi_last): Use bb_stmt_list.
11908 (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
11909 * cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
11910 Traverse the statements using tsi iterator.
11911 * basic-block.h (struct basic_block_def): Fields stmt_list
11912 and phi_nodes moved to ...
11913 (struct tree_bb_info): ... new structure.
11914 * tree-cfg.c (create_bb): Allocate il.tree. Use set_bb_stmt_list.
11915 (tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
11916 (remove_bb): Handle blocks with NULL stmt list. Clear il.tree field.
11917 (tree_verify_flow_info): Verify that il.tree is not set for
11918 entry and exit block.
11919 (tree_split_block): Use set_bb_stmt_list.
11920
11921 2007-04-23 Mike Stump <mrs@apple.com>
11922
11923 * config/i386/i386.c (ix86_tune_features
11924 [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
11925 nocona and core2.
11926
11927 2007-04-23 H.J. Lu <hongjiu.lu@intel.com>
11928
11929 * config/i386/i386.md (prefix_extra): New attribute.
11930 (length): Add prefix_extra.
11931
11932 * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
11933 (sse2_movntv2di): Likewise.
11934 (sse2_cvtps2dq): Likewise.
11935 (sse2_cvtpd2pi): Likewise.
11936 (sse2_cvttpd2pi): Likewise.
11937 (*sse2_cvtpd2ps): Likewise.
11938 (*add<mode>3): Likewise.
11939 (sse2_ssadd<mode>3): Likewise.
11940 (sse2_usadd<mode>3): Likewise.
11941 (*sub<mode>3): Likewise.
11942 (sse2_sssub<mode>3): Likewise.
11943 (sse2_ussub<mode>3): Likewise.
11944 (*mulv8hi3): Likewise.
11945 (*smulv8hi3_highpart): Likewise.
11946 (*umulv8hi3_highpart): Likewise.
11947 (sse2_umulv2siv2di3): Likewise.
11948 (sse2_pmaddwd): Likewise.
11949 (ashr<mode>3): Likewise.
11950 (lshr<mode>3): Likewise.
11951 (ashl<mode>3): Likewise.
11952 (sse2_ashlti3): Likewise.
11953 (sse2_lshrti3): Likewise.
11954 (*umaxv16qi3): Likewise.
11955 (*smaxv8hi3): Likewise.
11956 (*uminv16qi3): Likewise.
11957 (*sminv8hi3): Likewise.
11958 (sse2_eq<mode>3): Likewise.
11959 (sse2_gt<mode>3): Likewise.
11960 (*and<mode>3): Likewise.
11961 (sse2_nand<mode>3): Likewise.
11962 (*ior<mode>3): Likewise.
11963 (*xor<mode>3): Likewise.
11964 (sse2_packsswb): Likewise.
11965 (sse2_packssdw): Likewise.
11966 (sse2_packuswb): Likewise.
11967 (sse2_punpckhbw): Likewise.
11968 (sse2_punpcklbw): Likewise.
11969 (sse2_punpckhwd): Likewise.
11970 (sse2_punpcklwd): Likewise.
11971 (sse2_punpckhdq): Likewise.
11972 (sse2_punpckldq): Likewise.
11973 (sse2_punpckhqdq): Likewise.
11974 (sse2_punpcklqdq): Likewise.
11975 (*sse2_pinsrw): Likewise.
11976 (*sse2_pextrw): Likewise.
11977 (sse2_pshufd_1): Likewise.
11978 (sse2_uavgv16qi3): Likewise.
11979 (sse2_uavgv8hi3): Likewise.
11980 (sse2_psadbw): Likewise.
11981 (sse2_pmovmskb): Likewise.
11982 (*sse2_maskmovdqu): Likewise.
11983 (*sse2_maskmovdqu_rex64): Likewise.
11984 (sse4a_extrqi): Likewise.
11985 (sse4a_extrq): Likewise.
11986 (sse3_lddqu): Set prefix_rep.
11987 (sse3_addsubv4sf3): Likewise.
11988 (sse3_haddv4sf3): Likewise.
11989 (sse3_hsubv4sf3): Likewise.
11990 (sse_cvtss2si): Likewise.
11991 (sse_cvtss2si_2): Likewise.
11992 (sse_cvtss2siq): Likewise.
11993 (sse_cvtss2siq_2): Likewise.
11994 (sse_cvttss2si): Likewise.
11995 (sse_cvttss2siq): Likewise.
11996 (sse2_cvttps2dq): Likewise.
11997 (sse3_movshdup): Likewise.
11998 (sse3_movsldup): Likewise.
11999 (sse2_cvtsd2si): Likewise.
12000 (sse2_cvtsd2si_2): Likewise.
12001 (sse2_cvtsd2siq): Likewise.
12002 (sse2_cvtsd2siq_2): Likewise.
12003 (sse2_cvttsd2si): Likewise.
12004 (sse2_cvttsd2siq): Likewise.
12005 (*sse2_cvtpd2dq): Likewise.
12006 (*sse2_cvttpd2dq): Likewise.
12007 (sse2_pshuflw_1): Likewise.
12008 (sse2_pshufhw_1): Likewise.
12009 (sse4a_insertqi): Likewise.
12010 (sse4a_insertq): Likewise.
12011 (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
12012 (ssse3_phadddv4si3): Likewise.
12013 (ssse3_phaddswv8hi3): Likewise.
12014 (ssse3_phsubwv8hi3): Likewise.
12015 (ssse3_phsubdv4si3): Likewise.
12016 (ssse3_phsubswv8hi3): Likewise.
12017 (ssse3_pmaddubswv8hi3): Likewise.
12018 (ssse3_pmulhrswv8hi3): Likewise.
12019 (ssse3_pshufbv16qi3): Likewise.
12020 (ssse3_psign<mode>3): Likewise.
12021 (ssse3_palignrti): Likewise.
12022 (abs<mode>2): Likewise.
12023 (ssse3_phaddwv4hi3): Set prefix_extra.
12024 (ssse3_phadddv2si3): Likewise.
12025 (ssse3_phaddswv4hi3): Likewise.
12026 (ssse3_phsubwv4hi3): Likewise.
12027 (ssse3_phsubdv2si3): Likewise.
12028 (ssse3_phsubswv4hi3): Likewise.
12029 (ssse3_pmaddubswv4hi3): Likewise.
12030 (ssse3_pmulhrswv4hi3): Likewise.
12031 (ssse3_pshufbv8qi3): Likewise.
12032 (ssse3_psign<mode>3): Likewise.
12033 (ssse3_palignrdi): Likewise.
12034 (abs<mode>2): Likewise.
12035 (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
12036 (*vec_dupv2df): Set mode to V2DF instead of V4SF.
12037 (sse2_pmovmskb): Set mode to SI instead of V2DF.
12038
12039 2007-04-23 Nick Clifton <nickc@redhat.com>
12040
12041 * params.def: Fix formatting of emacs local variables.
12042
12043 2007-04-23 H.J. Lu <hongjiu.lu@intel.com>
12044
12045 * config/i386/sse.md (sse2_stored): Don't split to inter-unit
12046 move if inter-unit move isn't allowed.
12047 Don't split moving the first element of V2DI to DI to inter-unit
12048 move if inter-unit move isn't allowed.
12049
12050 2007-04-23 Richard Guenther <rguenther@suse.de>
12051
12052 * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
12053 and CDI_POST_DOMINATORS separately.
12054
12055 2007-04-23 Nick Clifton <nickc@redhat.com>
12056
12057 * c.opt (Wformat-contains-nul): Add warning attribute.
12058
12059 2007-04-23 Jan Hubicka <jh@suse.cz>
12060
12061 * function.c (init_function_start): Don't init line number info.
12062 (expand_function_end): Update.
12063 (reset_block_changes, record_block_change, finalize_block_changes,
12064 check_block_change, free_block_changes): Kill.
12065 * function.h (reset_block_changes, record_block_change,
12066 finalize_block_changes, check_block_change, free_block_changes):
12067 Remove prototypes.
12068 (struct function): Remove ib_boundaries_block.
12069 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
12070 Use curr_insn_locator to initialize locator.
12071 (emit_line_note): Remove.
12072 * cfgexpand.c (expand_gimple_cond_expr): Update.
12073 (construct_exit_block): Likewise.
12074 (tree_expand_cfg): Initialize/finalize locators.
12075 * expr.c (expand_expr_real): Update.
12076 * cfglayout.c (line_locators_locs, line_locators_lines,
12077 file_locators_locs, file_locators_files): Remove.
12078 (set_block_levels): Move to cfgexpand.c.
12079 (insn_locators_initialize): Remove.
12080 (pass_insn_locators_initialize): Remove.
12081 (locations_locators_locs, locations_locators_vals): New static vars.
12082 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
12083 Likewise.
12084 (insn_locators_alloc, insn_locators_finalize,
12085 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
12086 New functions.
12087 (locator_location): New.
12088 (locator_line, locator_file): Rewrite.
12089 * rtl.h (emit_line_note): Kill.
12090 (insn_locators_alloc, insn_locators_finalize,
12091 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
12092 Declare.
12093 * tree-inline.c (initialize_cfun): Do not initialize
12094 ib_boundaries_block.
12095 * passes.c (pass_insn_locators_initialize): Remove.
12096
12097 2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
12098
12099 PR middle-end/31448
12100 * expr.c (reduce_to_bit_field_precision): Handle
12101 CONST_INT rtx's.
12102
12103 2007-04-22 Uros Bizjak <ubizjak@gmail.com>
12104
12105 PR tree-optimization/24659
12106 * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
12107 OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
12108 (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
12109 * genopinit.c (optabs): Rename vec_pack_mod_optab
12110 to vec_pack_trunc_optab.
12111 * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
12112 early for scalar floating point operands for NOP_EXPR.
12113 (vectorizable_type_promotion): Ditto.
12114 * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
12115 vec_pack_trunc_optab.
12116 (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.
12117
12118 * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
12119 * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
12120 Rename from VEC_PACK_MOD_EXPR.
12121 (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
12122 * expr.c (expand_expr_real_1): Ditto.
12123 * tree-inline.c (estimate_num_insns_1): Ditto.
12124 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
12125
12126 * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
12127 (vec_unpacks_lo_v4sf): Ditto.
12128 (vec_pack_trunc_v2df): Ditto.
12129 (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
12130 (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
12131 (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
12132
12133 * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
12134 vec_pack_mod_v8hi.
12135 (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
12136
12137 * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
12138 Rename from VEC_PACK_MOD_EXPR. This expression also represent
12139 packing of floating point operands.
12140 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
12141 represent unpacking of floating point operands.
12142 * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
12143 [vec_unpacks_hi]: Ditto.
12144 [vec_unpacks_lo]: Ditto.
12145
12146 2007-04-22 Jan Hubicka <jh@suse.cz>
12147
12148 * final.c (rest_of_handle_final): Call
12149 targetm.asm_out.constructor/targetm.asm_out.destructor
12150 * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
12151 proper priority via decl_*_priority_insert.
12152 * c-common.c (c_expand_body): Likewise.
12153
12154 2007-04-22 Richard Guenther <rguenther@suse.de>
12155
12156 PR tree-optimization/29789
12157 * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
12158 (rewrite_reciprocal): New helper split out from
12159 determine_invariantness_stmt.
12160 (rewrite_bittest): Likewise.
12161 (determine_invariantness_stmt): Rewrite (A >> B) & 1 to
12162 A & (1 << B) if (1 << B) is loop invariant but (A >> B)
12163 is not.
12164
12165 2007-04-22 Revital Eres <eres@il.ibm.com>
12166
12167 * loop-unroll.c (var_to_expand): New field to support also
12168 insns of the form x = something + x.
12169 (analyze_insn_to_expand_var): Use it.
12170 (expand_var_during_unrolling): Likewise.
12171
12172 2007-04-21 Zdenek Dvorak <dvorakz@suse.cz>
12173
12174 * predict.c: Include pointer-set.h.
12175 (bb_predictions): New variable.
12176 (tree_predicted_by_p, tree_predict_edge,
12177 remove_predictions_associated_with_edge): Use bb_predictions map
12178 instead of bb->predictions.
12179 (clear_bb_predictions, assert_is_empty): New functions.
12180 (combine_predictions_for_bb): Use bb_predictions map. Call
12181 clear_bb_predictions.
12182 (tree_estimate_probability): Create and free bb_predictions map.
12183 * Makefile.in (predict.o): Add pointer-set.h dependency.
12184 * basic-block.h (struct basic_block_def): Remove predictions
12185 field.
12186 * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
12187
12188 2007-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
12189
12190 PR target/31480
12191 * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
12192 is null.
12193
12194 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
12195
12196 * timevar.c (timevar_print): Change reference of --disable-checking to
12197 --enable-checking=release. Also warn if assert checking is disabled.
12198
12199 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
12200
12201 PR C/30265
12202 * c-gimplifier.c (gimplify_compound_literal_expr): Mark the
12203 decl as addressable if the compound literal was marked as
12204 addressable.
12205 Mark the decl as a gimple register if it is a complex or
12206 vector decl and does not live in memory.
12207
12208 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
12209
12210 * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
12211 (GENERIC_NEXT): New function macro.
12212 (PHI_CHAIN): Use phi_node's new chain variable.
12213 (tree_phi_node): Change tree_common to tree_base
12214 and add the chain field.
12215 * tree-phinodes.c (make_phi_node): Don't set
12216 TREE_TYPE on the new node.
12217 * c-decl.c (lang_tree_node): Use GENERIC_NEXT
12218 instead of checking GIMPLE_TUPLE_P in chain_next.
12219 * tree-vect-transform.c
12220 (get_initial_def_for_induction): Look at
12221 PHI_RESULT_TREE for the type of the phi node.
12222 (update_vuses_to_preheader): Use PHI_CHAIN
12223 instead of TREE_CHAIN on the phi node.
12224 * tree-ssa-structalias.c (compute_points_to_sets):
12225 Likewise.
12226 (ipa_pta_execute): Likewise.
12227
12228 2007-04-21 Richard Guenther <rguenther@suse.de>
12229
12230 PR middle-end/31136
12231 * fold-const.c (fold_unary): Call fold_convert_const on the
12232 original tree.
12233
12234 2007-04-21 Alexandre Oliva <aoliva@redhat.com>
12235
12236 * gcse.c (store_killed_in_insn): Handle PARALLELs.
12237 (store_killed_in_pat): New.
12238
12239 2007-04-20 Richard Henderson <rth@redhat.com>
12240
12241 PR target/31628
12242 * config/i386/i386.c (type_has_variadic_args_p): Look for any
12243 TREE_LIST with a void_type_node value, not void_list_node exactly.
12244
12245 2007-04-21 Douglas Gregor <doug.gregor@gmail.com>
12246
12247 * doc/standards.texi: Re-arrange into language-specific
12248 subsections. Add a C++ section, documenting which standards we
12249 support.
12250
12251 2007-04-21 Zdenek Dvorak <dvorakz@suse.cz>
12252
12253 * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
12254 * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.
12255
12256 2007-04-20 Daniel Jacobowitz <dan@codesourcery.com>
12257
12258 * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
12259 ecrti.o and crtbegin.o.
12260 (LIB_DEFAULT_SPEC): Include -lc.
12261 (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.
12262
12263 2007-04-20 Richard Henderson <rth@redhat.com>
12264
12265 PR target/28623
12266 * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
12267 argument; update all callers.
12268 (get_unaligned_offset): New.
12269 * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
12270 get_unaligned_address, just pass on the address directly.
12271 (unaligned_extendqidi): Use gen_lowpart instead of open-coding
12272 the subreg in the helper patterns.
12273 (unaligned_extendqidi_le): Use get_unaligned_offset.
12274 (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
12275 (unaligned_extendhidi_be): Likewise.
12276 (unaligned_extendhidi): Tidy.
12277 * config/alpha/alpha-protos.h: Update.
12278
12279 2007-04-20 Richard Henderson <rth@redhat.com>
12280
12281 * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove.
12282 (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
12283 * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
12284 * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
12285 * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
12286 (CPP_SPEC): Don't include %(cpp_subtarget).
12287 * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC.
12288 (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
12289 * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly.
12290
12291 2007-04-20 Jakub Jelinek <jakub@redhat.com>
12292
12293 * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
12294 for __builtin_ia32_cmpordss.
12295
12296 PR tree-optimization/31632
12297 * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
12298 and arg1 for optimizations of comparison against min/max values.
12299 Fold arg0 to arg1's type for optimizations of comparison against
12300 min+1 and max-1 values.
12301
12302 2007-04-19 Bernd Schmidt <bernd.schmidt@analog.com>
12303
12304 * reload.c (combine_reloads): When trying to use a dying register,
12305 check whether it's uninitialized and don't use if so.
12306
12307 2007-04-19 Brooks Moses <brooks.moses@codesourcery.com>
12308
12309 * fold-const.c: Remove prototypes for native_encode_expr and
12310 native_interpret_expr.
12311 (native_encode_expr): Make non-static.
12312 (native_interpret_expr): Likewise.
12313 * tree.h: Add prototypes for the above.
12314
12315 2007-04-19 Joseph Myers <joseph@codesourcery.com>
12316
12317 * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2,
12318 *mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2,
12319 *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2,
12320 spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr,
12321 tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
12322 Add length attributes.
12323
12324 2007-04-19 Janis Johnson <janis187@us.ibm.com>
12325
12326 * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined,
12327 not that it is 1.
12328
12329 * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
12330 __STDC_WANT_DEC_FP__.
12331
12332 2007-04-19 Joseph Myers <joseph@codesourcery.com>
12333
12334 * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
12335 for long double compatibility.
12336 * configure: Regenerate.
12337
12338 2007-04-19 Eric Botcazou <ebotcazou@libertysurf.fr>
12339
12340 PR rtl-optimization/29841
12341 * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
12342 trap instructions.
12343 * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
12344 that may cause control flow transfer from being moved.
12345
12346 2007-04-18 Jan Hubicka <jh@suse.cz>
12347
12348 * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
12349 types.
12350
12351 2007-04-18 Eric Christopher <echristo@apple.com>
12352
12353 * config/rs6000/darwin.md (load_macho_picbase): Use link register
12354 only. Update operands.
12355 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
12356 * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
12357 link register to pic register.
12358
12359 2007-04-18 Dirk Mueller <dmueller@suse.de>
12360
12361 PR diagnostic/31227
12362 * tree-vrp.c (search_for_addr_array): New.
12363 (check_array_bounds): Suppress warning about
12364 address taken of array refs if its not de-referenced.
12365
12366 2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
12367
12368 * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
12369 * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
12370
12371 * tree-vectorizer.h (NITERS_KNOWN_P): New.
12372 * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
12373 instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
12374
12375 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
12376 dump print.
12377 (vect_analyze_operations): Fix indenetation. Fix a comment. Fix a
12378 print message.
12379 (vect_analyze_scalar_cycles): Fix indentation.
12380 (vect_enhance_data_refs_alignment): Fix check in case of peeling.
12381 (vect_mark_relevant): Include phis in relevance analysis.
12382
12383 * tree-vect-transform.c (vect_transform_loop): Add an assert.
12384
12385 2007-04-18 Anatoly Sokolov <aesok@post.ru>
12386
12387 * config/avr/avr.c (ptrreg_to_str): Replace error() with
12388 output_operand_lossage().
12389
12390 2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
12391
12392 * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
12393 the unused code for reduction without adjust-in-epilog to simplify the
12394 function.
12395
12396 2007-04-18 Wolfgang Gellerich <gellerich@de.ibm.com>
12397
12398 * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
12399 (S390_TDC_NEGATIVE_ZERO): New constant.
12400 (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
12401 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
12402 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
12403 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
12404 (S390_TDC_POSITIVE_INFINITY): New constant.
12405 (S390_TDC_NEGATIVE_INFINITY): New constant.
12406 (S390_TDC_POSITIVE_QUIET_NAN): New constant.
12407 (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
12408 (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
12409 (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
12410 (S390_TDC_INFINITY): New constant.
12411 * config/s390/s390.c (s390_canonicalize_comparison): Renamed
12412 UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
12413 optimization for UNSPEC_CCZ_TO_INT.
12414 * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
12415 ("*ccz_to_int"): New insn.
12416 ("isinf<mode>2"): New insn.
12417 (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
12418 (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
12419 (UNSPEC_CCZ_TO_INT): New constant.
12420
12421 2007-04-18 Richard Guenther <rguenther@suse.de>
12422
12423 PR tree-optimization/19431
12424 PR tree-optimization/21463
12425 * tree-pass.h (pass_phiprop): Declare.
12426 * passes.c (init_optimization_passes): New phiprop pass.
12427 * tree-ssa-forwprop.c (struct phiprop_d): New structure.
12428 (phivn_valid_p): New helper function.
12429 (phiprop_insert_phi): Likewise.
12430 (propagate_with_phi): Likewise.
12431 (tree_ssa_phiprop): New propagator propagating loads
12432 through phi nodes if profitable.
12433
12434 2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
12435
12436 * tree-vect-analyze.c (process_use): New function.
12437 (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
12438 Check phis in all bbs.
12439 * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
12440 assert.
12441
12442 2007-04-18 Bernd Schmidt <bernd.schmidt@analog.com>
12443
12444 * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
12445 we use REG_EQUAL.
12446
12447 2007-04-17 Anatoly Sokolov <aesok@post.ru>
12448
12449 PR target/30483
12450 * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
12451 error().
12452
12453 2007-04-17 H.J. Lu <hongjiu.lu@intel.com>
12454
12455 * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
12456 on "0".
12457 (sse_vmmulv4sf3): Likewise.
12458 (sse2_vmaddv2df3): Likewise.
12459 (sse2_vmmulv2df3): Likewise.
12460
12461 2007-04-17 Zdenek Dvorak <dvorakz@suse.cz>
12462
12463 PR rtl-optimization/31360
12464 * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
12465 (target_reg_cost): New.
12466 (init_set_costs): Initialize target_reg_cost. Add comments
12467 regarding the rationale of the costs.
12468 (global_cost_for_size): Renamed to...
12469 (estimate_reg_pressure_cost): ... and simplify. Decrease importance
12470 of register pressure.
12471 * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
12472 estimate_reg_pressure_cost. Add number of ivs.
12473 (determine_set_costs): Dump target_reg_cost.
12474 * loop-invariant.c (gain_for_invariant): Use
12475 estimate_reg_pressure_cost. Removed n_inv_uses argument.
12476 (best_gain_for_invariant, find_invariants_to_move): Remove
12477 n_inv_uses.
12478 * cfgloop.h (target_small_cost, target_pres_cost): Removed.
12479 (target_reg_cost): Declare.
12480 (global_cost_for_size): Declaration removed.
12481 (estimate_reg_pressure_cost): Declare.
12482
12483 2007-04-17 Peter Bergner <bergner@vnet.ibm.com>
12484
12485 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
12486 regnos into even/odd register pairs.
12487 * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
12488 TDmode similar to the other floating point modes.
12489 [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
12490 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
12491 define_expand's.
12492 (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
12493 nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
12494 (movdd_hardfloat64): Use TARGET_MFPGPR.
12495
12496 2007-04-17 Bernd Schmidt <bernd.schmidt@analog.com>
12497
12498 * reload1.c (delete_output_reload): Don't count output in n_inherited.
12499
12500 Revert
12501 2005-01-05 Richard Henderson <rth@redhat.com>
12502 PR rtl-opt/10692
12503 * reload1.c (do_input_reload): Restrict the optimization deleteing
12504 a previous output reload to RELOAD_FOR_INPUT.
12505
12506 2007-04-17 Dorit Nuzman <dorit@il.ibm.com>
12507
12508 * tree-vectorizer.h (stmt_vec_info_type): Add enum value
12509 induc_vec_info_type.
12510 (vectorizable_induction): New function declaration.
12511 * tree-vect-transform.c (get_initial_def_for_induction): No need to
12512 check if already vectorized. Find first place in BB where new stmts
12513 can be inserted. Takes only one argument.
12514 (vectorizable_induction): New function.
12515 (vect_transform_stmt): Add case for induc_vec_info_type to call
12516 vectorizable_induction.
12517 (vect_transform_loop): Consider phis for vectorization.
12518 * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
12519 condition.
12520 (analyze_operations): Call vectorizable_induction when analyzing phis.
12521 Fix comment.
12522 (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
12523 (vect_mark_relevant): Include phis in relevance analysis.
12524 (vect_mark_stmts_to_be_vectorize): Likewise.
12525 * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
12526
12527 2007-04-16 Lawrence Crowl <crowl@google.com>
12528
12529 * doc/invoke.texi (Debugging Options): Add documentation for the
12530 -femit-struct-debug options -femit-struct-debug-baseonly,
12531 -femit-struct-debug-reduced, and
12532 -femit-struct-debug-detailed[=...].
12533
12534 * c-opts.c (c_common_handle_option): Add
12535 OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
12536 and OPT_femit_struct_debug_detailed_.
12537 * c.opt: Add specifications for
12538 -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
12539 and -femit-struct-debug-detailed[=...].
12540 * opts.c (set_struct_debug_option): Parse the
12541 -femit-struct-debug-... options.
12542 * opts.c (matches_main_base, main_input_basename,
12543 main_input_baselength, base_of_path, matches_main_base): Add
12544 variables and functions to compare header base name to compilation
12545 unit base name.
12546 * opts.c (should_emit_struct_debug): Add to determine to emit a
12547 structure based on the option.
12548 (dump_struct_debug) Also disabled function to debug this
12549 function.
12550 * opts.c (handle_options): Save the base name of the
12551 compilation unit.
12552
12553 * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
12554 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
12555 This hook indicates if a type is generic. Set it by default
12556 to "never generic".
12557 * langhooks.h (struct lang_hooks_for_types): Add a new hook
12558 to determine if a struct type is generic or not.
12559 * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
12560 * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
12561 * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
12562 with live C++ hook.
12563
12564 * flags.h (enum debug_info_usage): Add an enumeration to describe
12565 a program's use of a structure type.
12566 * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
12567 to indicate the program's usage of the type. Filter structs based
12568 on the -femit-struct-debug-... specification.
12569 (gen_type_die): Split into two routines, gen_type_die and
12570 gen_type_die_with_usage. gen_type_die is now a wrapper
12571 that assumes direct usage.
12572 (gen_type_die_with_usage): Replace calls to gen_type_die
12573 with gen_type_die_with_usage adding the program usage of
12574 the referenced type.
12575 (dwarf2out_imported_module_or_decl): Suppress struct debug
12576 information using should_emit_struct_debug when appropriate.
12577
12578 2007-04-16 Ian Lance Taylor <iant@google.com>
12579
12580 PR tree-optimization/31522
12581 * tree-vrp.c (vr_phi_edge_counts): New static variable.
12582 (vrp_initialize): Allocate vr_phi_edge_counts.
12583 (vrp_visit_phi_node): Don't push to infinity if we saw a new
12584 executable edge. Drop test for all constants.
12585 (vrp_finalize): Free vrp_phi_edge_counts.
12586
12587 * doc/cpp.texi (Common Predefined Macros): Clarify description of
12588 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
12589
12590 * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
12591 predecessors at head rather than tail.
12592
12593 2007-04-16 Matthias Klose <doko@debian.org>
12594
12595 * config/alpha/linux.h (CPP_SPEC): Define.
12596 * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
12597
12598 2007-04-16 Aldy Hernandez <aldyh@redhat.com>
12599
12600 * function.h: Remove sequence_stack extern declaration.
12601
12602 2007-04-16 Kazu Hirata <kazu@codesourcery.com>
12603
12604 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
12605 TARGET_FIDOA.
12606 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
12607 defined.
12608
12609 2007-04-16 Anatoly Sokolov <aesok@post.ru>
12610
12611 * config/avr/avr.c (avr_arch_types): Rearranging array.
12612 (enum avr_arch): Add.
12613 (avr_mcu_types): Use avr_arch enumeration constants instead of
12614 numbers.
12615 * config/avr/avr.h (LINK_SPEC): Simplify.
12616
12617 2007-04-16 Kazu Hirata <kazu@codesourcery.com>
12618
12619 * config/m68k/m68k.c (m68k_libcall_value,
12620 m68k_function_value): Use macros for register names more.
12621
12622 * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
12623 instead.
12624 (M68K_REGNAME): Use A6_REG.
12625 * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
12626
12627 2007-04-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
12628
12629 PR middle-end/28071
12630 * sched-int.h (struct deps): Split field 'pending_lists_length' into
12631 'pending_read_list_length' and 'pending_write_list_length'. Update
12632 comment.
12633 * sched-deps.c (add_insn_mem_dependence): Change signature. Update
12634 to handle two length counters instead of one. Update all uses.
12635 (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
12636 two length counters instead of one.
12637 * sched-rgn.c (propagate_deps): Update to handle two length counters
12638 instead of one.
12639
12640 2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
12641
12642 PR target/31582
12643 * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
12644 copy of source, pass it to ix86_expand_vector_set and return
12645 it as target.
12646
12647 2007-04-16 David Ung <davidu@mips.com>
12648 Joseph Myers <joseph@codesourcery.com>
12649
12650 * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
12651 PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
12652 * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
12653 Add 74K processor information.
12654 * config/mips/mips.md: Include 74k.md.
12655 (cpu): Add 74kc,74kf,74kx.
12656 (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
12657 * config/mips/74k.md: New.
12658 * doc/invoke.texi (MIPS Options): Document 74K support.
12659
12660 2007-04-16 Dorit Nuzman <dorit@il.ibm.com>
12661
12662 * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
12663 vectorizable_* functions.
12664 * tree-vect-transform.c (vectorizable_call): Add check for
12665 STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
12666 (vectorizable_store): likewise.
12667 (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
12668 Add comments.
12669 (vectorizable_operation, vectorizable_type_demotion): Likewise.
12670 (vectorizable_type_promotion, vectorizable_load): Likewise.
12671 (vectorizable_live_operation, vectorizable_condition): Likewise.
12672 (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
12673 STMT_VINFO_LIVE_P.
12674 (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
12675
12676 2007-04-15 Kazu Hirata <kazu@codesourcery.com>
12677
12678 * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
12679 register numbers more.
12680 * config/m68k/m68k.h (STACK_POINTER_REGNUM,
12681 FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
12682 M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
12683 FUNCTION_VALUE_REGNO_P): Likewise.
12684 * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
12685 STATIC_CHAIN_REGNUM): Likewise.
12686 * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
12687 * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
12688 STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
12689 * config/m68k/m68k.md (FP_REG): New.
12690
12691 2007-04-15 Kazu Hirata <kazu@codesourcery.com>
12692
12693 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
12694 alignment on fido.
12695
12696 2007-04-15 Kazu Hirata <kazu@codesourcery.com>
12697
12698 * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
12699 tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
12700 comment typos.
12701
12702 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
12703
12704 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
12705 cold loops.
12706
12707 2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
12708
12709 PR c/31520
12710 * c-decl.c (finish_decl): Grab the type of the decl after the call
12711 to store_init_value.
12712
12713 2007-04-14 Steven Bosscher <steven@gcc.gnu.org>
12714
12715 * common.opt (fforward-propagate): Fix "Optimization" annotation.
12716
12717 2007-04-14 Jakub Jelinek <jakub@redhat.com>
12718
12719 PR c++/25874
12720 * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free
12721 dominators, post dominators and cleanup cfg before returning.
12722
12723 2007-04-14 Bernd Schmidt <bernd.schmidt@analog.com>
12724
12725 * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
12726 * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
12727
12728 2007-04-14 Kazu Hirata <kazu@codesourcery.com>
12729
12730 * config.gcc: Recognize fido.
12731 * config/m68k/m68k-devices.def (fidoa): New.
12732 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
12733 __mfido__.
12734 (FL_FIDOA, TARGET_FIDOA): New.
12735 * config/m68k/m68k.opt (mfidoa): New.
12736
12737 2007-04-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12738
12739 PR middle-end/31322
12740 * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
12741 when a personality function is used.
12742
12743 2007-04-13 Bob Wilson <bob.wilson@acm.org>
12744
12745 * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
12746
12747 2007-04-13 Mike Stump <mrs@apple.com>
12748
12749 * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
12750 we can...
12751 * config/darwin.opt (fapple-kext): Make C++ only.
12752 * config/darwin.c (darwin_override_options): Remove code to ensure
12753 -fapple-kext is given for C++ only.
12754
12755 2007-04-13 Richard Sandiford <richard@codesourcery.com>
12756
12757 * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
12758 * config/mips/mips.c (override_options): Call
12759 SUBTARGET_OVERRIDE_OPTIONS, if defined.
12760
12761 2007-04-13 H.J. Lu <hongjiu.lu@intel.com>
12762
12763 * config/i386/i386.opt (msvr3-shlib): Removed.
12764
12765 * doc/invoke.texi: Remove -msvr3-shlib.
12766
12767 2007-04-13 H.J. Lu <hongjiu.lu@intel.com>
12768
12769 * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
12770 with "popcnt" instruction.
12771
12772 2007-04-13 Richard Guenther <rguenther@suse.de>
12773
12774 PR tree-optimization/21258
12775 * tree-vrp.c (compare_case_labels): New helper.
12776 (find_switch_asserts): New function.
12777 (find_assert_locations): Call it for SWITCH_EXPRs.
12778
12779 2007-04-13 Uros Bizjak <ubizjak@gmail.com>
12780
12781 * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
12782 * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
12783 check is now implied in X87_FLOAT_MODE_P.
12784 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
12785 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
12786 (fix_trunc<mode>_i386_fisttp): Ditto.
12787 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
12788 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
12789 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
12790 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
12791 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
12792 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
12793 (unnamed_splitters): Ditto.
12794 * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
12795 for X87_FLOAT_MODE_P mode. Override FIRST_FLOAT_REG with
12796 FIRST_SSE_REG for local functions when SSE math is enabled or
12797 for functions with sseregparm attribute.
12798 (standard_80387_constant_p): Return -1 if mode is not
12799 X87_FLOAT_MODE_P.
12800 (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
12801 (ix86_expand_compare): Ditto.
12802 (ix86_expand_carry_flag_compare): Ditto.
12803 (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
12804 of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
12805 DECIMAL_FLOAT_MODE_P.
12806 (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
12807 of SCALAR_FLOAT_MODE_P.
12808 (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
12809 [MINUS]: ... here. Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
12810 checks before FLOAT_MODE_P.
12811 [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
12812 before FLOAT_MODE_P.
12813 [DIV]: Ditto.
12814 [NEG]: Ditto.
12815 [ABS]: Ditto.
12816 [SQRT]: Ditto.
12817 [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
12818
12819 2007-04-12 Paolo Bonzini <bonzini@gnu.org>
12820 Charles Wilson <libtool@cwilson.fastmail.fm>
12821
12822 * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
12823 (libgcc.mvars): Don't depend on them.
12824 * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
12825 * exec-tool.in: New.
12826
12827 2007-04-12 Brooks Moses <brooks.moses@codesourcery.com>
12828
12829 * doc/invoke.text (--help): Document --help=common.
12830
12831 2007-04-12 Thomas Neumann <tneumann@users.sourceforge.net>
12832
12833 * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
12834
12835 2007-04-12 Richard Sandiford <richard@codesourcery.com>
12836
12837 * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
12838 * genemit.c (main): Emit #include "integrate.h".
12839 * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
12840 (LOADGP_RTP): New mips_loadgp_style.
12841 * config/mips/mips.h: Include config/vxworks-dummy.h.
12842 (TARGET_RTP_PIC): New macro.
12843 (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
12844 (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
12845 (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
12846 for TARGET_RTP_PIC.
12847 * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define. Pass down
12848 -mvxworks-pic when using -mrtp and a PIC option.
12849 * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
12850 for RTP PIC.
12851 (mips_symbolic_constant_p, mips_symbolic_address_p)
12852 (mips_symbol_insns): Handle SYMBOL_HALF.
12853 (override_options): Warn about -G and -mrtp being used together.
12854 Initialize mips_lo_relocs[SYMBOL_HALF].
12855 (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
12856 (mips_emit_loadgp): Handle LOADGP_RTP.
12857 (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
12858 * config/mips/mips.md (loadgp_rtp): New insn and splitter.
12859 (tablejump): Handle function-relative case table entries if
12860 TARGET_RTP_PIC.
12861 * config/mips/predicates.md (symbol_ref_operand): New predicate.
12862
12863 2007-04-12 Richard Sandiford <richard@codesourcery.com>
12864
12865 * config/mips/mips.md (load_call<mode>): Allow any general register.
12866 destination.
12867 (sibcall_value_internal, sibcall_value_multiple_internal)
12868 (call_value_internal, call_value_split, call_value_multiple_internal)
12869 (call_value_multiple_split): Remove constraints from operand 0.
12870
12871 2007-04-12 Richard Sandiford <richard@codesourcery.com>
12872
12873 * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
12874 rather than loadgp_noshared.
12875 * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
12876 instead of gen_loadgp_noshared. Use gen_loadgp_newabi instead of
12877 gen_loadgp.
12878 * config/mips/mips.md (loadgp): Rename to...
12879 (loadgp_newabi): ...this.
12880 (loadgp_noshared): Rename to...
12881 (loadgp_absolute): ...this.
12882
12883 2007-04-12 Richard Sandiford <richard@codesourcery.com>
12884
12885 * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
12886 false for locally-binding symbols.
12887 (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
12888
12889 2007-04-12 Richard Sandiford <richard@codesourcery.com>
12890
12891 * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
12892 (SYMBOL_GOT_PAGE_OFST): ...this.
12893 (SYMBOL_GOT_GLOBAL): Rename to...
12894 (SYMBOL_GOT_DISP): ...this.
12895 (SYMBOL_GOTOFF_GLOBAL): Rename to...
12896 (SYMBOL_GOTOFF_DISP): ...this. Update comments accordingly.
12897 * config/mips/mips.c (mips_global_symbol_p): New function.
12898 (mips_symbol_binds_local_p): Likewise.
12899 (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
12900 and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use
12901 mips_global_symbol_p and mips_symbol_binds_local_p.
12902 (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
12903 (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
12904 SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
12905 SYMBOL_GOTOFF_DISP.
12906 (mips_ok_for_lazy_binding_p): New function.
12907 (mips_load_call_address, mips_expand_call): Use it.
12908 (mips_dangerous_for_la25_p): Likewise.
12909 * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
12910 (*got_disp<mode>): Use got_disp_operand instead of
12911 global_got_operand. Use SYMBOL_GOTOFF_DISP instead of
12912 SYMBOL_GOTOFF_GLOBAL.
12913 (*got_page<mode>): Use got_page_ofst_operand instead of
12914 local_got_operand.
12915 * config/mips/predicates.md (const_call_insn_operand): Use
12916 SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
12917 (global_got_operand): Rename to...
12918 (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
12919 SYMBOL_GOT_GLOBAL.
12920 (local_got_operand): Rename to...
12921 (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
12922 of SYMBOL_GOT_LOCAL.
12923
12924 2007-04-12 Richard Sandiford <richard@codesourcery.com>
12925
12926 * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
12927 TARGET_CALL_CLOBBERED_GP.
12928 (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
12929 (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
12930 (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
12931 (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
12932 of TARGET_ABICALLS && !TARGET_NEWABI.
12933 (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
12934 * config/mips/mips.c (mips_load_call_address): Check
12935 TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
12936 (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
12937 Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
12938 (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
12939 TARGET_ABICALLS && TARGET_NEWABI.
12940 (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
12941 TARGET_ABICALLS.
12942 (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
12943 (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
12944 TARGET_ABICALLS && TARGET_NEWABI.
12945 (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
12946 TARGET_ABICALLS. Check TARGET_CALL_SAVED_GP instead of
12947 TARGET_NEWABI. Use TARGET_USE_PIC_FN_ADDR_REG to decide
12948 whether indirect calls must use $25.
12949 (mips_extra_live_on_entry): Check TARGET_GOT instead of
12950 TARGET_ABICALLS.
12951 * config/mips/mips.md (jal_macro): Check flag_pic and
12952 TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
12953 (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
12954 instead of TARGET_ABICALLS.
12955 (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
12956 TARGET_ABICALLS && TARGET_OLDABI.
12957 (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
12958 (sibcall): In the comment above the define_insn, mention
12959 TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
12960 * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
12961 instead of TARGET_ABICALLS.
12962
12963 2007-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
12964
12965 * doc/md.texi (Blackfin family constraints): Document PA and PB.
12966 * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
12967 (MACFLAGS_MATCH_P): New macro.
12968 * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
12969 (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
12970 * config/bfin/bfin.md (MACFLAG_IS_M): New constant. Renumber some of
12971 the other MACFLAG constants.
12972 (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
12973 (flag_machi): Tighten constraints. Renumber some of the operands.
12974 (flag_machi_acconly): Tighten constraints. Correct operand numbers in
12975 output template.
12976 (flag_machi_parts_acconly): New pattern.
12977 (flag_macinithi): Tighten constraints. Allow any accumulator to be
12978 used.
12979 (flag_macinit1hi): Tighten constraints.
12980 (flag_mul_macv2hi_parts_acconly): New pattern.
12981
12982 * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
12983 Use a more efficient implementation.
12984 * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
12985 inline sequences when not optimizing for size.
12986
12987 * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
12988 movhi_high2low): Delete, merge functionality into...
12989 (packv2hi): ... this pattern.
12990
12991 2007-02-11 Jie Zhang <jie.zhang@analog.com>
12992 * config/bfin/bfin.opt (msim): New option.
12993 (mcpu=): New option.
12994 * config/bfin/bfin-protos.h (enum bfin_cpu): New.
12995 (bfin_cpu_t): Typedef of enum bfin_cpu.
12996 (bfin_cpu_type): New declaration.
12997 * config/bfin/elf.h (STARTFILE_SPEC): Add support for
12998 -msim and -mcpu= options.
12999 (LIB_SPEC): Likewise.
13000 * config/bfin/bfin.c (bfin_cpu_type): Define.
13001 (bfin_handle_option): Handle -mcpu= option.
13002 * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
13003 (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
13004 __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
13005
13006 2007-04-12 Richard Sandiford <richard@codesourcery.com>
13007
13008 * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
13009 (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
13010 (powerpc-wrs-vxworksae): Use ${tm_file}.
13011 (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
13012 after elfos.h. Remove i386/sysv4.h and add i386/vx-common.h.
13013 * config/i386/vx-common.h: New file.
13014
13015 2007-04-12 Richard Sandiford <richard@codesourcery.com>
13016
13017 * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
13018 of crt0.o%s.
13019
13020 2007-04-12 Andreas Krebbel <krebbel1@de.ibm.com>
13021
13022 * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
13023 ldxtr.
13024
13025 2007-04-12 Douglas Gregor <doug.gregor@gmail.com>
13026
13027 PR c++/31078
13028 PR c++/31103
13029 * c-common.c (c_build_qualified_type): Set canonical type
13030 appropriately.
13031
13032 2007-04-12 Richard Guenther <rguenther@suse.de>
13033
13034 * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
13035 lower bound and element size if lower bound is not zero
13036 or either of the ARRAY_REF operands is set.
13037
13038 2007-04-12 Richard Guenther <rguenther@suse.de>
13039
13040 PR tree-optimization/24689
13041 PR tree-optimization/31307
13042 * fold-const.c (operand_equal_p): Compare INTEGER_CST array
13043 indices by value.
13044 * gimplify.c (canonicalize_addr_expr): To be consistent with
13045 gimplify_compound_lval only set operands two and three of
13046 ARRAY_REFs if they are not gimple_min_invariant. This makes
13047 it never at this place.
13048 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
13049
13050 2007-04-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13051
13052 * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
13053 null before emitting a .nsubspa directive.
13054
13055 2007-04-11 Diego Novillo <dnovillo@redhat.com>
13056
13057 * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
13058 need_to_partition_p if there are no memory statements in the
13059 function.
13060
13061 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
13062
13063 * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
13064 (gcd_of_steps_may_divide_p): New function.
13065 (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
13066
13067 2007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
13068
13069 * reload.c (find_reloads_toplev, find_reloads_address,
13070 find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
13071 not a pointer equality test, to decide if we need to call
13072 push_reg_equiv_alt_mem.
13073
13074 2007-04-11 Sebastian Pop <sebastian.pop@inria.fr>
13075
13076 * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
13077 insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps):
13078 New.
13079 (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
13080
13081 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
13082
13083 * tree-data-ref.c (add_multivariate_self_dist): Force the distance
13084 vector to be positive.
13085
13086 2007-04-11 Diego Novillo <dnovillo@redhat.com>
13087
13088 PR 30735
13089 PR 31090
13090 * doc/invoke.texi: Document --params max-aliased-vops and
13091 avg-aliased-vops.
13092 * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
13093 debug_memory_partitions): Move to tree-flow.h
13094 * params.h (AVG_ALIASED_VOPS): Define.
13095 * tree-ssa-alias.c (struct mp_info_def): Remove. Update all
13096 users.
13097 (mp_info_t): Likewise.
13098 (get_mem_sym_stats_for): New.
13099 (set_memory_partition): Move from tree-flow-inline.h.
13100 (mark_non_addressable): Only clear the set of symbols for the
13101 partition if it exists.
13102 (dump_memory_partitions): Move from tree-ssa-operands.c
13103 (debug_memory_partitions): Likewise.
13104 (need_to_partition_p): New.
13105 (dump_mem_ref_stats): New.
13106 (debug_mem_ref_stats): New.
13107 (dump_mem_sym_stats): New.
13108 (debug_mem_sym_stats): New.
13109 (update_mem_sym_stats_from_stmt): New.
13110 (compare_mp_info_entries): New.
13111 (mp_info_cmp): Call it.
13112 (sort_mp_info): Change argument to a list of mem_sym_stats_t
13113 objects.
13114 (get_mpt_for): Move from tree-ssa-operands.c.
13115 (find_partition_for): New.
13116 (create_partition_for): Remove.
13117 (estimate_vop_reduction): New.
13118 (update_reference_counts): New.
13119 (build_mp_info): New.
13120 (compute_memory_partitions): Refactor.
13121 Document new heuristic.
13122 Call build_mp_info, update_reference_counts,
13123 find_partition_for and estimate_vop_reduction.
13124 (compute_may_aliases): Populate virtual operands before
13125 calling debugging dumps.
13126 (delete_mem_sym_stats): New.
13127 (delete_mem_ref_stats): New.
13128 (init_mem_ref_stats): New.
13129 (init_alias_info): Call it.
13130 (maybe_create_global_var): Remove alias_info argument.
13131 Get number of call sites and number of pure/const call sites
13132 from gimple_mem_ref_stats().
13133 (dump_alias_info): Call dump_memory_partitions first.
13134 (dump_points_to_info_for): Show how many times a pointer has
13135 been dereferenced.
13136 * opts.c (decode_options): For -O2 set --param
13137 max-aliased-vops to 500.
13138 For -O3 set --param max-aliased-vops to 1000 and --param
13139 avg-aliased-vops to 3.
13140 * fortran/options.c (gfc_init_options): Remove assignment to
13141 MAX_ALIASED_VOPS.
13142 * tree-flow-inline.h (gimple_mem_ref_stats): New.
13143 * tree-dfa.c (dump_variable): Dump memory reference
13144 statistics.
13145 Dump NO_ALIAS* settings.
13146 (referenced_var_lookup): Tidy.
13147 (mem_sym_stats): New.
13148 * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
13149 and ORIG are different SSA names for a memory partition.
13150 * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
13151 * tree-flow.h (struct mem_sym_stats_d): Define.
13152 (mem_sym_stats_t): Define.
13153 (struct mem_ref_stats_d): Define.
13154 (struct gimple_df): Add field mem_ref_stats.
13155 (enum noalias_state): Define.
13156 (struct var_ann_d): Add bitfield noalias_state.
13157 (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
13158 debug_mem_ref_stats, debug_memory_partitions,
13159 debug_mem_sym_stats): Declare.
13160 * tree-ssa-structalias.c (update_alias_info): Update call
13161 sites, pure/const call sites and asm sites in structure
13162 returned by gimple_mem_ref_stats.
13163 Remove local variable IS_POTENTIAL_DEREF.
13164 Increase NUM_DEREFS if the memory expression is a potential
13165 dereference.
13166 Call update_mem_sym_stats_from_stmt.
13167 If the memory references memory, call
13168 update_mem_sym_stats_from_stmt for all the direct memory
13169 symbol references found.
13170 (intra_create_variable_infos): Set noalias_state field for
13171 pointer arguments according to the value of
13172 flag_argument_noalias.
13173 * tree-ssa-structalias.h (struct alias_info): Remove fields
13174 num_calls_found and num_pure_const_calls_found.
13175 (update_mem_sym_stats_from_stmt): Declare.
13176 * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
13177 Set default value to 100.
13178 (PARAM_AVG_ALIASED_VOPS): Define.
13179
13180 2007-04-11 Richard Guenther <rguenther@suse.de>
13181
13182 PR middle-end/31530
13183 * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
13184 a * -b + c as c - a * b if we honor sign dependent rounding.
13185
13186 2007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
13187
13188 * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
13189 bfin_expand_strmov.
13190 * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
13191 bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
13192 variables.
13193 (initialize_trampoline): Don't use old-style function definition.
13194 (bfin_secondary_reload): Mark IN_P argument as unused.
13195
13196 2007-04-10 Sebastian Pop <sebastian.pop@inria.fr>
13197
13198 PR tree-optimization/31343
13199 * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
13200 (build_polynomial_chrec): Return a scalar when the evolution is zero.
13201 * testsuite/gcc.dg/vect/pr31343.c: New.
13202
13203 2007-04-10 Eric Christopher <echristo@apple.com>
13204
13205 * config/i386/i386.h (X87_FLOAT_MODE_P): New.
13206 * config/i386/i386.md (*cmpfp0): Use.
13207 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
13208 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
13209 (fix_trunc<mode>_i386_fisttp): Ditto.
13210 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
13211 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
13212 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
13213 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
13214 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
13215 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
13216 (unnamed_splitters): Ditto.
13217 * config/i386/i386.c (output_fix_trunc): Assert that
13218 we're not being passed a TFmode operand.
13219
13220 2007-04-10 Zdenek Dvorak <dvorakz@suse.cz>
13221
13222 PR tree-optimization/31526
13223 * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
13224 n_basic_blocks to find newly added blocks.
13225
13226 2007-04-10 Uros Bizjak <ubizjak@gmail.com>
13227
13228 * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
13229 alternative.
13230 (fix_trunc<mode>si_sse): Ditto.
13231 (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
13232 (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
13233 (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
13234 (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
13235 (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
13236 expander using SSEMODEF mode macro.
13237 (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
13238 expander using SSEMODEF mode macro.
13239 (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
13240 *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
13241 (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
13242 *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
13243 (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
13244 *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
13245 (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
13246 Macroize insn using X87MODEF mode macro.
13247
13248 2007-04-09 H.J. Lu <hongjiu.lu@intel.com>
13249
13250 * config/i386/sse.md (sse2_pinsrw): Removed.
13251 (sse2_pextrw): Renamed to ...
13252 (*sse2_pextrw): This.
13253
13254 2007-04-09 Jan Hubicka <jh@suse.cz>
13255
13256 PR target/27869
13257 * config/i386/sse.md
13258 (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
13259 (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
13260 (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
13261 (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
13262
13263 2007-04-09 Jan Hubicka <jh@suse.cz>
13264
13265 * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
13266 multiple fields of union.
13267
13268 2007-04-09 Zdenek Dvorak <dvorakz@suse.cz>
13269
13270 * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
13271 (create_preheaders): Check that loops are available.
13272 (fix_loop_structure): Clean up, improve comments.
13273 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
13274 Check that loops are available. Set LOOP_CLOSED_SSA to the loops
13275 state flags.
13276 * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
13277 * predict.c (tree_estimate_probability): Do not call
13278 calculate_dominance_info. Call create_preheaders.
13279 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
13280 rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
13281 flags.
13282 * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
13283 * cfgloop.h (LOOP_CLOSED_SSA): New constant.
13284 * tree-cfg.c (tree_split_edge): Make an assert more precise.
13285 * tree-ssa-threadedge.c (thread_across_edge): Comment the function
13286 arguments.
13287
13288 2007-04-08 Jan Hubicka <jh@suse.cz>
13289
13290 * tree.h (maybe_fold_offset_to_component_ref): Declare.
13291 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
13292 * fold-const.c (fold_unary): Use it.
13293
13294 2007-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
13295
13296 * varasm.c (assemble_variable): Remove call to
13297 lang_hooks.decls.prepare_assemble_variable.
13298 * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
13299 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
13300 * langhooks.h (lang_hooks_for_decls): Remove
13301 prepare_assemble_variable.
13302
13303 2007-04-08 Mike Stump <mrs@apple.com>
13304
13305 * config/i386/i386.c: Use inc/dec on Core2.
13306
13307 2007-04-08 Steven Bosscher <steven@gcc.gnu.org>
13308
13309 * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
13310 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
13311 lhd_tree_inlining_end_inlining): Remove.
13312 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
13313 add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
13314 end_inlining hooks.
13315 * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
13316 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
13317 lhd_tree_inlining_end_inlining): Remove prototypes.
13318 (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
13319 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
13320 LANG_HOOKS_TREE_INLINING_START_INLINING,
13321 LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
13322
13323 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
13324 not set it.
13325
13326 2007-04-08 Anatoly Sokolov <aesok@post.ru>
13327
13328 PR target/29932
13329 * config/avr/predicates.md (io_address_operand): Delete predicate.
13330 (low_io_address_operand): Don't use 'mode' argument.
13331 (higth_io_address_operand): Rename ...
13332 (high_io_address_operand): ... to this. Don't use 'mode' argument.
13333 * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
13334 for above change.
13335
13336 2007-04-07 Daniel Berlin <dberlin@dberlin.org>
13337
13338 Revert change removing staticp.
13339
13340 2007-04-07 Anatoly Sokolov <aesok@post.ru>
13341
13342 PR target/30289
13343 * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
13344 earlyclobber.
13345
13346 2007-04-07 Bruce Korb <bkorb@gnu.org>
13347
13348 * c.opt: Add -Wformat-contains-nul.
13349 * c-format.c (set_Wformat): Set warn_format_contains_nul to the
13350 -Wformat setting.
13351 (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
13352 the NUL byte warning.
13353
13354 2007-04-07 H.J. Lu <hongjiu.lu@intel.com>
13355
13356 * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
13357
13358 2007-04-06 Daniel Berlin <dberlin@dberlin.org>
13359
13360 * tree.c (staticp): No longer use staticp langhook.
13361 * langhooks.c (lhd_staticp): Removed.
13362 * langhooks.h (struct lang_hooks): Remove staticp.
13363 * c-common.c (c_staticp): Remove.
13364 * c-common.h (c_staticp): Ditto.
13365 * langhooks-defs.h (lhd_staticp): Ditto.
13366 (LHD_HOOKS_STATICP): Ditto
13367 * tree.h (gcc_assert_lowered): New macro.
13368
13369 2007-04-06 Zdenek Dvorak <dvorakz@suse.cz>
13370
13371 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
13372 argument "reliable".
13373 (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
13374 Add argument "reliable". Propagate it through calls.
13375 (infer_loop_bounds_from_undefined): Derive number of iterations
13376 estimates from references in blocks that do not dominate loop latch.
13377 (gcov_type_to_double_int): New function.
13378 (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
13379 and expected_loop_iterations_unbounded.
13380 * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
13381 (expected_loop_iterations): Use expected_loop_iterations_unbounded.
13382 * tree-data-ref.c (estimated_loop_iterations): Export.
13383 (get_references_in_stmt): Fix -- do not return addresses of local
13384 objects.
13385 * cfgloop.h (expected_loop_iterations_unbounded,
13386 estimated_loop_iterations): Declare.
13387
13388 2007-04-06 Andreas Tobler <a.tobler@schweiz.org>
13389
13390 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
13391
13392 2007-04-06 Uros Bizjak <ubizjak@gmail.com>
13393
13394 * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
13395 and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
13396 (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
13397 Use output_387_reg_move().
13398 (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
13399 expander using X87MODEF12 mode macro.
13400 (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
13401 choosing register preferences. Use output_387_reg_move().
13402 (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
13403 instead of "x". Use output_387_reg_move().
13404 (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
13405 *truncxfdf2_i387_noop. Macroize insn using X87MODEF12 mode macro.
13406 (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
13407 *truncxfdf2_i387. Macroize insn using X87MODEF12 mode macro.
13408 Use output_387_reg_move().
13409 (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
13410 mode macro.
13411 (*truncxf?f_i387 splitter): Ditto.
13412
13413 2007-04-06 Daniel Berlin <dberlin@dberlin.org>
13414
13415 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
13416 LANG_HOOKS_SAFE_FROM_P.
13417 * expr.c (safe_from_p): Remove langhook call.
13418 * langhooks.h (lang_hooks): Remove safe_from_p.
13419 (lhd_safe_from_p): Remove prototype.
13420 * langhooks.c (lhd_safe_from_p): Remove.
13421
13422 2007-04-06 Jan Hubicka <jh@suse.cz>
13423
13424 * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
13425 functions.
13426
13427 2007-04-06 Uros Bizjak <ubizjak@gmail.com>
13428
13429 * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
13430 * config/i386/i386.md (*movsf_1, *movdf_nointeger,
13431 *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
13432 *movxf_integer): Use output_387_reg_move() for x87 reg->mem
13433 alternative.
13434 (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
13435 *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
13436
13437 2007-04-05 Richard Henderson <rth@redhat.com>
13438
13439 * config/alpha/alpha.c (print_operand) [+]: Remove.
13440 (alpha_end_function): Print nop if call at end of function.
13441 * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
13442 * config/alpha/alpha.md (UNSPEC_LDGP1): New.
13443 (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
13444 (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
13445 (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
13446 the call pattern. Update peepholes to match.
13447
13448 2007-04-05 Janis Johnson <janis187@us.ibm.com>
13449
13450 * doc/extend.texi (Other Builtins): Add decimal float variants
13451 of signbit.
13452 * builtins.def: Ditto.
13453 * builtins.c (expand_builtin): Ditto.
13454
13455 2007-04-05 Uros Bizjak <ubizjak@gmail.com>
13456 H.J. Lu <hongjiu.lu@intel.com>
13457
13458 PR target/31478
13459 * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
13460 of V8HImode when calling ix86_binary_operator_ok.
13461 (sse2_pmaddwd): Call ix86_binary_operator_ok.
13462 (sdot_prodv8hi): Operands 1 and 2 must be register.
13463
13464 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
13465
13466 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
13467 initialize align to silence bogus warning.
13468
13469 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
13470
13471 PR middle-end/22156
13472 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
13473 all_no_warning.
13474 (struct sra_walk_fns): Remove use_all parameter from use.
13475 (sra_hash_tree): Handle BIT_FIELD_REFs.
13476 (sra_elt_hash): Don't hash bitfld blocks.
13477 (sra_elt_eq): Skip them in parent compares as well. Handle
13478 BIT_FIELD_REFs.
13479 (sra_walk_expr): Don't maintain or pass down use_all_p.
13480 (scan_use): Remove use_all parameter.
13481 (scalarize_use): Likewise. Re-expand assignment to
13482 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
13483 output, and re-scalarize after output. Don't mark anything
13484 for no warning.
13485 (scalarize_ldst): Adjust.
13486 (scalarize_walk_gimple_modify_statement): Likewise.
13487 (build_element_name_1): Handle BIT_FIELD_REFs.
13488 (instantiate_element): Don't warn for any element whose parent
13489 is used as a whole.
13490 (instantiate_missing_elements_1): Return the sra_elt.
13491 (canon_type_for_field): New.
13492 (try_instantiate_multiple_fields): New.
13493 (instantiate_missing_elemnts): Use them.
13494 (mark_no_warning): Removed.
13495 (generate_one_element_ref): Handle BIT_FIELD_REFs.
13496 (REPLDUP, sra_build_elt_assignment): New.
13497 (generate_copy_inout): Use them.
13498 (generate_element_copy): Likewise. Handle bitfld differences.
13499 (generate_element_zero): Don't recurse for blocks. Use
13500 sra_build_elt_assignment.
13501 (generate_one_element_int): Take elt instead of var. Use
13502 sra_build_elt_assignment.
13503 (generate_element_init_1): Adjust.
13504 (scalarize_use, scalarize_copy): Use REPLDUP.
13505 (scalarize_ldst): Move assert before dereference.
13506 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
13507
13508 2007-04-05 Steven Bosscher <steven@gcc.gnu.org>
13509
13510 * regmove.c: Fix unused variable warnings due to previous commit.
13511
13512 2007-04-05 Steven Bosscher <steven@gcc.gnu.org>
13513
13514 * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
13515 (regmove_bb_head): Remove.
13516 (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
13517 (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
13518 problems with fixup_match_1.
13519 Don't initialize/free regmove_bb_head.
13520
13521 (reg_is_remote_constant_p): If an insn is in the same basic block
13522 but not before INSN, consider it remote, too.
13523
13524 2007-04-05 Anatoly Sokolov <aesok@post.ru>
13525
13526 PR target/25448
13527 * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
13528 DECL_ASSEMBLER_NAME, not the DECL_NAME.
13529
13530 2007-04-05 H.J. Lu <hongjiu.lu@intel.com>
13531
13532 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
13533 (CONDITIONAL_REGISTER_USAGE): Likewise.
13534
13535 2007-04-04 Richard Henderson <rth@redhat.com>
13536
13537 * config/alpha/lib1funcs.asm: Remove unused file.
13538
13539 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
13540
13541 PR other/31356
13542 * opts.c (print_specific_help): Fix --help=<language>
13543 header line.
13544 (common_handle_option): Support --help=common.
13545
13546 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
13547
13548 PR other/31353
13549 * gcc.c (main): Do not run the linker if
13550 print_subprocess_help indicates that it shouldn't be
13551 run.
13552
13553 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
13554
13555 PR doc/31355
13556 * doc/invoke.texi (--help=): Document <languages> value, fix
13557 formatting in tables of values.
13558
13559 2007-04-04 Danny Smith <dannysmith.users.sourceforge.net>
13560
13561 * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
13562 dllimport attribute of virtual methods.
13563
13564 2007-04-04 Chen Liqin <liqin@sunnorth.com.cn>
13565
13566 * config/score/crti.asm: Change _bss_start to __bss_start.
13567 * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
13568 (OUTGOING_REG_PARM_STACK_SPACE) update.
13569 * config/score/score.opt: add options to make backend support
13570 score5, score5u, score7 and score7d.
13571 * config/score/score.md: Likewise.
13572 * config/score/misc.md: Likewise.
13573 * config/score/mac.md: Likewise.
13574 * doc/invoke.texi: Likewise.
13575 * doc/md.texi: update constraints define.
13576
13577 2007-04-03 Richard Henderson <rth@redhat.com>
13578
13579 * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
13580 an appropriate type, use the mode instead.
13581
13582 2007-04-03 Richard Sandiford <richard@codesourcery.com>
13583
13584 * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
13585 Set the default --with-arch setting to mips2.
13586 * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
13587 (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
13588 (MULTILIB_OSDIRNAMES): Delete.
13589 (MULTILIB_DIRNAMES): Define.
13590 * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
13591 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
13592 (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
13593 definitions, except for _WRS_R3K_EXC_SUPPORT. Call
13594 VXWORKS_OS_CPP_BUILTINS.
13595 (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
13596 (MIPS_DEBUGGING_INFO): Undefine.
13597 (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
13598
13599 2007-04-03 Jakub Jelinek <jakub@redhat.com>
13600
13601 PR middle-end/30704
13602 * fold-const.c (native_encode_real): Encode real.c provided longs
13603 as a series of 32-bit native integers.
13604 (native_interpret_real): Interpret buffer as a series of 32-bit
13605 native integers.
13606
13607 2007-04-03 Richard Guenther <rguenther@suse.de>
13608
13609 * genpreds.c (write_insn_constraint_len): Write function
13610 optimized for CONSTRAINT_LEN implementation.
13611 (write_tm_preds_h): Output insn_constraint_len inline and
13612 use it for CONSTRAINT_LEN.
13613 (write_insn_preds_c): Don't output insn_constraint_len.
13614 * doc/md.texi (define_register_constraint): Document multi-letter
13615 constraints shall have the same length if they start with the same
13616 letter.
13617
13618 2007-04-03 Uros Bizjak <ubizjak@gmail.com>
13619
13620 PR target/31175
13621 * config/i386/i386.md (isinf<mode>2): Expand only when
13622 TARGET_C99_FUNCTIONS is set.
13623
13624 2007-04-03 Uros Bizjak <ubizjak@gmail.com>
13625
13626 * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
13627 (x86_64-*-linux*): Ditto.
13628 * config/i386/i386.opt (mpc): New option.
13629 * config/i386/i386.c (overrride_options): Handle
13630 ix87_precision_string.
13631 * config/i386/crtprec.c: New file.
13632 * config/i386/t-crtpc: Ditto.
13633 * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
13634 and -mpc80 options.
13635 * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
13636 * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
13637 crtprec32.o, crtprec64.o and crtprec80.o.
13638
13639 * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
13640 and -mpc80 options.
13641 (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
13642
13643 2007-04-02 Eric Christopher <echristo@apple.com>
13644
13645 * doc/invoke.texi (i386 and x86-64 Options): Document -m64
13646 limitations on darwin.
13647
13648 2007-04-02 Anatoly Sokolov <aesok@post.ru>
13649
13650 PR target/31137
13651 * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
13652
13653 2007-04-02 Dave Korn <dave.korn@artimi.com>
13654
13655 * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
13656
13657 2007-04-02 Dave Korn <dave.korn@artimi.com>
13658
13659 * libgcc2.h (exception_descriptor): Don't forward-declare.
13660 (__get_eh_table_language, __get_eh_table_version): Delete
13661 prototypes of long-dead functions.
13662
13663 2007-04-01 Daniel Berlin <dberlin@dberlin.org>
13664
13665 * ebitmap.h: New file
13666 * ebitmap.c: New file
13667 * Makefile.in (ebitmap.o): New target.
13668
13669 2007-04-01 Jan Hubicka <jh@suse.cz>
13670
13671 * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
13672 before very first instruction.
13673
13674 2007-04-01 Jan Hubicka <jh@suse.cz>
13675
13676 * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
13677 waring on 64bit hosts.
13678 * bitmap.h: Fix typo in bitmap_head_def.
13679
13680 2007-04-01 Steven Bosscher <steven@gcc.gnu.org>
13681
13682 PR rtl-optimization/31391
13683 * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
13684 into a DELETED_LABEL note, and the label is in an empty basic
13685 block, update BB_END as well as BB_HEAD.
13686
13687 2007-04-01 Richard Henderson <rth@redhat.com>
13688
13689 PR tree-optimization/31169
13690 * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
13691 to varying if the range is outside [0, prec-1].
13692
13693 2007-04-01 Richard Sandiford <richard@codesourcery.com>
13694
13695 PR target/31388
13696 * config/mips/mips.md (load_const_gp): New insn.
13697 * config/mips/mips.c (mips_split_symbol): Avoid using or creating
13698 the MIPS16 GP pseudo register if no_new_pseudos.
13699 (mips16_gp_pseudo_reg): Use gen_load_const_gp.
13700
13701 2007-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
13702
13703 PR target/31364
13704 * config/rs6000/rs6000.md (call): Convert to LR hard reg for
13705 secureplt.
13706 (call_value): Likewise.
13707
13708 2007-03-31 Wolfgang Bangerth <bangerth@dealii.org>
13709 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13710
13711 PR 14737
13712 * doc/invoke.texi: (optimization options): Reword description
13713 of -ffast-math. Document its primary purpose.
13714
13715 2007-03-31 Richard Guenther <rguenther@suse.de>
13716
13717 * omp-low.c (splay-tree.h): Include.
13718 (lookup_decl): Replace splay-tree usage by pointer-map.
13719 (maybe_lookup_decl): Likewise.
13720 (new_omp_context): Likewise.
13721 (delete_omp_context): Likewise.
13722 * gimplify.c (splay-tree.h): Include.
13723 * tree-inline.c (insert_decl_map): Replace splay-tree usage by
13724 pointer-map.
13725 (remap_ssa_name): Likewise.
13726 (remap_decl): Likewise.
13727 (remap_type_1): Likewise.
13728 (remap_type): Likewise.
13729 (copy_body_r): Likewise.
13730 (expand_call_inline): Likewise.
13731 (clone_body): Likewise.
13732 (copy_tree_r): Likewise.
13733 (remap_save_expr): Likewise.
13734 (unsave_r): Likewise.
13735 (unsave_expr_now): Likewise.
13736 (tree_function_versioning): Likewise.
13737 (build_duplicate_type): Likewise.
13738 * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
13739 (struct copy_body_data): Replace splay-tree by pointer-map.
13740 * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
13741 not $(SPLAY_TREE_H).
13742 (gimplify.o): Depend on $(SPLAY_TREE_H).
13743 (omp-low.p): Likewise.
13744
13745 2007-03-31 Anatoly Sokolov <aesok@post.ru>
13746
13747 * config/avr/predicates.md (even_register_operand,
13748 odd_register_operand): New predicates.
13749 * config/avr/avr.md (movw peephole2): New.
13750 (movw_r peephole2): New.
13751
13752 2007-03-30 Rafael Avila de Espindola <espindola@google.com>
13753
13754 * tree.h (get_signed_or_unsigned_type): New.
13755 * fold-const.c (operand_equal_for_comparison_p): Use
13756 get_signed_or_unsigned_type instead of
13757 lang_hooks.types.signed_or_unsigned_type.
13758 * expr.c (store_expr): Ditto.
13759 * langhooks.c (get_signed_or_unsigned_type): New.
13760 (lhd_signed_or_unsigned_type): New.
13761 * langhooks.h (lhd_signed_or_unsigned_type): New.
13762 * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
13763
13764 2007-03-30 Richard Henderson <rth@redhat.com>
13765
13766 * tree-ssa-loop-ivopts.c: Include target.h.
13767 (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
13768 (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
13769 (force_expr_to_var_cost): Use produce_memory_decl_rtl.
13770 * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
13771
13772 2007-03-30 Richard Henderson <rth@redhat.com>
13773 Kai Tietz <kai.tietz@onevision.com>
13774
13775 * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
13776 default for 64-bit.
13777 (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
13778 (TARGET_64BIT_MS_ABI): New.
13779 (DBX_REGISTER_NUMBER): Handle 64-bit.
13780 (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
13781 (LONG_TYPE_SIZE): Force to 32.
13782 (REG_PARM_STACK_SPACE): New.
13783 (OUTGOING_REG_PARM_STACK_SPACE): New.
13784 (REGPARM_MAX, SSE_REGPARM_MAX): New.
13785 (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
13786 (STACK_BOUNDARY): Use 128 for 64-bit.
13787 * config/i386/cygwin.asm: Use push/ret to preserve call stack.
13788 Add 64-bit implementation.
13789 * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
13790 argument unused.
13791 * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
13792 (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
13793 Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
13794 for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
13795 (ix86_handle_cconv_attribute): Don't warn when ignoring if
13796 TARGET_64BIT_MS_ABI.
13797 (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
13798 (ix86_pass_by_reference): Likewise.
13799 (ix86_function_value_regno_p): Likewise.
13800 (ix86_build_builtin_va_list): Likewise.
13801 (ix86_va_start, ix86_gimplify_va_arg): Likewise.
13802 (function_arg_advance_ms_64): New.
13803 (function_arg_advance): Call it.
13804 (function_arg_ms_64): New.
13805 (function_arg): Call it.
13806 (function_value_ms_64): New.
13807 (ix86_function_value_1): Call it.
13808 (return_in_memory_ms_64): New.
13809 (ix86_return_in_memory): Call it.
13810 (setup_incoming_varargs_ms_64): New.
13811 (ix86_setup_incoming_varargs): Call it.
13812 (ix86_expand_prologue): Handle 64-bit stack probing.
13813 (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
13814 (output_pic_addr_const): Likewise.
13815 (x86_this_parameter): Likewise.
13816 (x86_output_mi_thunk): Likewise.
13817 (x86_function_profiler): Likewise.
13818 (TARGET_STRICT_ARGUMENT_NAMING): New.
13819 * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
13820 (TARGET_64BIT_MS_ABI): New.
13821 (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
13822 * config/i386/i386.md (allocate_stack_worker): Remove.
13823 (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
13824 describe the clobber of eax without a match_scratch.
13825 (allocate_stack_worker_postreload): Remove.
13826 (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
13827 describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
13828 (allocate_stack_worker_rex64_postreload): Remove.
13829 (allocate_stack): Handle 64-bit.
13830 * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
13831 * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
13832 (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
13833 (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
13834 (STANDARD_STARTFILE_PREFIX_1): Likewise.
13835 * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
13836 * config.build (x86_64-*-mingw*): New host.
13837 * config.host (x86_64-*-mingw*): New host.
13838 * config.gcc (x86_64-*-mingw*): New target.
13839 * gthr-win32.h (__gthread_key_create): Mark dtor unused.
13840
13841 2007-03-30 Richard Henderson <rth@redhat.com>
13842 Kai Tietz <kai.tietz@onevision.com>
13843
13844 * c-pragma.c (struct def_pragma_macro_value): New.
13845 (struct def_pragma_macro): New.
13846 (pushed_macro_table): New.
13847 (dpm_hash, dpm_eq): New.
13848 (handle_pragma_push_macro, handle_pragma_pop_macro): New.
13849 (init_pragma): Install them.
13850 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
13851
13852 2007-03-30 Anatoly Sokolov <aesok@post.ru>
13853
13854 * config/avr/avr.c (avr_override_options): Clear
13855 'flag_delete_null_pointer_checks'.
13856
13857 2007-03-30 Paolo Carlini <pcarlini@suse.de>
13858
13859 PR c++/26099
13860 * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
13861 RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
13862 RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
13863 RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
13864 RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
13865 RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
13866 RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
13867 C++ extensions.
13868 * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
13869
13870 2007-03-30 Steven Bosscher <steven@gcc.gnu.org>
13871
13872 * regmove.c: Move all of pass_stack_adjustments from here...
13873 * combine-stack-adj.c: ...to this new file.
13874 * Makefile.in: Add rules for combine-stack-adj.o.
13875
13876 2007-03-30 Zdenek Dvorak <dvorakz@suse.cz>
13877
13878 PR tree-optimization/31383
13879 * tree-data-ref.c (affine_function_equal_p): Do not require the
13880 vectors to have the same length.
13881
13882 2007-03-30 Jan Hubicka <jh@suse.cz>
13883
13884 PR middle-end/30700
13885 * dwarf2out.c (reference_to_unused): Ask cgraph for functions
13886 availablility; add more sanity checking; ask varpool only about
13887 VAR_DECL.
13888
13889 2007-03-29 Richard Henderson <rth@redhat.com>
13890
13891 * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
13892 to decide, but __SIZEOF_LONG_LONG__.
13893
13894 2007-03-29 Richard Henderson <rth@redhat.com>
13895
13896 * emutls.c (struct __emutls_array): New.
13897 (emutls_destroy): Use it instead of casting element 0 from void*.
13898 (__emutls_get_address): Likewise.
13899
13900 2007-03-29 Richard Henderson <rth@redhat.com>
13901
13902 * varasm.c (initializer_constant_valid_p): Don't deny
13903 DECL_DLLIMPORT_P on functions.
13904
13905 * config/i386/cygming.h: Remove function declarations.
13906 (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
13907 (ASM_OUTPUT_LABELREF): Remove.
13908 (COMMON_ASM_OP): Remove.
13909 (ASM_OUTPUT_COMMON): Remove.
13910 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
13911 (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
13912 (ASM_DECLARE_FUNCTION_NAME): Likewise.
13913 * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
13914 Rename from TARGET_ENCODE_SECTION_INFO.
13915 * config/i386/netware.h: Likewise.
13916 * config/i386/i386-protos.h: Update.
13917 * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
13918 of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
13919 (legitimate_constant_p): Reject dllimports.
13920 (dllimport_map, get_dllimport_decl): New.
13921 (legitimize_dllimport_symbol): New.
13922 (legitimize_address, ix86_expand_move): Use it.
13923 (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
13924 * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
13925 (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
13926 (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
13927 * config/i386/predicates.md (constant_call_address_operand): Only
13928 accept symbols; reject dllimport_p symbols.
13929 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
13930 i386_pe_maybe_record_exported_symbol.
13931 * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
13932 (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
13933 (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
13934 trust the setting of DECL_DLLIMPORT_P.
13935 (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
13936 (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
13937 (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
13938 tidy the argument scanning loop.
13939 (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
13940 SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
13941 (i386_pe_strip_name_encoding): Remove.
13942 (i386_pe_binds_local_p): New.
13943 (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
13944 (i386_pe_output_labelref): Remove.
13945 (i386_pe_asm_output_aligned_decl_common): New.
13946 (i386_pe_maybe_record_exported_symbol): Rename from
13947 i386_pe_record_exported_symbol; check for dllexported symbols.
13948
13949 2007-03-29 Zack Weinberg <zack@mrtock.ucsd.edu>
13950
13951 * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
13952 add comment explaining why vsnprintf cannot be used.
13953
13954 2007-03-29 Douglas Gregor <doug.gregor@gmail.com>
13955
13956 PR tree-optimization/30666
13957 * tree.c (build_complex_type): When creating type names for DWARF2
13958 debug info, create TYPE_DECLs for TYPE_NAME instead of
13959 IDENTIFIER_NODEs.
13960 (build_common_tree_nodes_2): Use build_complex_type when building
13961 predefined complex types, to preserve canonical types.
13962
13963 2007-03-29 Steven Bosscher <steven@gcc.gnu.org>
13964
13965 * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
13966 (noce_get_alt_condition): Look at it to determine whether to
13967 reverse the condition or not.
13968 (noce_get_condition): Substitute the truth for lies.
13969 (noce_find_if_block): Set the then_else_reversed field.
13970
13971 2007-03-29 Lars Poeschel <larsi@wh2.tu-dresden.de>
13972
13973 * config/fr30/fr30.md (movdi): Do not accept immediates as the
13974 destination of this insn.
13975 * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
13976 than calling gen_rtx_SET directly. Use r0 to hold the value of
13977 'address + 4' rather than a stack based temporary which can be
13978 mis-optimized away.
13979
13980 2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
13981
13982 * config/s390/s390.c (s390_secondary_input_reload_class,
13983 s390_secondary_output_reload_class): Functions removed.
13984 (s390_secondary_reload): New function.
13985 (TARGET_SECONDARY_RELOAD): Target macro defined.
13986 * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
13987 SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
13988 * config/s390/s390.md ("reload_outti", "reload_outdi",
13989 "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
13990 "reload_out<mode>"): Expanders removed.
13991 ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
13992 "reload<mode>_nonoffmem_out"): Expanders added.
13993
13994 2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
13995
13996 * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair
13997 action if SRC->DEST replacement failed anyway.
13998
13999 2007-03-28 Mike Stump <mrs@apple.com>
14000
14001 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
14002 * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
14003 * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
14004
14005 2007-03-28 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
14006
14007 * config.gcc: Accept barcelona as a variant of amdfam10.
14008 * config/i386/i386.c (override_options): Likewise.
14009 * doc/invoke.texi: Likewise.
14010
14011 2007-03-28 Eric Botcazou <ebotcazou@adacore.com>
14012
14013 * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
14014 offsets for BIT_FIELD_REF and COMPONENT_REF.
14015
14016 2007-03-28 Richard Guenther <rguenther@suse.de>
14017
14018 * tree.c (is_global_var): Move ...
14019 * tree-flow-inline.h (is_global_var): ... here.
14020 * tree.h (is_global_var): Remove declaration.
14021
14022 2007-03-28 Uros Bizjak <ubizjak@gmail.com>
14023
14024 * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
14025 option.
14026 (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
14027 * config/i386/i386.c (ix86_tune_features): Initialize new
14028 tuning option.
14029 * config/i386/predicates.md (promotable_binary_operator): Use
14030 TARGET_TUNE_PROMOTE_HIMODE_IMUL.
14031
14032 2007-03-28 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
14033
14034 PR target/31380
14035 * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
14036
14037 2007-03-28 Lars Poeschel <larsi@wh2.tu-dresden.de>
14038
14039 * config/fr30/fr30.md (movsi_internal): Change destination
14040 constraint from m to V and add m to the end.
14041
14042 2007-03-28 Christian Bruel <christian.bruel@st.com>
14043
14044 * config/sh/sh.md (movsi_i): Fix type attribute.
14045
14046 2007-03-28 Christian Bruel <christian.bruel@st.com>
14047
14048 * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
14049 (movsf_ie): Likewise.
14050
14051 2007-03-28 Christian Bruel <christian.bruel@st.com>
14052
14053 * config.gcc: Add sh4-300 to multilib.
14054 * config/sh/t-mlib-sh4-300: New file.
14055
14056 2007-03-28 Andreas Krebbel <krebbel1@de.ibm.com>
14057
14058 * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
14059 ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
14060 fix_trunc<mode>di2.
14061 ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
14062 fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
14063 ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
14064 "fixuns_trunctddi2"): Whitespace fix.
14065
14066 2007-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
14067
14068 * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
14069 the definition of struct sh_args.
14070 (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
14071 CALL_COOKIE_INT_REG_GET): Likewise.
14072
14073 2007-03-28 Steven Bosscher <steven@gcc.gnu.org>
14074
14075 * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
14076 transformations are applied successfully.
14077
14078 2007-03-27 Douglas Gregor <doug.gregor@gmail.com>
14079
14080 * tree.c (tree_contains_struct): Permit 512 tree codes.
14081 * tree.h (tree_contains_struct): Ditto.
14082 (MAX_TREE_CODES): Ditto.
14083 (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
14084 SPARE member to store remaining padding bits.
14085
14086 2007-03-27 Anatoly Sokolov <aesok@post.ru>
14087
14088 * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
14089 architecture.
14090
14091 2007-03-27 Janis Johnson <janis187@us.ibm.com>
14092
14093 * configure.ac: Fix assembler test for powerpc*-linux decimal float.
14094 * configure: Regenerate.
14095
14096 * configure: Regenerate using the correct version of autoconf.
14097
14098 2007-03-27 Anatoly Sokolov <aesok@post.ru>
14099
14100 * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
14101 pointer regs.
14102 * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
14103 regs to "__SP_L__" and "__SP_H__".
14104
14105 2007-03-27 Richard Guenther <rguenther@suse.de>
14106
14107 * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
14108 computations with it with a HOST_WIDE_INT variable.
14109
14110 2007-03-26 Mike Stump <mrs@apple.com>
14111
14112 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
14113 objective-c-header, objective-c++-header and objc++-cpp-output
14114 support.
14115 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
14116
14117 2007-03-26 Richard Henderson <rth@redhat.com>
14118
14119 PR target/31361
14120 * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
14121 IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
14122 IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
14123 IX86_BUILTIN_PSRLQ128): New.
14124 (ix86_init_mmx_sse_builtins): Add them.
14125 (ix86_expand_builtin): Expand them.
14126 * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
14127 operand 2 be TImode.
14128 * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
14129 _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
14130 _mm_srli_epi64): Mark __B const.
14131 (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
14132 (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
14133 _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
14134 new two-vector shift builtins.
14135
14136 2007-03-26 Ian Lance Taylor <iant@google.com>
14137
14138 PR tree-optimization/31345
14139 * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
14140 [+INF, +INF(OVF)] into VARYING.
14141
14142 2007-03-26 Zack Weinberg <zackw@panix.com>
14143
14144 * gengtype-parse.c: New file.
14145 * gengtype-yacc.y: Delete.
14146 * gengtype-lex.l: Don't include gengtype-yacc.h.
14147 Define YY_DECL and yyterminate appropriately for recursive
14148 descent parser. yylval is now a string out-parameter to yylex.
14149 (HWS, EOID): New shorthand.
14150 (IWORD): Add a couple more types.
14151 (yylex): Add a setup stanza. Remove the complex rules for
14152 detecting GTY'ed types and typedefs; replace with simple
14153 keyword detectors. Adjust everything for the changed
14154 definition of yylval. Ignore all pp-directives, not just #define.
14155 (yyerror): Delete.
14156 (parse_file): Rename yybegin; do not call yyparse.
14157 (yyend): New.
14158 * gengtype.c (xasprintf): Export again.
14159 (this_file): New. Use everywhere __FILE__ was being used.
14160 (get_lang_bitmap): Special case types defined in gengtype.c.
14161 (do_typedef, new_structure): Suppress definition of certain types.
14162 (new_structure): Improve diagnostics of duplicate definitions.
14163 Make sure location_s is associated with input.h.
14164 (nreverse_pairs, define_location_structures): New functions.
14165 (main): Improve tagging of kludge types. Remove old kludges
14166 for input.h types; use define_location_structures.
14167 * gengtype.h: Update prototypes. Define token codes here.
14168 * Makefile.in: Remove all references to gengtype-yacc.
14169 Add rules for gengtype-parse.o. Adjust rules for gengtype-lex.o
14170 and gengtype.
14171 * bitmap.h (struct bitmap_head_def): Coalesce definitions,
14172 add GTY((skip)) to the field that's only conditionally there.
14173 * doc/install.texi: Document that Bison is no longer required
14174 unless building treelang.
14175
14176 * gengtype.c: Don't include gtyp-gen.h.
14177 (srcdir): Declare here.
14178 (base_files, lang_dir_names): Allocate dynamically.
14179 (gt_files, num_gt_files, num_lang_dirs): New globals.
14180 (measure_input_list, read_input_line, read_input_list)
14181 (set_lang_bitmap): New functions.
14182 (get_base_file_bitmap): Rename get_lang_bitmap and drastically
14183 simplify, relying on read_input_list to set up the bitmaps.
14184 (main): Arguments are no longer unused. Check for correct number
14185 of command line arguments, set srcdir and srcdir_len, then call
14186 read_input_list, before doing anything else. No need to worry
14187 about duplicates in main loop.
14188 * configure.ac: Simplify the calculation of all_gtfiles.
14189 Put language tags in there. Don't set or substitute
14190 all_gtfiles_files_langs or all_gtfiles_files_frags.
14191 * Makefile.in: Revamp the way gengtype is invoked, now that it
14192 takes a file on its command line with a much simpler format.
14193 Remove or replace with gtyp-input.list all references to gtyp-gen.h.
14194 (GTFILES): Remove duplicates and C source files.
14195 * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
14196 * objcp/config-lang.in: Add c-pragma.h to gtfiles.
14197 * configure: Regenerate.
14198
14199 * gengtype.h: Remove all type definitions to gengtype.c; leave
14200 only definitions of options_p, type_p, and pair_p as opaque
14201 pointers. Update prototypes.
14202 * gengtype.c: Many type definitions moved here from gengtype.h.
14203 Consolidate type definitions at the top of the file.
14204 (xvasprintf): Delete.
14205 (xasprintf): Make static.
14206 (create_nested_pointer_option): Add 'next' parameter.
14207 (create_field_all, create_field_at): New functions.
14208 (create_field): Now a thin wrapper around create_field_all.
14209 (create_optional_field): Rename create_optional_field_ and add
14210 line argument. Original name is now a macro which supplies
14211 __LINE__.
14212 (oprintf): Use vsnprintf directly.
14213 (close_output_files): Use fatal rather than perror/exit.
14214 (note_def_vec, note_def_vec_alloc): Use create_field_at.
14215 (main): Set progname. Don't use exit.
14216 * gengtype-yacc.y (struct_fields): Use create_field_at.
14217 (option, optionseqopt): Delete.
14218 (optionseq): Consolidate productions from option here so we
14219 can use the first argument to create_option.
14220
14221 * gengtype-lex.l: Distinguish unions from structures in the
14222 token type. Don't call find_structure; return the tag as a string.
14223 * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and
14224 ENT_UNION. Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is
14225 string. Reorganize typedef_struct production accordingly.
14226 Use create_nested_ptr_option.
14227 * gengtype.c (create_nested_ptr_option): New function.
14228 * gengtype.h: Declare it.
14229
14230 * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
14231 (string_type): Don't declare.
14232 (do_scalar_typedef): Declare.
14233 (create_scalar_type): Update prototype.
14234 * gengtype.c (string_type): Make static.
14235 (scalar_nonchar, scalar_char): New.
14236 (do_scalar_typedef): Export. Always use scalar_nonchar for the type.
14237 (resolve_typedef): Use scalar_nonchar for error recovery.
14238 (create_scalar_type): Remove name_len field. Return scalar_char
14239 or scalar_nonchar as appropriate.
14240 (adjust_field_type): Look at scalar_is_char boolean to decide whether
14241 to use string_type.
14242 (throughout): Use scalar_nonchar instead of calling
14243 create_scalar_type, whenever possible.
14244 (main): Initialize scalar_char and scalar_nonchar before calling
14245 gen_rtx_next.
14246 * gengtype-lex.l: Adjust for removal of second argument to
14247 create_scalar_type. Use yylval.s instead of yylval.t when
14248 returning SCALAR.
14249 * gengtype-yacc.y: Type of SCALAR is string. Call
14250 create_scalar_type from type:SCALAR rule. Adjust for removal of
14251 second argument to create_scalar_type.
14252
14253 * vec.h: Remove all #if IN_GENGTYPE blocks.
14254 Add comment saying that changes may require adjustments to gengtype.
14255 * gengtype.c: Don't include coretypes.h or tm.h.
14256 Add comment to inclusion of errors.h.
14257 (note_def_vec, note_def_vec_alloc): New functions.
14258 * gengtype.h: Declare new functions.
14259 * gengtype-lex.l: Don't include coretypes.h.
14260 (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
14261 Delete.
14262 (update_lineno): Remove unnecessary prototype.
14263 (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
14264 (VEC rule): Just return VEC_TOKEN.
14265 * gengtype-yacc.y (VEC_TOKEN): New token type.
14266 (type): Add a production for VEC(a,b).
14267 * Makefile.in: Update dependencies.
14268
14269 * gengtype-lex.l: Remove rules for parsing pointer-to-function
14270 typedefs that use the old PARAMS macro.
14271
14272 * gengtype-lex.l: Remove all rules and states relating to yacc
14273 input files.
14274 * gengtype-yacc.y: Similarly.
14275 * gengtype.c (note_yacc_type): Delete function.
14276 * gengtype.h: Update prototypes.
14277
14278 2007-03-26 Joseph Myers <joseph@codesourcery.com>
14279
14280 * tree-pretty-print.c (dump_generic_node): Report precision of
14281 unnamed integer types.
14282
14283 2007-03-26 Steven Bosscher <steven@gcc.gnu.org>
14284
14285 * ifcvt.c (noce_try_store_flag_constants): Don't check
14286 no_new_pseudos here.
14287 (noce_try_store_flag_constants): Don't check no_new_pseudos.
14288 (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
14289 noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
14290 noce_try_sign_mask): Likewise.
14291 (if_convert): Check no_new_pseudos here.
14292
14293 (cond_exec_process_if_block, noce_process_if_block, find_if_block):
14294 Remove prototypes.
14295 (struct noce_if_info): Add then_bb, else_bb, join_bb members.
14296 (noce_get_condition): Handle new then_else_reversed argument.
14297 (noce_init_if_info): Remove, fold into noce_find_if_block.
14298 (noce_process_if_block): Take a struct noce_if_info as the
14299 argument. Don't set up one based on ce_if_info. Update pointer
14300 references accordingly.
14301 (cond_move_process_if_block): Likewise.
14302 (process_if_block): Removed.
14303 (find_if_block): Removed. Move functionality two new functions,
14304 noce_find_if_block and cond_exec_find_if_block.
14305 (noce_find_if_block): New function. Be aware of IF-THEN-JOIN
14306 blocks and the symmetric IF-ELSE-JOIN case.
14307 (cond_exec_find_if_block): Also new function mostly based on old
14308 find_if_block and process_if_block.
14309 (find_if_header): Replace find_if_block call with separately
14310 guarded calls to noce_find_if_block and cond_exec_find_if_block.
14311 (find_cond_trap): Update noce_get_condition call.
14312 (dead_or_predicable): Likewise.
14313
14314 2007-03-26 Jakub Jelinek <jakub@redhat.com>
14315
14316 * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
14317 Remove.
14318 (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
14319 IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
14320 IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
14321 (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
14322 v4si_ftype_v4si_v2di. Remove __builtin_ia32_psllw128,
14323 __builtin_ia32_pslld128, __builtin_ia32_psllq128,
14324 __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
14325 __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
14326 __builtin_ia32_psrad128 builtins.
14327
14328 2007-03-26 Uros Bizjak <ubizjak@gmail.com>
14329
14330 * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
14331 * config/i386/constraints.md
14332 (define_constraint "I"): Use IN_RANGE macro.
14333 (define_constraint "J"): Ditto.
14334 (define_constraint "K"): Ditto.
14335 (define_constraint "M"): Ditto.
14336 (define_constraint "N"): Ditto.
14337 (define_constraint "O"): Ditto.
14338 * config/i386/predicates.md
14339 (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
14340 (define_predicate "const_0_to_3_operand"): Ditto.
14341 (define_predicate "const_0_to_7_operand"): Ditto.
14342 (define_predicate "const_0_to_15_operand"): Ditto.
14343 (define_predicate "const_0_to_63_operand"): Ditto.
14344 (define_predicate "const_0_to_255_operand"): Ditto.
14345 (define_predicate "const_1_to_31_operand"): Ditto.
14346 (define_predicate "const_2_to_3_operand"): Ditto.
14347 (define_predicate "const_4_to_7_operand"): Ditto.
14348
14349 2007-03-25 David Edelsohn <edelsohn@gnu.org>
14350
14351 * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
14352 in SImode for save_world.
14353 * config/rs6000/altivec.md (save_world, restore_world): Convert to
14354 LR hard reg.
14355
14356 2007-03-25 Dorit Nuzman <dorit@il.ibm.com>
14357
14358 PR tree-optimization/30784
14359 * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
14360 BIT_FIELD_REF.
14361
14362 2007-03-25 Revital Eres <eres@il.ibm.com>
14363
14364 * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
14365 Fold movement_possibility function into it.
14366
14367 2007-03-25 David Edelsohn <edelsohn@gnu.org>
14368
14369 * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
14370 (load_macho_picbase_{si,di}): Convert to LR hard reg.
14371 (call_indirect_nonlocal_darwin64): Same.
14372 (call_nonlocal_darwin64): Same.
14373 (call_value_indirect_nonlocal_darwin64): Same.
14374 (call_value_nonlocal_darwin64): Same.
14375 (sibcall_nonlocal_darwin64): Same.
14376 (sibcall_value_nonlocal_darwin64): Same.
14377 (sibcall_symbolic_64): Same.
14378 (sibcall_value_symbolic_64): Same.
14379 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
14380 LR pseudo.
14381 (rs6000_emit_load_toc_table): Same.
14382 * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
14383 * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
14384 (mull_call): Same.
14385 (divss_call): Same.
14386 (divus_call): Same.
14387 (quoss_call): Same.
14388 (quous_call): Same.
14389 (load_toc_v4_pic_si): Same
14390 (load_toc_v4_PIC_1): Same.
14391 (load_toc_v4_PIC_1b): Same.
14392 (call_indirect_aix{32,64}): Same.
14393 (call_value_indirect_aix{32,64}): Same.
14394 (call): Same.
14395 (call_value): Same.
14396 (call_local{32,64}): Same.
14397 (call_value_local{32,64}): Same.
14398 (call_indirect_nonlocal_aix{32,64}): Same.
14399 (call_nonlocal_aix{32,64}): Same.
14400 (call_value_indirect_nonlocal_aix{32,64}): Same.
14401 (call_value_nonlocal_aix{32,64}): Same.
14402 (call_indirect_nonlocal_sysv<mode>): Same.
14403 (call_nonlocal_sysv<mode>): Same.
14404 (call_value_indirect_nonlocal_sysv<mode>): Same.
14405 (call_value_nonlocal_sysv<mode>): Same.
14406 (sibcall): Same.
14407 (sibcall_local{32,64}): Same.
14408 (sibcall_value_local{32,64}): Same.
14409 (sibcall_nonlocal_aix{32,64}): Same.
14410 (sibcall_value_nonlocal_aix{32,64}): Same.
14411 (sibcall_nonlocal_sysv<mode>): Same.
14412 (sibcall_value): Same.
14413 (sibcall_value_nonlocal_sysv<mode>): Same.
14414
14415 2007-03-24 Paul Brook <paul@codesourcery.com>
14416
14417 * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
14418 * config/arm/linux-eabi.h: Remove legacy syscall hack.
14419
14420 2007-03-24 Richard Henderson <rth@redhat.com>
14421
14422 * config/ia64/constraints.md: New file.
14423 * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
14424 satisfies_constraint_?.
14425 * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
14426 ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
14427 ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
14428 ia64_output_mi_thunk): Likewise.
14429 (ia64_const_ok_for_letter_p): Remove.
14430 (ia64_const_double_ok_for_letter_p): Remove.
14431 (ia64_extra_constraint): Remove.
14432 * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
14433 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
14434 CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
14435 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
14436 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
14437 EXTRA_MEMORY_CONSTRAINT): Remove.
14438 * config/ia64/ia64.md: Include constriants.md. Replace
14439 CONST_OK_FOR_? with satisfies_constraint_?.
14440
14441 2007-03-23 Michael Meissner <michael.meissner@amd.com>
14442 H.J. Lu <hongjiu.lu@intel.com>
14443
14444 * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
14445 DPD or BID name.
14446 (name macros): Use DPD_BID_NAME to convert names properly.
14447
14448 * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
14449 decimal floating point format.
14450 (init_floating_libfuncs): Change decimal functions so that they
14451 have a "bid_" prefix if the decimal system uses the BID format,
14452 and "dpd_" prefix if the decimal system uses the DPD format.
14453 (init_interclass_conv_libfuncs): Ditto.
14454 (init_intraclass_conv_libfuncs): Ditto.
14455
14456 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
14457 using the BID format.
14458
14459 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
14460 whether we are using the BID decimal format.
14461 * configure: Regenerate.
14462
14463 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
14464 the compiler has decimal floating point enabled. Define
14465 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
14466 instead of DPD.
14467
14468 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
14469 using the BID format.
14470
14471 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
14472 whether we are using the BID decimal format.
14473 * configure: Regenerate.
14474
14475 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
14476 the compiler has decimal floating point enabled. Define
14477 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
14478 instead of DPD.
14479
14480 * doc/install.texi (--enable-decimal-float): Document BID and DPD
14481 options, and that it is enabled for i386/x86_64 systems.
14482
14483 * Makefile.in (enable_decimal_float): New.
14484 (DECNUMFMT): New.
14485 (DECNUMINC): Add -I$(DECNUMFMT).
14486 (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
14487 to $(DECNUMFMT) from $(DECNUM).
14488
14489 * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
14490 Substitute enable_decimal_float.
14491 * configure: Regenerated.
14492
14493 PR other/30529
14494 * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
14495 unsigned long.
14496
14497 * configure.ac: Enable decimal float for x86_64-*-linux*.
14498 * configure: Regenerated.
14499
14500 PR other/30530
14501 * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
14502 decimal128ClearSign to flip and clear the sign bit in decimal128.
14503 (decimal_real_maxval): Set decimal128SetSign to set the sign
14504 bit in decimal128.
14505
14506 2007-03-23 Ian Lance Taylor <iant@google.com>
14507
14508 * fold-const.c (fold_binary): Correct warning for X - c >= X.
14509
14510 2007-03-23 Ian Lance Taylor <iant@google.com>
14511
14512 * tree-dump.c (dump_files): Correct comment.
14513
14514 2007-03-23 Ian Lance Taylor <iant@google.com>
14515
14516 * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
14517
14518 2007-03-23 Steven Bosscher <steven@gcc.gnu.org>
14519
14520 * tracer.c (tracer): Don't take FLAGS argument. Assert we are
14521 in cfglayout mode. Don't go into and out of cfglayout mode.
14522 Link the blocks in the order of the constructed traces.
14523 (rest_of_handle_tracer): Adjust call to tracer.
14524 * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
14525 Don't go into cfglayout mode.
14526 (rtl_loop_done): Don't go out of cfglayout mode.
14527 * cfglayout.c (relink_block_chain): New function, split out from...
14528 (fixup_reorder_chain): ...here. Remove redundant checking.
14529 (cfg_layout_finalize): Don't clear the header, footer, and aux
14530 fields here, move the code to do so to relink_block_chain. Likewise
14531 for free_original_copy_tables.
14532 * rtl.h (tracer): Update prototype.
14533 * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
14534 Assert we are in cfglayout mode. Don't go into and out of cfglayout
14535 mode. Use relink_block_chain to serialize the CFG according to the
14536 new basic block order. Move targetm.cannot_modify_jumps_p check from
14537 here...
14538 (gate_handle_reorder_blocks): ...to here.
14539 (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
14540 from here...
14541 (gate_duplicate_computed_gotos): ...to here.
14542 (rest_of_handle_reorder_blocks): Don't see if anything has changed,
14543 something always changes when going into and out of cfglayout mode.
14544 Perform an expensive cfg cleanup while going into cfglayout mode.
14545 Always update liveness information on HAVE_conditional_execution
14546 targets. Reserialize the basic blocks and go out of cfglayout mode.
14547 * reg-stack.c: Include cfglayout.h.
14548 (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
14549 the call to reorder_basic_blocks.
14550 * basic-block.h (reorder_basic_blocks): Update prototype.
14551 (relink_block_chain): New prototype.
14552 * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
14553
14554 2007-03-23 Joseph Myers <joseph@codesourcery.com>
14555
14556 * config/mips/mips.md (type, hazard, *movdi_32bit,
14557 *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
14558 *movhi_internal, *movqi_internal, *movsf_hardfloat,
14559 *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
14560 movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
14561 mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
14562 applicable.
14563 (movcc): Change first xfer to multi.
14564 * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
14565 config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
14566 config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
14567 config/mips/generic.md: Change reservations using "xfer" to use
14568 "mfc,mtc".
14569 * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
14570 using match_operand.
14571 (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
14572 * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
14573 examining mode.
14574 (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
14575
14576 2007-03-22 Richard Henderson <rth@redhat.com>
14577
14578 * config/i386/i386.c: Remove unnecessary function declarations.
14579 Move targetm definition, and all related macros, to the end of
14580 the file. Resort some functions to put definitions before uses.
14581 (ix86_attribute_table): Make static. Move to end of file.
14582 (ix86_gimplify_va_arg): Make static.
14583
14584 2007-03-22 Richard Henderson <rth@redhat.com>
14585
14586 * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
14587 don't increase local_regparm with force_align_arg_pointer check.
14588 (ix86_function_sseregparm): Assert 32-bit.
14589 (type_has_variadic_args_p): New.
14590 (ix86_return_pops_args): Early exit for 64-bit. Reindent; use
14591 type_has_variadic_args_p.
14592 (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
14593 (init_cumulative_args): Remove TARGET_DEBUG_ARG. Remove zero_cum;
14594 use memset instead. Do maybe_vaarg check first; skip attribute
14595 tests if true; skip attribute tests for 64-bit.
14596 (construct_container): Remove TARGET_DEBUG_ARG.
14597 (function_arg_advance_32, function_arg_advance_64): Split out ...
14598 (function_arg_advance): ... from here.
14599 (function_arg_32, function_arg_64): Split out ...
14600 (function_arg): ... from here.
14601 (ix86_pass_by_reference): Tidy.
14602 (ix86_function_value_regno_p): Rearrange w/ switch on regno.
14603 (function_value_32): New, from parts of ix86_function_value
14604 and ix86_value_regno.
14605 (function_value_64): New, from parts of ix86_function_value
14606 and ix86_libcall_value.
14607 (ix86_function_value_1): New.
14608 (ix86_function_value, ix86_libcall_value): Use it.
14609 (return_in_memory_32, return_in_memory_64): Split out ...
14610 (ix86_return_in_memory): ... from here.
14611 (ix86_struct_value_rtx): Skip for 64-bit.
14612 (ix86_libcall_value, ix86_value_regno): Remove.
14613 (setup_incoming_varargs_64): Split out ...
14614 (ix86_setup_incoming_varargs): ... from here.
14615 (ix86_va_start): Remove TARGET_DEBUG_ARG.
14616 (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
14617 * config/i386/i386-protos.h (ix86_function_value): Remove.
14618 * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
14619
14620 2007-03-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14621
14622 PR other/23572
14623 * c-lex.c (interpret_float): On overflow, emit pedantic warning if
14624 infinities not supported, otherwise emit warning if -Woverflow. On
14625 underflow, emit warning if -Woverflow.
14626 * real.c (real_from_string): Return -1 if underflow, +1 if overflow
14627 and 0 otherwise.
14628 * real.h (real_from_string): Update declaration
14629
14630 2007-03-22 Kai Tietz <kai.tietz@onevision.com>
14631 Richard Henderson <rth@redhat.com>
14632
14633 * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
14634 * calls.c (compute_argument_block_size, expand_call,
14635 emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
14636 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
14637 * function.c (STACK_DYNAMIC_OFFSET): Likewise.
14638 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
14639 * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
14640 config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
14641 config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
14642 config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
14643 Set to 1.
14644
14645 2007-03-22 Joseph Myers <joseph@codesourcery.com>
14646
14647 * c-incpath.c (add_sysroot_to_chain): New.
14648 (merge_include_chains): Add sysroot argument. Call
14649 add_sysroot_to_chain if sysrooted.
14650 (register_include_chains): Update call to merge_include_chains.
14651 * doc/cppopts.texi: Document use of '=' in include directory
14652 arguments.
14653
14654 2007-03-22 Uros Bizjak <ubizjak@gmail.com>
14655
14656 * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
14657 Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P.
14658 (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
14659 insn pattern using X87MODEF12 mode macro.
14660
14661 2007-03-21 Seongbae Park <seongbae.park@gmail.com>
14662
14663 * regmove.c (regmove_optimize): Use reg_mentioned_p
14664 instead of reg_overlap_mentioned_p for DST.
14665
14666 2007-03-21 Mike Stump <mrs@apple.com>
14667
14668 * c.opt: Fixup for Objective-C/C++.
14669
14670 2007-03-21 Steve Ellcey <sje@cup.hp.com>
14671
14672 * explow.c (convert_memory_address): Fold memory reference when
14673 POINTERS_EXTEND_UNSIGNED < 0
14674
14675 2007-03-21 Richard Henderson <rth@redhat.com>
14676
14677 PR target/31245
14678 * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
14679 * config/i386/mmintrin.h (__m64): Likewise.
14680 * config/i386/xmmintrin.h (__m128): Likewise.
14681
14682 2007-03-21 Richard Sandiford <richard@codesourcery.com>
14683
14684 * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
14685 (VXWORKS_OS_CPP_BUILTINS): Define.
14686 * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
14687 (TARGET_OS_CPP_BUILTINS): ...here. Use VXWORKS_OS_CPP_BUILTINS.
14688
14689 2007-03-21 Richard Sandiford <richard@codesourcery.com>
14690
14691 * rtl.h (constant_pool_reference_p): Delete.
14692 (find_constant_src): Declare.
14693 * rtlanal.c (find_constant_src): New function.
14694 * simplify-rtx.c (constant_pool_reference_p): Delete.
14695 * config/i386/i386.md: Use find_constant_src instead of
14696 constant_pool_reference_p/avoid_constant_pool_reference pairs.
14697
14698 2007-03-21 Richard Sandiford <richard@codesourcery.com>
14699
14700 * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
14701 * c-cppbuiltin.c (c_cpp_builtins): Define them.
14702
14703 2007-03-20 Mark Mitchell <mark@codesourcery.com>
14704
14705 * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
14706 * config/arm/arm.c (arm_elf_asm_cdtor): New function.
14707 (arm_elf_asm_constructor): Use it.
14708 (arm_elf_asm_destructor): New function.
14709
14710 2007-03-20 Bernd Schmidt <bernd.schmidt@analog.com>
14711
14712 * jump.c (mark_jump_label): Treat SEQUENCE specially.
14713
14714 2007-03-20 Nathan Sidwell <nathan@codesourcery.com>
14715
14716 * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
14717
14718 2007-03-19 Andrew Haley <aph@redhat.com>
14719
14720 PR tree-optimization/31264
14721 * tree-vrp.c (register_edge_assert_for_1): Don't look though
14722 VIEW_CONVERT_EXPRs.
14723
14724 2007-03-19 Paolo Bonzini <bonzini@gnu.org>
14725
14726 PR rtl-optimization/30907
14727 * fwprop.c (forward_propagate_into): Never propagate inside a loop.
14728 (fwprop_init): Always call loop_optimizer_initialize.
14729 (fwprop_done): Always call loop_optimizer_finalize.
14730 (fwprop): We always have loop info now.
14731 (gate_fwprop_addr): Remove.
14732 (pass_fwprop_addr): Use gate_fwprop as gate.
14733
14734 PR rtl-optimization/30841
14735 * df-problems.c (df_ru_local_compute, df_rd_local_compute,
14736 df_chain_alloc): Call df_reorganize_refs unconditionally.
14737 * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
14738 refs_organized to refs_organized_size.
14739 (df_ref_create_structure): Use refs_organized_size instead of
14740 bitmap_size if refs had been organized, and keep refs_organized_size
14741 up-to-date.
14742 * df.h (struct df_ref_info): Change refs_organized to
14743 refs_organized_size.
14744 (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
14745 bitmap_size.
14746
14747 2007-03-19 Mark Mitchell <mark@codesourcery.com>
14748
14749 * except.c (output_function_exception_table): Do not reference the
14750 EH personality routine for functions that do not require an
14751 exception table.
14752
14753 2007-03-20 Jakub Jelinek <jakub@redhat.com>
14754
14755 PR c/30762
14756 * c-typeck.c (convert_for_assignment): Call comptypes for
14757 RECORD_TYPE or UNION_TYPE.
14758
14759 PR inline-asm/30505
14760 * reload1.c (reload): Do invalid ASM checking after
14761 cleanup_subreg_operands.
14762
14763 2007-03-19 Jeff Law <law@redhat.com>
14764
14765 * tree-cfg.c (find_taken_edge): Tighten conditions for
14766 optimizing computed gotos.
14767
14768 2007-03-19 Michael Matz <matz@suse.de>
14769
14770 * builtins.c (expand_builtin_sync_operation,
14771 expand_builtin_compare_and_swap,
14772 expand_builtin_lock_test_and_set): Care for extending CONST_INTs
14773 correctly.
14774
14775 * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
14776 sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
14777 for operand 3.
14778
14779 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
14780
14781 * doc/tm.texi: Add brackets around the return type of
14782 TARGET_SECONDARY_RELOAD.
14783
14784 2007-03-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
14785 Richard Guenther <rguenther@suse.de>
14786
14787 PR tree-optimization/31254
14788 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
14789 Use handled_component_p () where appropriate. Continue
14790 propagating into the rhs if we propagated into an INDIRECT_REF
14791 on the lhs.
14792
14793 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
14794
14795 * config/s390/s390.md (op_type attribute): RRR instruction type added.
14796 (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
14797 (xde, xdee): Mode attributes adjusted to support DFP modes.
14798 (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
14799 ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
14800 DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
14801 "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
14802 "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
14803 "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
14804 "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
14805 numbers.
14806 ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
14807 "movsf"): Insn definitions removed.
14808 ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
14809 "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
14810 "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
14811 definitions added.
14812 ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
14813 "reload_in<mode>", "reload_out<mode>"): Expander added.
14814 ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
14815 Expander removed.
14816
14817 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
14818
14819 * config/s390/s390.md: Only non-functional changes. Renamed
14820 FPR mode macro to BFP all over the file.
14821
14822 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
14823
14824 * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
14825 (op_type attribute): RRF instruction type added.
14826 (fT0): New mode attribute.
14827 ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
14828 "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
14829 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new
14830 instruction no secondary memory is needed when moving DFmode values
14831 between GPRs and FPRs.
14832
14833 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
14834
14835 * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
14836 inverted and documentation adjusted.
14837 ("mhard-dfp", "msoft-dfp"): New options.
14838 * config/s390/s390.c (s390_handle_arch_option): New architecture
14839 switch: z9-ec.
14840 (override_options): Sanity checks for the new options added.
14841 * config.gcc: New architecture switch: z9-ec.
14842 * config/s390/s390.h (processor_flags): PF_DFP added.
14843 (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
14844 (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
14845 when the bit is NOT set so remove it from the defaults.
14846
14847 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
14848
14849 * genemit.c (main): Print include statement for dfp.h.
14850 * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
14851 is not available.
14852
14853 2007-03-19 Hans-Peter Nilsson <hp@axis.com>
14854
14855 * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
14856
14857 2007-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
14858
14859 PR target/31022
14860 * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
14861 instead of PATTERN.
14862
14863 2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14864
14865 * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
14866 attr_length_call, output_call, output_indirect_call): Cleanup
14867 formatting of targetm calls.
14868
14869 2007-03-19 Hans-Peter Nilsson <hp@axis.com>
14870
14871 * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
14872
14873 2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14874
14875 * pa.md: Add fpstore_load and store_fpload instruction types. Provide
14876 reservation, bypass and anti-bypass descriptions for these
14877 instructions. Update move patterns.
14878 * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
14879 TYPE_FPSTORE.
14880
14881 2007-03-18 Dorit Nuzman <dorit@il.ibm.com>
14882
14883 * tree-vect-transform.c (get_initial_def_for_induction): Replace
14884 GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
14885 (get_initial_def_for_reduction): Likewise.
14886
14887 2007-03-16 Daniel Berlin <dberlin@dberlin.org>
14888
14889 Fix PR tree-optimization/29922
14890 * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
14891 (get_representative): Removed.
14892 (value_dies_in_block_x): Update for rvuse removal.
14893 (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
14894 (compute_antic_aux): Handle when PHI nodes appear in
14895 non-single-successors.
14896 (dump_bitmap_of_names): Removed.
14897 (compute_antic_safe): Renamed and removed rvuse calculation.
14898 Calculate only antic safe.
14899 (insert_into_preds_of_block): Remove assert.
14900 (execute_pre): Update for renamed functions.
14901 (defer_or_phi_translate_block): New function.
14902
14903 2007-03-17 Kazu Hirata <kazu@codesourcery.com>
14904
14905 * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
14906 config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
14907 typos.
14908 * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
14909 Follow spelling conventions.
14910
14911 * tree-data-ref.h: Remove the prototype for analyze_array.
14912
14913 2007-03-17 Dorit Nuzman <dorit@il.ibm.com>
14914
14915 PR tree-optimization/31041
14916 * tree-vect-transform.c (get_initial_def_for_induction): Call
14917 force_gimple_operand.
14918
14919 2007-03-17 Olga Golovanevsky <olga@il.ibm.com>
14920
14921 * ipa-type-escape.c (look_for_casts) : Revert code to use
14922 handled_component_p due to ada test a-numaux.adb.
14923
14924 2007-03-17 Kazu Hirata <kazu@codesourcery.com>
14925
14926 * final.c (final_scan_insn): Alter the condition of a
14927 conditional trap if we have nonstandard CC.
14928
14929 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
14930
14931 * configure.ac: Remove excess quoting from asm line 0 test.
14932 * configure: Rebuilt.
14933
14934 2007-03-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14935
14936 * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
14937 * c-common.c (convert_and_check): Move warning logic to...
14938 (warnings_for_convert_and_check): ...here. Define.
14939 * c-common.h (warnings_for_convert_and_check): Declare.
14940
14941 2007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14942
14943 * pa.c (attr_length_call): Partially revert change of 2007-03-09.
14944 (output_call): Likewise.
14945
14946 2007-03-16 Richard Sandiford <richard@codesourcery.com>
14947
14948 * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
14949
14950 2007-03-16 Richard Sandiford <richard@codesourcery.com>
14951
14952 * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
14953
14954 2007-03-16 Uros Bizjak <ubizjak@gmail.com>
14955
14956 * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
14957 opteron, athlon-64 and athlon-fx processor_alias_table entries.
14958
14959 2007-03-16 Sebastian Pop <sebastian.pop@inria.fr>
14960
14961 PR tree-optimization/31183
14962 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
14963 Use double_int instead of unsigned int for representing access_strides.
14964 * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
14965
14966 2007-03-16 Richard Guenther <rguenther@suse.de>
14967
14968 PR tree-optimization/31146
14969 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
14970 to allow recursion of forward_propagate_addr_expr.
14971 (forward_propagate_addr_into_variable_array_index): Likewise.
14972 (forward_propagate_addr_expr): Likewise.
14973 (tree_ssa_forward_propagate_single_use_vars): Likewise.
14974 (forward_propagate_addr_expr_1): Recurse on simple copies
14975 instead of propagating into them. Do so for useless conversions
14976 as well.
14977 (forward_propagate_addr_expr): Clean up unused statements after
14978 recursion.
14979
14980 2007-03-16 Richard Guenther <rguenther@suse.de>
14981
14982 * builtins.c (expand_builtin_cexpi): Use the right argument
14983 for the expansion via cexp.
14984
14985 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
14986
14987 * configure.ac: Don't require ELF binutils to tolerate # 0 "".
14988 * configure: Rebuilt.
14989
14990 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
14991
14992 PR debug/29906
14993 * dwarf2out.c (force_type_die): Adjust comment.
14994 (dwarf2out_imported_module_or_decl): Handle base AT_import types.
14995
14996 2007-03-15 DJ Delorie <dj@redhat.com>
14997
14998 * config/frv/predicates.md (minmax_operator): Don't check operands
14999 here.
15000
15001 2007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
15002
15003 * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
15004 Update constant estimates of number of iterations.
15005 (record_nonwrapping_iv): Add "upper" argument. "data_size_bounds_p"
15006 argument renamed to "realistic".
15007 (compute_estimated_nb_iterations): Removed.
15008 (record_niter_bound): New function.
15009 (idx_infer_loop_bounds): For possible but unlikely tail arrays,
15010 call record_nonwrapping_iv with upper = false.
15011 (infer_loop_bounds_from_signedness): Pass upper argument to
15012 record_nonwrapping_iv.
15013 (estimate_numbers_of_iterations_loop): Do not call
15014 compute_estimated_nb_iterations. Record estimate based on profile
15015 information. Initialize the constant estimates of number of
15016 iterations.
15017 * tree-data-ref.c (estimated_loop_iterations): Return the recorded
15018 estimates.
15019 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
15020 number of iterations is too small.
15021 * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
15022 (EST_NOT_AVAILABLE): Removed.
15023 (struct loop): Replace estimated_nb_iterations by any_upper_bound,
15024 nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
15025 fields.
15026
15027 2007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
15028
15029 * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
15030 Handle NE_EXPR guards.
15031
15032 2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15033
15034 PR c++/24924
15035 * c-opts.c (c_common_post_options): Handle C++ post-processing here.
15036 Set also -pedantic-errors by default for the preprocessor unless
15037 -fpermissive is given.
15038
15039 2007-03-15 Richard Guenther <rguenther@suse.de>
15040
15041 PR middle-end/29719
15042 PR middle-end/31161
15043 * builtins.c (expand_builtin_cexpi): As a fallback if we
15044 don't have builtins for sincos or cexp create a function
15045 declaration for cexp and expand to a call to that.
15046 (expand_builtin_int_roundingfn): Always fall
15047 back to floor/ceil and its variants even if they may be
15048 not available.
15049
15050 2007-03-15 Steven Bosscher <steven@gcc.gnu.org>
15051
15052 PR middle-end/31159
15053 * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
15054 jump tables, move the call to delete_dead_jumptables from here...
15055 (cfg_layout_finalize): ...to here. But rebuild jump labels first.
15056 * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
15057 don't allow merging of blocks that try_redirect_by_replacing_jump
15058 also does not handle when not optimizing.
15059
15060 2007-03-15 Uros Bizjak <ubizjak@gmail.com>
15061 Francois-Xavier Coudert <coudert@clipper.ens.fr>
15062
15063 * config/i386/i386.md (x86_sahf_1): Correctly handle
15064 HAVE_AS_IX86_SAHF.
15065
15066 2007-03-15 Uros Bizjak <ubizjak@gmail.com>
15067
15068 PR target/31167
15069 * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
15070 x86_64_general_operand as operand[2] predicate. Remove "iF"
15071 from operand constraints and use "e" constraint instead.
15072 (*subti3_1, *subti3_1 splitter): Ditto.
15073 (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
15074 operand[1] predicate.
15075
15076 2007-03-14 Sebastian Pop <sebastian.pop@inria.fr>
15077
15078 * tree-loop-linear.c (gather_interchange_stats): For multidimensional
15079 arrays, multiply the access strides by the size of the sub-array.
15080 * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
15081
15082 2007-03-14 Uros Bizjak <ubizjak@gmail.com>
15083
15084 * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
15085 the configured assembler supports the sahf mnemonic.
15086 * configure: Regenerate.
15087 * config.in: Regenerate.
15088
15089 * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
15090 emit "sahf" or ".byte\t0x9e" as asm template.
15091
15092 2007-03-14 Michael Meissner <michael.meissner@amd.com>
15093
15094 PR 31018
15095 * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
15096 option to replace hard coded TARGET_xxx in md file.
15097 (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
15098 (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
15099 (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
15100 (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
15101 (X86_TUNE_NOT_UNPAIRABLE): Ditto.
15102 (X86_TUNE_NOT_VECTORMODE): Ditto.
15103 (TUNE_SHORTEN_X87_SSE): Use new tuning option.
15104 (TUNE_AVOID_VECTOR_DECODE): Ditto.
15105 (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
15106 (TUNE_SLOW_IMUL_IMM8): Ditto.
15107 (TUNE_MOVE_M1_VIA_OR): Ditto.
15108 (TUNE_NOT_UNPAIRABLE): Ditto.
15109 (TUNE_NOT_VECTORMODE): Ditto.
15110
15111 * config/i386/i386.c (ix86_tune_features): Fill in new tuning
15112 options.
15113
15114 * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
15115 tuning options instead of hard coded TARGET_xxx.
15116 (fix ssemode peephole2's): Ditto.
15117 (imul peephole2's): Ditto.
15118 (movsi_or): Ditto.
15119 (movdi_or_rex64): Ditto.
15120 (move peephole2): Ditto.
15121 (not peephole2's): Ditto.
15122
15123 2007-03-14 Dirk Mueller <dmueller@suse.de>
15124
15125 * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
15126 * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
15127 * c-parser.c (c_parser_if_body): Always add an empty statement in case
15128 of empty body.
15129 * c-parser.c (c_parser_do_statement): Warn about empty body in
15130 do/while statement.
15131 * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
15132 * doc/invoke.texi (-Wempty-body): Update documentation.
15133
15134 2007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15135
15136 PR c/21438
15137 * c-common.h (warn_for_div_by_zero): Declare.
15138 * c-common.c (warn_for_div_by_zero): Define.
15139 * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
15140 warning.
15141
15142 2007-03-14 Richard Sandiford <richard@codesourcery.com>
15143
15144 * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
15145 to PREFIX and STANDARD_PREFIX.
15146
15147 2007-03-14 Richard Sandiford <richard@codesourcery.com>
15148 Phil Edwards <phil@codesourcery.com>
15149
15150 * gthr-vxworks.h: Add an extern "C" wrapper for C++.
15151 (__gthread_once_t): Remove busy field for RTPs.
15152 (__GTHREAD_ONCE_INIT): Update accordingly.
15153
15154 2007-03-14 Richard Sandiford <richard@codesourcery.com>
15155
15156 * doc/invoke.texi: Document VxWorks options.
15157
15158 2007-03-14 Uros Bizjak <ubizjak@gmail.com>
15159
15160 * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
15161
15162 2007-03-13 Seongbae Park <seongbae.park@gmail.com>
15163
15164 PR tree-optimization/30590
15165 * tree-nrv.c (tree_nrv): Check for the partial update of the
15166 return value.
15167
15168 2007-03-13 Alexandre Oliva <aoliva@redhat.com>
15169
15170 * flags.h (flag_random_seed): Remove declaration, in favor of...
15171 * toplev.h (get_random_seed, set_random_seed): ... these.
15172 * tree.c (get_file_function_name): Use the former.
15173 * opts.c (common_handle_option): Use the latter.
15174 * toplev.c
15175
15176 2007-03-13 Steven Bosscher <steven@gcc.gnu.org>
15177
15178 PR middle-end/31127
15179 * cse.c (cse_find_path): Do not bail out if a basic block that
15180 we already visited now becomes part of a path that starts at a
15181 different basic block. Just disallow this, to make sure we
15182 visit each basic block at most once.
15183
15184 2007-03-13 Jan Hubicka <jh@suse.cz>
15185
15186 * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold
15187 attributes, when profile esitmate is present, calls with very low
15188 frequency are cold.
15189
15190 2007-03-13 Zdenek Dvorak <dvorakz@suse.cz>
15191
15192 PR tree-optimization/30730
15193 PR tree-optimization/26900
15194 * tree-ssa-loop-niter.c: Include gmp.h.
15195 (bounds): New type.
15196 (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
15197 split_to_var_and_offset, determine_value_range,
15198 bound_difference_of_offsetted_base, refine_bounds_using_guard,
15199 bound_difference, bounds_add, bounds_negate,
15200 number_of_iterations_ne_max, dump_affine_iv): New functions.
15201 (number_of_iterations_ne, number_of_iterations_lt_to_ne,
15202 assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
15203 difference of initial and final value of control iv to validate
15204 results.
15205 (number_of_iterations_cond): Add loop parameter. Determine bounds
15206 on the difference of the extremes of the control iv. Add dumps.
15207 (expand_simple_operations): Handle phi nodes.
15208 (simplify_using_initial_conditions): Do not record used conditions.
15209 (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
15210 Do not set additional_info.
15211 (implies_nonnegative_p, implies_ge_p): Removed.
15212 (derive_constant_upper_bound): Do not use parameter `additional'.
15213 (record_estimate): Parameter `additional' removed. Parameter
15214 `i_bound' added. Do not call derive_constant_upper_bound.
15215 (record_nonwrapping_iv): Use derive_constant_upper_bound to
15216 bound the number of iterations estimate.
15217 (estimate_numbers_of_iterations_loop): Pass the estimate from
15218 the number of iterations analysis to record_estimate.
15219 * tree.h (multiple_of_p): Declare.
15220 * tree-scalar-evolution.c (expression_expensive_p): Removed.
15221 (scev_const_prop): Do not check expression_expensive_p.
15222 * fold-const.c (multiple_of_p): Exported.
15223 * double-int.c (double_int_mask): Exported.
15224 * double-int.h (double_int_mask): Declare.
15225 * tree-flow.h (struct tree_niter_desc): Removed additional_info
15226 field. Added max field.
15227
15228 2007-03-13 David Taylor <taylor@candd.org>
15229
15230 PR driver/12448:
15231 * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
15232 default -MQ.
15233
15234 2007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15235
15236 PR target/31123
15237 * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for
15238 two unamed patterns.
15239
15240 2007-03-13 Uros Bizjak <ubizjak@gmail.com>
15241
15242 * config/i386/i386.opt (mcx16, msahf): New options.
15243 * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
15244 (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
15245
15246 * config/i386/driver-i386.c (bit_LAHF_LM): New define.
15247 (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
15248 Output -mcx16 and -msahf options when corresponding bit is set.
15249
15250 * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
15251 and -msahf options.
15252
15253 2007-03-13 Alexandre Oliva <aoliva@redhat.com>
15254
15255 * configure.ac: Test for assembler tolerance to # 0 "".
15256 * configure, config.in: Rebuilt.
15257 * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
15258
15259 2007-03-13 Geoffrey Keating <geoffk@apple.com>
15260
15261 * doc/invoke.texi (Spec Files): Update for '%{,' spec.
15262
15263 * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
15264 (handle_syscall): Handle direct system calls.
15265 * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
15266
15267 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
15268
15269 * doc/invoke.texi: Fix cpp.info cross-reference.
15270 * doc/passes.texi: Fix gcc.info cross-reference.
15271
15272 2007-03-12 Zdenek Dvorak <dvorakz@suse.cz>
15273
15274 PR tree-optimization/30835
15275 * lambda-code.c (can_convert_to_perfect_nest): Check whether
15276 bb_for_stmt is not NULL before accessing it.
15277
15278 2007-03-12 Joseph Myers <joseph@codesourcery.com>
15279
15280 * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
15281 some multilibs.
15282
15283 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
15284
15285 PR 30635
15286 * doc/install.texi: Document --enable-stage1-languages
15287
15288 2007-03-12 Steven Bosscher <steven@gcc.gnu.org>
15289
15290 * tree-pass.h (pass_into_cfg_layout_mode,
15291 pass_outof_cfg_layout_mode): Declare.
15292 * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
15293 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
15294 * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
15295 (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
15296
15297 2007-03-12 Seongbae Park <seongbae.park@gmail.com>
15298
15299 * c-decl.c (warn_variable_length_array): New function.
15300 Refactored from grokdeclarator to handle warn_vla
15301 and handle unnamed array case.
15302 (grokdeclarator): Refactored VLA warning case.
15303 * c.opt (Wvla): New flag.
15304 * doc/invoke.texi (Wvla): New warning.
15305
15306 2007-03-12 Richard Henderson <rth@redhat.com>
15307
15308 * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
15309 (TARGET_SECTION_TYPE_FLAGS): New.
15310
15311 2007-03-12 Richard Henderson <rth@redhat.com>
15312
15313 * config/darwin.c (machopic_reloc_rw_mask): New.
15314 * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
15315 * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
15316
15317 2007-03-12 Mark Mitchell <mark@codesourcery.com>
15318
15319 * cppdefault.c (cpp_EXEC_PREFIX): New variable.
15320 * cppdefault.h (cpp_PREFIX): Document.
15321 (cpp_PREFIX_len): Likewise.
15322 (cpp_EXEC_PREFIX): New variable.
15323 * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
15324 * c-incpath.c (add_standard_paths): Correct logic for relocating
15325 paths within prefix.
15326
15327 2007-03-12 Uros Bizjak <ubizjak@gmail.com>
15328
15329 * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
15330 fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
15331 mode macro.
15332 (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
15333 fix_truncdfdi_sse using SSEMODEF mode macro.
15334 (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
15335 fix_truncdfsi_sse using SSEMODEF mode macro.
15336 (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
15337 (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
15338
15339 2007-03-12 Richard Sandiford <richard@codesourcery.com>
15340
15341 * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
15342 elfos.h to tm_file.
15343
15344 2007-03-12 Olga Golovanevsky <olga@il.ibm.com>
15345
15346 * tree.h : Add multiple_of_p declaration.
15347 * fold-const.c (multiple_of_p): Make multiple_of_p public.
15348 * ipa-type-escape.c (results_of_malloc): Redundant.
15349 (visited_stmts): New. Visited stmt for walk_use_def_chains.
15350 (cast_type): Extended with new members.
15351 (check_cast): Returns cast_type.
15352 (cast): New structure for data of walk_use_def_chains.
15353 (is_malloc_result, is_cast_from_non_pointer_1,
15354 is_cast_from_non_pointer,
15355 is_array_access_through_pointer_and_index): New functions.
15356 (look_for_casts): Returns cast types.
15357 (check_call): Returns void.
15358 (okay_pointer_operation): Use support of pointer plus index,
15359 pointer plus constant and allow all multiplications.
15360
15361 2007-03-11 Richard Guenther <rguenther@suse.de>
15362
15363 PR tree-optimization/31115
15364 * tree-vrp.c (extract_range_from_binary_expr): Make sure
15365 the shift count is positive and non-anti-range for RSHIFT_EXPR.
15366 A shift count of zero is not special as with *_DIV_EXPR.
15367 (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
15368 direction.
15369
15370 2007-03-11 Ian Lance Taylor <iant@google.com>
15371
15372 * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
15373 the *_DIV_EXPR codes correctly with overflow infinities.
15374
15375 2007-03-11 Ira Rosen <irar@il.ibm.com>
15376
15377 * tree-data-ref.c (analyze_offset): Add a return value (bool) to
15378 indicate success/failure of the analysis. Add negation to subtrahend
15379 in case of subtraction. Fail if both operands contain constants.
15380 (create_data_ref): Fail if analyze_offset fails.
15381
15382 2007-03-11 Uros Bizjak <ubizjak@gmail.com>
15383
15384 * config/i386/i386.md (frndintxf2): Rename to ...
15385 (rintxf2): ... this. Remove expander having same name.
15386 (rintsf2, rintdf2): Implement using SSEMODEF macro.
15387 (roundsf2, rounddf2): Ditto.
15388 (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
15389 (lround<mode>di2, lround<mode>si2): Ditto.
15390
15391 2007-03-11 Steven Bosscher <steven@gcc.gnu.org>
15392
15393 * lower-subreg.c: Include except.h.
15394 (decompose_multiword_subregs): Verify that the only control flow
15395 insns we can split are loads to multi-words pseudos.
15396 Handle breaking such blocks after splitting, instead of calling
15397 find_many_sub_basic_blocks.
15398
15399 * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
15400 on the new basic block. Add a lengthy comment explaining why we
15401 thought this was necessary.
15402 * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
15403
15404 2007-03-10 Mark Mitchell <mark@codesourcery.com>
15405
15406 PR c++/30924
15407 * tree.c (walk_type_fields): Recurse into the element type of
15408 ARRAY_TYPEs if there is a pointer set.
15409
15410 2007-03-10 Dirk Mueller <dmueller@suse.de>
15411
15412 * c-common.c (warn_logical_operator): Fix condition.
15413
15414 2007-03-10 Tobias Schl�ter <tobi@gcc.gnu.org>
15415
15416 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
15417 quotation mark.
15418 * config/darwin.c (machopic_select_section): Remove superfluous
15419 argument in call to categorize_decl_for_section. Remove unused
15420 variable shlib.
15421
15422 2007-03-10 Joseph Myers <joseph@codesourcery.com>
15423
15424 * configure.ac (glibc_header_dir): Set using with_build_sysroot if
15425 defined.
15426 * configure: Regenerate.
15427
15428 2007-03-10 Uros Bizjak <ubizjak@gmail.com>
15429
15430 PR target/31101
15431 * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
15432 (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
15433 (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
15434 Add LABEL_NUSES to emitted label.
15435 * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
15436 branch probability value to emitted jump insn.
15437 * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
15438 Do not check life information and do not re-arrange input operands
15439 for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
15440
15441 2007-03-10 Kaz Kojima <kkojima@gcc.gnu.org>
15442
15443 * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
15444 the change of decode_asm_operands.
15445
15446 2007-03-10 Kaz Kojima <kkojima@gcc.gnu.org>
15447
15448 * mode-switching.c (create_pre_exit): Skip blockage insn.
15449
15450 2007-03-09 Diego Novillo <dnovillo@redhat.com>
15451
15452 * tree-pass.h (TODO_update_smt_usage): Remove.
15453 Update all users.
15454 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
15455 argument SOME.
15456 Update all users.
15457
15458 2007-03-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15459
15460 * pa.c (attr_length_call): Revise condition for long
15461 pc-relative branch.
15462 (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long
15463 local calls on the SOM target. Don't use "LONG_PIC_PCREL" call
15464 sequence on SOM target.
15465
15466 2007-03-09 Geoffrey Keating <geoffk@apple.com>
15467
15468 * gcc.c: Document %{, in big comment at top.
15469 (input_suffix_matches): Remove special handling for .s and
15470 .S.
15471 (input_spec_matches): New.
15472 (handle_braces): Handle %{,.
15473 (validate_switches): ',' indicates a value which is not a switch.
15474 * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
15475 to detect assembler input.
15476 * config/i386/sol2.h (CPP_SPEC): Likewise.
15477 * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
15478 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
15479 * config/rs6000/lynx.h (ASM_SPEC): Likewise.
15480 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
15481 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
15482 -m64 causes deployment target to default to 10.5.
15483 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
15484
15485 2007-03-09 Richard Henderson <rth@redhat.com>
15486
15487 PR target/26090
15488 * target.h (targetm.asm.out.reloc_rw_mask): New.
15489 * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
15490 (TARGET_ASM_OUT): Use it.
15491 * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
15492 * varasm.c (categorize_decl_for_section): Remove shlib argument;
15493 use the new reloc_rw_mask target hook instead.
15494 (default_section_type_flags_1): Merge into...
15495 (default_section_type_flags): ... here.
15496 (decl_readonly_section_1): Merge into...
15497 (decl_readonly_section): ... here.
15498 (default_elf_select_section_1): Merge into...
15499 (default_elf_select_section): ... here.
15500 (default_unique_section_1): Merge into...
15501 (default_unique_section): ... here.
15502 (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
15503 (default_select_rtx_section): Use it.
15504 (default_elf_select_rtx_section): Likewise.
15505 * output.h: Update to match.
15506 * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
15507 * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
15508 (TARGET_ASM_RELOC_RW_MASK): New.
15509 * config/i386/i386.c (x86_64_elf_select_section): Adjust call
15510 to categorize_decl_for_section.
15511 (x86_64_elf_unique_section): Likewise.
15512 * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
15513 TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
15514 (TARGET_ASM_RELOC_RW_MASK): New.
15515 * config/ia64/ia64.c (ia64_rwreloc_select_section,
15516 ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
15517 (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
15518 (TARGET_RWRELOC): Remove.
15519 (ia64_section_type_flags): Adjust call to default_section_type_flags.
15520 * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
15521 * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
15522 (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
15523 (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
15524 (rs6000_xcoff_select_section): Use decl_readonly_section.
15525 (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
15526 * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
15527 (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
15528 (TARGET_SECTION_TYPE_FLAGS): Remove.
15529 * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
15530
15531 2007-03-09 Roger Sayle <roger@eyesopen.com>
15532
15533 * fold-const.c (fold_comparison): Remove compile-time evaluation of
15534 complex constant equality/inequality comparisons for here.
15535 (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
15536 known at compile-time or can be simplified to a scalar comparison.
15537 (fold_relational_const): Move compile-time evaluation of complex
15538 constant equality/inequality comparisons to here.
15539
15540 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
15541
15542 PR rtl-optimization/30643
15543 * cse.c (cse_insn): Recompute dest_hash after insert_regs for
15544 dest_addr_elt.
15545 (fold_rtx): Recurse, like before 2006-11-03.
15546
15547 2007-03-09 DJ Delorie <dj@redhat.com>
15548
15549 * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
15550 m32c-pragma.o.
15551
15552 2007-03-09 Aldy Hernandez <aldyh@redhat.com>
15553
15554 PR tree-optimization/30375
15555 * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
15556 LHS of statements is not the same.
15557 * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
15558
15559 2007-03-09 Chao-ying Fu <fu@mips.com>
15560
15561 * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
15562 REV 2.
15563 * doc/invoke.texi (-mdspr2): Document new option.
15564 * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
15565 New unspec for DSP REV 2.
15566 (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
15567 these instructions are extended in DSP REV 2.
15568 (mips-dspr2.md): Include.
15569 * config/mips/mips.opt (mdspr2): New option.
15570 * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
15571 MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
15572 MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
15573 (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
15574 (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
15575 (dsp_bdesc): Add DSP REV 2 builtins. Remove 32-bit only DSP builtins.
15576 (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
15577 and 2 builtins.
15578 (bdesc_map): Add one field of unsupported_target_flags.
15579 (bdesc_arrays): Update entries to have extra fields. Add
15580 dsp_32only_bdesc.
15581 (mips_init_builtins): Initialize new function types.
15582 Check unsupported_target_fileds to filter out builtins.
15583 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
15584 TARGET_DSPR2.
15585 (ASM_SPEC): Pass mdspr2 to the assembler.
15586 * config/mips/mips-dspr2.md: New file.
15587
15588 2007-03-09 Sa Liu <saliu@de.ibm.com>
15589
15590 * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
15591
15592 2007-03-09 Ian Lance Taylor <iant@google.com>
15593
15594 * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
15595 argument) like -Wstrict-overflow=2.
15596 * doc/invoke.texi (Warning Options): Update documentation.
15597
15598 2007-03-09 Dirk Mueller <dmueller@suse.de>
15599
15600 PR c++/17946
15601 * doc/invoke.texi (-Wlogical-op): Document.
15602 * common.opt (-Wlogical-op): New.
15603 * c-common.h (warn_logical_operator): Declare.
15604 * c-common.c (warn_logical_operator): Define.
15605 * c-typeck.c (parser_build_binary_op): Call
15606 warn_logical_operator.
15607
15608 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
15609
15610 * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
15611 * final.c (final_scan_insn): Test for non-"" file name.
15612
15613 2007-03-09 Sebastian Pop <sebastian.pop@inria.fr>
15614
15615 * doc/loop.texi: Document the Omega linear constraints solver.
15616 * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
15617 omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
15618 omega-hash-table-size, omega-max-keys, and
15619 omega-eliminate-redundant-constraints.
15620 * tree-pass.h (pass_check_data_deps): Declared.
15621 * omega.c: New.
15622 * omega.h: New.
15623 * timevar.def (TV_CHECK_DATA_DEPS): Declared.
15624 * tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
15625 pass_check_data_deps): New.
15626 * tree-data-ref.c (init_data_ref): Remove declaration.
15627 (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
15628 (analyze_array): Renamed init_array_ref, move up initializations.
15629 (init_data_ref): Renamed init_pointer_ref. Moved before its call.
15630 Removed arguments that are set to NULL.
15631 (analyze_indirect_ref): Correct indentation, correct call to
15632 init_pointer_ref.
15633 (object_analysis): Call init_array_ref instead of analyze_array.
15634 (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
15635 (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
15636 of DR_ACCESS_FNS_ADDR.
15637 (init_omega_eq_with_af, omega_extract_distance_vectors,
15638 omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
15639 ddr_consistent_p): New.
15640 (compute_affine_dependence): Check consistency of ddrs when
15641 flag_check_data_deps is passed.
15642 (analyze_all_data_dependences): Uncomment.
15643 (tree_check_data_deps): New.
15644 * tree-data-ref.h: Include omega.h.
15645 (DR_ACCESS_FNS_ADDR): Removed.
15646 (data_dependence_relation): Add inner_loop.
15647 (DDR_INNER_LOOP): New.
15648 * common.opt (fcheck-data-deps): New.
15649 * tree-flow.h (tree_check_data_deps): Declare.
15650 * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
15651 (OBJS-common): Depend on omega.o.
15652 (omega.o): Define.
15653 * passes.c (pass_check_data_deps): Scheduled.
15654 * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
15655 PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
15656 PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
15657 PARAM_VECT_MAX_VERSION_CHECKS,
15658 PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
15659
15660 2007-03-09 Richard Guenther <rguenther@suse.de>
15661
15662 PR tree-optimization/30904
15663 PR middle-end/31058
15664 * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
15665 the same way as *_DIV_EXPR.
15666
15667 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
15668
15669 * recog.c (decode_asm_operands): No mixed declarations and code.
15670
15671 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
15672
15673 * rtl.def (ASM_INPUT): Add location.
15674 * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
15675 (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
15676 (decode_asm_operands): Add loc operand.
15677 (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
15678 * stmt.c (expand_asm): Rename to...
15679 (expand_asm_loc): ... this. Add locus argument. Pass it on to
15680 gen_rtx_ASM_INPUT_loc.
15681 (expand_asm_expr): Adjust.
15682 * recog.c (decode_asm_operands): Add loc operand.
15683 (check_asm_operands, extract_insn): Adjust.
15684 * reload1.c (maybe_fix_stack_asms): Likewise.
15685 * final.c (asm_insn_count): Likewise.
15686 (final_scan_insn): Output # line before and after asm.
15687
15688 2007-03-09 Daniel Berlin <dberlin@dberlin.org>
15689
15690 * tree-ssa-structalias.c (variable_info): Remove
15691 finished_solution.
15692 (new_var_info): Ditto.
15693 (shared_bitmap_info_t): New structure.
15694 (shared_bitmap_table): New variable.
15695 (shared_bitmap_hash): New function.
15696 (shared_bitmap_eq): Ditto
15697 (shared_bitmap_lookup): Ditto.
15698 (shared_bitmap_add): Ditto.
15699 (merge_smts_into): Change to take bitmap directly.
15700 (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
15701 (init_alias_vars): Init shared bitmap hashtable.
15702 (delete_points_to_sets): Delete shared bitmap hashtable.
15703 * tree-ssa-operands.c (add_virtual_operand): Partially revert the
15704 is_aliased removal as a change that was still necessary was
15705 deleted.
15706
15707 2007-03-09 Uros Bizjak <ubizjak@gmail.com>
15708
15709 * config/i386/i386.h (override_options): Conditionally disable
15710 x86_sahf for 64bit targets only.
15711
15712 2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
15713
15714 PR C/31072
15715 * c-decl.c (merge_decls): Don't call make_var_volatile.
15716 * varasm.c (make_var_volatile): Remove.
15717 * output.h (make_var_volatile): Remove.
15718
15719 2007-03-08 Zdenek Dvorak <dvorakz@suse.cz>
15720
15721 PR tree-optimization/31085
15722 * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
15723
15724 2007-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15725
15726 * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
15727 llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
15728 ATTR_CONST_NOTHROW_LIST.
15729
15730 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
15731 FIX_TRUNC_EXPR.
15732
15733 2007-03-08 Diego Novillo <dnovillo@redhat.com>
15734
15735 * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
15736
15737 2007-03-08 Geoffrey Keating <geoffk@apple.com>
15738
15739 PR 31013
15740 * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
15741 is declared.
15742 * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
15743 passed, use shared libgcc.
15744
15745 2007-03-08 Roger Sayle <roger@eyesopen.com>
15746
15747 * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
15748 instead of calling build2 with a GIMPLE_MODIFY_STMT.
15749 (honor_protect_cleanup_actions, lower_try_finally_switch):
15750 Likewise.
15751 * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
15752 ifc_temp_var): Likewise.
15753 * tree-inline.c (setup_one_parameter): Likewise.
15754 * tree-mudflap.c (mf_decl_cache_locals,
15755 mf_build_check_statement_for): Likewise.
15756 * tree-nested.c (init_tmp_var, save_tmp_var,
15757 finalize_nesting_tree_1): Likewise.
15758 * tree-outof-ssa.c (insert_copy_on_edge,
15759 insert_backedge_copies): Likewise.
15760 * tree-profile.c (tree_gen_edge_profiler,
15761 tree_gen_ic_profiler): Likewise.
15762 * tree-scalar-evolution.c (scev_const_prop): Likewise.
15763 * tree-sra.c (sra_build_assignment): Likewise.
15764 * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
15765 * tree-ssa-math-opts.c (insert_reciprocals,
15766 execute_cse_sincos_1): Likewise.
15767 * tree-tailcall.c (adjust_accumulator_values,
15768 adjust_return_value): Likewise.
15769 * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
15770 * tree-vect-transform.c (vect_create_data_ref_ptr,
15771 bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
15772 vect_create_epilog_for_reduction, vectorizable_reduction,
15773 vectorizable_call, vectorizable_conversion,
15774 vectorizable_assignment, vectorizable_operation,
15775 vectorizable_type_demotion, vect_gen_widened_results_half,
15776 vect_permute_store_chain, vectorizable_store,
15777 vect_setup_realignment, vect_permute_load_chain,
15778 vectorizable_load, vectorizable_condition,
15779 vect_create_cond_for_align_checks): Likewise.
15780 * tree-vrp.c (build_assert_expr_for): Likewise.
15781
15782 2007-03-08 Ian Lance Taylor <iant@google.com>
15783
15784 * tree-vrp.c: Include "intl.h".
15785 (usable_range_p): New static function.
15786 (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
15787 overflowed values, juts set *strict_overflow_p.
15788 (compare_values): Only return -2 if one of the operands is not a
15789 constant.
15790 (compare_ranges): Call usable_range_p.
15791 (compare_range_with_value): Likewise.
15792 (vrp_evaluate_conditional_warnv): Rename from
15793 vrp_evaluate_conditional. Make static. Change all callers.
15794 (vrp_evaluate_conditional): New function.
15795 (simplify_div_or_mod_using_ranges): Issue warning about reliance
15796 on signed overflow.
15797 (simplify_abs_using_ranges): Likewise.
15798 (simplify_stmt_for_jump_threading): Add within_stmt parameter.
15799 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
15800 within_stmt parameter.
15801 * tree-ssa-propagate.c (fold_predicate_in): Update call to
15802 vrp_evaluate_conditional.
15803 * tree-ssa-threadedge.c
15804 (record_temporary_equivalences_from_stmts_at_dest): Change
15805 simplify parameter to take a second tree parameter.
15806 (simplify_control_stmt_condition): Likewise.
15807 (thread_across_edge): Likewise.
15808 * tree-flow.h (vrp_evaluate_conditional): Update declaration.
15809 (thread_across_edge): Likewise.
15810 * Makefile.in (tree-vrp.o): Depend upon intl.h.
15811
15812 2007-03-08 Uros Bizjak <ubizjak@gmail.com>
15813
15814 * config/i386/i386.h (TARGET_SAHF): New define.
15815 * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
15816 Also enable for m_K8, m_AMDFAM10 and m_CORE2.
15817 (x86_sahf): New global variable.
15818 (override_options): Add PTA_NO_SAHF to pta_flags enum. Recode
15819 pta_flags masks using shifts. Add PTA_NO_SAHF to x86_64 and
15820 nocona processor flags. Set x86_sahf when PTA_NO_SAHF is not set
15821 in processor flags. Do not unconditionally disable TARGET_USE_SAHF
15822 for 64-bit.
15823 (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
15824 (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
15825 when expanding fcomi/sahf based tests.
15826 (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
15827 expanding sahf based alternative. Emit sahf based sequence when
15828 optimizing for code size.
15829 * config/i386/i386.md (x86_sahf_1): Do not disable for
15830 TARGET_64BIT, enable for TARGET_SAHF.
15831
15832 2007-03-08 Martin Michlmayr <tbm@cyrius.com>
15833
15834 * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
15835 spurious whitespace from error message.
15836
15837 2007-03-08 Volker Reichelt <reichelt@netcologne.de>
15838
15839 PR c++/30852
15840 * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
15841
15842 2007-03-08 Alexandre Oliva <aoliva@redhat.com>
15843
15844 * c-decl.c (grokdeclarator): Disable warnings for anonymous
15845 bitfields.
15846 * tree-sra.c (instantiate_element): Propagate disabled warnings
15847 from the element itself to the created variable.
15848
15849 2007-03-07 Richard Henderson <rth@redhat.com>
15850
15851 PR target/30848
15852 * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
15853 silently fix up the stack in the case of a missing register.
15854
15855 2007-03-07 Paul Brook <paul@codesourcery.com>
15856
15857 * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
15858
15859 2007-03-07 Joseph Myers <joseph@codesourcery.com>
15860
15861 * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
15862 New.
15863 (phase1_vrs): Use them.
15864 (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
15865 (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
15866 __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
15867 (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
15868 __gnu_Unwind_Restore_WMMXC if required.
15869 (_Unwind_VRS_Pop): Implement iWMMXt support.
15870 * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
15871 gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
15872 gnu_Unwind_Save_WMMXC): Define.
15873
15874 2007-03-07 Richard Sandiford <richard@codesourcery.com>
15875
15876 * config/vxworks.h (vxworks_override_options): Declare.
15877 (VXWORKS_OVERRIDE_OPTIONS): Use it.
15878 * config/vxworks.c: Include target.h and toplev.h.
15879 (vxworks_override_options): New function.
15880 * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
15881
15882 2007-03-07 Andreas Krebbel <krebbel1@de.ibm.com>
15883
15884 * config/s390/s390.c (override_options): Don't emit an error when
15885 -mstack-size is used without providing -mstack-guard.
15886 (s390_emit_prologue): Choose stack_guard value automatically if not
15887 provided via command line.
15888 * doc/invoke.texi: Adjust description of -mstack-guard and
15889 -mstack-size.
15890
15891 2007-03-07 Richard Sandiford <richard@codesourcery.com>
15892
15893 * config/i386/i386.c (output_set_got): Add a GOT initialization
15894 sequence for VxWorks PIC.
15895 (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
15896 around labels as well as symbols. Use gotoff_operand instead
15897 of local_symbolic_operand.
15898 (legitimize_pic_address): Use gotoff_operand instead of
15899 local_symbolic_operand. Use @GOT accesses for labels as
15900 well as symbols.
15901 (ix86_output_addr_diff_elt): Use PC-relative rather than
15902 GP-relative offsets for VxWorks PIC.
15903 (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
15904 no_new_pseudos. Check whether the returned register is op0.
15905 * config/i386/i386.md (tablejump): Use PC-relative rather than
15906 GP-relative offsets for VxWorks PIC.
15907 * config/i386/predicates.md (gotoff_operand): New predicate.
15908
15909 2007-03-06 Richard Sandiford <richard@codesourcery.com>
15910
15911 * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
15912 before defining.
15913 * config/vxworks-dummy.h: New file.
15914 * config/i386/i386.h: Include it.
15915
15916 2007-03-07 Alexandre Oliva <aoliva@redhat.com>
15917
15918 * dwarf2out.c (is_inlined_entry_point): New
15919 (add_high_low_attributes): Emit DW_AT_entry_pc along with
15920 DW_AT_ranges if the first subblock is the entry point.
15921
15922 2007-03-06 David Daney <ddaney@avtrex.com>
15923
15924 * doc/install.texi (mips-*-*): Change recommended binutils
15925 version.
15926
15927 2007-03-06 Anatoly Sokolov <aesok@post.ru>
15928
15929 * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
15930 ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
15931 devices.
15932 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
15933 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
15934
15935 2007-03-06 Jan Hubicka <jh@suse.cz>
15936
15937 * errors.h (warning, error, fatal, internal_error): Mark as cold.
15938 * predict.c (maybe_hot_bb): Cold functions are never hot; hot
15939 functions are hot.
15940 (probably_cold_bb_p): Cold functions are cold.
15941 (probably_never_executed_bb_p): Cold functions are cold.
15942 (tree_bb_level_predictions): Predict calls to cold functions as not
15943 taken.
15944 (compute_function_frequency): Check hot/cold attributes.
15945 * function.h (function_frequency): Update comments.
15946 * predict.def (PRED_COLD_FUNCTION): Predict cold function.
15947 * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
15948 (c_common_att): Add cold and hot.
15949
15950 * doc/extend.texi (hot,cold attributes): Document.
15951
15952 2007-03-06 Andrew Haley <aph@redhat.com>
15953
15954 * function.c (expand_function_end): Move blockage to just after we
15955 emit the label for the naked return from the function.
15956
15957 2007-03-06 Richard Sandiford <richard@codesourcery.com>
15958
15959 * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
15960 before redefining.
15961
15962 2007-03-06 Jan Hubicka <jh@suse.cz>
15963
15964 * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
15965 loaded for constant large models. Non-large 64bit PIC can do.
15966 * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
15967 * cmodel.h: Add LARGE PIC.
15968 * i386.md (UNSPEC_PLTOFF): New.
15969 (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other
15970 unspecs as needed.
15971 (*call_1_rex64): Disable for large models.
15972 (*call_1_rex64_large): New.
15973 (*call_value_1_rex64): Disable for large models.
15974 (*call_value_1_rex64_large): New.
15975 (set_rip_rex4): New.
15976 (set_got_offset_rex64): New.
15977 * predicates.md (constant_call_address_operand): For large model
15978 constant calls are not possible.
15979 * i386-protos.h (construct_plt_address): Declare.
15980 * i386.c (override_options): Accept large models.
15981 (ix86_expand_prologue): Expand large PIC GOT pointer load.
15982 (legitimate_constant_p): Add new UNSPECs.
15983 (legitimate_pic_operand_p): Likewise.
15984 (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
15985 (legitimize_pic_address): Do easy RIP relative way for TLS only for
15986 non-large model.
15987 (output_pic_addr_const): Add PLTOFF.
15988 (ix86_output_addr_diff_elt): Output 64bit tables when needed.
15989 (ix86_expand_move): Legitimize pic address when in PIC mode.
15990 (construct_plt_address): New function.
15991 (ix86_expand_call): Offload the address to register and use GOT
15992 pointer for large model.
15993 * invoke.texi (mcmodel=large): Update documentation.
15994
15995 2007-03-06 Richard Henderson <rth@redhat.com>
15996
15997 * config/i386/i386.c (x86_use_leave, x86_push_memory,
15998 x86_zero_extend_with_and, x86_movx, x86_double_with_add,
15999 x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
16000 x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
16001 x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
16002 x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
16003 x86_split_long_moves, x86_promote_QImode, x86_fast_prefix,
16004 x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
16005 x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
16006 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
16007 x86_partial_reg_dependency, x86_memory_mismatch_stall,
16008 x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
16009 x86_sse_partial_reg_dependency, x86_sse_split_regs,
16010 x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
16011 x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
16012 x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
16013 x86_schedule, x86_use_bt, x86_pad_returns,
16014 x86_use_xchgb): Merge into ...
16015 (ix86_tune_features): ... here. New array.
16016 (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
16017 x86_bswap): Merge into ...
16018 (ix86_arch_features): ... here. New array.
16019 (x86_3dnow_a): Remove.
16020 (x86_accumulate_outgoing_args): Make static.
16021 (x86_arch_always_fancy_math_387): Make static.
16022 (ix86_tune_mask, ix86_arch_mask): Move ...
16023 (override_options): ... to local variables here. Apply the
16024 appropriate mask to each element of ix86_arch_features and
16025 ix86_tune_features. Adjust TARGET_CMOVE and TARGET_USE_SAHF
16026 as were done in the old macros.
16027 (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
16028 * config/i386/i386.h (x86_use_leave, x86_push_memory,
16029 x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
16030 x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
16031 x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
16032 x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
16033 x86_read_modify_write, x86_read_modify, x86_split_long_moves,
16034 x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
16035 x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
16036 x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
16037 x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
16038 x86_partial_reg_dependency, x86_memory_mismatch_stall,
16039 x86_accumulate_outgoing_args, x86_prologue_using_move,
16040 x86_epilogue_using_move, x86_decompose_lea,
16041 x86_arch_always_fancy_math_387, x86_shift1,
16042 x86_sse_partial_reg_dependency, x86_sse_split_regs,
16043 x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
16044 x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
16045 x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
16046 x86_use_incdec, x86_pad_returns, x86_bswap,
16047 x86_partial_flag_reg_stall): Remove.
16048 (enum ix86_tune_indices): New.
16049 (ix86_tune_features): New.
16050 (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
16051 TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
16052 TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
16053 TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
16054 TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
16055 TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
16056 TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
16057 TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
16058 TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
16059 TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
16060 TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
16061 TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
16062 TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
16063 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
16064 TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
16065 TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
16066 TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
16067 TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
16068 TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
16069 TARGET_EXT_80387_CONSTANTS): Use it.
16070 (enum ix86_arch_indices): New.
16071 (ix86_arch_features): New.
16072 (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
16073 TARGET_BSWAP): Use it.
16074 (ix86_tune_mask, ix86_arch_mask): Remove.
16075
16076 2007-03-06 Joseph Myers <joseph@codesourcery.com>
16077
16078 PR bootstrap/31020
16079 * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
16080 Define using $${sysroot_headers_suffix}.
16081 * configure: Regenerate.
16082 * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
16083 multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
16084 defined.
16085 * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
16086 * gcc.c (print_sysroot_headers_suffix): New.
16087 (option_map): Include --print-sysroot-headers-suffix.
16088 (display_help): Mention -print-sysroot-headers-suffix.
16089 (process_command): Handle -print-sysroot-headers-suffix.
16090 (do_spec_1): Append multilib directory to include-fixed path if
16091 sysroot suffixes in use.
16092 (main): Handle -print-sysroot-headers-suffix.
16093 * Makefile.in (start.encap): Don't depend on xlimits.h
16094 (xlimits.h): Remove.
16095 (stmp-int-hdrs): Don't depend on xlimits.h. Inline generation of
16096 limits.h for each multilib in fixinc_list.
16097 (fixinc_list, s-fixinc_list): New.
16098 (stmp-fixinc): Depend on fixinc_list. If not copying headers,
16099 generate them for each multilib in fixinc_list.
16100 (stmp-fixproto): Use include-fixed. Run fixproto for each
16101 multilib in fixinc_list.
16102 (mostlyclean): Don't remove xlimits.h.
16103 (clean): Remove include-fixed.
16104 (real-install-headers-tar, real-install-headers-cpio,
16105 real-install-headers-cp): Don't copy include, only include-fixed.
16106 (install-mkheaders): Depend on fixinc_list. Don't depend on
16107 xlimits.h. Save limits.h files for each multilib in fixinc_list.
16108 Always save mkinstalldirs. Preserve ${sysroot_headers_suffix} in
16109 SYSTEM_HEADER_DIR setting in mkheaders.conf.
16110
16111 2007-03-06 Jan Hubicka <jh@suse.cz>
16112
16113 * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
16114 NANs easilly.
16115
16116 2007-03-06 Richard Sandiford <richard@codesourcery.com>
16117
16118 * configure.ac: Allow tm_file to contain build-directory files.
16119 * configure: Regenerate.
16120 * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
16121 * config/m68k/t-uclinux (sysroot-suffix.h): New target.
16122 * config/m68k/print-sysroot-suffix.sh: New file.
16123
16124 2007-03-06 Richard Sandiford <richard@codesourcery.com>
16125
16126 * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
16127 of pic_offset_table_rtx if reload_completed.
16128 (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
16129 PIC_OFFSET_TABLE_REGNUM.
16130 * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
16131 return true.
16132 (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
16133 (m68k_output_mi_thunk): Rewrite to use RTL. Honor vcall_offset.
16134
16135 2007-03-06 Richard Sandiford <richard@codesourcery.com>
16136
16137 * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
16138 functions that call eh_return.
16139
16140 2007-03-06 Richard Sandiford <richard@codesourcery.com>
16141
16142 * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
16143 functions that need a constant pool.
16144
16145 2007-03-06 Richard Sandiford <richard@codesourcery.com>
16146
16147 PR target/28181
16148 * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
16149 (m68k_preferred_reload_class): Likewise.
16150 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
16151 (SECONDARY_RELOAD_CLASS): Define.
16152 (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
16153 (LIMIT_RELOAD_CLASS): Delete.
16154 * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
16155 registers from storing bytes.
16156 (m68k_secondary_reload_class): New function.
16157 (m68k_preferred_reload_class): Likewise.
16158
16159 2007-03-06 Richard Sandiford <richard@codesourcery.com>
16160
16161 * config/m68k/m68k.c (m68k_save_reg): Remove special case for
16162 leaf functions.
16163 (m68k_expand_prologue): Likewise.
16164
16165 2007-03-06 Richard Sandiford <richard@codesourcery.com>
16166
16167 * config/m68k/m68k-protos.h (output_sibcall): Declare.
16168 (mips_expand_epilogue): Add a bool parameter.
16169 (m68k_legitimize_sibcall_address): Declare.
16170 * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
16171 (m68k_expand_epilogue): Add a parameter to select between sibling
16172 and normal epilogues. Only generate a return for the latter.
16173 (m68k_ok_for_sibcall_p): New function.
16174 (m68k_legitimize_sibcall_address, output_sibcall): New functions.
16175 * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
16176 (sibcall_value, *sibcall_value): Likewise.
16177 (*call, *call_value): Require !SIBLING_CALL_P.
16178 (epilogue): Update call to m68k_expand_epilogue.
16179 (sibcall_epilogue): New pattern.
16180 * config/m68k/predicates.md (const_call_operand): Say that this
16181 predicate applies to sibling calls too.
16182 (sibcall_operand): New predicate.
16183
16184 2007-03-06 Richard Sandiford <richard@codesourcery.com>
16185
16186 * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
16187 alternatives as movsi_cf.
16188 (movsf_cf_hard): Add commentary.
16189
16190 2007-03-06 Kazu Hirata <kazu@codesourcery.com>
16191 Richard Sandiford <richard@codesourcery.com>
16192
16193 * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
16194 (m68k_movem_pattern_p, m68k_output_movem): Likewise.
16195 (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
16196 * config/m68k/m68k.h (EPILOGUE_USES): Define. Treat all registers
16197 as being live on exit from an interrupt function.
16198 (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
16199 * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
16200 (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
16201 (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
16202 (m68k_interrupt_function_p): Globalize.
16203 (m68k_compute_frame_layout): Remove reverse mask code.
16204 (m68k_emit_movem, m68k_set_frame_related): New functions.
16205 (m68k_output_function_prologue): Delete in favor of...
16206 (m68k_expand_prologue): ...this new function.
16207 (m68k_output_function_epilogue): Delete in favor of...
16208 (m68k_expand_epilogue): ...this new function.
16209 (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
16210 functions.
16211 (print_operand): Handle %?.
16212 * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
16213 (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
16214 (prologue, epilogue): New patterns.
16215 (return): Turn into a define_expand.
16216 (*return): New pattern, derived from old "return" pattern. Use rte
16217 rather than rts for interrupt functions. Only use rtd if the pop
16218 count is nonzero.
16219 (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
16220 (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
16221 (link, *link, unlink, *unlink, load_got): Likewise.
16222
16223 2007-03-06 Richard Sandiford <richard@codesourcery.com>
16224
16225 PR target/23482
16226 PR target/17114
16227 * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
16228 (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
16229 (m68k_matches_q_p, m68k_matches_u_p): Likewise.
16230 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
16231 and m68k_matches_u_p.
16232 (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
16233 (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
16234 (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
16235 (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
16236 (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
16237 (REG_STRICT_P): New macro.
16238 (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
16239 PCREL_GENERAL_OPERAND_OK.
16240 (REG_OK_FOR_BASE_P): Merge definitions. Use REG_STRICT_P and
16241 m68k_legitimate_base_reg_p.
16242 (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
16243 (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
16244 (PIC_CASE_VECTOR_ADDRESS): Update comment.
16245 * config/m68k/m68k.c (m68k_address): New structure.
16246 (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
16247 (m68k_decompose_index, m68k_legitimate_constant_address_p)
16248 (m68k_jump_table_ref_p, m68k_decompose_address)
16249 (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
16250 (m68k_matches_u_p): New functions.
16251 (print_operand_address): Rewrite to use m68k_decompose_index.
16252
16253 2007-03-05 David Taylor <dtaylor@emc.com>
16254
16255 * gcc.c: Correct copyright date in --version output.
16256
16257 2007-03-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16258
16259 * pa.md: In unamed move patterns, disparge copies between general
16260 and floating point registers using '?' modifier. Don't include 'f'
16261 constraint for register preferences in DImode, SImode, HImode and
16262 QImode patterns. Likewise for 'r' in DFmode and SFmode patterns.
16263 Remove constraints for copies between general and floating registers
16264 in soft-float DFmode pattern.
16265 (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
16266 floating register.
16267 (movsf): Likewise.
16268
16269 2007-03-05 Mike Stump <mrs@apple.com>
16270
16271 * c-common.c (targetcm): Add.
16272 * c-opts.c (c_common_handle_option): Handle language specific
16273 target options.
16274 * opts.c (handle_option): Verify language for target options, if
16275 any are given.
16276 * opth-gen.awk: Add CL_LANG_ALL.
16277 * target-def.h (TARGET_HANDLE_C_OPTION): Add.
16278 (TARGETCM_INITIALIZER): Add.
16279 * target.h (struct gcc_targetcm): Add.
16280 (targetcm): Add.
16281 * targhooks.c (default_handle_c_option): Add.
16282 * targhooks.h (default_handle_c_option): Add.
16283 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
16284
16285 * config/darwin.opt (iframework): Add.
16286 * config/darwin.h (TARGET_HAS_TARGETCM): Add.
16287 * config/darwin-c.c (handle_c_option): Add.
16288 (TARGET_HANDLE_C_OPTION): Add.
16289 (targetcm): Add.
16290 * doc/invoke.texi (Darwin Options): Add -iframework.
16291
16292 2007-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16293
16294 * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
16295 conversion.
16296
16297 2007-03-05 Ian Lance Taylor <iant@google.com>
16298
16299 * c.opt (fgnu89-inline): New option.
16300 * c-opts.c (c_common_post_options): Set default value for
16301 flag_gnu89_inline.
16302 * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
16303 (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
16304 inline functions.
16305 (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
16306 (grokdeclarator, start_function): Likewise.
16307 * c-cppbuiltin.c (c_cpp_builtins): Define either
16308 __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
16309 * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
16310 (C Dialect Options): Document -fgnu89-inline.
16311 * doc/extend.texi (Function Attributes): Explain what the
16312 gnu_inline attribute does.
16313 * doc/cpp.texi (Common Predefined Macros): Document
16314 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
16315
16316 2007-03-05 Ian Lance Taylor <iant@google.com>
16317
16318 PR tree-optimization/31034
16319 * tree-vrp.c (extract_range_from_assert): Don't try to handle a
16320 half-range if the other side is an overflow infinity.
16321
16322 2007-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
16323
16324 * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
16325 (bfin*-linux-uclibc*): New configuration.
16326 * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
16327 defining.
16328 * config/bfin/linux.h: New file.
16329 * config/bfin/libgcc-bfin.ver: New file.
16330 * config/bfin/t-bfin-uclinux: New file.
16331 * config/bfin/t-bfin-linux: New file.
16332 * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
16333 (TARGET_OS_CPP_BUILTINS): New macro.
16334
16335 2007-03-05 Richard Guenther <rguenther@suse.de>
16336
16337 * fold-const.c (fold_binary): Remove duplicate folding
16338 of comparison of non-null ADDR_EXPR against null.
16339
16340 2007-03-05 Richard Guenther <rguenther@suse.de>
16341 Dorit Nuzman <dorit@il.ibm.com>
16342
16343 PR tree-optimization/26420
16344 * tree-vectorizer.c (vectorize_loops): Bail out early if there
16345 are no loops in the function. Only print the number of
16346 vectorized loops if it is greater than zero or we are supposed
16347 to print information about unvectorized loops.
16348
16349 2007-03-05 Revital Eres <eres@il.ibm.com>
16350
16351 * gcc.dg/var-expand1.c: New test.
16352 * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
16353 when an accumulator is expanded.
16354
16355 2007-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16356
16357 PR other/30465
16358 * c-common.c (convert_and_check): Don't give warnings for
16359 conversion if 'expr' already overflowed.
16360
16361 2007-03-04 Roger Sayle <roger@eyesopen.com>
16362
16363 PR middle-end/30744
16364 * fold-const.c (fold_comparison): Enforce type consistency when
16365 transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.
16366
16367 2007-03-04 Zdenek Dvorak <dvorakz@suse.cz>
16368
16369 * tree-ssa-address.c (create_mem_ref): Do not put an expression
16370 containing a cast to the base of TARGET_MEM_REF.
16371
16372 2007-03-04 Martin Michlmayr <tbm@cyrius.com>
16373
16374 * tree.c (tree_contains_struct_check_failed): Remove spurious
16375 whitespace from error message.
16376
16377 2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
16378
16379 PR target/30406
16380 * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
16381 instead of precision.
16382
16383 2007-03-04 Roman Zippel <zippel@linux-m68k.org>
16384 Nathan Sidwell <nathan@codesourcery.com>
16385
16386 * emit-rtl.c (find_auto_inc): New.
16387 (try_split): recreate REG_INC notes,
16388 Use regular for loops rather than whiles.
16389
16390 2007-03-03 Andreas Schwab <schwab@suse.de>
16391
16392 * configure.ac (HAVE_AS_REL16): Move test back to correct place.
16393 * configure: Regenerate.
16394
16395 2007-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16396
16397 * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
16398 flag_rounding_math, not flag_unsafe_math_optimizations.
16399
16400 * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
16401 fold_build2.
16402 * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
16403 alpha_fold_vector_minmax): Likewise.
16404 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
16405 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
16406
16407 2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
16408
16409 * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
16410 (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
16411 if the lhs has side-effects.
16412 <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
16413
16414 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
16415
16416 * config/i386/i386.h (TUNEMASK): Remove define.
16417 (ARCHMASK): Remove define.
16418 (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
16419 Use ix86_arch_mask variable instead of ARCHMASK.
16420 * config/i386/i386.c (override_options): Ditto.
16421 (standard_80387_constant_p): Ditto.
16422
16423 2007-03-02 Ian Lance Taylor <iant@google.com>
16424
16425 Used signed infinities in VRP.
16426 * tree-vrp.c (uses_overflow_infinity): New static function.
16427 (supports_overflow_infinity): New static function.
16428 (make_overflow_infinity): New static function.
16429 (negative_overflow_infinity): New static function.
16430 (positive_overflow_infinity): New static function.
16431 (is_negative_overflow_infinity): New static function.
16432 (is_positive_overflow_infinity): New static function.
16433 (is_overflow_infinity): New static function.
16434 (overflow_infinity_range_p): New static function.
16435 (compare_values_warnv): New function split out of compare_values.
16436 (compare_value): Call it.
16437 (set_value_range_to_nonnegative): Add overflow_infinity
16438 parameter. Change caller.
16439 (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
16440 Change callers.
16441 (vrp_expr_computes_nonzero): Likewise.
16442 (compare_ranges, compare_range_with_value): Likewise.
16443 (compare_name_with_value, compare_names): Likewise.
16444 (vrp_evaluate_conditional): Likewise.
16445 (set_value_range): Handle infinity
16446 (vrp_operand_equal_p, operand_less_p): Likewise.
16447 (extract_range_from_assert): Likewise.
16448 (vrp_int_const_binop): Likewise.
16449 (extract_range_from_binary_expr): Likewise.
16450 (extract_range_from_unary_expr): Likewise.
16451 (extract_range_from_comparison): Likewise.
16452 (extract_range_from_expr): Likewise.
16453 (dump_value_range): Likewise.
16454 (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
16455 (test_for_singularity): Likewise.
16456 (vrp_int_const_binop): Remove inline qualifier.
16457 (adjust_range_with_scev): Add comment.
16458 * tree-flow.h (vrp_evaluate_conditional): Update declaration.
16459
16460 2007-03-02 Diego Novillo <dnovillo@redhat.com>
16461
16462 * tree-ssa-structalias.c (could_have_pointers): Tidy.
16463 (get_constraint_for): Likewise.
16464 (do_structure_copy): Likewise.
16465 (find_func_aliases): Fix references to MODIFY_EXPR.
16466 (intra_create_variable_infos): Tidy.
16467 * tree-ssa-operands.c (add_virtual_operand): Add argument
16468 IS_CALL_SITE.
16469 When adding members of alias sets, if IS_CALL_SITE is true and
16470 the symbol is not call-clobbered, skip it.
16471 Adjust all callers.
16472
16473 2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
16474
16475 * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
16476 entry by means of emit_insn_at_entry.
16477
16478 2007-03-02 Richard Henderson <rth@redhat.com>
16479
16480 * expr.h (promoted_input_arg): Remove decl.
16481 * function.c (promoted_input_arg): Merge into ...
16482 * combine.c (setup_incoming_promotions): ... only caller.
16483 Rearrange to avoid double loop.
16484
16485 2007-03-02 Ben Elliston <bje@au.ibm.com>
16486 Peter Bergner <bergner@vnet.ibm.com>
16487 Janis Johnson <janis187@us.ibm.com>
16488
16489 * config/rs6000/dfp.md: New file.
16490 * config/rs6000/rs6000.md: Include dfp.md.
16491 (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
16492 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
16493 and TDmode decimal float modes in FP registers.
16494 (num_insns_constant): Likewise.
16495 (rs6000_legitimate_offset_address_p): Likewise.
16496 (rs6000_legitimize_address): Likewise.
16497 (rs6000_legitimize_reload_address): Likewise.
16498 (rs6000_legitimate_address): Likewise.
16499 (rs6000_emit_move): Likewise.
16500 (function_arg_boundary): Likewise.
16501 (function_arg_advance): Likewise.
16502 (rs6000_darwin64_record_arg_recurse): Likewise.
16503 (function_arg): Likewise.
16504 (rs6000_gimplify_va_arg): Likewise.
16505 (rs6000_split_multireg_move): Likewise.
16506 (rs6000_output_function_epilogue): Likewise.
16507 (rs6000_output_function_epilogue): Likewise.
16508 (rs6000_register_move_cost): Likewise.
16509 (rs6000_function_value): Likewise.
16510 (rs6000_libcall_value): Likewise.
16511
16512 2007-03-02 Richard Sandiford <richard@codesourcery.com>
16513
16514 * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
16515
16516 2007-03-02 Richard Sandiford <richard@codesourcery.com>
16517
16518 * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
16519 Use $MULTIDIR to choose between the kernel and RTP headers,
16520 and use $WIND_BASE and $WIND_USR to locate them.
16521
16522 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
16523
16524 * config/i386/i386.c (override_options): Put initialization of
16525 ix86_tune_mask and ix86_arch_mask to the correct place.
16526
16527 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
16528 Michael Meissner <michael.meissner@amd.com>
16529
16530 PR target/31019
16531 * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
16532 (ARCHMASK): Define.
16533 (TARGET_CMOVE): Use ARCHMASK.
16534 (TARGET_CMPXCHG): Ditto.
16535 (TARGET_CMPXCHG8B): Ditto.
16536 (TARGET_XADD): Ditto.
16537 (TARGET_BSWAP): Ditto.
16538 * config/i386/i386.c (ix86_tune_mask): New global variable.
16539 (ix86_arch_mask): Ditto.
16540 (override_options): Initialize ix86_tune_mask and
16541 ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
16542 target_flags.
16543
16544 2007-03-02 Ben Elliston <bje@au.ibm.com>
16545
16546 PR 30992
16547 * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
16548
16549 2007-03-02 Joseph Myers <joseph@codesourcery.com>
16550
16551 * target.h (init_dwarf_reg_sizes_extra): New target hook.
16552 * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
16553 * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
16554 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
16555 hook.
16556 * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
16557 rs6000_init_dwarf_reg_sizes_extra): New.
16558 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
16559 SPE register high parts.
16560
16561 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
16562
16563 * Makefile.in: Add install-pdf target as
16564 copied from automake v1.10 rules.
16565 * configure.ac: Add install-pdf to target list.
16566 * configure: Regenerate.
16567
16568 2007-03-01 Paul Brook <paul@codesourcery.com>
16569
16570 * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
16571 modes to LDRD for DImode.
16572 (output_move_double): Fixup out of range ldrd/strd.
16573 (vfp_secondary_reload_class): Rename...
16574 (coproc_secondary_reload_class): ... to this. Add wb argument.
16575 * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
16576 coproc_secondary_reload_class for CLASS_IWMMXT.
16577 (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
16578 * arm-protos.h (coproc_secondary_reload_class): Update prototype.
16579
16580 2007-03-01 Zdenek Dvorak <dvorakz@suse.cz>
16581
16582 * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the
16583 unroll factor by the estimated number of iterations.
16584 (loop_prefetch_arrays): Do not prefetch in loops that iterate less
16585 than prefetch latency.
16586
16587 * config/i386/driver-i386.c (describe_cache, detect_caches_amd,
16588 decode_caches_intel, detect_caches_intel): New functions.
16589 (host_detect_local_cpu): Use detect_caches_amd and
16590 detect_caches_intel.
16591
16592 2007-03-01 Richard Henderson <rth@redhat.com>
16593
16594 * expr.c (emit_move_complex_push): Export.
16595 (emit_move_complex_parts): Split out from ...
16596 (emit_move_complex): ... here.
16597 * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
16598 * config/i386/i386.md (movcdi): New.
16599
16600 2007-03-01 Uros Bizjak <ubizjak@gmail.com>
16601
16602 * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
16603 size of mode1 to check for tieable modes in MMX case.
16604
16605 2007-03-01 Richard Sandiford <richard@codesourcery.com>
16606
16607 * Makefile.in (rtlanal.o): Depend on tree.h.
16608 * rtl.h (offset_within_section_p, split_const): Declare.
16609 * rtlanal.c: Include tree.h.
16610 (offset_within_block_p): New function, taken from
16611 mips_offset_within_object_p.
16612 (split_const): New function, taken from mips_split_const.
16613 * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
16614 Declare.
16615 * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
16616 (CONSTANT_ADDRESS_P): Only accept legitimate constants.
16617 (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
16618 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
16619 (m68k_illegitimate_symbolic_constant_p): New function.
16620 * config/m68k/m68k.md (movsi): Remove misleading predicates.
16621 If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
16622 symbolic constant that might be outside the symbol's section,
16623 move the symbol first and then add the offset.
16624 * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
16625 Override.
16626 * config/mips/mips.c (mips_split_const): Delete.
16627 (mips_offset_within_object_p): Delete.
16628 (mips_symbolic_constant_p): Use offset_within_section_p and
16629 split_const instead of mips_offset_within_object_p and
16630 mips_split_const.
16631 (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
16632 (mips_legitimize_const_move, print_operand_reloc)
16633 (mips_dangerous_for_la25_p): Use split_const instead of
16634 mips_split_const.
16635
16636 2007-02-28 Eric Christopher <echristo@apple.com>
16637
16638 * Makefile.in (install-include-dir): Don't rm -rf include.
16639
16640 2007-02-28 Richard Guenther <rguenther@suse.de>
16641
16642 PR middle-end/30364
16643 * fold-const.c (fold_binary): Do not associate expressions
16644 with more than one variable for integer types that do not wrap.
16645
16646 2007-02-28 Sandra Loosemore <sandra@codesourcery.com>
16647
16648 * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
16649 Delete, and replace with...
16650 (fold_builtin_call_array): This. Update callers to use it.
16651 * fold-const.c (fold_build_call_list): Delete, and replace with...
16652 (fold_build_call_array): This.
16653 (fold_build_call_list_initializer): Delete, and replace with...
16654 (fold_build_call_array_initializer): This.
16655 * tree.h: Update declarations to reflect above changes.
16656
16657 * c-typeck.c (build_function_call): Store converted arguments
16658 in a stack-allocated array instead of building a list.
16659 (convert_arguments): Store arguments in the array passed in as an
16660 argument, and return the actual number of arguments.
16661 * c-format.c: (check_function_format): Pass arguments in an
16662 array instead of a list.
16663 * c-common.c (check_function_nonnull): Likewise.
16664 (check_function_sentinel): Likewise.
16665 (check_function_arguments): Likewise.
16666 * c-common.h: Update declarations to reflect above changes.
16667
16668 2007-02-28 Jan Hubicka <jh@suse.cz>
16669
16670 * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
16671 PRED_NEGATIVE_RETURN): Update outcomes.
16672
16673 2007-02-28 Bernd Schmidt <bernd.schmidt@analog.com>
16674
16675 * calls.c (emit_library_call_value_1): Handle partial registers
16676 correctly when building up CALL_INSN_FUNCTION_USAGE.
16677
16678 2007-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16679
16680 * pa/predicates.md (move_src_operand): Allow zero for mode.
16681 * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
16682 move pattern.
16683
16684 2007-02-27 Uros Bizjak <ubizjak@gmail.com>
16685
16686 PR target/30970
16687 * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
16688 *movv2df_internal): Enable pattern only for valid operand
16689 combinations.
16690 * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
16691 tie only 128bit modes. For MMX registers, tie only 64bit modes.
16692
16693 2007-02-27 Mike Stump <mrs@apple.com>
16694
16695 * config/darwin-crt3.c: Avoid compilation when compiling for a
16696 kext multilib.
16697
16698 2007-02-27 Joseph Myers <joseph@codesourcery.com>
16699
16700 * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
16701 FIXED_INCLUDE_DIR.
16702 (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
16703 for fixed headers and limits.h.
16704 (install-include-dir, install-headers-tar, install-headers-cpio,
16705 install-headers-cp, real-install-headers-tar,
16706 real-install-headers-cpio, real-install-headers-cp): Handle
16707 include-fixed as well as include.
16708 (install-mkheaders): Don't install files that go only in include
16709 not include-fixed.
16710 * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
16711 from GCC_INCLUDE_DIR.
16712 * gcc.c (process_command): Remove special -BstageN/ handling.
16713 (do_spec_1): Add include-fixed directories.
16714
16715 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
16716
16717 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
16718 _smulsi3_highpart.
16719 * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
16720 New functions.
16721 * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
16722 patterns.
16723
16724 2007-02-27 Mark Mitchell <mark@codesourcery.com>
16725
16726 * c-common.c (get_priority): Add check for
16727 SUPPORTS_INIT_PRIORITY.
16728
16729 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
16730
16731 * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
16732
16733 * config/bfin/bfin.c: Include "cfglayout.h".
16734 (MAX_LSETUP_DISTANCE): New macro.
16735 (struct loop_info): New members incoming, incoming_src and
16736 incoming_dest. Delete member predecessor.
16737 (length_for_loop): New function.
16738 (bfin_optimize_loop): Handle more different loop structures.
16739 (bfin_discover_loop): Rework detection of predecessor blocks by
16740 examining incoming edges.
16741 (bfin_discover_loops, bfin_free_loops): New functions, broken out of
16742 bfin_reorg_loops.
16743 (bfin_reorder_loops): New function.
16744 (bfin_reorg_loops): Use these three new functions.
16745
16746 * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
16747 REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
16748 (CONSTRAINT_LEN): Add entry for 'q'.
16749 (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
16750 Add 'q' constraints.
16751 (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
16752 (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
16753
16754 * config/bfin/bfin.md (add_with_carry): New pattern.
16755 (s_or_u, su_optab, su_modifier): New code macros/attrs.
16756 (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
16757 <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
16758 support unsigned multiplies too. Removed incorrect commutativity from
16759 operand 1 constraint where appropriate.
16760 (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
16761 patterns.
16762 (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
16763 <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
16764 New patterns.
16765 (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
16766 usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
16767 usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
16768 usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
16769 usmulhisi_hh_huh): New patterns.
16770
16771 * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
16772 lshifthi3): Fix output template to use half reg for operand 2.
16773
16774 * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
16775 instead of R2.
16776
16777 * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
16778
16779 2007-02-27 Andreas Schwab <schwab@suse.de>
16780
16781 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
16782
16783 2007-02-27 Jan Hubicka <jh@suse.cz>
16784
16785 * predict.c (last_basic_block_p): Remove.
16786 (tree_estimate_probability): Update return heuristic for commonized
16787 return blocks.
16788
16789 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
16790
16791 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
16792
16793 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
16794
16795 * doc/include/gcc-common.texi (versionsubtitle): New macro.
16796 * doc/cpp.texi: Standardize title page.
16797 * doc/cppinternals.texi: Likewise.
16798 * doc/gcc.texi: Standardize title page, remove version number
16799 from copyright page.
16800 * doc/gccint.texi: Likewise.
16801 * doc/install.texi: Standardize title page, add table of
16802 contents.
16803
16804 2007-02-26 Jan Hubicka <jh@suse.cz>
16805
16806 * predict.def: Set outcomes according to more recent results.
16807 (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
16808 Remove dead predictors.
16809 * predict.c (return_prediction): Fix pasto.
16810
16811 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
16812
16813 * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
16814 change; avoid a memory leak when returning early.
16815
16816 2007-02-26 Mark Mitchell <mark@codesourcery.com>
16817
16818 * c-decl.c (static_ctors): Move to c-common.c.
16819 (static_dtors): Likewise.
16820 (finish_function): Use c_record_cdtor_fn.
16821 (build_cdtor): Move to c-common.c.
16822 (c_write_global_declarations): Use c_build_cdtor_fns.
16823 * c-common.h (static_ctors): Declare.
16824 (static_dtors): Likewise.
16825 (c_record_cdtor_fn): Likewise.
16826 (c_build_cdtor_fns): Likewise.
16827 * c-common.c (static_ctors): New variable.
16828 (static_dtors): Likewise.
16829 (c_record_cdtor_fn): New function.
16830 (build_cdtor): Move from c-decl.c
16831 (c_build_cdtor_fns): New function.
16832
16833 * output.h (assemble_addr_to_section): Declare.
16834 (get_cdtor_priority_section): Likewise.
16835 * varasm.c (assemble_addr_to_section): New function.
16836 (get_cdtor_priority_section): Likewise.
16837 (default_named_section_asm_out_destructor): Use them.
16838 (destor_dtor_section_asm_out_destructor): Likewise.
16839 (default_named_section_asm_out_constructor): Likewise.
16840 (default_ctor_section_asm_out_constructor): Likewise.
16841 * config.gcc (*-*-vxworks*): Include vxworks.o.
16842 * config/t-vxworks (vxworks.o): New target.
16843 * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
16844 (TARGET_ASM_CONSTRUCTOR): Define.
16845 (TARGET_ASM_DESTRUCTOR): Likewise.
16846 (vxworks_asm_out_constructor): Declare.
16847 (vxworks_asm_out_destructor): Likewise.
16848
16849 * c-common.c (get_priority): Check that we have not just an
16850 INTEGER_CST, but an integer constant with integeral type.
16851
16852 2007-02-25 Uros Bizjak <ubizjak@gmail.com>
16853
16854 PR tree-optimization/30938
16855 * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
16856 use &dt[nargs-1] instead of &dt[nargs] in the call to
16857 vect_is_simple_use().
16858
16859 2007-02-25 Ulrich Weigand <uweigand@de.ibm.com>
16860
16861 * reload.c (find_reloads_address_1): Handle PLUS expressions resulting
16862 from register elimination as PRE_MODIFY / POST_MODIFY increments.
16863 Do not attempt to handle MEM inside auto-inc expressions.
16864 * reload1.c (eliminate_regs_1): Do not attempt to handle elimination
16865 of a register modified by an auto-inc expression. However, do handle
16866 elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
16867 (elimination_effects): Prohibit elimination of a register modified
16868 by an auto-inc expression. Disable register elimination rules whose
16869 target register is modified by an auto-inc expression with variable
16870 increment.
16871
16872 2007-02-25 Zdenek Dvorak <dvorakz@suse.cz>
16873
16874 * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
16875 off-by-one error.
16876 (array_at_struct_end_p): New function.
16877 (idx_infer_loop_bounds): Use it.
16878 (estimate_numbers_of_iterations_loop): Export.
16879 * predict.c (predict_loops): Use estimated_loop_iterations_int.
16880 Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
16881 (tree_estimate_probability): Call record_loop_exits.
16882 * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
16883 (estimated_loop_iterations, estimated_loop_iterations_int,
16884 estimated_loop_iterations_tree): New functions.
16885 (analyze_siv_subscript_cst_affine,
16886 compute_overlap_steps_for_affine_1_2,
16887 analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
16888 (analyze_miv_subscript): Use estimated_loop_iterations_tree.
16889 * predict.def (PRED_LOOP_ITERATIONS): Update comment.
16890 (PRED_LOOP_ITERATIONS_GUESSED): New.
16891 * cfgloop.c (record_loop_exits): Do nothing if there are no loops.
16892 * cfgloop.h (estimate_numbers_of_iterations_loop,
16893 estimated_loop_iterations_int): Declare.
16894
16895 2007-02-25 Mark Mitchell <mark@codesourcery.com>
16896
16897 * doc/extend.texi: Document optional priority argument to
16898 constructors and destructors.
16899 * tree.c (init_priority_for_decl): Adjust GTY markers.
16900 (init_ttree): Use priority-info hash functions for
16901 init_priority_for_decl.
16902 (tree_map_eq): Rename to ...
16903 (tree_map_base_eq): ... this.
16904 (tree_map_marked_p): Rename to ...
16905 (tree_map_base_marked_p): ... this.
16906 (tree_map_base_hash): New function.
16907 (decl_init_priority_lookup): Rework.
16908 (decl_fini_priority_lookup): New function.
16909 (decl_priority_info): New function.
16910 (decl_init_priority_insert): Use it.
16911 (decl_fini_priority_insert): Likewise.
16912 (decl_restrict_base_lookup): Adjust for refactoring of tree_map
16913 hierarchy.
16914 (decl_restrict_base_insert): Likewise.
16915 (decl_debug_expr_insert): Likewise.
16916 (decl_value_expr_lookup): Likewise.
16917 (decl_value_expr_insert): Likewise.
16918 * tree.h (priority_type): New type.
16919 (decl_init_priority_lookup): Use priority_type.
16920 (decl_fini_priority_lookup): New function.
16921 (decl_init_priority_insert): Use priority_type.
16922 (decl_fini_priority_insert): New function.
16923 (DECL_HAS_INIT_PRIORITY): Tweak comments.
16924 (DECL_INIT_PRIORITY): Likewise.
16925 (SET_DECL_INIT_PRIORITY): Add comment.
16926 (DECL_FINI_PRIORITY): New macro.
16927 (SET_DECL_FINI_PRIORITY): Likewise.
16928 (DEFAULT_INIT_PRIORITY): Document.
16929 (MAX_INIT_PRIORITY): Likewise.
16930 (MAX_RESERVED_INIT_PRIORITY): Likewise.
16931 (tree_map_base): New type.
16932 (tree_map_base_eq): New function.
16933 (tree_map_base_hash): Likewise.
16934 (tree_map_base_marked_p): Likewise.
16935 (tree_map): Inherit from tree_map_base.
16936 (tree_map_eq): Make it a macro.
16937 (tree_map_marked_p): Likewise.
16938 (tree_int_map): Inherit from tree_map_base.
16939 (tree_int_map_eq): Make it a macro.
16940 (tree_int_map_hash): Likewise.
16941 (tree_int_map_marked_p): Likewise.
16942 (tree_priority_map): New type.
16943 (tree_priority_map_eq): New macro.
16944 (tree_priority_map_hash): Likewise.
16945 (tree_priority_map_marked_p): Likewise.
16946 * varasm.c (emults_decl): Adjust for refactoring of tree_map
16947 hierarchy.
16948 (emutls_common_1): Likewise.
16949 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
16950 * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
16951 of tree_map hierarchy.
16952 * tree-cfg.c (move_stmt_r): Likewise.
16953 (new_label_mapper): Likewise.
16954 * c-tree.h (c_expand_body): Move to ...
16955 * c-common.h (c_expand_body): ... here.
16956 * c-decl.c (c_expand_body): Move to ...
16957 * c-common.c (c_expand_body): ... here.
16958 (c_common_attribute_table): Allow 1 argument for the constructor
16959 and destructor attributes.
16960 (get_priority): New function.
16961 (handle_constructor_attribute): Set DECL_INIT_PRIORITY.
16962 (handle_destructor_attribute): Set DECL_FINI_PRIORITY.
16963
16964 2007-02-24 Jan Hubicka <jh@suse.cz>
16965
16966 PR middle-end/30509
16967 * tree-inline.c (copy_bb): Produce exact copy of EH info when
16968 copying for inlining.
16969
16970 2007-02-24 Uros Bizjak <ubizjak@gmail.com>
16971 Jan Hubicka <jh@suse.cz>
16972
16973 PR target/30778
16974 * i386.c (counter_mode): New function.
16975 (expand_set_or_movmem_via_loop): Use it.
16976 (expand_movmem_epilogue): Likewise; fix pasto.
16977 (ix86_expand_movmem): Do emit guard even for constant counts.
16978 (ix86_expand_setmem): Likewise.
16979
16980 2007-02-25 Nick Clifton <nickc@redhat.com>
16981
16982 * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
16983 (JUMP_TABLES_IN_TEXT_SECTION): Define.
16984
16985 2007-02-24 Uros Bizjak <ubizjak@gmail.com>
16986
16987 PR target/30770
16988 * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
16989 count argument with 0x10, not with 0x16.
16990 (expand_setmem_epilogue): Ditto.
16991
16992 2007-02-24 Mike Stump <mrs@apple.com>
16993
16994 * config/i386/i386.c (output_pic_addr_const): Stubify optimized
16995 symbols.
16996
16997 2007-02-24 Richard Guenther <rguenther@suse.de>
16998
16999 PR middle-end/30951
17000 * fold-const.c (fold_binary): Fold x +- CST op x for
17001 EQ_EXPR and NE_EXPR.
17002
17003 2007-02-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17004
17005 * pa.md (muldi3): Force subregs to registers in 64-bit expander.
17006
17007 2007-02-24 Jan Hubicka <jh@suse.cz>
17008
17009 * cgraphunit.c (decide_is_function_needed): Honor
17010 -fkeep-inline-functions.
17011
17012 2007-02-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17013
17014 * builtins.c (fold_builtin_modf): New.
17015 (fold_builtin_2): Use it.
17016
17017 2007-02-24 Bernd Schmidt <bernd.schmidt@analog.com>
17018
17019 * loop-iv.c (implies_p): Detect additional cases where A implies B.
17020 (determine_max_iter): Take additional LOOP arg; all callers changed.
17021 Lose broken logic dealing with PLUS. Try to limit the upper bound by
17022 one using simplifications.
17023 (simplify_using_initial_values): Return if the expression becomes
17024 invalid due to altered regs.
17025
17026 2007-02-23 DJ Delorie <dj@redhat.com>
17027
17028 * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
17029
17030 2007-02-23 Mike Stump <mrs@apple.com>
17031
17032 * tlink.c (scan_linker_output): Parse linker messages from
17033 darwin9's linker better.
17034
17035 2007-02-23 Steve Ellcey <sje@cup.hp.com>
17036
17037 PR debug/29614
17038 * varpool.c (varpool_assemble_pending_decls): Set
17039 varpool_last_needed_node to null.
17040
17041 2007-02-23 DJ Delorie <dj@redhat.com>
17042
17043 * config/i386/i386.c (ix86_data_alignment): Don't specify an
17044 alignment bigger than the object file can handle.
17045
17046 2007-02-23 Uros Bizjak <ubizjak@gmail.com>
17047
17048 PR target/30825
17049 * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
17050 zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
17051 (*movsf_1): Penalize MMX moves.
17052
17053 2007-02-23 Bernd Schmidt <bernd.schmidt@analog.com>
17054
17055 * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
17056 2^32-1 or more times unless flag_unsafe_loop_optimizations.
17057
17058 * loop-iv.c (determine_max_iter): Moved in front of its sole user.
17059
17060 2007-02-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17061
17062 * builtins.c (fold_builtin_logb, fold_builtin_significand): New.
17063 (fold_builtin_1): Use them.
17064 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
17065 BUILT_IN_SIGNIFICAND.
17066
17067 2007-02-23 H.J. Lu <hongjiu.lu@intel.com>
17068
17069 * config/i386/i386.c (bdesc_1arg): Initialize
17070 IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
17071 "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
17072 (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
17073 and IX86_BUILTIN_MOVSLDUP.
17074
17075 2007-02-22 Paolo Bonzini <bonzini@gnu.org>
17076
17077 PR rtl-optimization/30841
17078 * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.
17079
17080 2007-02-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17081
17082 * builtins.c (fold_builtin_frexp): New.
17083 (fold_builtin_2): Use it.
17084
17085 2007-02-22 Mark Mitchell <mark@codesourcery.com>
17086
17087 * doc/invoke.texi (Spec Files): Document getenv spec function.
17088
17089 * gcc.c (getenv_spec_function): New function.
17090 (static_spec_functions): Add it.
17091 * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
17092 (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
17093 header files.
17094
17095 2007-02-22 Michael Matz <matz@suse.de
17096
17097 PR c++/29433
17098 * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
17099 (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
17100
17101 2007-02-22 Ian Lance Taylor <iant@google.com>
17102
17103 PR debug/30898
17104 * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
17105 (mem_loc_descriptor): Call it.
17106
17107 2007-02-22 Zdenek Dvorak <dvorakz@suse.cz>
17108 Ira Rosen <irar@il.ibm.com>
17109
17110 * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
17111
17112 2007-02-22 Ira Rosen <irar@il.ibm.com>
17113
17114 PR tree-optimization/30843
17115 * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
17116 stores only after all the group is vectorized.
17117
17118 2007-02-22 Dorit Nuzman <dorit@il.ibm.com>
17119
17120 PR tree-optimization/30858
17121 * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
17122 in the reduction cycle have a single use in the loop.
17123 * tree-vectorizer.h (relevant): Add documentation.
17124
17125 2007-02-20 Mike Stump <mrs@apple.com>
17126
17127 * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
17128 * configure: Regenerate.
17129
17130 2007-02-21 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
17131
17132 Change the defaults of some parameters and options.
17133 * config/spu/spu-protos.h (spu_optimization_options): Declare.
17134 * config/spu/spu.c (spu_optimization_options): Add.
17135 (spu_override_options): Change params in spu_optimization_options.
17136 * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
17137
17138 Register 127 is only 16 byte aligned when used as a frame pointer.
17139 * config/spu/spu-protos.h (spu_init_expanders): Declare.
17140 * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
17141 HARD_FRAME_POINTER_REGNUM.
17142 (spu_legitimate_address): Use regno_aligned_for_reload.
17143 (regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte
17144 aligned when frame_pointer_needed is true.
17145 (spu_init_expanders): New. Set alignment of HARD_FRAME_POINTER_REGNUM
17146 to 8 bits.
17147 * config/spu/spu.h (INIT_EXPANDERS): Define.
17148
17149 Make sure shift and rotate instructions have valid immediate operands.
17150 * config/spu/predicates.md (spu_shift_operand): Remove.
17151 * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
17152 * config/spu/constraints.md (W, O): Extend range.
17153 * config/spu/spu.md (umask, nmask): Define.
17154 (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
17155 lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
17156 rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
17157 rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
17158 spu_nonmem_operand instead of spu_shift_operands. Use new modifiers.
17159 (lshr<mode>3_reg): Fix rtl description.
17160
17161 Make sure mulhisi immediate operands are valid.
17162 * config/spu/predicates.md (imm_K_operand): Add.
17163 * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
17164
17165 Generate constants using fsmbi and andi.
17166 * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
17167 (print_operand, spu_split_immediate, classify_immediate,
17168 fsmbi_const_p): Handle IC_FSMBI2.
17169
17170 Correctly handle a CONST_VECTOR containing symbols.
17171 * config/spu/spu.c (print_operand): Handle HIGH correctly.
17172 (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
17173 (immediate_load_p): Allow symbols that use 2 instructions to create.
17174 (classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR
17175 with symbols when flag_pic is set.
17176 (const_vector_immediate_p): New.
17177 (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
17178 accept a CONST_VECTOR with symbols.
17179 (spu_legitimate_constant_p): Use const_vector_immediate_p. Don't
17180 accept a CONST_VECTOR with symbols when flag_pic is set. Handle HIGH
17181 correctly.
17182 * config/spu/spu.md (high, low): Delete.
17183 (low_<mode>): Define.
17184
17185 Remove INTRmode and INTR_REGNUM, which didn't work.
17186 * config/spu/spu.c (spu_conditional_register_usage): Remove reference
17187 of INTR_REGNUM.
17188 * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
17189 set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
17190 peephole2 pattern): Don't use INTR or 131.
17191 (movintrcc): Delete.
17192 * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
17193 CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
17194 * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
17195 (UNSPEC_SET_INTR): Add.
17196 * config/spu/spu-modes.def (INTR): Remove.
17197
17198 More accurate warnings about run-time relocations.
17199 * config/spu/spu.c (reloc_diagnostic): Test in_section.
17200
17201 Correctly warn about immediate arguments to specific intrinsics.
17202 * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
17203 (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
17204 the instruction predicate.
17205
17206 Fix tree check errors with latest update.
17207 * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
17208 CALL_EXPR_ARG.
17209 (spu_expand_builtin): Use CALL_EXPR_FN.
17210
17211 Add missing specific intrinsics.
17212 * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
17213 si_bislede.
17214 * config/spu/spu_internals.h: Ditto.
17215
17216 Fix incorrect operand modifiers.
17217 * config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H.
17218 * config/spu/spu.md (xor<mode>3): Change %S to %J.
17219
17220 Optimize one case of zero_extend of a vec_select.
17221 * config/spu/spu.md (_vec_extractv8hi_ze): Add.
17222
17223 Accept any immediate for hbr.
17224 * config/spu/spu.md (hbr): Change s constraints to i.
17225
17226 2007-02-21 Paul Brook <paul@codesourcery.com>
17227
17228 * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
17229 condexec_count when skipping USE and CLOBBER.
17230
17231 2007-02-21 Nick Clifton <nickc@redhat.com>
17232
17233 * common.opt (Warray-bounds): Add Warning attribute.
17234 (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
17235 Likewise.
17236 (fsized-zeroes): Add Optimization attribute.
17237 (fsplit-wide-types, ftree-scev-cprop): Likewise.
17238 * c.opt (Wc++0x-compat): Add Warning attribute.
17239
17240 2007-02-21 Ulrich Weigand <uweigand@de.ibm.com>
17241
17242 PR middle-end/30761
17243 * reload1.c (eliminate_regs_in_insn): In the single_set special
17244 case, attempt to re-recognize the insn before falling back to
17245 having reload fix it up.
17246
17247 2007-02-20 Eric Christopher <echristo@gmail.com>
17248
17249 * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
17250 Rewrite accordingly.
17251 (frv_read_iacc_argument): Ditto.
17252 (frv_expand_set_builtin): Take a call instead of arglist, update for
17253 above changes.
17254 (frv_expand_unop_builtin): Ditto.
17255 (frv_expand_binop_builtin): Ditto.
17256 (frv_expand_cut_builtin): Ditto.
17257 (frv_expand_binopimm_builtin): Ditto.
17258 (frv_expand_voidbinop_builtin): Ditto.
17259 (frv_expand_int_void2arg): Ditto.
17260 (frv_expand_prefetches): Ditto.
17261 (frv_expand_voidtriop_builtin): Ditto.
17262 (frv_expand_voidaccop_builtin): Ditto.
17263 (frv_expand_load_builtin): Ditto.
17264 (frv_expand_store_builtin): Ditto.
17265 (frv_expand_mdpackh_builtin): Ditto.
17266 (frv_expand_mclracc_builtin): Ditto.
17267 (frv_expand_mrdacc_builtin): Ditto.
17268 (frv_expand_mwtacc_builtin): Ditto.
17269 (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
17270 calls for above.
17271
17272 2007-02-20 Janis Johnson <janis187@us.ibm.com>
17273
17274 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
17275 * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
17276 cmpb instruction.
17277 (HAVE_GAS_DFP): Check for assembler support of decimal floating
17278 point instructions.
17279 * configure: Regenerate.
17280 * config.in: Regenerate.
17281 * config/rs6000/rs6000.opt (mcmpb, mdfp): New.
17282 * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
17283 masks to power6 and power6x and to POWERPC_MASKS.
17284 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
17285 _ARCH_PWR6.
17286 * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
17287 * config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
17288 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
17289 Access PROTOTYPE as variable, not mask.
17290
17291 2007-02-20 Steven Bosscher <steven@gcc.gnu.org>
17292
17293 * rtl.h (remove_reg_equal_equiv_notes): New prototype.
17294 * rtlanal.c (remove_reg_equal_equiv_notes): New function.
17295 * combine.c (adjust_for_new_dest): Use it.
17296 * postreload.c (reload_combine): Likewise.
17297
17298 2007-02-20 Steven Bosscher <steven@gcc.gnu.org>
17299
17300 * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
17301 notes on an insn with multiple sets, even if single_set returns
17302 non-NULL for that insn.
17303
17304 2007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17305
17306 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
17307 scalbn and scalbln.
17308
17309 2007-02-20 Geoffrey Keating <geoffk@apple.com>
17310
17311 * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
17312 if user didn't pass it.
17313 * config/i386/darwin.h (CC1_SPEC): Likewise.
17314 * config/rs6000/darwin.h (CC1_SPEC): Likewise.
17315 (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
17316 -mmacosx-version-min.
17317
17318 2007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17319 Uros Bizjak <ubizjak@gmail.com>
17320
17321 * optabs.h (enum optab_index): Add new OTI_scalb.
17322 (scalb_optab): Define corresponding macro.
17323 * optabs.c (init_optabs): Initialize scalb_optab.
17324 * genopinit.c (optabs): Implement scalb_optab using scalb?f3
17325 patterns.
17326 * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
17327 BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
17328 (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
17329 and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
17330 flag_unsafe_math_optimizations is set.
17331
17332 * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
17333 to implement scalbf, scalb and scalbl built-ins as inline x87
17334 intrinsics.
17335
17336 2007-02-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17337 DJ Delorie <dj@redhat.com>
17338
17339 PR other/30824
17340 * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
17341 (diagnostic_report_diagnostic): ... here, and turn them into real
17342 errors. If warnings are inhibited, no need to do anything.
17343
17344 2007-02-20 Uros Bizjak <ubizjak@gmail.com>
17345
17346 * config/i386/i386.md (expm1xf2): Reorder insn sequence for
17347 better code generation.
17348
17349 2007-02-20 Ben Elliston <bje@au.ibm.com>
17350
17351 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
17352
17353 2007-02-20 Kazu Hirata <kazu@codesourcery.com>
17354
17355 * config/alpha/alpha.c, config/alpha/alpha.md,
17356 config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
17357 config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
17358 config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
17359 config/arm/lib1funcs.asm: Follow spelling conventions.
17360
17361 * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
17362 config/fr30/fr30.md, config/i386/i386.h,
17363 config/iq2000/iq2000.h, config/iq2000/predicates.md,
17364 config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
17365 config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
17366 config/pdp11/pdp11.c, config/pdp11/pdp11.h,
17367 config/rs6000/altivec.md, config/rs6000/rs6000.c,
17368 config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
17369 config/sparc/sparc.c, config/sparc/sparc.h,
17370 config/sparc/sparc.md, config/spu/constraints.md,
17371 config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
17372 conventions.
17373
17374 2007-02-20 Alan Modra <amodra@bigpond.net.au>
17375
17376 PR target/29943
17377 * varasm.c (use_blocks_for_decl_p): Return false for decls with
17378 alias attribute.
17379
17380 2007-02-19 Kazu Hirata <kazu@codesourcery.com>
17381
17382 * doc/invoke.texi (-ftree-lrs): Remove.
17383
17384 2007-02-19 Diego Novillo <dnovillo@redhat.com>
17385
17386 * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
17387 NULL.
17388
17389 2007-02-19 Lee Millward <lee.millward@codesourcery.com>
17390
17391 * config/ia64/ia64.c (ia64_expand_builtin): Use the
17392 new CALL_EXPR_FN macro for retrieving the function
17393 declaration of the input expression.
17394
17395 2007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17396
17397 * c.opt (Waddress): New.
17398 * common.opt (Walways-true): Delete.
17399 (Wstring-literal-comparison): Delete.
17400 * doc/invoke.texi (Warning Options): Delete -Walways-true and
17401 -Wstring-literal-comparison. Add -Waddress.
17402 (Waddress): New.
17403 (Walways-true): Delete.
17404 (Wstring-literal-comparison): Delete.
17405 * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
17406 consistently instead of -Walways-true in example.
17407 * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
17408 * c-typeck.c (parser_build_binary_op): Replace
17409 -Wstring-literal-comparison and -Walways-true with -Waddress.
17410 * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
17411 with -Waddress.
17412
17413 2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
17414
17415 * tree-cfg.c (dump_function_to_file): Be prepared for functions
17416 without DECL_STRUCT_FUNCTION initialized.
17417
17418 2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
17419
17420 * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
17421 due to calls to functions taking pointers as parameters.
17422
17423 2007-02-19 Richard Henderson <rth@redhat.com>
17424
17425 PR debug/29558
17426 * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
17427 in memory.
17428
17429 2007-02-19 Andreas Krebbel <krebbel1@de.ibm.com>
17430
17431 * config/s390/s390.c (s390_call_saved_register_used,
17432 s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
17433 accessed to the new scheme.
17434
17435 2007-02-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
17436
17437 * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
17438 (cris_print_index, cris_print_operand, cris_print_operand_address)
17439 (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
17440 (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
17441 (cris_expand_pic_call_address): Use xxx_P predicate macros instead of
17442 GET_CODE () == xxx.
17443 * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
17444 EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
17445 GO_IF_LEGITIMATE_ADDRESS): Ditto.
17446 * config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
17447 (*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
17448 (*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
17449 (*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
17450 (*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
17451 (*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
17452 (uminsi3, call, call_value): Ditto.
17453 (define_split: indir_to_reg_split, unnamed): Ditto.
17454
17455 2007-02-19 Dorit Nuzman <dorit@il.ibm.com>
17456
17457 PR tree-optimization/30975
17458 * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
17459 wrong assert.
17460
17461 2007-02-18 Eric Christopher <echristo@gmail.com>
17462
17463 * mips.c (mips_prepare_builtin_arg): Add argnum parameter.
17464 Remove use of arglist.
17465 (mips_expand_builtin): Remove use of arglist, pass in expr.
17466 (mips_expand_builtin_direct): Rewrite handling for arglist removal.
17467 (mips_expand_builtin_movtf): Ditto.
17468 (mips_expand_builtin_compare): Ditto.
17469
17470 2007-02-19 Alexandre Oliva <aoliva@redhat.com>
17471
17472 * tree-sra.c (sra_build_assignment): Replace assertion
17473 checking with a comment explaining why it can't be done.
17474
17475 2007-02-18 Sandra Loosemore <sandra@codesourcery.com>
17476
17477 PR middle-end/30833
17478 * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
17479 during CALL_EXPR representation conversion.
17480 * tree-ssa-propagate.c (set_rhs): Likewise.
17481
17482 2007-02-19 Alexandre Oliva <aoliva@redhat.com>
17483
17484 * tree-sra.c (sra_build_assignment): Disable assertion checking
17485 for now.
17486
17487 2007-02-18 Roger Sayle <roger@eyesopen.com>
17488
17489 * function.c (gimplify_parameters): Call build_gimple_modify_stmt
17490 instead of calling build2 with a GIMPLE_MODIFY_STMT.
17491 * gimple-low.c (lower_function_body, lower_builtin_setjmp):
17492 Likewise.
17493 * gimplify.c (build_stack_save_restore, gimplify_return_expr,
17494 gimplify_decl_expr, gimplify_self_mod_expr, gimplify_cond_expr,
17495 gimplify_init_ctor_eval_range, gimple_push_cleanup,
17496 gimplify_omp_for, gimplify_omp_atomic_pipeline,
17497 gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
17498 force_gimple_operand): Likewise.
17499 * ipa-cp.c (constant_val_insert): Likewise.
17500 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
17501 lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
17502 perfect_nestify): Likewise.
17503 * langhooks.c (lhd_omp_assignment): Likewise.
17504 * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
17505 lower_copyprivate_clauses, lower_send_clauses,
17506 lower_send_shared_vars, expand_parallel_call,
17507 expand_omp_for_generic, expand_omp_for_static_nochunk,
17508 expand_omp_for_static_chunk, expand_omp_sections,
17509 lower_omp_single_copy, lower_omp_for_lastprivate,
17510 lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
17511 * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
17512 tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
17513 Likewise.
17514
17515 2007-02-19 Kazu Hirata <kazu@codesourcery.com>
17516
17517 * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
17518 config/sh/sh.md: Follow spelling conventions.
17519
17520 * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
17521 config/frv/predicates.md: Follow spelling conventions.
17522
17523 * config/m68k/linux-unwind.h: Fix a comment typo.
17524 * target.h: Follow spelling conventions.
17525
17526 2007-02-18 Roger Sayle <roger@eyesopen.com>
17527
17528 PR rtl-optimization/28173
17529 * simplify-rtx.c (simplify_binary_operation_1) <IOR>: Optimize
17530 (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
17531 Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
17532 Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
17533 <AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).
17534
17535 2007-02-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17536
17537 * builtins.c (fold_builtin_load_exponent): New.
17538 (fold_builtin_2): Use it.
17539
17540 2007-02-18 Steven Bosscher <steven@gcc.gnu.org>
17541
17542 PR rtl-optimization/30773
17543 * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
17544 if we fail to attach a REG_EQUIV note.
17545
17546 2007-02-18 David Edelsohn <edelsohn@gnu.org>
17547 Roger Sayle <roger@eyesopen.com>
17548
17549 * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.
17550
17551 2007-02-18 Sandra Loosemore <sandra@codesourcery.com>
17552
17553 * calls.c (initialize_argument_information): Pass original EXP
17554 and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments. Move
17555 code to split complex arguments here, as part of initializing the
17556 ARGS array.
17557 (expand_call): Remove code that builds a list of arguments and
17558 inserts implicit arguments into it. Instead, just count how many
17559 implicit arguments there will be so we can determine the size of
17560 the ARGS array, and let initialize_argument_information do the work.
17561 (split_complex_values): Delete unused function.
17562
17563 2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
17564
17565 * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
17566
17567 2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
17568
17569 * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
17570 for arg pointer based indexed addressing.
17571
17572 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
17573
17574 * config/ia64/ia64.h, config/ia64/ia64.md,
17575 config/ia64/predicates.md, config/ia64/sysv4.h: Follow
17576 spelling conventions.
17577
17578 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
17579
17580 * config/m68k/m68k.c (split_di): New.
17581 * config/m68k/m68k-protos.h: Declare split_di.
17582 * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
17583 Improve predicate handling and split constant shifts.
17584
17585 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
17586
17587 * config/m68k/m68k.md (extv,extzv,insv): disable dynamic
17588 parameter for register bitfield operations, general predicates
17589 cleanup
17590
17591 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
17592
17593 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
17594 * config/m68k/linux-unwind.h: New file.
17595
17596 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
17597
17598 * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
17599 config/i386/athlon.md, config/ia64/ia64.md,
17600 config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
17601 df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
17602 ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
17603 tree-ssa-loop-niter.c, tree-vect-analyze.c,
17604 tree-vect-transform.c: Fix comment typos.
17605
17606 2007-02-17 Kazu Hirata <kazu@codesourcery.com>
17607
17608 * sched-deps.c (find_insn_list): Remove.
17609 * sched-int.h: Remove the prototype for find_insn_list.
17610
17611 2007-02-16 Geoffrey Keating <geoffk@apple.com>
17612
17613 * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
17614 to linker.
17615 (DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
17616 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
17617 darwin_rs6000_override_options.
17618 (C_COMMON_OVERRIDE_OPTIONS): Expect
17619 darwin_macosx_version_min to be non-NULL always.
17620 (TARGET_C99_FUNCTIONS): Likewise.
17621 (CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
17622 (DARWIN_MINVERSION_SPEC): New.
17623 * config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
17624 * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
17625 to cc1*.
17626 (DARWIN_MINVERSION_SPEC): New.
17627 * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
17628 value.
17629 * config/darwin-c.c (darwin_cpp_builtins): Expect
17630 darwin_macosx_version_min to be non-NULL always.
17631
17632 * config/rs6000/rs6000.c: Clean up trailing whitespace.
17633
17634 2007-02-16 Uros Bizjak <ubizjak@gmail.com>
17635
17636 * config/i386/i386.h (x86_use_xchgb): New.
17637 (TARGET_USE_XCHGB): New macro.
17638 * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
17639 * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
17640 Split after reload into bswaphi for shifts of 8.
17641 (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
17642 (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
17643 or when optimizing for size.
17644
17645 2007-02-16 Richard Guenther <rguenther@suse.de>
17646 Christian Bruel <christian.bruel@st.com>
17647
17648 * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
17649 DECLs but prefer SSA_NAMEs over DECLs.
17650
17651 2007-02-16 Richard Guenther <rguenther@suse.de>
17652
17653 * tree-flow-inline.h (single_imm_use_p): Remove.
17654 (zero_imm_uses_p): Likewise.
17655 * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
17656 instead of single_imm_use_p.
17657 * tree-cfg.c (replace_uses_by): Use has_zero_use instead of
17658 zero_imm_uses_p.
17659
17660 2007-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17661
17662 PR other/27843
17663 * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
17664 nested double- and backquotes.
17665
17666 2007-02-15 Roger Sayle <roger@eyesopen.com>
17667
17668 PR middle-end/30391
17669 * tree.c (expr_align): Handle MODIFY_EXPR. GIMPLE_MODIFY_STMT
17670 should be unreachable.
17671 (build2_stat): Allow construction of MODIFY_EXPR at any time.
17672 For the time being redirect GIMPLE_MODIFY_STMT to the new
17673 (renamed) build_gimple_modify_stmt_stat.
17674 (build2_gimple_stat): Rename to...
17675 (build_gimple_modify_stmt_stat): Now longer take a CODE argument.
17676 Always build a GIMPLE_MODIFY_STMT node.
17677 * tree.h (build2_gimple, build2_gimple_stat): Delete.
17678 (build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
17679 declarations.
17680
17681 * tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
17682 gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
17683 * tree-complex.c (set_component_ssa_name, expand_complex_move,
17684 expand_complex_div_wide): Likewise.
17685 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
17686 * tree-ssa-loop-im.c (schedule_sm): Likewise.
17687 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
17688 * tree-ssa-loop-manip.c (create_iv): Likewise.
17689 * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
17690 abs_replacement): Likewise.
17691 * tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
17692 realify_fake_stores): Likewise.
17693
17694 * builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
17695 node rather than a GIMPLE_MODIFY_STMT node.
17696 (std_gimpify_va_arg_expr, expand_builtin_va_copy,
17697 fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
17698 Likewise.
17699 (integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
17700 * expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
17701 GIMPLE_MODIFY_STMT.
17702
17703 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
17704
17705 PR middle-end/30433
17706 * fold-const.c (fold_comparison): Add back the
17707 folding of constant complex comparisions.
17708
17709 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
17710
17711 PR middle-end/30729
17712 * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
17713 effects unknown to this function, return early.
17714
17715 2007-02-15 Ian Lance Taylor <iant@google.com>
17716
17717 * lower-subreg.c (move_eh_region_note): New static function.
17718 (resolve_simple_move): Call it.
17719 (decompose_multiword_subregs): Track blocks for which we resolve a
17720 simple move which is also a control flow insn. Pass them to
17721 find_many_sub_basic_blocks.
17722 (pass_lower_subreg): Add TODO_verify_flow.
17723 (pass_lower_subreg2): Likewise.
17724
17725 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
17726 Brooks Moses <brooks.moses@codesourcery.com>
17727 Lee Millward <lee.millward@codesourcery.com>
17728
17729 * tree.h (enum tree_code_class): Add tcc_vl_exp.
17730 (VL_EXP_CLASS_P): New.
17731 (TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
17732 TREE_CODE_LENGTH.
17733 (TREE_OPERAND_CHECK_CODE): Likewise.
17734 (GIMPLE_STMT_OPERAND_CHECK): Likewise.
17735 (TREE_RTL_OPERAND_CHECK): Likewise.
17736 (tree_operand_check_failed): Make second parameter the whole tree
17737 instead of its code. Fixed callers.
17738 (VL_EXP_CHECK): New.
17739 (TREE_OPERAND_LENGTH): New.
17740 (VL_EXP_OPERAND_LENGTH): New.
17741 (CALL_EXPR_FN): New.
17742 (CALL_EXPR_STATIC_CHAIN): New.
17743 (CALL_EXPR_ARGS): New.
17744 (CALL_EXPR_ARG): New.
17745 (call_expr_nargs): New.
17746 (CALL_EXPR_ARGP): New.
17747 (build_nt_call_list): Declare.
17748 (build_vl_exp_stat): Declare.
17749 (build_vl_exp): New.
17750 (build_call_list): Declare.
17751 (build_call_nary): Declare.
17752 (build_call_valist): Declare.
17753 (build_call_array): Declare.
17754 (call_expr_arg): Declare.
17755 (call_expr_argp): Declare.
17756 (call_expr_arglist): Declare.
17757 (fold_build_call_list): Declare.
17758 (fold_build_call_list_initializer): Declare.
17759 (fold_call_expr): Declare to replace fold_builtin.
17760 (fold_builtin_fputs): Update to agree with modified definition.
17761 (fold_builtin_strcpy): Likewise.
17762 (fold_builtin_strncpy): Likewise.
17763 (fold_builtin_memory_chk): Likewise.
17764 (fold_builtin_stxcpy_chk): Likewise.
17765 (fold_builtin_strncpy_chk): Likewise.
17766 (fold_builtin_next_arg): Likewise.
17767 (fold_build_call_expr): Declare.
17768 (fold_builtin_call_list): Declare.
17769 (fold_builtin_call_valist): Declare.
17770 (build_call_expr): Declare.
17771 (validate_arglist): Update to agree with modified definition.
17772 (tree_operand_length): New.
17773 (call_expr_arg_iterator): New.
17774 (init_call_expr_arg_iterator): New.
17775 (next_call_expr_arg): New.
17776 (first_call_expr_arg): New.
17777 (more_call_expr_args_p): New.
17778 (FOR_EACH_CALL_EXPR_ARG): New.
17779
17780 * tree.c (tree_code_class_string): Add entries for tcc_vl_exp
17781 and tcc_gimple_stmt.
17782 (tree_code_size): Update documentation. Use sizeof (tree) rather
17783 than sizeof (char *).
17784 (tree_size): Likewise. Add case for tcc_vl_exp.
17785 (tree_node_structure): Add case for tcc_vl_exp.
17786 (contains_placeholder_p): Likewise.
17787 (substitute_in_expr): Likewise.
17788 (substitute_placeholder_in_expr): Likewise.
17789 (stabilize_reference_1): Likewise.
17790 (build3_stat): Remove logic for CALL_EXPRs. Replace with assertion
17791 to diagnose breakage of this interface for constructing CALL_EXPRs.
17792 (build_nt): Add similar assertion here.
17793 (build_nt_call_list): New.
17794 (simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
17795 (iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
17796 TREE_CODE_LENGTH.
17797 (get_callee_fndecl): Use new CALL_EXPR accessors.
17798 (tree_operand_check_failed): Change parameters to pass entire node
17799 instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
17800 (process_call_operands): New.
17801 (build_vl_exp_stat): New.
17802 (build_call_list): New.
17803 (build_call_nary): New.
17804 (build_call_valist): New.
17805 (build_call_array): New.
17806 (walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
17807 (call_expr_arglist): New.
17808
17809 * tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
17810 tcc_vl_exp instead of a fixed-size tcc_expression.
17811
17812 * doc/c-tree.texi (CALL_EXPR): Document new representation and
17813 accessors for CALL_EXPRs.
17814 (AGGR_INIT_EXPR): Likewise.
17815
17816 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
17817 Brooks Moses <brooks.moses@codesourcery.com>
17818 Lee Millward <lee.millward@codesourcery.com>
17819
17820 * builtins.c (c_strlen): Return NULL_TREE instead of 0.
17821 (expand_builtin_nonlocal_goto): Change parameter to be entire
17822 CALL_EXPR instead of an arglist. Use new CALL_EXPR accessors.
17823 (expand_builtin_prefetch): Likewise.
17824 (expand_builtin_classify_type): Likewise.
17825 (mathfn_built_in): Return NULL_TREE instead of 0.
17826 (expand_errno_check): Use new CALL_EXPR accessors.
17827 (expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
17828 Return NULL_RTX instead of 0.
17829 (expand_builtin_mathfn_2): Likewise.
17830 (expand_builtin_mathfn_3): Likewise.
17831 (expand_builtin_interclass_mathfn): Likewise.
17832 (expand_builtin_sincos): Likewise.
17833 (expand_builtin_cexpi): Likewise.
17834 (expand_builtin_int_roundingfn): Likewise.
17835 (expand_builtin_int_roundingfn_2): Likewise.
17836 (expand_builtin_pow): Likewise.
17837 (expand_builtin_powi): Likewise.
17838 (expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
17839 of arglist, fixing callers appropriately. Use new CALL_EXPR
17840 accessors and constructors. Return NULL_RTX instead of 0.
17841 (expand_builtin_strstr): Likewise.
17842 (expand_builtin_strchr): Likewise.
17843 (expand_builtin_strrchr): Likewise.
17844 (expand_builtin_strpbrk): Likewise.
17845 (expand_builtin_memcpy): Likewise.
17846 (expand_builtin_mempcpy): Likewise.
17847 (expand_builtin_mempcpy_args): New.
17848 (expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
17849 (expand_builtin_memmove_args): New.
17850 (expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
17851 (expand_movstr): Likewise.
17852 (expand_builtin_strcpy): Likewise.
17853 (expand_builtin_strcpy_args): New.
17854 (expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
17855 (expand_builtin_strncpy): Likewise.
17856 (expand_builtin_memset): Likewise.
17857 (expand_builtin_memset_args): New.
17858 (expand_builtin_bzero): Similarly to expand_builtin_memset.
17859 (expand_builtin_memcmp): Likewise.
17860 (expand_builtin_strcmp): Likewise.
17861 (expand_builtin_strncmp): Likewise.
17862 (expand_builtin_strcat): Likewise.
17863 (expand_builtin_strncat): Likewise.
17864 (expand_builtin_strspn): Likewise.
17865 (expand_builtin_strcspn): Likewise.
17866 (expand_builtin_args_info): Likewise.
17867 (expand_builtin_va_start): Likewise.
17868 (gimplify_va_arg_expr): Likewise.
17869 (expand_builtin_va_end): Likewise.
17870 (expand_builtin_va_copy): Likewise.
17871 (expand_builtin_frame_address): Likewise.
17872 (expand_builtin_alloca): Likewise.
17873 (expand_builtin_bswap): Likewise.
17874 (expand_builtin_unop): Likewise.
17875 (expand_builtin_fputs): Likewise.
17876 (expand_builtin_expect): Likewise.
17877 (expand_builtin_fabs): Likewise.
17878 (expand_builtin_copysign): Likewise.
17879 (expand_builtin_printf): Likewise.
17880 (expand_builtin_fprintf): Likewise.
17881 (expand_builtin_sprintf): Likewise.
17882 (expand_builtin_init_trampoline): Likewise.
17883 (expand_builtin_signbit): Likewise.
17884 (expand_builtin_fork_or_exec): Likewise.
17885 (expand_builtin_sync_operation): Likewise.
17886 (expand_builtin_compare_and_swap): Likewise.
17887 (expand_builtin_lock_test_and_set): Likewise.
17888 (expand_builtin_lock_release): Likewise.
17889 (expand_builtin): Likewise.
17890 (builtin_mathfn_code): Likewise.
17891
17892 (fold_builtin_constant_p): Pass call arguments individually instead
17893 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
17894 accessors and constructors. Return NULL_TREE instead of 0.
17895 (fold_builtin_expect): Likewise.
17896 (fold_builtin_classify_type): Likewise.
17897 (fold_builtin_strlen): Likewise.
17898 (fold_builtin_nan): Likewise.
17899 (integer_valued_real_p): Likewise.
17900 (fold_trunc_transparent_mathfn): Likewise.
17901 (fold_fixed_mathfn): Likewise.
17902 (fold_builtin_cabs): Likewise.
17903 (fold_builtin_sqrt): Likewise.
17904 (fold_builtin_cbrt): Likewise.
17905 (fold_builtin_cos): Likewise.
17906 (fold_builtin_cosh): Likewise.
17907 (fold_builtin_tan): Likewise.
17908 (fold_builtin_sincos): Likewise.
17909 (fold_builtin_cexp): Likewise.
17910 (fold_builtin_trunc): Likewise.
17911 (fold_builtin_floor): Likewise.
17912 (fold_builtin_ceil): Likewise.
17913 (fold_builtin_round): Likewise.
17914 (fold_builtin_int_roundingfn): Likewise.
17915 (fold_builtin_bitop): Likewise.
17916 (fold_builtin_bswap): Likewise.
17917 (fold_builtin_logarithm): Likewise.
17918 (fold_builtin_hypot): Likewise.
17919 (fold_builtin_pow): Likewise.
17920 (fold_builtin_powi): Likewise.
17921 (fold_builtin_exponent): Likewise.
17922 (fold_builtin_memset): Likewise.
17923 (fold_builtin_bzero): Likewise.
17924 (fold_builtin_memory_op): Likewise.
17925 (fold_builtin_bcopy): Deleted; call site changed to invoke
17926 fold_builtin_memory_op directly.
17927 (fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
17928 (fold_builtin_strncpy): Likewise.
17929 (fold_builtin_memcmp): Likewise.
17930 (fold_builtin_strcmp): Likewise.
17931 (fold_builtin_strncmp): Likewise.
17932 (fold_builtin_signbit): Likewise.
17933 (fold_builtin_copysign): Likewise.
17934 (fold_builtin_isascii): Likewise.
17935 (fold_builtin_toascii): Likewise.
17936 (fold_builtin_isdigit): Likewise.
17937 (fold_builtin_fabs): Likewise.
17938 (fold_builtin_abs): Likewise.
17939 (fold_builtin_fmin_fmax): Likewise.
17940 (fold_builtin_carg): Likewise.
17941 (fold_builtin_classify): Likewise.
17942 (fold_builtin_unordered_cmp): Likewise.
17943
17944 (fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
17945 New functions split out from fold_builtin_1.
17946 (fold_builtin_n): New.
17947 (fold_builtin_varargs): New.
17948 (fold_builtin): Deleted. Most callers changed to use fold_call_expr
17949 instead.
17950 (fold_call_expr): New.
17951 (build_function_call_expr): Rewrite to use new helper function.
17952 (fold_builtin_call_list): New.
17953 (build_call_expr): New.
17954 (fold_builtin_call_valist): New.
17955 (rewrite_call_expr): New.
17956 (validate_arg): New.
17957 (validate_arglist): Change parameter to be entire CALL_EXPR instead
17958 of an arglist. Change return type to bool. Use new CALL_EXPR
17959 accessors.
17960
17961 (fold_builtin_strstr): Pass call arguments individually instead
17962 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
17963 accessors and constructors. Return NULL_TREE instead of 0.
17964 (fold_builtin_strchr): Likewise.
17965 (fold_builtin_strrchr): Likewise.
17966 (fold_builtin_strpbrk): Likewise.
17967 (fold_builtin_strcat): Likewise.
17968 (fold_builtin_strncat): Likewise.
17969 (fold_builtin_strspn): Likewise.
17970 (fold_builtin_strcspn): Likewise.
17971 (fold_builtin_fputs): Likewise.
17972 (fold_builtin_next_arg): Likewise.
17973 (fold_builtin_sprintf): Likewise.
17974
17975 (expand_builtin_object_size): Use new CALL_EXPR accessors. Use
17976 NULL_RTX instead of 0.
17977 (expand_builtin_memory_chk): Likewise.
17978 (maybe_emit_chk_warning): Likewise.
17979 (maybe_emit_sprintf_chk_warning): Likewise.
17980
17981 (fold_builtin_object_size): Pass call arguments individually instead
17982 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
17983 accessors and constructors. Return NULL_TREE instead of 0.
17984 (fold_builtin_memory_chk): Likewise.
17985 (fold_builtin_stxcpy_chk): Likewise.
17986 (fold_builtin_strncpy_chk): Likewise.
17987 (fold_builtin_strcat_chk): Likewise.
17988 (fold_builtin_strcat_chk): Likewise.
17989 (fold_builtin_strncat_chk): Likewise.
17990 (fold_builtin_sprintf_chk): Likewise.
17991 (fold_builtin_snprintf_chk): Likewise.
17992 (fold_builtin_printf): Likewise.
17993 (fold_builtin_vprintf): Likewise.
17994
17995 * fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
17996 constructors.
17997 (operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
17998 (make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
17999 (extract_muldiv_1): Add VL_EXP_CLASS_P case.
18000 (fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
18001 (fold_unary): Likewise.
18002 (fold_binary): Likewise.
18003 (fold_ternary): Remove CALL_EXPR case, since they are no longer
18004 ternary expressions.
18005 (fold): Add logic for tcc_vl_exp.
18006 (fold_checksum_tree): Make it know about tcc_vl_exp. Use
18007 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
18008 (fold_build3_stat): Add assertion to flag broken interface for
18009 constructing CALL_EXPRs.
18010 (fold_build_call_list): New.
18011 (fold_build_call_list_initializer): New.
18012 (tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
18013 constructors.
18014 (fold_strip_sign_ops): Likewise.
18015
18016 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
18017 Brooks Moses <brooks.moses@codesourcery.com>
18018 Lee Millward <lee.millward@codesourcery.com>
18019
18020 * tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
18021 accessors and dump arguments explicitly.
18022
18023 * tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
18024 TREE_CODE_LENGTH.
18025 (dump_generic_node): Use new CALL_EXPR accessors and walk arguments
18026 explicitly.
18027 (print_call_name): Use new CALL_EXPR accessors.
18028
18029 * print-tree.c (print_node): Add case tcc_vl_exp. Print
18030 CALL_EXPR arguments explicitly instead of as a list. Use
18031 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
18032
18033 * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
18034 (vrp_visit_stmt): Likewise.
18035
18036 * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Make it
18037 know about tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of
18038 TREE_CODE_LENGTH.
18039 (force_move_till_expr): Likewise.
18040
18041 * targhooks.c (default_external_stack_protect_fail): Use
18042 build_call_expr instead of build_function_call_expr.
18043 (default_hidden_stack_protect_fail): Likewise.
18044
18045 * tree-complex.c (expand_complex_libcall): Use build_call_expr to
18046 build the call.
18047
18048 * cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
18049 and walk arguments explicitly.
18050
18051 * tree-ssa-loop-niter.c (simplify_replace_tree): Use
18052 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
18053 (expand_simple_operations): Likewise.
18054 (infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
18055
18056 * gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
18057 of TREE_CODE_LENGTH.
18058 (walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
18059
18060 * optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
18061 instead of TREE_CODE_LENGTH.
18062
18063 * value_prof.c (tree_ic): Use new CALL_EXPR accessors.
18064 (tree_ic_transform): Likewise.
18065 (interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
18066 parameter instead of arglist. Fix callers.
18067 (tree_stringop_fixed_value): Use new CALL_EXPR accessors.
18068 (tree_stringops_transform): Likewise.
18069 (tree_indirect_call_to_profile): Likewise.
18070 (tree_stringops_values_to_profile): Likewise.
18071
18072 * tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
18073 (eliminate_tail_call): Likewise.
18074
18075 * ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
18076
18077 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
18078 Use TREE_OPERAND_LENGTH and generalize to handle any number of
18079 operands.
18080 (instantiate_parameters_1): Can't handle tcc_vl_exp here.
18081
18082 * omp-low.c (build_omp_barrier): Use build_call_expr.
18083 (lower_rec_input_clauses): Likewise.
18084 (lower_reduction_clauses): Likewise.
18085 (expand_parallel_call): Likewise.
18086 (maybe_catch_exception): Likewise.
18087 (expand_omp_for_generic): Likewise.
18088 (expand_omp_for_static_nochunk): Likewise.
18089 (expand_omp_sections): Likewise.
18090 (lower_omp_single_simple): Likewise.
18091 (lower_omp_single_copy): Likewise.
18092 (lower_omp_master): Likewise.
18093 (lower_omp_ordered): Likewise.
18094 (lower_omp_critical): Likewise.
18095
18096 * ipa-reference.c (check-call): Use new CALL_EXPR iterator.
18097 (scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
18098
18099 * tree-gimple.c (is_gimple_call_addr): Fix doc.
18100 (recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
18101 TREE_CODE_LENGTH. Add tcc_vl_exp case.
18102
18103 * tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
18104 and generalize to handle any number of operands.
18105 (chrec_contains_undetermined): Likewise.
18106 (tree_contains_chrecs): Likewise.
18107 (evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
18108
18109 * cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
18110
18111 * tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors. Use
18112 fold_call_expr instead of fold_builtin.
18113 (ccp_fold_builtin): Likewise. Update calls into builtins.c to
18114 match declarations there.
18115 (fold_stmt): Use new CALL_EXPR constructor and accessors. Doc
18116 updates.
18117
18118 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
18119 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
18120
18121 * ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
18122 (scan_function): Add case tcc_vl_exp for CALL_EXPR.
18123
18124 * tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
18125 accessors.
18126
18127 * tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
18128 (execute_cse_sincos): Use new CALL_EXPR accessors.
18129
18130 * tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
18131
18132 * gimple-low.c (lower_function_body): Use build_call_expr.
18133 (lower_builtin_setjmp): Likewise.
18134
18135 * expr.c (emit_block_move_via_libcall): Use build_call_expr.
18136 (set_storage_via_libcall): Likewise.
18137 (safe_from_p): Add tcc_vl_exp case. Use TREE_OPERAND_LENGTH
18138 instead of TREE_CODE_LENGTH.
18139 (expand_expr_real_1): Use new CALL_EXPR accessors.
18140
18141 * tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
18142 generalize to handle any number of operands.
18143 (TB_parent_eq): Likewise.
18144
18145 * predict.c (expr_expected_value): Use new CALL_EXPR accessors.
18146 (strip_builtin_expect): Likewise.
18147
18148 * function.c (gimplify_parameters): Use build_call_expr.
18149
18150 * tree-vectorizer.c (vect_is_simple_reduction): Use
18151 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
18152
18153 * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
18154 (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
18155
18156 * tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
18157 iterators.
18158
18159 * gimplify.c (build_stack_save_restore): Use build_call_expr.
18160 (gimplify_decl_expr): Likewise.
18161 (gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
18162 Use new CALL_EXPR iterators.
18163 (gimplify_modify_expr_to_memcpy): Use build_call_expr.
18164 (gimplify_modify_expr_to_memset): Likewise.
18165 (gimplify_variable_sized_compare): Likewise.
18166 (gimplify_omp_atomic_fetch_op): Likewise.
18167 (gimplify_omp_atomic_pipeline): Likewise.
18168 (gimplify_omp_atomic_mutex): Likewise.
18169 (gimplify_function_tree): Likewise.
18170
18171 * calls.c (alloca_call_p): Use new CALL_EXPR accessors.
18172 (call_expr_flags): Likewise.
18173 (expand_call): Likewise.
18174
18175 * except.c (expand_builtin_eh_return_data_regno): Pass entire
18176 CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
18177 accessors.
18178
18179 * coverage.c (create_coverage): Use build_call_expr.
18180
18181 * tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
18182 (temp_call_expr_obstack): New.
18183 (pool_copy_list): Delete.
18184 (temp_copy_call_expr): New.
18185 (phi_translate): Add case tcc_vl_exp for CALL_EXPR. Use new
18186 CALL_EXPR accessors. Get rid of special goo for copying argument
18187 lists and use temp_copy_call_expr instead.
18188 (valid_in_sets): Add case tcc_vl_exp for CALL_EXPR. Use new
18189 CALL_EXPR accessors.
18190 (create_expression_by_pieces): Likewise. Use build_call_array
18191 to construct the result instead of fold_build3.
18192 (create_value_expr_from): Add tcc_vl_exp. Delete special goo for
18193 dealing with argument lists.
18194 (init_pre): Remove references to expression_node_pool and
18195 list_node_pool. Init temp_call_expr_obstack instead.
18196 (fini_pre): Remove references to expression_node_pool and
18197 list_node_pool.
18198
18199 * tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
18200 and walk arguments explicitly instead of as a list.
18201
18202 * tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
18203 (mx_register_decls): Likewise.
18204 (mudflap_register_call): Likewise.
18205 (mudflap_finish_file): Likewise.
18206
18207 * ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
18208 (ipa_callsite_compute_param): Likewise.
18209
18210 * tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
18211 accessors and constructor.
18212
18213 * tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
18214 accessors and constructor.
18215 (convert_tramp_reference): Likewise.
18216 (convert_call_expr): Likewise.
18217 (finalize_nesting_tree_1): Likewise.
18218
18219 * tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
18220 accessors.
18221
18222 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
18223
18224 * tree-inline.c (initialize_inlined_parameters): Pass entire
18225 CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
18226 accessors.
18227 (estimate_num_insns_1): Use new CALL_EXPR accessors.
18228 (expand_call_inline): Tidy up call to initialize_inlined_parameters.
18229
18230 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use
18231 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
18232 (vectorizable_reduction): Likewise.
18233 (vectorizable_call): Use new CALL_EXPR iterators.
18234 (vectorizable_conversion): Use build_call_expr.
18235 (vectorizable_operation): Use TREE_OPERAND_LENGTH.
18236 (vect_gen_widened_results_half): Use build_call_expr.
18237 (vect_setup_realignment): Likewise.
18238 (vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
18239
18240 * tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
18241 (pass_through_call): Likewise.
18242 (compute_object_sizes): Likewise. Use fold_call_expr instead of
18243 fold_builtin.
18244
18245 * tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
18246 (tree_gen_pow2_profiler): Likewise.
18247 (tree_gen_one_value_profiler): Likewise.
18248 (tree_gen_ic_func_profiler): Likewise.
18249 (tree_gen_average_profiler): Likewise.
18250 (tree_gen_ior_profiler): Likewise.
18251
18252 * tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
18253 (find_func_aliases): Use new CALL_EXPR accessors. Add case
18254 tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
18255
18256 * tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
18257 of TREE_CODE_LENGTH.
18258
18259 * stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
18260 of TREE_CODE_LENGTH.
18261
18262 * convert.c (convert_to_real): Use new CALL_EXPR accessors and
18263 constructor.
18264 (convert_to_integer): Likewise.
18265
18266 * tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
18267 accessors.
18268
18269 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
18270 Brooks Moses <brooks.moses@codesourcery.com>
18271 Lee Millward <lee.millward@codesourcery.com>
18272
18273 * config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
18274 accessors.
18275 * config/frv/frv.c (frv_expand_builtin): Likewise.
18276 * config/s390/s390.c (s390_expand_builtin): Likewise.
18277
18278 * config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
18279 (sparc_expand_builtin): Use new CALL_EXPR accessors.
18280
18281 * config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
18282 (ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
18283 instead of arglist. Use new CALL_EXPR accessors on it. Fix callers.
18284 (ix86_expand_store_builtin): Likewise.
18285 (ix86_expand_unop_builtin): Likewise.
18286 (ix86_expand_unop1_builtin): Likewise.
18287 (ix86_expand_sse_compare): Likewise.
18288 (ix86_expand_sse_comi): Likewise.
18289 (ix86_expand_vec_init_builtin): Likewise.
18290 (ix86_expand_vec_ext_builtin): Likewise.
18291 (ix86_expand_vec_set_builtin): Likewise.
18292 (ix86_expand_builtin): Use new CALL_EXPR accessors.
18293
18294 * config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
18295 * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
18296
18297 * config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
18298 instead of arglist. Use new CALL_EXPR accessors. Fix callers.
18299 (iq2000_expand_builtin): Use new CALL_EXPR accessors.
18300
18301 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
18302 build_call_expr.
18303 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
18304 (rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
18305 arglist. Use new CALL_EXPR accessors. Fix callers.
18306 (altivec_expand_abs_builtin): Likewise.
18307 (rs6000_expand_binop_builtin): Likewise.
18308 (altivec_expand_predicate_builtin): Likewise.
18309 (altivec_expand_lv_builtin): Likewise.
18310 (spe_expand_stv_builtin): Likewise.
18311 (altivec_expand_stv_builtin): Likewise.
18312 (rs6000_expand_ternop_builtin): Likewise.
18313 (altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
18314 (altivec_expand_st_builtin): Likewise.
18315 (altivec_expand_dst_builtin): Likewise.
18316 (altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
18317 arglist. Use new CALL_EXPR accessors. Fix callers.
18318 (altivec_expand_vec_set_builtin): Likewise.
18319 (altivec_expand_vec_ext_builtin): Likewise.
18320 (altivec_expand_builtin): Use new CALL_EXPR accessors.
18321 (spe_expand_builtin): Likewise.
18322 (spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
18323 arglist. Use new CALL_EXPR accessors. Fix callers.
18324 (spe_expand_evsel_builtin): Likewise.
18325 (rs6000_expand_builtin): Use new CALL_EXPR accessors. VCFUX and
18326 FCFSX cases must construct whole new CALL_EXPR, not just arglist.
18327
18328 * config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
18329 instead of arglist. Use new CALL_EXPR accessors. Fix callers.
18330 (arm_expand_unop_builtin): Likewise.
18331 (arm_expand_builtin): Use new CALL_EXPR accessors.
18332
18333 * config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR
18334 accessors.
18335
18336 * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire
18337 CALL_EXPR instead of arglist. Use new CALL_EXPR accessors.
18338 Fix callers.
18339 (bfin_expand_unop_builtin): Likewise.
18340 (bfin_expand_builtin): Use new CALL_EXPR accessors.
18341
18342 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
18343 Brooks Moses <brooks.moses@codesourcery.com>
18344 Lee Millward <lee.millward@codesourcery.com>
18345
18346 * c-semantics.c (build_stmt): Add internal diagnostic check.
18347
18348 * c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
18349 accessors. Print arguments explicitly instead of as a list.
18350
18351 * c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
18352
18353 * c-omp.c (c_finish_omp_barrier): Use build_call_expr.
18354 (c_finish_omp_flish): Likewise.
18355
18356 * c-common.c (verify_tree): Use new CALL_EXPR accessors. Traverse
18357 arguments explicitly instead of as a list. Use TREE_OPERAND_LENGTH
18358 instead of TREE_CODE_LENGTH.
18359 (check_function_arguments_recurse): Use new CALL_EXPR accessors.
18360 (c_warn_unused_result): Likewise.
18361
18362 2007-02-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18363
18364 PR c/26494
18365 * doc/invoke.texi (Warning Options): Remove
18366 -Werror-implicit-function-declaration.
18367 (Wimplicit-function-declaration): Update description.
18368 * opts.c (common_handle_option): Move handling of -Werror=* to...
18369 (enable_warning_as_error): ...here.
18370 * opts.h (enable_warning_as_error): Declare.
18371 * c-decl.c (implicit_decl_warning): Unless
18372 -Wno-implicit-function-declaration is given, emit a pedwarn if
18373 -std=c99 or emit a warning if -Wimplicit-function-declaration.
18374 * c.opt (Wimplicit-function-declaration): Replace
18375 mesg_implicit_function_declaration with
18376 warn_implicit_function_declaration.
18377 * c-opts.c (c_common_handle_option):
18378 -Werror-implicit-function-declaration is exactly equal as
18379 -Werror=implicit-function-declaration.
18380 (set_Wimplicit): Replace mesg_implicit_function_declaration with
18381 warn_implicit_function_declaration.
18382 (c_common_post_options): -Wimplict-function-declaration is enabled
18383 by default by -std=c99, otherwise is disabled by default.
18384 * c-objc-common.c (c_objc_common_init): Remove flawed logic.
18385
18386 2007-02-15 Eric Botcazou <ebotcazou@adacore.com>
18387
18388 * gimplify.c (gimplify_modify_expr): During gimplification, attach a
18389 DECL on the rhs to a DECL on the lhs for debug info purposes if the
18390 former is ignored but not the latter.
18391
18392 2007-02-15 Eric Botcazou <ebotcazou@adacore.com>
18393
18394 * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
18395 is made and the reference doesn't use the alias set of its type,
18396 do not create the temporary using that type.
18397
18398 2007-02-15 Aldy Hernandez <aldyh@redhat.com>
18399
18400 * jump.c: Remove prototypes for delete_computation and
18401 delete_prior_computation.
18402
18403 2007-02-15 Paolo Bonzini <bonzini@gnu.org>
18404
18405 * jump.c (get_label_after): Delete.
18406 (get_label_before, delete_computation, delete_jump,
18407 delete_prior_computation, follow_jumps): Move...
18408 * reorg.c (delete_computation, delete_prior_computation): ... here...
18409 (get_label_before, delete_jump): ... making these static ...
18410 (follow_jumps): ... and simplifying this since it only runs after
18411 reload.
18412 * rtl.h (get_label_after, get_label_before, delete_jump,
18413 follow_jumps): Delete prototypes.
18414
18415 2007-02-15 Paolo Bonzini <bonzini@gnu.org>
18416
18417 * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
18418
18419 2007-02-15 Nick Clifton <nickc@redhat.com>
18420
18421 * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
18422 order to prevent it from being munged by the target.
18423
18424 2007-02-15 Uros Bizjak <ubizjak@gmail.com>
18425
18426 * config/i386/i386.md: Remove misleading comment.
18427
18428 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
18429
18430 * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
18431 reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
18432 invalid patterns.
18433
18434 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
18435
18436 * tree-sra.c (instantiate_missing_elements): Canonicalize
18437 bit-field types.
18438 (sra_build_assignment): New.
18439 (generate_copy_inout, generate_element_copy,
18440 generate_element_zero, generate_one_element_init): Use it.
18441
18442 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
18443
18444 * tree-sra.c (instantiate_missing_elements): Canonicalize
18445 bit-field types.
18446 (sra_build_assignment): New.
18447 (generate_copy_inout, generate_element_copy,
18448 generate_element_zero, generate_one_element_init): Use it.
18449
18450 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
18451
18452 * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
18453 limbo die nodes.
18454
18455 2007-02-14 Joseph Myers <joseph@codesourcery.com>
18456
18457 * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
18458 types as aggregates not scalars.
18459 * function.c (assign_stack_temp_for_type): Likewise.
18460
18461 2007-02-14 Roger Sayle <roger@eyesopen.com>
18462 Zdenek Dvorak <dvorakz@suse.cz>
18463
18464 * tree-dump.c (dump_switch_p_1): Require exact match of the option
18465 name.
18466
18467 2007-02-14 Zdenek Dvorak <dvorakz@suse.cz>
18468
18469 * passes.c (next_pass_1): Clear the next field of the copied
18470 pass structure.
18471
18472 2007-02-14 Richard Henderson <rth@redhat.com>
18473
18474 * tree-sra.c (early_sra): New.
18475 (decl_can_be_decomposed_p): Deny va_list if early_sra.
18476 (tree_sra_early, pass_sra_early): New.
18477 * tree-pass.h (pass_sra_early): Declare.
18478 * passes.c (init_optimization_passes): Use it.
18479
18480 2007-02-14 Richard Guenther <rguenther@suse.de>
18481
18482 * flags.h (issue_strict_overflow_warning): Convert to a macro.
18483
18484 2007-02-14 Dorit Nuzman <dorit@il.ibm.com>
18485
18486 PR tree-optimization/30771
18487 * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
18488 also phi nodes.
18489 (vect_analyze_operations): Induction phis can now be marked as
18490 used_in_loop.
18491 (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
18492 Update documentation accordingly.
18493
18494 2007-02-14 Nick Clifton <nickc@redhat.com>
18495
18496 * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
18497 most 3 arguments are supported.
18498 (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
18499
18500 2007-02-13 Seongbae Park <seongbae.park@gmail.com>
18501
18502 * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
18503 Ensure dst->current is valid.
18504
18505 2007-02-13 Paul Brook <paul@codesourcery.com>
18506
18507 * config.gcc: Add arm*-*-uclinux-*eabi.
18508 * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
18509 (SUBTARGET_EXTRA_LINK_SPEC): Define.
18510 (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
18511 (LINK_GCC_C_SEQUENCE_SPEC): Undef.
18512 (LINK_SPEC): Define.
18513 (LIB_SPEC): Define.
18514 * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
18515 register.
18516 * config/arm/uclinux-eabi.h: New file.
18517 * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
18518 * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
18519 based targets.
18520
18521 2007-02-13 Ian Lance Taylor <iant@google.com>
18522
18523 * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
18524 * flags.h (warn_strict_overflow): Declare.
18525 (enum warn_strict_overflow_code): Define.
18526 (issue_strict_overflow_warning): New static inline function.
18527 * opts.c (warn_strict_overflow): New variable.
18528 (common_handle_option): Handle OPT_Wstrict_overflow and
18529 OPT_Wstrict_overflow_.
18530 * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
18531 OPT_Wall.
18532 * fold-const.c: Include intl.h.
18533 (fold_deferring_overflow_warnings): New static variable.
18534 (fold_deferred_overflow_warning): New static variable.
18535 (fold_deferred_overflow_code): New static variable.
18536 (fold_defer_overflow_warnings): New function.
18537 (fold_undefer_overflow_warnings): New function.
18538 (fold_undefer_and_ignore_overflow_warnings): New function.
18539 (fold_deferring_overflow_warnings_p): New function.
18540 (fold_overflow_warning): New static function.
18541 (make_range): Add strict_overflow_p parameter. Change all
18542 callers.
18543 (extract_muldiv, extract_muldiv_1): Likewise.
18544 (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
18545 tree_expr_nonnegative_p.
18546 (fold_negate_expr): Call fold_overflow_warning.
18547 (fold_range_test): Likewise.
18548 (fold_comparison): Likewise.
18549 (fold_binary): Likewise. Call tree_expr_nonnegative_warnv_p
18550 instead of tree_expr_nonnegative_p.
18551 (tree_expr_nonnegative_warnv_p): Rename from
18552 tree_expr_nonnegative_p, add strict_overflow_p parameter.
18553 (tree_expr_nonnegative_p): New function.
18554 (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
18555 strict_overflow_p parameter.
18556 (tree_expr_nonzero_p): New function.
18557 * passes.c (verify_interpass_invariants): New static function.
18558 (execute_one_pass): Call it.
18559 * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
18560 warnings.
18561 (number_of_iterations_exit, loop_niter_by_eval): Likewise.
18562 (estimate_numbers_of_iterations): Likewise.
18563 (scev_probably_wraps_p): Likewise.
18564 * tree-ssa-ccp.c: Include "toplev.h".
18565 (evaluate_stmt): Defer fold overflow warnings until we know we are
18566 going to optimize.
18567 (struct fold_stmt_r_data): Add stmt field.
18568 (fold_stmt_r): Defer fold overflow warnings until we know we
18569 optimized.
18570 (fold_stmt): Initialize stmt field of fold_stmt_r_data.
18571 (fold_stmt_inplace): Likewise.
18572 * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
18573 (cleanup_control_expr_graph): Defer fold overflow warnings until
18574 we know we are going to optimize.
18575 * tree-cfg.c (fold_cond_expr_cond): Likewise.
18576 * tree-ssa-threadedge.c (simplify_control_stmt_condition):
18577 Likewise.
18578 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
18579 tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
18580 * tree-ssa-loop-manip.c (create_iv): Likewise.
18581 * c-typeck.c (build_conditional_expr): Likewise.
18582 (build_binary_op): Likewise.
18583 * tree-vrp.c (vrp_expr_computes_nonzero): Call
18584 tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
18585 (extract_range_from_unary_expr): Likewise.
18586 * simplify-rtx.c (simplify_const_relational_operation): Warn when
18587 assuming that signed overflow does not occur.
18588 * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
18589 * tree.h (tree_expr_nonnegative_warnv_p): Declare.
18590 (fold_defer_overflow_warnings): Declare.
18591 (fold_undefer_overflow_warnings): Declare.
18592 (fold_undefer_and_ignore_overflow_warnings): Declare.
18593 (fold_deferring_overflow_warnings_p): Declare.
18594 (tree_expr_nonzero_warnv_p): Declare.
18595 * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
18596 of warning options.
18597 (Warning Options): Document -Wstrict-overflow.
18598 * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
18599 (tree-ssa-ccp.o): Likewise.
18600 (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
18601 (fold-const.o): Depend on intl.h.
18602
18603 2007-02-13 Ian Lance Taylor <iant@google.com>
18604
18605 PR middle-end/30751
18606 * lower-subreg.c (resolve_simple_move): Decompose subregs in
18607 addresses.
18608
18609 2007-02-13 Stuart Hastings <stuart@apple.com>
18610
18611 * config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
18612
18613 2007-02-13 Richard Henderson <rth@redhat.com>
18614
18615 * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
18616 handled_component_p before looking for the indirect_ref.
18617
18618 2007-02-13 Richard Henderson <rth@redhat.com>
18619
18620 * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
18621 remove flags clobber.
18622 (bswapsi2): New expander, emit code for !TARGET_BSWAP.
18623 (bswaphi_lowpart): New.
18624 (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
18625 remove TARGET_BSWAP test. Delete expander of the same name.
18626
18627 * optabs.c (widen_bswap, expand_doubleword_bswap): New.
18628 (expand_unop): Use them.
18629
18630 2007-02-13 Uros Bizjak <ubizjak@gmail.com>
18631
18632 * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
18633 *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
18634 *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
18635 *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
18636 *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
18637 *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
18638 *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
18639 assembler dialect choice from asm templates.
18640
18641 2007-02-12 Richard Henderson <rth@redhat.com>
18642
18643 * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
18644 (fixuns_trunc<SSEMODEF>si2): Use it.
18645 * config/i386/sse.md (vec_setv4sf_0): Export.
18646 * config/i386/i386.c (ix86_build_const_vector): Export.
18647 (ix86_split_convert_uns_si_sse): Rename from
18648 ix86_expand_convert_uns_si_sse and rewrite as a splitter.
18649 * config/i386/i386-protos.h: Update.
18650
18651 2007-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18652
18653 PR c/29521
18654 * c-typeck.c (c_finish_return): Improve warning message.
18655
18656 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18657
18658 * alias.c (find_symbolic_term): Delete unused function.
18659
18660 2007-02-12 Uros Bizjak <ubizjak@gmail.com>
18661
18662 * config/i386/i386.md (paritydi2, paritysi2): New expanders.
18663 (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
18664 (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
18665
18666 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
18667
18668 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
18669 * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
18670 the function, temporarily point the debug interface to the null one.
18671
18672 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
18673
18674 * dwarf2out.c (round_up_to_align): New static function.
18675 (field_byte_offset): Use it to round the offset.
18676
18677 2007-02-12 Richard Henderson <rth@redhat.com>
18678
18679 * config/alpha/alpha.md (bswapsi2, bswapdi2): New.
18680 (inswl_const): Export.
18681
18682 2007-02-12 Richard Henderson <rth@redhat.com>
18683
18684 * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
18685 result mode of the libcall, convert back to outmode.
18686
18687 2007-02-12 Roger Sayle <roger@eyesopen.com>
18688
18689 * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
18690 (bswapdi2): New define_expand to implement 32-bit implementation.
18691
18692 2007-02-12 Nick Clifton <nickc@redhat.com>
18693
18694 * doc/invoke.texi (Overall Options): Document --help=.
18695 * gcc.c (target_help_flag): Rename to print_subprocess_flag.
18696 (cc1_options): Pass --help= on to cc1.
18697 (display_help): Add description of --help=.
18698 (process_command): Add code to handle --help=. Allow translated
18699 --help and --target-help switches to be passed on to compiler
18700 sub-process.
18701 (main): Remove unused if statement.
18702 * opts.c (columns): Remove.
18703 (LEFT_COLUMN): Define.
18704 (wrap_help): Add columns argument.
18705 (print_filtered_help): Change parameters to be an include bitmask,
18706 an exclude bitmask, an any bitmask and the column width. Move the
18707 code to display the params list here. Add code to display the
18708 status of options rather than their descriptions if the quiet flag
18709 is not active.
18710 (print_specific_help): Change parameters to be an include bitmask,
18711 an exclude bitmask and an any bitmask. Move code to look up the
18712 column width here. Decide upon the title for an options listing.
18713 (common_handle_options): Add code to handle --help=. Adapt code
18714 for --help and --target-help to use the revised form of the
18715 print_specific_help function.
18716 (print_help): Delete.
18717 (print_param_help): Delete.
18718 (print_switch): Delete.
18719 * opts.h (cl_lang_count): Add prototype.
18720 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS,
18721 CL_MAX_OPTION_CLASS): New defines.
18722 * optc-gen.awk: Add construction of cl_lang_count.
18723 * c.opt: Add Warning attribute to warning options and Optimization
18724 attribute to optimization options.
18725 * common.opt: Likewise.
18726 Add --help=.
18727 Add -fhelp and -ftarget-help as aliases for the transformed --help
18728 and --target-help options.
18729 * opt-functions.awk: Add code to handle Warning and Optimization
18730 attributes.
18731
18732 2007-02-12 Richard Henderson <rth@redhat.com>
18733
18734 * config/alpha/constraints.md: New file.
18735 * config/alpha/alpha.c: Include tm-constrs.h.
18736 (alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
18737 alpha_extra_constraint): Remove.
18738 (alpha_emit_conditional_branch): Use satisfies_constraint_*.
18739 * config/alpha/alpha-protos.h: Update.
18740 * config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
18741 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
18742 (EXTRA_CONSTRAINT): Remove.
18743 * config/alpha/alpha.md: Include constraints.md.
18744 (adddi splitter): Use satisfies_constraint_*.
18745 * config/alpha/predicates.md (add_operand): Likewise.
18746 (sext_add_operand, addition_operation): Likewise.
18747
18748 2007-02-12 Dorit Nuzman <dorit@il.ibm.com>
18749
18750 PR tree-optimization/29145
18751 * tree-data-ref.c (base_addr_differ_p): Make us more conservative
18752 in our handling of restrict qualified pointers.
18753
18754 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18755
18756 PR middle-end/7651
18757 * doc/invoke.texi (Wunused-value): Update description.
18758 (Wextra): Delete item.
18759 * opts.c (set_Wextra): Don't use the value of Wextra to set the
18760 value of Wunused-value.
18761 * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
18762 (c_finish_stmt_expr): Don't check extra_warnings.
18763 (emit_side_effect_warnings): The caller is responsible to check
18764 warn_unused_value.
18765
18766 2007-02-11 Roger Sayle <roger@eyesopen.com>
18767 Matt Thomas <matt@3am-software.com>
18768
18769 * simplify-rtx.c (simplify_relational_operation_1): Correct typo.
18770
18771 2007-02-11 Roger Sayle <roger@eyesopen.com>
18772
18773 * simplify-rtx.c (simplify_relational_operation_1): Optimize
18774 comparisons of POPCOUNT against zero.
18775 (simplify_const_relational_operation): Likewise.
18776
18777 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18778
18779 * doc/invoke.texi (Wextra): Delete outdated paragraph.
18780
18781 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18782
18783 * dwarf2out.c (root_type): Delete unused function.
18784
18785 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18786
18787 * genattrtab.c (contained_in_p): Delete unused function.
18788 (write_expr_attr_cache): Likewise.
18789
18790 2007-02-11 Jan Hubicka <jh@suse.cz>
18791
18792 * ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
18793 previous patch.
18794
18795 2007-02-11 Steven Bosscher <steven@gcc.gnu.org>
18796
18797 * fwprop.c (try_fwprop_subst): Use set_unique_reg_note
18798 to add the REG_EQ* note.
18799 * see.c (see_merge_one_use_extension): Likewise.
18800 * local-alloc.c (update_equiv_regs): Likewise. Also don't
18801 turn REG_EQUAL notes into REG_EQUIV notes if the target
18802 register may have more than one set.
18803 * function.c (assign_parm_setup_reg): Use set_unique_reg_note.
18804 * gcse.c (try_replace_reg): Likewise.
18805 * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
18806 * calls.c (fixup_tail_calls): Likewise. Abort if there is
18807 more than one REG_EQUIV note.
18808 * reload1.c (gen_reload): Use set_unique_reg_note.
18809
18810 2007-02-11 Uros Bizjak <ubizjak@gmail.com>
18811
18812 * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
18813 (ix86_builtin_conversion): New function.
18814
18815 2007-02-06 Mark Mitchell <mark@codesourcery.com>
18816
18817 PR target/29487
18818 * tree.h (DECL_REPLACEABLE_P): New macro.
18819 * except.c (set_nothrow_function_flags): Likewise.
18820
18821 2007-02-11 Tehila Meyzels <tehila@il.ibm.com>
18822 Ira Rosen <irar@il.ibm.com>
18823 Dorit Nuzman <dorit@il.ibm.com>
18824
18825 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
18826 * targhooks.c (default_builtin_vectorized_conversion): New.
18827 * targhooks.h (default_builtin_vectorized_function): New declaration.
18828 * target.h (struct vectorize): Add builtin_conversion field.
18829 * tree-vectorizer.h (type_conversion_vec_info_type): New enum
18830 stmt_vec_info_type value.
18831 (vectorizable_conversion): New declaration.
18832 * tree-vect-analyze.c (vect_analyze_operations): Add
18833 vectorizable_conversion call.
18834 * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
18835 * tree-vect-transform.c (vectorizable_conversion): New function.
18836 (vect_transform_stmt): Add case for type_conversion_vec_info_type.
18837 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
18838 mode.
18839 * config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
18840 (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
18841 (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX
18842 or ALTIVEC_BUILTIN_VCFSX.
18843
18844 2007-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18845
18846 PR target/30634
18847 * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
18848 CONST_DOUBLE and operand 0 is a hard register.
18849 (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
18850 memory. Fail if operand 1 is a non-zero CONST_INT and operand 0
18851 is a hard floating-point register.
18852
18853 2007-02-10 Richard Henderson <rth@redhat.com>
18854 Jakub Jelinek <jakub@redhat.com>
18855 Alexandre Oliva <aoliva@redhat.com>
18856
18857 * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
18858 * builtin-types.def (BT_WORD): Make unsigned.
18859 (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
18860 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
18861 (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
18862 * c-decl.c (grokdeclarator): Don't error if !have_tls.
18863 * c-parser.c (c_parser_omp_threadprivate): Likewise.
18864 * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
18865 emulated tls.
18866 * expr.c (emutls_var_address): New.
18867 (expand_expr_real_1): Expand emulated tls.
18868 (expand_expr_addr_expr_1): Likewise.
18869 * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
18870 * output.h (emutls_finish): Declare.
18871 * toplev.c (compile_file): Call it.
18872 * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
18873 address before wrapping in CONST.
18874 * varasm.c (emutls_htab, emutls_object_type): New.
18875 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
18876 (get_emutls_object_name, get_emutls_object_type): New.
18877 (get_emutls_init_templ_addr, emutls_decl): New.
18878 (emutls_common_1, emutls_finish): New.
18879 (assemble_variable): When emulating tls, swap decls; generate
18880 constructor for the emutls objects.
18881 (do_assemble_alias): When emulating tls, swap decl and target name.
18882 (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
18883 for emulated tls.
18884 * varpool.c (decide_is_variable_needed): Look at force_output.
18885 Recurse for emulated tls.
18886 (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
18887 with decide_is_variable_needed.
18888 * emutls.c: New file.
18889 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
18890 tls_object for real tls.
18891
18892 2007-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
18893
18894 PR rtl-optimization/29599
18895 * reload1.c (eliminate_regs_in_insn): Take the destination
18896 mode into account when computing the offset.
18897
18898 2007-02-09 Stuart Hastings <stuart@apple.com>
18899 Richard Henderson <rth@redhat.com>
18900
18901 * config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
18902 * config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
18903 * config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2,
18904 fixuns_truncdfhi2): New.
18905 (fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse.
18906 (floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
18907 (floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
18908 (floatunssidf2): Allow nonimmediate source.
18909 * config/i386/sse.md (movdi_to_sse): New.
18910 (vec_concatv2di): Drop '*'.
18911 * config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
18912 ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
18913 ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse):
18914 New.
18915 * config/i386/i386.c (ix86_expand_convert_uns_si_sse,
18916 ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
18917 ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
18918 ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
18919 (ix86_build_signbit_mask): Fix decl of v, refactor to call
18920 ix86_build_const_vector.
18921 (x86_emit_floatuns): Rewrite.
18922
18923 2007-02-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18924
18925 * genautomata.c (longest_path_length): Delete unused function.
18926 (struct state): Delete unused longest_path_length.
18927 (UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
18928 (get_free_state): Delete unused.
18929
18930 2007-02-09 Jan Hubicka <jh@suse.cz>
18931
18932 * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
18933 * doc/invoke.texi (inline-unit-growth): Update default value.
18934
18935 * Makefile.in (passes.o, ipa-inline.o): Add dependencies.
18936 * cgraphbuild.c (build_cgraph_edges): Compute frequencies.
18937 (rebuild_cgraph_edges): Likewise.
18938 * cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
18939 (dump_cgraph_node): Dump frequencies.
18940 (cgraph_clone_edge): Add frequency scales.
18941 (cgraph_clone_node): Add freuqnecy.
18942 * cgraph.h (cgraph_edge): Add freuqnecy argument.
18943 (CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
18944 (cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
18945 * tree-pass.h (TODO_rebuild_frequencies): New constant.
18946 * cgraphunit.c (verify_cgraph_node): Verify frequencies.
18947 (cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
18948 (save_inline_function_body): Likewise.
18949 * ipa-inline.c: inluce rtl.h
18950 (cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
18951 (cgraph_edge_badness): Use frequencies.
18952 (cgraph_decide_recursive_inlining): Update clonning.
18953 (cgraph_decide_inlining_of_small_function): Dump frequency.
18954 * predict.c (estimate_bb_frequencies): Export.
18955 * predict.h (estimate_bb_frequencies): Declare.
18956 * tree-inline.c (copy_bb): Watch overflows.
18957 (expand_call_inline): Update call of cgraph_create_edge.
18958 (optimize_inline_calls): Use TODO flags to update frequnecies.
18959 * passes.h: Include predict.h
18960 (init_optimization_passes): Move profile ahead.
18961 (execute_function_todo): Handle TODO_rebuild_frequencies.
18962
18963 2007-02-09 Roger Sayle <roger@eyesopen.com>
18964
18965 * config/alpha/alpha.c (emit_insxl): Force the first operand of
18966 the insbl or inswl pattern into a register.
18967
18968 2007-02-09 Roger Sayle <roger@eyesopen.com>
18969
18970 * config/ia64/ia64.md (bswapdi2): New define_insn.
18971
18972 2007-02-09 Richard Henderson <rth@redhat.com>
18973
18974 * config/i386/constraints.md (Ym): New constraint.
18975 * config/i386/i386.md (movsi_1): Change Y2 to Yi constraints.
18976 (movdi_1_rex64): Split sse and xmm general register moves from
18977 memory move alternatives. Use conditional register constraints.
18978 (movsf_1, movdf_integer): Likewise.
18979 (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
18980 (movdf_integer_rex64): New.
18981 (pushsf_rex64): Fix output constraints.
18982 * config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi.
18983 (sse2_stored): Likewise.
18984 (sse2_storeq_rex64): New.
18985 * config/i386/i386.c (x86_inter_unit_moves): Enable for not
18986 amd and not generic.
18987 (ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
18988 for optimize_size. Remove SF/DFmode hack.
18989
18990 2007-02-09 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
18991
18992 * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
18993 (bit_SSE4a): New.
18994
18995 2007-02-09 Nathan Sidwell <nathan@codesourcery.com>
18996 Richard Sandiford <richard@codesourcery.com>
18997
18998 * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
18999 (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
19000 (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
19001 m68k/t-mlib to tmake_file.
19002 (m68020-*-elf*, m68k-*-elf*): Likewise. Add t-m68kbare as well.
19003 (m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
19004 (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
19005 Allow it to be cf or m68k. Set m68k_arch_family. If that
19006 variable is not empty, add t-$m68k_arch_family to tmake_file.
19007 Add t-mlibs to tmake_file.
19008 * doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
19009 * config/m68k/t-cf: New file.
19010 * config/m68k/t-m68k: Likewise.
19011 * config/m68k/t-mlibs: Likewise.
19012 * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
19013 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
19014 (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
19015 * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
19016 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
19017 Delete.
19018 * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
19019 (INSTALL_LIBGCC): Delete.
19020 (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
19021 * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
19022 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
19023 (M68K_MLIB_CPU): Define.
19024 * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
19025 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
19026 (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.
19027
19028 2007-02-09 Zdenek Dvorak <dvorakz@suse.cz>
19029 Richard Guenther <rguenther@suse.de>
19030
19031 PR middle-end/23361
19032 * fold-const.c (fold_comparison): Handle obfuscated comparisons
19033 against INT_MIN/INT_MAX.
19034 * tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump
19035 file if a loop is removed.
19036
19037 2007-02-09 Joseph Myers <joseph@codesourcery.com>
19038
19039 * calls.c (store_one_arg): Pass correct alignment to
19040 emit_push_insn for non-BLKmode values.
19041 * expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an
19042 unaligned stack slot via a suitably aligned slot.
19043
19044 2007-02-08 DJ Delorie <dj@redhat.com>
19045
19046 * config/m32c/m32c.c (m32c_unpend_compare): Add default to silence
19047 warnings.
19048 (legal_subregs): Use unsigned char, make const.
19049 (m32c_illegal_subreg_p): Use ARRAY_SIZE. Delete unused variables.
19050
19051 2007-02-08 Paul Brook <paul@codesourcery.com>
19052
19053 * config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no
19054 special interworking needed.
19055
19056 2007-02-08 Harsha Jagasia <harsha.jagasia@amd.com>
19057
19058 * config/i386/xmmintrin.h: Make inclusion of emmintrin.h
19059 conditional to __SSE2__.
19060 (Entries below should have been added to first ChangeLog
19061 entry for amdfam10 dated 2007-02-05)
19062 * config/i386/emmintrin.h: Generate #error if __SSE2__ is not
19063 defined.
19064 * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not
19065 defined.
19066 * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not
19067 defined.
19068
19069 2007-02-08 DJ Delorie <dj@redhat.com>
19070
19071 * config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New.
19072 * config/m32c/m32c.c (legal_subregs): New.
19073 (m32c_illegal_subreg_p): New.
19074 * config/m32c/predicates.md (m32c_any_operand): Use it to reject
19075 unsupported subregs of hard regs.
19076
19077 2007-02-08 Jan Hubicka <jh@suse.cz>
19078
19079 * tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
19080 the same one; always update histograms.
19081
19082 2007-02-08 Diego Novillo <dnovillo@redhat.com>
19083
19084 * passes.c (init_optimization_passes): Tidy comment.
19085
19086 2007-02-08 Roger Sayle <roger@eyesopen.com>
19087
19088 * simplify-rtx.c (simplify_unary_operation_1) <POPCOUNT>: We can
19089 strip zero_extend, bswap and rotates from POCOUNT's argument.
19090 <PARITY>: Likewise, we can strip not, bswap, sign_extend,
19091 zero_extend and rotates from PARITY's argument.
19092 <BSWAP>: A byte-swap followed by a byte-swap is an identity.
19093 (simplify_const_unary_operation) <BSWAP>: Evaluate the byte-swap
19094 of an integer constant at compile-time.
19095
19096 2007-02-08 Diego Novillo <dnovillo@redhat.com>
19097
19098 PR 30562
19099 * tree-flow.h (struct var_ann_d): Remove field 'is_used'.
19100 Update all users.
19101 * tree-ssa-alias.c (compute_is_aliased): Remove. Update all
19102 users.
19103 (init_alias_info):
19104 * tree-ssa-live.c (remove_unused_locals): Do not remove
19105 TREE_ADDRESSABLE variables.
19106 * tree-ssa-structalias.c (compute_points_to_sets): Tidy.
19107 * tree-ssa-operands.c (add_virtual_operand): Remove argument
19108 FOR_CLOBBER. Update all users.
19109 If VAR has an associated alias set, add a virtual operand for
19110 it if no alias is found to conflict with the memory reference.
19111
19112 2007-02-07 Jan Hubicka <jh@suse.cz>
19113 Robert Kidd <rkidd@crhc.uiuc.edu>
19114
19115 * value-prof.c (visit_hist, free_hist): Return 1 instead of 0.
19116
19117 2007-02-07 Ian Lance Taylor <iant@google.com>
19118
19119 * lower-subreg.c (simple_move): Reject PARTIAL_INT modes.
19120
19121 2007-02-07 Roger Sayle <roger@eyesopen.com>
19122
19123 * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
19124 parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack,
19125 tablejumpdi, movsi_to_cr_one): Remove constraints from
19126 define_expand's match_operands.
19127
19128 2007-02-07 Roger Sayle <roger@eyesopen.com>
19129
19130 * global.c (compute_regsets): Move declatation of "i" inside of
19131 #ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure.
19132
19133 2007-02-07 Jakub Jelinek <jakub@redhat.com>
19134
19135 PR c++/30703
19136 * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
19137 of INDIRECT_REF <RESULT_DECL>.
19138
19139 * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2.
19140
19141 2007-02-06 J"orn Rennecke <joern.rennecke@arc.com>
19142 Kaz Kojima <kkojima@gcc.gnu.org>
19143
19144 PR target/29746
19145 * config/sh/sh.c (expand_cbranchdi4): Use scratch register
19146 properly.
19147 (sh_initialize_trampoline): Add parentheses to avoid a warning.
19148
19149 2007-02-06 Zdenek Dvorak <dvorakz@suse.cz>
19150
19151 * doc/loop.texi: Document possibility not to perform disambiguation
19152 of loops with multiple latches.
19153 * cfgloopmanip.c (alp_enum_p): Removed.
19154 (add_loop): Handle subloops. Use get_loop_body_with_size.
19155 (create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
19156 * cfghooks.c (redirect_edge_and_branch_force): Set dominator for
19157 the new forwarder block.
19158 (make_forwarder_block): Only call new_bb_cbk if it is not NULL.
19159 Handle the case latch is NULL.
19160 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg
19161 modifications when marking loop exits.
19162 * ifcvt.c (if_convert): Ditto. Mark loop exits even if cfg cannot
19163 be modified.
19164 * loop-init.c (loop_optimizer_init): Do not modify cfg. Call
19165 disambiguate_loops_with_multiple_latches.
19166 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
19167 before fix_loop_structure.
19168 * cfgloop.c: Include pointer-set.h and output.h.
19169 (canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
19170 update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
19171 (get_loop_latch_edges, find_subloop_latch_edge_by_profile,
19172 find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
19173 mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
19174 disambiguate_multiple_latches, get_loop_body_with_size,
19175 disambiguate_loops_with_multiple_latches): New functions.
19176 (flow_loop_dump): Dump multiple latch edges.
19177 (flow_loop_nodes_find): Handle loops with multiple latches.
19178 (flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
19179 (glb_enum_p): Modified.
19180 (get_loop_body): Use get_loop_body_with_size.
19181 * cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
19182 (AVOID_CFG_MODIFICATIONS): New constant.
19183 (disambiguate_loops_with_multiple_latches, add_loop,
19184 get_loop_body_with_size): Declare.
19185 * Makefile.in (cfgloop.o): Add pointer-set.h and output.h.
19186
19187 2007-02-06 Seongbae Park <seongbae.park@gmail.com>
19188
19189 PR inline-asm/28686
19190 * global.c (compute_regsets): New function.
19191 (global_alloc): Refactored ELIMINABLE_REGSET
19192 and NO_GLOBAL_ALLOC_REGS computation out.
19193 (rest_of_handle_global_alloc): Call compute_regsets()
19194 for non-optimizing case.
19195
19196 2007-02-06 Richard Henderson <rth@redhat.com>
19197
19198 * config/i386/constraints.md (Y2): Rename from Y.
19199 (Yi): New constraint.
19200 * config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger,
19201 pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32,
19202 zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2.
19203 (extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed,
19204 truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse,
19205 fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse,
19206 floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed,
19207 absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse,
19208 fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x.
19209 * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64,
19210 mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal,
19211 vec_extractv2si_1): Change Y constraints to Y2.
19212 * config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si,
19213 vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di):
19214 Change Y constraints to Y2.
19215 (sse2_loadld): Change Y constraints to x.
19216
19217 2007-02-06 Roger Sayle <roger@eyesopen.com>
19218
19219 * config/rs6000/rs6000.md (popcount<mode>2): Rewrite.
19220 (parity<mode>2): New define_expand using rs6000_emit_parity.
19221 * config/rs6000/rs6000.c (rs6000_emit_popcount,
19222 rs6000_emit_parity): New functions.
19223 * config/rs6000/rs6000-protos.h (rs6000_emit_popcount,
19224 rs6000_emit_parity): Prototype here.
19225
19226 2007-02-06 Ian Lance Taylor <iant@google.com>
19227
19228 * lower-subreg.c (simple_move_operand): Reject CONST.
19229 (resolve_clobber): Call validate_change rather than directly
19230 assigning to XEXP (pat, 0).
19231
19232 2006-02-06 Paolo Bonzini <bonzini@gnu.org>
19233
19234 * Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency.
19235 (tree-ssa-reassoc.o): Add pointer-set.h dependency.
19236 (tree-cfg.o): Remove hashtab.h dependency.
19237
19238 * tree-ssa-loop-ivopts.c: Include pointer-set.h.
19239 (struct ivopts_data): Change niters to pointer_map_t.
19240 (struct nfe_cache_elt, nfe_hash, nfe_eq): Delete.
19241 (niter_for_exit): Create pointer_map on demand. Change for
19242 pointer_map API.
19243 (tree_ssa_iv_optimize_init): Initialize data->niters to NULL.
19244 (free_loop_data): Destroy data->niters if created and reset field.
19245 (tree_ssa_iv_optimize_finalize): Don't delete data->niters here.
19246 (tree_ssa_iv_optimize_loop): Check for presence of stale data.
19247
19248 * tree-ssa-reassoc.c: Include pointer-set.h.
19249 (bb_rank): Change to long *.
19250 (operand_rank): Change to pointer_map_t.
19251 (find_operand_rank): Return long, -1 if not found. Declare as inline.
19252 (insert_operand_rank): Accept long.
19253 (operand_entry_hash, operand_entry_eq): Remove.
19254 (get_rank): Return long. Adjust for changes above.
19255 (init_reassoc): Change rank type to long. Adjust creation of bb_rank
19256 and operand_rank.
19257 (fini_reassoc): Delete operand_rank with pointer_map_destroy.
19258
19259 * tree-ssa-structalias.c (vi_for_tree): Change to pointer_map.
19260 (struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete.
19261 (insert_vi_for_tree): Rewrite for pointer_map API. Assert argument
19262 is not NULL.
19263 (lookup_vi_for_tree): Rewrite for pointer_map API. Return varinfo_t
19264 directly since it cannot be NULL.
19265 (get_vi_for_tree): Rewrite for pointer_map API.
19266 (find_what_p_points_to): Adjust for change to lookup_vi_for_tree.
19267 (init_alias_vars): Create vi_for_tree as pointer_map.
19268 (delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy.
19269
19270 * tree-cfg.c: Don't include hashtab.h.
19271 (edge_to_cases): Declare as pointer_map.
19272 (struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq):
19273 Delete.
19274 (edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback.
19275 (start_recording_case_labels): Create edge_to_cases as pointer_map.
19276 (end_recoding_case_labels): Cleanup edge_to_cases manually before
19277 destroying it.
19278 (record_switch_edge): Delete.
19279 (get_cases_for_edge): Adjust for pointer_map API, inline
19280 record_switch_edge (rewritten for new API), remove goto.
19281
19282 2006-02-06 Paolo Bonzini <bonzini@gnu.org>
19283
19284 * Makefile.in (tree-nested.o): Add pointer-set.h dependency.
19285 * tree-nested.c: Include pointer-set.h.
19286 (var_map_elt, var_map_eq, var_map_hash): Delete.
19287 (struct nesting_info): Remove GTY marker. Change the two htab_t's
19288 to pointer_map_t's.
19289 (nesting_info_bitmap_obstack): New.
19290 (lookup_field_for_decl): Adjust for pointer_map API.
19291 (lookup_tramp_for_decl): Adjust for pointer_map API.
19292 (get_nonlocal_debug_decl): Adjust for pointer_map API.
19293 (get_local_debug_decl): Adjust for pointer_map API.
19294 (convert_nl_goto_reference): Adjust for pointer_map API.
19295 (convert_nl_goto_receiver): Adjust for pointer_map API.
19296 (create_nesting_tree): Create outside GGC space. Create bitmap on
19297 the new obstack. Create field_map and var_map as pointer_maps.
19298 (free_nesting_tree): Adjust for changes to create_nesting_tree.
19299 (root): Delete.
19300 (lower_nested_functions): Move root here, no need to NULL it.
19301 Initialize and release the obstack.
19302
19303 2007-02-06 Paolo Bonzini <bonzini@gnu.org>
19304
19305 * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
19306 Remove prototypes and make them non-static.
19307 (struct tree_int_map): Remove.
19308 * tree.h (struct tree_int_map): Move here, turning TO into an
19309 unsigned int.
19310 (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.
19311
19312 * tree.h (TREE_COMPLEXITY): Remove.
19313 (struct tree_exp): Remove complexity field.
19314 * tree.c (build1_stat): Don't set it.
19315
19316 2007-02-06 Dorit Nuzman <dorit@il.ibm.com>
19317 Victor Kaplansky <victork@il.ibm.com>
19318
19319 * tree-vectorizer.c (vect_is_simple_use): Support induction.
19320 (vect_is_simple_reduction): Support reduction with induction as
19321 one of the operands.
19322 (vect_is_simple_iv_evolution): Fix formatting.
19323 * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
19324 formatting. Don't mark induction phis for vectorization.
19325 (vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
19326 * tree-vect-transform.c (get_initial_def_for_induction): New function.
19327 (vect_get_vec_def_for_operand): Support induction.
19328 (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
19329 induction case.
19330 (vectorizable_reduction): Support reduction with induction as one of
19331 the operands.
19332 (vectorizable_type_demotion): Use def-type of stmt argument rather
19333 than dummy def-type.
19334
19335 * tree-ssa-loop.c (gate_scev_const_prop): Return the value of
19336 flag_tree_scev_cprop.
19337 * common.opt (tree-scev-cprop): New flag.
19338
19339 * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in
19340 call to vect_get_new_vect_var.
19341
19342 2007-02-06 Ira Rosen <irar@il.ibm.com>
19343
19344 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that
19345 vectype is not NULL.
19346 (vect_pattern_recog_1): Likewise.
19347
19348 2007-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19349
19350 * fold-const.c (negate_expr_p): Handle CONJ_EXPR.
19351 (fold_negate_expr): Likewise.
19352
19353 2007-02-05 Alexandre Oliva <aoliva@redhat.com>
19354
19355 PR debug/30189
19356 * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
19357 even if cv-qualification is the same.
19358
19359 2007-02-05 Geoffrey Keating <geoffk@apple.com>
19360
19361 * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
19362 __enable_execute_stack on completion.
19363
19364 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
19365
19366 * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8,
19367 athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov,
19368 athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul,
19369 athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn,
19370 athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8,
19371 athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load,
19372 athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8,
19373 athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10.
19374
19375 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
19376
19377 * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse,
19378 cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387,
19379 swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse,
19380 fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse,
19381 x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed,
19382 floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse,
19383 floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1,
19384 mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn,
19385 umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn,
19386 umuldi3_highpart_rex64, umulsi3_highpart_insn,
19387 umulsi3_highpart_zext, smuldi3_highpart_rex64,
19388 smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld,
19389 x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse,
19390 sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387,
19391 sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387,
19392 sqrtextenddfxf2_i387): Added amdfam10_decode.
19393
19394 * config/i386/athlon.md (athlon_idirect_amdfam10,
19395 athlon_ivector_amdfam10, athlon_idirect_load_amdfam10,
19396 athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10,
19397 athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10,
19398 athlon_ivector_store_amdfam10): New define_insn_reservation.
19399 (athlon_idirect_loadmov, athlon_idirect_movstore): Added
19400 amdfam10.
19401
19402 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
19403
19404 * config/i386/athlon.md (athlon_call_amdfam10,
19405 athlon_pop_amdfam10, athlon_lea_amdfam10): New
19406 define_insn_reservation.
19407 (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8,
19408 athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI,
19409 athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10.
19410
19411 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
19412
19413 * config/i386/athlon.md (athlon_sseld_amdfam10,
19414 athlon_mmxld_amdfam10, athlon_ssest_amdfam10,
19415 athlon_mmxssest_short_amdfam10): New define_insn_reservation.
19416
19417 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
19418
19419 * config/i386/athlon.md (athlon_sseins_amdfam10): New
19420 define_insn_reservation.
19421 * config/i386/i386.md (sseins): Added sseins to define_attr type
19422 and define_attr unit.
19423 * config/i386/sse.md: Set type attribute to sseins for insertq
19424 and insertqi.
19425
19426 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
19427
19428 * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10,
19429 ssecmpvector_load_amdfam10, ssecmpvector_amdfam10,
19430 ssecomi_load_amdfam10, ssecomi_amdfam10,
19431 sseaddvector_load_amdfam10, sseaddvector_amdfam10): New
19432 define_insn_reservation.
19433 (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10.
19434
19435 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
19436
19437 * config/i386/athlon.md (cvtss2sd_load_amdfam10,
19438 cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10,
19439 cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10,
19440 cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10,
19441 cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10,
19442 cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New
19443 define_insn_reservation.
19444
19445 * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si,
19446 cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq,
19447 cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq,
19448 cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd,
19449 cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute.
19450
19451 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
19452
19453 * config/i386/athlon.md (athlon_ssedivvector_amdfam10,
19454 athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10,
19455 athlon_ssemulvector_load_amdfam10): New define_insn_reservation.
19456 (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul,
19457 athlon_ssemul_load_k8): Added amdfam10.
19458
19459 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
19460
19461 * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
19462 (x86_sse_unaligned_move_optimal): New variable.
19463
19464 * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for
19465 m_AMDFAM10.
19466 (ix86_expand_vector_move_misalign): Add code to generate movupd/movups
19467 for unaligned vector SSE double/single precision loads for AMDFAM10.
19468
19469 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
19470
19471 * config/i386/i386.h (TARGET_AMDFAM10): New macro.
19472 (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
19473 Define TARGET_CPU_DEFAULT_amdfam10.
19474 (TARGET_CPU_DEFAULT_NAMES): Add amdfam10.
19475 (processor_type): Add PROCESSOR_AMDFAM10.
19476
19477 * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match
19478 processor_type in config/i386/i386.h.
19479 Enable imul peepholes for TARGET_AMDFAM10.
19480
19481 * config.gcc: Add support for --with-cpu option for amdfam10.
19482
19483 * config/i386/i386.c (amdfam10_cost): New variable.
19484 (m_AMDFAM10): New macro.
19485 (m_ATHLON_K8_AMDFAM10): New macro.
19486 (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
19487 x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop,
19488 x86_promote_QImode, x86_integer_DFmode_moves,
19489 x86_partial_reg_dependency, x86_memory_mismatch_stall,
19490 x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
19491 x86_sse_partial_reg_dependency, x86_sse_typeless_stores,
19492 x86_use_ffreep, x86_use_incdec, x86_four_jump_limit,
19493 x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns):
19494 Enable/disable for amdfam10.
19495 (override_options): Add amdfam10_cost to processor_target_table.
19496 Set up PROCESSOR_AMDFAM10 for amdfam10 entry in
19497 processor_alias_table.
19498 (ix86_issue_rate): Add PROCESSOR_AMDFAM10.
19499 (ix86_adjust_cost): Add code for amdfam10.
19500
19501 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
19502
19503 * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
19504 instruction set feature flag. Add new (-mpopcnt) flag for popcnt
19505 instruction. Add new SSE4A (-msse4a) instruction set feature flag.
19506 * config/i386/i386.h: Add builtin definition for SSE4A.
19507 * config/i386/i386.md: Add support for ABM instructions
19508 (popcnt and lzcnt).
19509 * config/i386/sse.md: Add support for SSE4A instructions
19510 (movntss, movntsd, extrq, insertq).
19511 * config/i386/i386.c: Add support for ABM and SSE4A builtins.
19512 Add -march=amdfam10 flag.
19513 * config/i386/ammintrin.h: Add support for SSE4A intrinsics.
19514 * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt
19515 and amdfam10.
19516 * doc/extend.texi: Add documentation for SSE4A builtins.
19517
19518 2007-02-05 Bob Wilson <bob.wilson@acm.org>
19519
19520 * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
19521
19522 2007-02-05 Richard Guenther <rguenther@suse.de>
19523
19524 * tree-vectorizer.h (vectorizable_function): Add argument type
19525 argument, change return type.
19526 * tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller.
19527 * tree-vect-transform.c (vectorizable_function): Handle extra
19528 argument, return vectorized function decl.
19529 (build_vectorized_function_call): Remove.
19530 (vectorizable_call): Handle calls with result and argument types
19531 differing. Handle loop vectorization factor correctly.
19532 * targhooks.c (default_builtin_vectorized_function): Adjust for
19533 extra argument.
19534 * targhooks.h (default_builtin_vectorized_function): Likewise.
19535 * target.h (builtin_vectorized_function): Add argument type
19536 argument.
19537 * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
19538 extra argument, allow vectorizing of lrintf.
19539 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust
19540 documentation of target hook.
19541
19542 2007-02-05 Hans-Peter Nilsson <hp@axis.com>
19543
19544 PR target/30665
19545 * config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu")
19546 ("*andhi_clear", andu (casesi+45)): For size-changed operand where
19547 memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P.
19548
19549 2007-02-05 Roger Sayle <roger@eyesopen.com>
19550
19551 * fold-const.c (fold_unary) <REAL_PART>: Test for availability of
19552 BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
19553 <IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
19554 * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
19555 before canonicalizing sincos to cexpi.
19556 (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.
19557
19558 2007-02-05 Roger Sayle <roger@eyesopen.com>
19559
19560 * config/alpha/alpha.c (alpha_add_builtins): New Helper function.
19561 Set TREE_READONLY and TREE_NOTHROW directly, not via attributes.
19562 (alpha_init_builtins): Use alpha_add_builtins to process tables.
19563
19564 2007-02-05 Roger Sayle <roger@eyesopen.com>
19565
19566 * mips-tfile.c (initialize_init_file): Correct endianness test.
19567
19568 2007-02-05 Kazu Hirata <kazu@codesourcery.com>
19569
19570 * config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use
19571 the 'y' constraint.
19572
19573 2007-02-05 Richard Sandiford <richard@codesourcery.com>
19574
19575 * dwarf2out.c (dwarf2out_frame_debug_expr): Record the register
19576 saves in a PARALLEL before the register assignments.
19577
19578 2007-02-05 Richard Sandiford <richard@codesourcery.com>
19579
19580 * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require
19581 DWARF_FRAME_RETURN_COLUMN to be a general register.
19582 * dwarf2out.c (init_return_column_size): New function, split from...
19583 (expand_builtin_init_dwarf_reg_sizes): ...here. Allow both
19584 DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN
19585 to be nongeneral registers.
19586 * config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and
19587 integer registers.
19588 (DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define.
19589 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
19590
19591 2007-02-04 Zdenek Dvorak <dvorakz@suse.cz>
19592
19593 * cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR.
19594
19595 2007-02-04 Zdenek Dvorak <dvorakz@suse.cz>
19596
19597 * cfgloopmanip.c (loop_delete_branch_edge): Removed.
19598 (remove_path): Use can_remove_branch_p and remove_branch instead
19599 of loop_delete_branch_edge.
19600 * tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function.
19601 (tree_transform_and_unroll_loop): Remove dead branches immediately.
19602 Update profile using scale_dominated_blocks_in_loop.
19603 * cfghooks.c (can_remove_branch_p, remove_branch): New functions.
19604 * cfghooks.h (struct cfg_hooks): Add can_remove_branch_p.
19605 (can_remove_branch_p, remove_branch): Declare.
19606 * tree-cfg.c (tree_can_remove_branch_p): New function.
19607 (tree_cfg_hooks): Add tree_can_remove_branch_p.
19608 * cfgrtl.c (rtl_can_remove_branch_p): New function.
19609 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p.
19610
19611 2007-02-05 Jan Hubicka <jh@suse.cz>
19612
19613 PR middle-end/30696
19614 * ipa-inline.c (cgraph_clone_inlined_nodes): When there are unanalyzed
19615 nodes in cgraph, don't remove offline copy of the function.
19616
19617 2007-02-04 Jan Hubicka <jh@suse.cz>
19618
19619 * tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into
19620 vectors might cause maybe_lookup_element_for_expr to be called
19621 on non-sra-candidate.
19622
19623 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
19624
19625 * config/bfin/bfin-modes.def, config/bfin/bfin.c,
19626 config/bfin/bfin.md, config/bfin/predicates.md: Follow
19627 spelling conventions.
19628
19629 2007-02-04 Richard Guenther <rguenther@suse.de>
19630
19631 PR middle-end/30636
19632 * fold-const.c (try_move_mult_to_index): Make sure to not
19633 overflow one dimension of a multi-dimensional array access.
19634
19635 2007-02-04 Jan Hubicka <jh@suse.cz>
19636
19637 * passes.c (init_optimization_passes): Reindent.
19638
19639 2007-02-04 Jan Hubicka <jh@suse.cz>
19640 Eric Botcazou <ebotcazou@adacore.com>
19641
19642 * tree-optimize.c (has_abnormal_outgoing_edge_p): Move to...
19643 (execute_fixup_cfg): Break out the abnormal goto code.
19644 * tree-inline.c (has_abnormal_outgoing_edge_p): ...here.
19645 (make_nonlocal_label_edges): Move here from execute_fixup_cfg.
19646 (optimize_inline_calls): Call make_nonlocal_label_edges.
19647
19648 2007-02-04 Jan Hubicka <jh@suse.cz>
19649
19650 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Return
19651 true when something was changed.
19652 (rename_ssa_copies): When something was changed, do
19653 TODO_remove_unused_locals.
19654 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
19655 add TODO_remove_unused_locals when instruction was removed.
19656
19657 2007-02-04 Jan Hubicka <jh@suse.cz>
19658
19659 * ipa-inline.c (try_inline): Improve debug output; work on already
19660 inline edges too.
19661 (cgraph_decide_inlining_incrementally): Indent; improve debug output;
19662 call try_inline for already inlined edges too when flattening;
19663 inline also functions that make callee growth but overall unit size
19664 reduce.
19665
19666 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
19667
19668 * config/m32c/bitops.md, config/m32c/jump.md,
19669 config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c,
19670 config/m32r/m32r.h, config/m32r/m32r.md,
19671 config/m32r/predicates.md, config/m68hc11/larith.asm,
19672 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
19673 config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md,
19674 config/mips/mips-protos.h, config/mips/mips.c,
19675 config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S,
19676 config/mn10300/mn10300.h, config/mn10300/predicates.md,
19677 config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow
19678 spelling conventions.
19679
19680 * config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
19681 Follow spelling conventions.
19682
19683 2007-02-03 Douglas Gregor <doug.gregor@gmail.com>
19684
19685 * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
19686 warn about C++0x compatibility.
19687
19688 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
19689
19690 * config/h8300/h8300.c, config/h8300/h8300.h,
19691 config/h8300/h8300.md: Follow spelling conventions.
19692
19693 2007-02-03 Uros Bizjak <ubizjak@gmail.com>
19694
19695 PR middle-end/30667
19696 * combine.c (try_combine): Do not substitute source operand
19697 with constants wider than 2 * HOST_BITS_PER_WIDE_INT.
19698
19699 2007-02-03 Jan Hubicka <jh@suse.cz>
19700
19701 PR gcov-profile/30650
19702 * value-prof.c (stringop_block_profile): Fix handling of size counter;
19703 do not divide by zero for never executed counters.
19704 (tree_find_values_to_profile): Fix counters.
19705 * gcov-ui.h (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): Fix comments.
19706
19707 2007-02-03 Ian Lance Taylor <iant@google.com>
19708
19709 * lower-subreg.c (simple_move_operand): New static function,
19710 broken out of simple_move. Reject LABEL_REF, SYMBOL_REF, and HIGH
19711 operands.
19712 (simple_move): Call simple_move_operand.
19713 (find_decomposable_subregs): Add special handling of MEMs.
19714 (can_decompose_p): Rename from cannot_decompose_p. Reverse
19715 meaning of return value. If we see a hard register, test whether
19716 it can store a word_mode value. Change all callers.
19717
19718 2007-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19719
19720 * pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New
19721 ftrapv insns and expanders.
19722 (subdi3): Change define_expand operand 1 to arith11_operand, and
19723 operand 2 to reg_or_0_operand. Change constraints of 64-bit insn
19724 pattern to handle reg_or_0 operands. Revise 32-bit insn pattern to
19725 handle 11-bit constants and reg_or_0 operands in operands 1 and 2,
19726 respectively.
19727
19728 PR middle-end/30174
19729 * varasm.c (notice_global_symbol): Treat global objects as weak when
19730 flag_shlib is true.
19731
19732 2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19733
19734 * emit-rtl.c (dconstpi): Delete.
19735 (dconstsqrt2): New.
19736 (init_emit_once): Delete dconstpi and init dconstsqrt2.
19737 * real.h (dconstpi): Delete.
19738 (dconstsqrt2): New.
19739 * builtins.c (fold_builtin_cabs): Use dconstsqrt2.
19740 (fold_builtin_hypot): Likewise.
19741
19742 2007-02-03 Tom Tromey <tromey@redhat.com>
19743
19744 PR driver/30246
19745 * gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3,
19746 -gcoff3, -gxcoff3, -gvms3 implies -dD.
19747
19748 2007-02-03 Kazu Hirata <kazu@codesourcery.com>
19749
19750 * c-decl.c, config/avr/avr.c, config/avr/avr.h,
19751 config/m68k/m68k.c, config/m68k/netbsd-elf.h,
19752 config/mn10300/mn10300.c, config/pdp11/pdp11.h,
19753 config/rs6000/cell.md, config/rs6000/darwin.h,
19754 config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
19755 config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
19756 jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
19757 tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
19758 typos. Follow spelling conventions.
19759 * doc/invoke.texi: Follow spelling conventions.
19760
19761 2007-02-03 Roger Sayle <roger@eyesopen.com>
19762
19763 * simplify-rtx.c (simplify_relational_operation_1): Implement some
19764 canonicalization transformations that attempt to simplify integer
19765 constant comparisons to become comparisons against zero.
19766
19767 2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19768
19769 * builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into
19770 fabs(x)*sqrt(2).
19771 * fold-const.c (fold_binary): Fix comment typos. Fold complex
19772 (x,0)-(0,y) into (x,-y). Likewise (0,y)-(x,0) into (-x,y).
19773
19774 2007-02-02 Mike Stump <mrs@apple.com>
19775
19776 * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add.
19777 * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
19778 (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
19779 generate a branch island.
19780
19781 2007-02-02 Bob Wilson <bob.wilson@acm.org>
19782
19783 * config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P.
19784 (xtensa_legitimate_address_p): New.
19785 (xtensa_legitimize_address): New.
19786 (xtensa_output_addr_const_extra): New.
19787 * config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define.
19788 (BASE_REG_P): New.
19789 (REG_OK_FOR_BASE_P): Use BASE_REG_P.
19790 (GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p.
19791 (LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address.
19792 (OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra.
19793 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New.
19794 (xtensa_legitimize_address): New.
19795 (xtensa_output_addr_const_extra): New.
19796
19797 2007-02-02 Steve Ellcey <sje@cup.hp.com>
19798
19799 * config/ia64/ia64.c (ia64_print_operand): Fix compare strings.
19800
19801 2007-02-02 Ian Lance Taylor <iant@google.com>
19802
19803 * expmed.c (expand_divmod): Add comment.
19804
19805 2007-02-02 Kazu Hirata <kazu@codesourcery.com>
19806
19807 * emit-rtl.c (renumber_insns): Remove.
19808 * flags.h: Remove the extern for flag_renumber_insns.
19809 * rtl.h: Remove the prototype for renumber_insns.
19810 * toplev.c (flag_renumber_insns): Remove.
19811
19812 2007-02-02 Hui-May Chang <hm.chang@apple.com>
19813
19814 Revert for x86 darwin:
19815 2005-06-19 Uros Bizjak <uros@kss-loka.si>
19816
19817 * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
19818 code before the following patch under TARGET_MACHO.
19819 (ix86_function_value_regno_p): Likewise.
19820
19821 2007-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19822
19823 * fold-const.c (negate_expr_p, fold_negate_expr): Handle
19824 COMPLEX_EXPR.
19825
19826 2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
19827
19828 PR target/29682
19829 * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory
19830 loads to general or fp registers. Add comments.
19831 * config/ia64/ia64.md (reg_pred_prefix): Add comment.
19832
19833 2007-02-02 Paolo Bonzini <bonzini@gnu.org>
19834
19835 * pointer-set.c (insert_aux): Only return insertion slot.
19836 (pointer_set_insert): Adjust.
19837 (pointer_set_traverse, struct pointer_map_t, pointer_map_create,
19838 pointer_map_destroy, pointer_map_insert, pointer_map_contains,
19839 pointer_map_traverse): New.
19840 * pointer-set.h (pointer_set_traverse, struct pointer_map_t,
19841 pointer_map_create, pointer_map_destroy, pointer_map_insert,
19842 pointer_map_contains, pointer_map_traverse): Declare.
19843
19844 2007-02-02 Jakub Jelinek <jakub@redhat.com>
19845
19846 PR middle-end/30473
19847 * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
19848 sprintf (str, "%s"). Do not optimize sprintf (str, "nopercent", p++).
19849
19850 2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
19851
19852 * sched-int.h (ds_to_dk, dk_to_ds): Declare functions.
19853
19854 (struct _dep): New type.
19855 (dep_t): New typedef.
19856 (DEP_PRO, DEP_CON, DEP_KIND): New access macros.
19857 (DEP_STATUS): New access macro. The macro with the same name was
19858 renamed to DEP_LINK_STATUS.
19859 (dep_init): Declare function
19860
19861 (struct _dep_link): New type.
19862 (dep_link_t): New typedef.
19863 (DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros.
19864 (DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros.
19865 (DEP_LINK_STATUS): New macro.
19866 (debug_dep_links): New debug function.
19867
19868 (struct _deps_list): New type.
19869 (deps_list_t): New typedef.
19870 (DEPS_LIST_FIRST): New access macro.
19871 (FOR_EACH_DEP_LINK): New cycle macro.
19872 (create_deps_list, free_deps_list, delete_deps_list): Declare
19873 functions.
19874 (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
19875 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
19876 (copy_deps_list_change_con): Ditto.
19877
19878 (move_dep_link): Declare function.
19879
19880 (struct _dep_node): New type.
19881 (dep_node_t): New typedef.
19882 (DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros.
19883
19884 (struct haifa_insn_data.back_deps): New field to hold backward
19885 dependencies of the insn.
19886 (struct haifa_insn_data.depend): Rename to forw_deps. Change its type
19887 to deps_list_t.
19888 (struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps.
19889 Change its type to deps_list_t.
19890 (INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS.
19891 (INSN_DEPEND): Rename to INSN_FORW_DEPS.
19892 (RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.
19893
19894 (INSN_COST): Move to haifa-sched.c. Use insn_cost () instead.
19895
19896 (DEP_STATUS): Rename to DEP_LINK_STATUS. Fix typo in the comment.
19897
19898 (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration
19899 and all callers.
19900 (dep_cost): Declare.
19901
19902 * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
19903 (ds_to_dk, dk_to_ds): New functions.
19904
19905 (init_dep_1): New static function.
19906 (init_dep): New function.
19907 (copy_dep): New static function.
19908
19909 (dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
19910 functions.
19911 (detach_dep_link): New static function.
19912 (move_dep_link): New function.
19913
19914 (dep_links_consistent_p, dump_dep_links): New static functions.
19915 (debug_dep_links): New debugging function.
19916
19917 (deps_obstack, dl_obstack, dn_obstack): New static variables.
19918
19919 (alloc_deps_list, init_deps_list): New static functions.
19920 (create_deps_list): New function.
19921 (clear_deps_list): New static function.
19922 (free_deps_list, delete_deps_list, deps_list_empty_p): New functions.
19923 (deps_list_consistent_p, dump_deps_list): New static functions.
19924 (debug_deps_list): New function.
19925 (add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New
19926 functions.
19927 (find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto.
19928
19929 (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to
19930 use new scheduler dependencies lists.
19931 (add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto.
19932 (sched_analyze): Ditto. Initialize dependencies lists.
19933 (add_forw_dep, compute_forward_dependences): Update to use new
19934 scheduler dependencies lists.
19935
19936 (init_dependency_caches): Init deps_obstack.
19937 (free_dependency_caches): Free deps_obstack.
19938
19939 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
19940 new scheduler dependencies lists.
19941 (delete_forw_dep, add_or_update_back_forw_dep): Ditto.
19942 (add_back_forw_dep, delete_back_forw_dep): Ditto.
19943
19944 * sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree):
19945 Update to use new scheduler dependencies lists.
19946 (is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
19947 (debug_dependencies): Ditto.
19948 (schedule_region): Update comments.
19949
19950 * sched-ebb.c (earliest_block_with_similiar_load): Update to use new
19951 scheduler dependencies lists.
19952 (schedule_ebb): Update comments.
19953
19954 * rtl.def (DEPS_LIST): Remove.
19955
19956 * lists.c (unused_deps_list): Remove.
19957 (free_list): Update assertions.
19958
19959 (alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
19960 (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
19961
19962 * rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
19963 (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
19964
19965 * haifa-sched.c (comments): Update.
19966 (insn_cost1): Remove. Inline the code into insn_cost ().
19967 (insn_cost): Update to use new scheduler dependencies lists. Move
19968 processing of the dependency cost to dep_cost ().
19969 (dep_cost): New function. Use it instead of insn_cost () when
19970 evaluating cost of the dependency. Use compatible interface to
19971 interact with the target.
19972 (priority): Update to use new scheduler dependencies lists.
19973 (rank_for_schedule): Ditto. Optimize heuristic that prefers the insn
19974 with greater number of insns that depend on the insn.
19975 (schedule_insn): Update to use new scheduler dependencies lists. Add
19976 code to free backward dependencies lists. Inline and optimize code
19977 from resolve_dep () - see PR28071.
19978 (ok_for_early_queue_removal): Update to use new scheduler dependencies
19979 lists. Update call to targetm.sched.is_costly_dependence hook.
19980
19981 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
19982 scheduler dependencies lists.
19983
19984 (resolve_dep): Remove. Move the logic to schedule_insn ().
19985 (init_h_i_d): Initialize dependencies lists.
19986
19987 (process_insn_depend_be_in_spec): Rename to
19988 process_insn_forw_deps_be_in_spec. Update to use new scheduler
19989 dependencies lists.
19990 (add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
19991 Update to use new scheduler dependencies lists.
19992 (clear_priorities, calc_priorities, add_jump_dependencies): Ditto.
19993
19994 * ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
19995 new scheduler dependencies lists.
19996 (build_intra_loop_deps): Ditto.
19997
19998 * target.h (struct _dep): Declare to use in
19999 gcc_target.sched.is_costly_dependence.
20000 (struct gcc_target.sched.adjust_cost): Fix typo.
20001 (struct gcc_target.sched.is_costly_dependence): Change signature to
20002 use single dep_t parameter instead of an equivalent triad.
20003 (struct gcc_target.sched.adjust_cost_2): Remove.
20004
20005 * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.
20006
20007 * reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments.
20008
20009 * doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update
20010 documentation.
20011 (TARGET_SCHED_ADJUST_COST_2): Remove documentation.
20012
20013 * doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
20014 (REG_DEP_TRUE): Document.
20015
20016 * config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
20017 Change signature to correspond to the targetm.sched.adjust_cost hook.
20018 Update use in TARGET_SCHED_ADJUST_COST_2.
20019 (TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
20020 (ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
20021 new scheduler dependencies lists.
20022 (ia64_gen_check): Ditto.
20023
20024 * config/mips/mips.c (vr4130_swap_insns_p): Update to use new
20025 scheduler dependencies lists.
20026
20027 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
20028 signature to correspond to the targetm.sched.is_costly_dependence hook.
20029 (is_costly_group): Update to use new scheduler dependencies lists.
20030
20031 * config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function
20032 instead of INSN_COST () macro.
20033
20034 2007-02-01 Ian Lance Taylor <iant@google.com>
20035
20036 * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn.
20037
20038 2007-02-01 Guy Martin <gmsoft@gentoo.org>
20039
20040 * pa.md (tp_load): Correct mfctl instruction syntax.
20041
20042 2007-02-01 Geoffrey Keating <geoffk@apple.com>
20043
20044 * config/rs6000/rs6000.c (rs6000_stack_info): Correct
20045 altivec_padding_size calculation on AIX. Improve comment, add
20046 assert to verify that it's right.
20047
20048 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
20049 64-bit.
20050
20051 2007-2-01 Seongbae Park <seongbae.park@gmail.com>
20052
20053 PR inline-asm/28686
20054 * global.c (global_alloc): Add mising initialization of
20055 ELIMINABLE_REGSET.
20056
20057 2007-02-01 Roger Sayle <roger@eyesopen.com>
20058
20059 * alias.c (init_alias_analysis): Correct whitespace.
20060 * bb-reorder.c (fix_edges_for_rarely_executed_code,
20061 partition_hot_cold_basic_blocks): Likewise.
20062 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
20063 expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
20064 maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
20065 fold_builtin_snprintf_chk, fold_builtin_printf,
20066 fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
20067 do_mpfr_arg3, do_mpfr_sincos): Likewise.
20068 * cfgcleanup.c (cleanup_cfg): Likewise.
20069 * cfgexpand.c (tree_expand_cfg): Likewise.
20070 * fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
20071 * function.c (get_next_funcdef_no): Likewise.
20072 * gengtype.c (main): Likewise.
20073 * genmodes.c (main): Likewise.
20074 * gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
20075 * haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
20076 * ifcvt.c (noce_emit_move_insn): Likewise.
20077 * modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
20078 Likewise.
20079 * stor-layout.c (get_best_mode): Likewise.
20080 * tree-ssa-loop-niter.c (get_val_for): Likewise.
20081 * tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
20082 scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
20083 perform_var_substitution, solve_graph): Likewise.
20084 * tree-vrp.c (vrp_finalize): Likewise.
20085
20086 2007-02-01 Ian Lance Taylor <iant@google.com>
20087
20088 * lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
20089 high part of a paradoxical subreg, return a constant zero.
20090
20091 2007-02-01 Zdenek Dvorak <dvorakz@suse.cz>
20092
20093 * toplev.c (lang_dependent_init): Call init_set_costs.
20094 * loop-init.c (loop_optimizer_init): Do not call init_set_costs.
20095
20096 2007-02-01 Richard Guenther <rguenther@suse.de>
20097
20098 PR middle-end/30656
20099 * fold-const.c (fold_negate_expr): Allow negating a
20100 constant if overflow does not change.
20101
20102 2007-02-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20103
20104 * doc/c-tree.texi (Expression trees): Improve markup.
20105 * doc/tm.texi (Register Classes, Addressing Modes)
20106 (Floating Point): Fix spacing after abbreviations. Fix some
20107 typos.
20108
20109 2007-02-01 Ben Elliston <bje@au.ibm.com>
20110
20111 * doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
20112 * doc/contrib.texi: Likewise.
20113 * doc/install.texi: Likewise.
20114
20115 2007-01-31 Richard Henderson <rth@redhat.com>
20116 Ian Lance Taylor <iant@google.com>
20117
20118 * lower-subreg.c: New file.
20119 * rtl.def (CONCATN): Define.
20120 * passes.c (init_optimization_passes): Add pass_lower_subreg and
20121 pass_lower_subreg2.
20122 * emit-rtl.c (update_reg_offset): New static function, broken out
20123 of gen_rtx_REG_offset.
20124 (gen_rtx_REG_offset): Call update_reg_offset.
20125 (gen_reg_rtx_offset): New function.
20126 * regclass.c: Revert patch of 2006-03-05, restoring
20127 reg_scan_update.
20128 (clear_reg_info_regno): New function.
20129 * dwarf2out.c (concatn_loc_descriptor): New static function.
20130 (loc_descriptor): Handle CONCATN.
20131 * common.opt (fsplit_wide_types): New option.
20132 * opts.c (decode_options): Set flag_split_wide_types when
20133 optimizing.
20134 * timevar.def (TV_LOWER_SUBREG): Define.
20135 * rtl.h (gen_reg_rtx_offset): Declare.
20136 (reg_scan_update): Declare.
20137 * regs.h (clear_reg_info_regno): Declare.
20138 * tree-pass.h (pass_lower_subreg): Declare.
20139 (pass_lower_subreg2): Declare.
20140 * doc/invoke.texi (Option Summary): List -fno-split-wide-types.
20141 (Optimize Options): Add -fsplit-wide-types to -O1 list. Document
20142 -fsplit-wide-types.
20143 * doc/rtl.texi (Regs and Memory): Document concat and concatn.
20144 * Makefile.in (OBJS-common): Add lower-subreg.o.
20145 (lower-subreg.o): New target.
20146
20147 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
20148
20149 * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.
20150
20151 2007-01-31 Anatoly Sokolov <aesok@post.ru>
20152
20153 PR target/19087
20154 * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
20155
20156 2007-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20157
20158 PR middle-end/29335
20159 * builtins.c (fold_builtin_sqrt): Use MPFR for constant args.
20160
20161 2007-01-31 Zdenek Dvorak <dvorakz@suse.cz>
20162
20163 * cfgloop.h: Include vec-prim.h.
20164 (enum li_flags): Remove LI_ONLY_OLD.
20165 (loop_iterator): Changed.
20166 (fel_next, fel_init): Iterate over loop tree.
20167 (FOR_EACH_LOOP_BREAK): New macro.
20168 * loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
20169 FOR_EACH_LOOP.
20170 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
20171 * modulo-sched.c (sms_schedule): Ditto.
20172 * tree-vectorizer.c (vectorize_loops): Ditto.
20173 * doc/loop.texi: Update information on loop numbering and behavior of
20174 FOR_EACH_LOOP wrto new loops.
20175 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
20176 add_to_evolution_1): Test nestedness of loops instead of comparing
20177 their numbers.
20178 * tree-chrec.c (chrec_fold_plus_poly_poly,
20179 chrec_fold_multiply_poly_poly, chrec_evaluate,
20180 hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
20181 reset_evolution_in_loop): Ditto.
20182 * Makefile.in (CFGLOOP_H): Add vecprim.h dependency.
20183
20184 2007-01-31 Dirk Mueller <dmueller@suse.de>
20185
20186 * c-common.c (warn_about_parentheses): Separate warning about
20187 un-parenthized sequence of comparison operators from the one
20188 which is supposed to warn about x <= y <= z.
20189
20190 2007-01-31 Uros Bizjak <ubizjak@gmail.com>
20191
20192 * optabs.h (enum optab_index): Add new OTI_isinf.
20193 (isinf_optab): Define corresponding macro.
20194 * optabs.c (init_optabs): Initialize isinf_optab.
20195 * genopinit.c (optabs): Implement isinf_optab using isinf?f2
20196 patterns.
20197 * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
20198 (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
20199 using isinf_optab.
20200 (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
20201 expand_builtin_interclass_mathfn.
20202 * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
20203 * config/i386/i386.md (UNSPEC_FXAM): New constant.
20204 (fxam<mode>2_i387): New insn pattern.
20205 (isinf<mode>2) New expander to implement isinf, isinff and isinfl
20206 built-in functions as x87 inline asm.
20207
20208 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
20209
20210 * config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.
20211
20212 2007-01-30 Eric Christopher <echristo@apple.com>
20213
20214 * config.gcc: Add geode.
20215
20216 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
20217
20218 * cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
20219 ipa-inline.c, tree-profile.c, tree-ssa-live.c,
20220 tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
20221 value-prof.c: Fix comment typos.
20222
20223 2007-01-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
20224
20225 PR c++/24745
20226 * doc/invoke.texi (Wpointer-arith): Document warning.
20227
20228 2007-01-30 Janis Johnson <janis187@us.ibm.com>
20229
20230 * doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
20231 the list of discrepancies from the draft TR.
20232
20233 2007-01-30 Dirk Mueller <dmueller@suse.de>
20234
20235 PR c++/30601
20236 * doc/invoke.texi (-Wreturn-type): Update description to
20237 match new behavior.
20238
20239 2007-01-30 Richard Sandiford <richard@codesourcery.com>
20240
20241 * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
20242
20243 2007-01-30 Uros Bizjak <ubizjak@gmail.com>
20244
20245 * builtins.c (expand_builtin_int_interclass_roundingfn): New function
20246 to handle optabs that operate on floating point input argument and
20247 output to integer output.
20248 (expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
20249 (expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
20250 (expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
20251 expand_builtin_interclass_mathfn ().
20252 * config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
20253 (ilogbsi2): Remove.
20254 (ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
20255 ilogbl built-in functions as x87 intrinsics.
20256
20257 2007-01-30 Richard Guenther <rguenther@suse.de>
20258
20259 PR middle-end/27657
20260 * dwarf2out.c (reference_to_unused): Query varpool if the
20261 variable was output.
20262
20263 2007-01-30 Richard Guenther <rguenther@suse.de>
20264
20265 PR middle-end/30313
20266 * passes.c (execute_one_pass): Reset in_gimple_form to not
20267 confuse non-unit-at-a-time mode.
20268
20269 2007-01-29 Roger Sayle <roger@eyesopen.com>
20270 Richard Guenther <rguenther@suse.de>
20271
20272 * fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
20273 avoid undefined behaviour on overflow. Use force_fit_type_double
20274 to construct the constant with the specified TREE_OVERFLOW.
20275
20276 2007-01-29 Janis Johnson <janis187@us.ibm.com>
20277
20278 * config/dfp-bit.c: Add parameterized support for fp exceptions.
20279 * config/dfp-bit.h: Ditto.
20280
20281 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
20282
20283 * c-decl.c (pop_scope): Replace warnings with call to
20284 warn_for_unused_label.
20285 * c-common.h (warn_for_unused_label): Declare.
20286 * c-common.c (warn_for_unused_label): Define.
20287
20288 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
20289
20290 * tree-optimize.c (update_inlined_to_pointers): Delete unused
20291 function.
20292
20293 2007-01-29 Janis Johnson <janis187@us.ibm.com>
20294
20295 * Makefile.in (USER_H): Remove decfloat.h.
20296 * ginclude/decfloat.h: Delete, moving contents to ...
20297 * ginclude/float.h: Add support for decimal floating point,
20298 guarded by __STDC_WANT_DEC_FP__.
20299
20300 2007-01-29 Mike Stump <mrs@apple.com>
20301
20302 * doc/gccint.texi (Top): Rename Loop Representation to Loop
20303 Analysis and Representation to resolve case insensitive conflict.
20304 * doc/loop.texi (Loop Analysis and Representation): Likewise.
20305
20306 2007-01-28 Daniel Berlin <dberlin@dberlin.org>
20307
20308 * tree.h (struct tree_memory_tag): Add aliases member.
20309 (MTAG_ALIASES): New macro.
20310 * tree-ssa-alias.c (alias_bitmap_obstack): New variable.
20311 (add_may_alias): Remove pointer-set. Update for may_aliases being
20312 a bitmap.
20313 (mark_aliases_call_clobbered): Update for may_aliases being a
20314 bitmap.
20315 (compute_tag_properties): Ditto.
20316 (create_partition_for): Ditto.
20317 (compute_memory_partitions): Ditto.
20318 (dump_may_aliases_for): Ditto.
20319 (is_aliased_with): Ditto.
20320 (add_may_alias_for_new_tag): Ditto.
20321 (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
20322 (compute_is_aliased): New function.
20323 (compute_may_aliases): Call compute_is_aliased).
20324 (init_alias_info): Initialize alias_bitmap_obstack.
20325 (union_alias_set_into): New function.
20326 (compute_flow_sensitive_aliasing): Use union_aliases_into.
20327 (have_common_aliases_p): Rewrite to take two bitmaps and use
20328 intersection.
20329 (compute_flow_insensitive_aliasing): Stop using pointer-sets.
20330 Update for bitmaps.
20331 (finalize_ref_all_pointers): Update for add_may_alias changes.
20332 (new_type_alias): Ditto.
20333 * tree-flow-inline.h (may_aliases): Return a bitmap.
20334 * tree-dfa.c (dump_variable): Check for MTAG_P'ness.
20335 * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
20336 may_aliases being a bitmap.
20337 * tree-flow.h (struct var_ann_d): Remove may_aliases member.
20338 may_aliases now returns a bitmap.
20339 * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
20340 being a bitmap.
20341 * tree-ssa-operands.c (add_virtual_operand): Update for
20342 may_aliases being a bitmap.
20343
20344 2007-01-29 Daniel Berlin <dberlin@dberlin.org>
20345
20346 PR tree-optimization/30630
20347 * tree-ssa-structalias.c (do_complex_constraint): Mark correct
20348 variable as changed.
20349
20350 2007-01-29 Simon Martin <simartin@users.sourceforge.net>
20351
20352 PR c++/28266
20353 * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
20354 expanded only once even if an error occurs.
20355
20356 2007-01-29 Ben Elliston <bje@au.ibm.com>
20357
20358 * gcov-io.h (__gcov_indirect_call_profiler): Declare.
20359 (__gcov_average_profiler): Likewise.
20360 (__gcov_ior_profiler): Likewise.
20361 (__gcov_merge_ior): Likewise.
20362
20363 2007-01-28 Jan Hubicka <jh@suse.cz>
20364
20365 * builtins.c (expand_builtin_memset): Fix typo in my last patch.
20366 * value-prof.c (stringop_block_profile): Likewise.
20367
20368 2007-01-28 Jan Hubicka <jh@suse.cz>
20369
20370 * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall):
20371 Add variant handling histograms; add wrapper.
20372 (clear_storage_via_libcall): Export.
20373 (emit_block_move_hints): Break out from ...; add histograms.
20374 (emit_block_move): ... this one.
20375 (clear_storage_hints): Break out from ...; add histograms.
20376 (clear_storage): ... this one.
20377 (set_storage_via_memset): Handle histogram.
20378 * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
20379 (clear_storage_hints, clear_storage_via_libcall): Declare.
20380 (set_storage_via_setmem): Update prototype.
20381 * doc/md.texi (movmem, setmem): Document new arguments.
20382
20383 * value-prof.c (dump_histogram_value, tree_find_values_to_profile):
20384 Add new histograms.
20385 (stringop_block_profile): New global function.
20386 (tree_stringops_values_to_profile): Profile block size and alignment.
20387 * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
20388 HIST_TYPE_IOR.
20389 (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
20390 (stringop_block_profile): Declare.
20391 * builtins.c: Include value-prof.h.
20392 (expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
20393 * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
20394 (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
20395 (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
20396 * profile.c (instrument_values): Add new counters.
20397 * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
20398 calls.
20399 * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
20400 (tree_init_edge_profiler): Build new profilers.
20401 (tree_gen_average_profiler, tree_gen_ior_profiler): New.
20402 (pass_tree_profile): Add dump.
20403 (tree_profile_hooks): Update.
20404 * Makefile.in (LIBGCOV): Add new constants.
20405 * libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
20406 __gcov_ior_profiler): New.
20407 * i386.md (movmem/setmem expanders): Add new optional arguments.
20408
20409 2007-01-28 David Edelsohn <edelsohn@gnu.org>
20410
20411 * doc/md.texi (Standard Pattern Names): Document blockage pattern.
20412
20413 2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
20414
20415 * tree-ssa-loop-unswitch.c: Include tree-inline.h.
20416 (tree_unswitch_single_loop): Pass eni_size_weights to
20417 tree_num_loop_insns.
20418 * tree-ssa-loop-manip.c: Include tree-inline.h.
20419 (can_unroll_loop_p): Pass eni_size_weights to
20420 tree_num_loop_insns.
20421 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
20422 Pass eni_size_weights to estimate_num_insns.
20423 * tree.h (init_inline_once): Export.
20424 * toplev.c (backend_init): Call init_inline_once.
20425 * cgraphunit.c (cgraph_process_new_functions,
20426 cgraph_analyze_function): Pass eni_inlining_weights to
20427 estimate_num_insns.
20428 * ipa-inline.c (compute_inline_parameters): Ditto.
20429 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
20430 to estimate_num_insns.
20431 (try_unroll_loop_completely): Pass eni_size_weights to
20432 tree_num_loop_insns.
20433 * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
20434 ot estimate_num_insns.
20435 * tree-ssa-loop-prefetch.c: Include tree-inline.h.
20436 (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
20437 * tree-inline.c (eni_inlining_weights, eni_size_weights,
20438 eni_time_weights): New variables.
20439 (init_inline_once): Initialize them.
20440 (struct eni_data): Mew.
20441 (estimate_num_insns_1, estimate_num_insns): Use weights.
20442 * tree-inline.h (struct eni_weights_d): New.
20443 (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
20444 (estimate_num_insns): Declaration changed.
20445 * cfgloop.h (tree_num_loop_insns): Declaration changed.
20446 * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
20447 tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
20448
20449 2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
20450
20451 * tree-data-ref.c (conflict_fn): Assert that the number of affine
20452 relations in the conflict function is valid.
20453
20454 2007-01-27 Ian Lance Taylor <iant@google.com>
20455
20456 * common.opt: Add fstrict-overflow.
20457 * opts.c (decode_options): Set flag_strict_overflow if -O2.
20458 * flags.h (TYPE_OVERFLOW_WRAPS): Define.
20459 (TYPE_OVERFLOW_UNDEFINED): Define.
20460 (TYPE_OVERFLOW_TRAPS): Define. This replaces TYPE_TRAP_SIGNED.
20461 Replace all uses.
20462 * tree.h (TYPE_TRAP_SIGNED): Don't define.
20463 * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
20464 (fold_negate_expr): Likewise.
20465 (make_range): Likewise.
20466 (extract_muldiv_1): Likewise.
20467 (maybe_canonicalize_comparison): Likewise.
20468 (fold_comparison): Likewise.
20469 (fold_binary): Likewise.
20470 (tree_expr_nonnegative_p): Likewise.
20471 (tree_expr_nonzero_p): Likewise.
20472 * tree-vrp.c (compare_values): Likewise.
20473 (extract_range_from_binary_expr): Likewise.
20474 (extract_range_from_unary_expr): Likewise.
20475 * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
20476 Likewise.
20477 (nowrap_type_p): Likewise.
20478 * tree-scalar-evolution.c (simple_iv): Likewise.
20479 * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
20480 (build_range_check): Likewise.
20481 (extract_muldiv_1): Likewise.
20482 (fold_comparison): Likewise.
20483 * tree-vrp.c (vrp_int_const_binop): Likewise.
20484 (extract_range_from_unary_expr): Likewise.
20485 * convert.c (convert_to_integer): Likewise.
20486 * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
20487 (fold_comparison): Likewise.
20488 (fold_binary): Likewise.
20489 * optabs.c (optab_for_tree_code): Likewise.
20490 * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
20491 * simplify-rtx.c (simplify_const_relational_operation): Check
20492 flag_strict_overflow and flag_trapv.
20493 (simplify_const_relational_operation): Likewise.
20494 * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
20495 (Optimize Options): Add -fstrict-overflow to -O2 list. Document
20496 -fstrict-overflow.
20497
20498 2007-01-27 Roger Sayle <roger@eyesopen.com>
20499
20500 * tree.c (tree_fold_gcd): Delete.
20501 * tree.h (tree_fold_gcd): Remove prototype.
20502 * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
20503 test whether one constant integer is a multiple of another. Instead
20504 call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
20505 * fold-const.c (multiple_of_p): We've determined both TOP and
20506 BOTTOM are integer constants so we can call int_const_binop directly
20507 instead of the more generic const_binop.
20508
20509 2007-01-27 Roger Sayle <roger@eyesopen.com>
20510
20511 * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
20512 1*X check that the constant hasn't overflowed, to preserve the
20513 TREE_OVERFLOW bit.
20514 (round_up): Provide an efficient implementation when rouding-up an
20515 INTEGER_CST to a power-of-two.
20516
20517 2007-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20518
20519 * doc/sourcebuild.texi: Add comma for clarity.
20520 * doc/extend.texi: Fix some typos.
20521 * doc/passes.texi: Likewise.
20522 * doc/cppinternals.texi: Likewise.
20523 * doc/c-tree.texi: Likewise.
20524 * doc/tree-ssa.texi: Likewise.
20525 * doc/install.texi: Likewise.
20526
20527 2007-01-27 Jan Hubicka <jh@suse.cz>
20528
20529 * tree-sra.c (sra_walk_function): Don't rely on aliases being build.
20530 (pass_sra): Do not require alias information.
20531 * passes.c (init_optimization_passes): Add SRA
20532
20533 2007-01-27 Steven Bosscher <steven@gcc.gnu.org>
20534
20535 * tracer.c (rest_of_handle_tracer): We already cleaned
20536 up the CFG in tracer() so don't do it here again.
20537 * cfgcleanup.c (rest_of_handle_jump2): Don't repeat
20538 cleanup_cfg here, either. And don't call renumber_insns.
20539
20540 * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
20541 and BB_HEAD are in the insn stream here. Instead make sure
20542 that BB_INSN is valid on all insns. Also, do check here that
20543 there are no pending branch predictions...
20544 (rtl_verify_flow_info): ...instead of doing it here. Checks
20545 for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
20546 here.
20547
20548 2007-01-26 Roger Sayle <roger@eyesopen.com>
20549
20550 * config/i386/i386.c (ix86_swap_binary_operands_p): New helper
20551 function to simplify/factorize operand order canonicalization.
20552 (ix86_fixup_binary_operands): Reorganize using the above function.
20553 (ix86_binary_operator_ok): Likewise.
20554
20555 2007-01-27 Jakub Jelinek <jakub@redhat.com>
20556
20557 * genattrtab.c (struct attr_value_list, insn_code_values): Move to
20558 file scope from optimize_attrs.
20559 (simplify_test_exp): If insn_code_values is not NULL, use it to speed
20560 up search.
20561 (optimize_attrs): Clear insn_code_values after freeing it.
20562
20563 2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
20564
20565 * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
20566 a parts.base assignment.
20567
20568 2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
20569
20570 * tree-data-ref.c (dump_subscript): Use dump_conflict_function.
20571 (compute_subscript_distance, initialize_data_dependence_relation,
20572 finalize_ddr_dependent, analyze_ziv_subscript,
20573 analyze_siv_subscript_cst_affine,
20574 compute_overlap_steps_for_affine_univar,
20575 compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
20576 analyze_siv_subscript, analyze_miv_subscript,
20577 analyze_overlapping_iterations, subscript_dependence_tester_1,
20578 compute_self_dependence, free_dependence_relation): Work
20579 with affine_fn instead of chrecs.
20580 (dump_affine_function, dump_conflict_function, affine_function_equal_p,
20581 common_affine_function, affine_function_base,
20582 affine_function_constant_p, affine_fn_op, affine_fn_plus,
20583 affine_fn_minus, affine_fn_free, conflict_fn_not_known,
20584 conflict_fn_no_dependence, free_conflict_function, free_subscripts,
20585 conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
20586 (all_chrecs_equal_p): Removed.
20587 * tree-data-ref.h (affine_fn, conflict_function): New types.
20588 (struct subscript): Change type of conflicting_iterations_in_a
20589 and conflicting_iterations_in_b.
20590
20591 2007-01-26 Steve Ellcey <sje@cup.hp.com>
20592
20593 PR other/30182
20594 * config/pa/pa.h (TARGET_HPUX_11): New.
20595 * config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
20596 * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.
20597
20598 2007-01-26 Daniel Berlin <dberlin@dberlin.org>
20599 Richard Guenther <rguenther@suse.de>
20600
20601 * tree-ssa-structalias.c (solve_graph): Handle case
20602 we merged the variable to another.
20603
20604 2007-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20605
20606 * builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even'
20607 functions.
20608
20609 * fold-const.c (negate_mathfn_p): Treat casin, casinh, catan,
20610 catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions.
20611
20612 2007-01-25 DJ Delorie <dj@redhat.com>
20613
20614 * config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't
20615 allow changes to modes which don't fit in those registers.
20616
20617 * reload1.c (choose_reload_regs): Check for invalid subregs before
20618 computing their locations, not after.
20619
20620 2007-01-25 Geoffrey Keating <geoffk@apple.com>
20621
20622 PR 25127
20623 * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
20624 save Altivec registers in an eh_return function.
20625 (compute_vrsave_mask): Likewise.
20626 (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
20627 for saving Altivec registers.
20628 (rs6000_emit_prologue): Don't allocate stack twice in
20629 eh_return function. Correct expected value of altivec_save_offset
20630 when using save_world. Describe save of R0 to stack when using
20631 save_world. Describe stack pointer adjustment when using
20632 save_world. Remove duplicated eh_return parameter register saving.
20633 Update sp_offset variable after save_world.
20634 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
20635 darwin-world.asm.
20636 (LIB2FUNCS_EXTRA): Add darwin-world.asm.
20637 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
20638 implies Altivec.
20639
20640 2007-01-25 Steve Ellcey <sje@cup.hp.com>
20641
20642 * config.gcc (ia64*-*-hpux*): Make posix threads the default.
20643
20644 2007-01-25 Steve Ellcey <sje@cup.hp.com>
20645
20646 PR other/30182
20647 * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
20648 * config/ia64/ia64.c (ia64_init_builtins): Ditto.
20649
20650 2007-01-25 Richard Guenther <rguenther@suse.de>
20651
20652 * doc/invoke.texi (-Wcoverage-mismatch): Document.
20653 * common.opt (-Wcoverage-mismatch): New warning option.
20654 * coverage.c (get_coverage_counts): Ignore coverage mismatch
20655 if -Wcoverage-mismatch is given.
20656
20657 2007-01-25 Razya Ladelsky <razya@il.ibm.com>
20658
20659 * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
20660 (ipcp_driver): Change to static definition.
20661 Add dumping of the ifunctions.
20662 (constant_val_insert): Remove unused parameter. Support for SSA.
20663 (ipcp_propagate_const): Support for SSA.
20664 (ipcp_profile_bb_print): Print only analyzed nodes.
20665 (ipcp_replace_map_create): Remove support for Fortran constant
20666 for now.
20667 * ipa-prop.c (ipa_method_modify_stmt,
20668 ipa_callsite_compute_param): Support for SSA.
20669 * ipa-prop.h (ipcp_driver): Remove declaration.
20670 (IS_VALID_TREE_MAP_INDEX): Add define.
20671
20672 2007-01-24 Geoffrey Keating <geoffk@apple.com>
20673
20674 * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
20675
20676 2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20677
20678 PR middle-end/30447
20679 * builtins.c (fold_builtin_cabs): Use MPFR to evaluate a
20680 constant argument to cabs and do it without checking for
20681 -funsafe-math-optimizations.
20682
20683 2007-01-24 Douglas Gregor <dgregor@osl.iu.edu>
20684
20685 * c-common.h (RID_FIRST_CXX0X): New.
20686 (RID_LAST_CXX0X): New.
20687 * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered
20688 by -Wall.
20689 * c.opt (Wc++0x-compat): New.
20690 * doc/invoke.texi (-Wc++0x-compat): Document.
20691
20692 2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20693
20694 * builtins.c (fold_builtin_carg): New.
20695 (fold_builtin_1): Use it.
20696
20697 2007-01-24 Jan Hubicka <jh@suse.cz>
20698
20699 * ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns.
20700
20701 * ipa-inline.c (initial_insns, max_insns): Delete.
20702 (compute_max_insns): New function.
20703 (cgraph_decide_inlining_of_small_function): Use it; take minimal
20704 amount of insns as base for code growth.
20705 (cgraph_decide_inlining): Make initial_insns local; do not compute
20706 max_insns.
20707 * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
20708 * doc/invoke.texi (inline-unit-growth): Update docs.
20709
20710 2007-01-24 Jakub Jelinek <jakub@redhat.com>
20711
20712 * config/i386/i386.h (x86_cmpxchg16b): Remove const.
20713 (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b.
20714 * config/i386/i386.c (x86_cmpxchg16b): Remove const.
20715 (override_options): Add PTA_CX16 flag. Set x86_cmpxchg16b
20716 for CPUs that have PTA_CX16 set.
20717
20718 PR middle-end/27416
20719 * gimplify.c (omp_check_private): New function.
20720 (gimplify_scan_omp_clauses): Use it for
20721 firstprivate/lastprivate/reduction.
20722
20723 PR middle-end/30494
20724 * gimplify.c (omp_add_variable): Don't call omp_notice_variable
20725 on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
20726
20727 PR middle-end/30421
20728 * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
20729 If lower_lastprivate_clauses emits some statements, append them
20730 to dlist rather than body_p and to body_p append an initializer.
20731 (lower_omp_for): Adjust caller.
20732
20733 2007-01-24 Steve Ellcey <sje@cup.hp.com>
20734
20735 * target.h (globalize_decl_name): New.
20736 * target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
20737 * output.h (default_globalize_decl_name): New.
20738 * varasm.c (asm_output_bss): Use globalize_decl_name instead of
20739 globalize_label.
20740 (globalize_decl): Ditto.
20741 (default_globalize_decl_name): New.
20742 * config/ia64/ia64.c (ia64_globalize_decl_name): New.
20743 (ia64_handle_version_id_attribute): New.
20744 (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
20745 (ia64_asm_output_external): Use globalize_decl_name instead
20746 of globalize_label.
20747 * doc/extend.texi (version_id): New pragma.
20748 * doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook.
20749
20750 2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
20751
20752 * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
20753 _uleb128_t and _Unwind_SWord with _sleb128_t.
20754 * unwind-dw2.c (extract_cie_info, execute_stack_op,
20755 execute_cfa_program, uw_frame_state_for, uw_update_context_1):
20756 Likewise.
20757 * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
20758 * unwind-pe.h (read_uleb128, read_sleb128,
20759 read_encoded_value_with_base): Likewise.
20760 * unwind-generic.h: Define _sleb128_t and _uleb128_t types.
20761
20762 2007-01-24 Richard Guenther <rguenther@suse.de>
20763
20764 * builtins.c (expand_builtin_cexpi): Get the fndecl
20765 for cexp in the correct way.
20766
20767 2007-01-24 Jan Hubicka <jh@suse.cz>
20768
20769 * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS
20770 of calls.
20771
20772 2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
20773
20774 * c-cppbuiltin.c (builtin_define_type_sizeof): New function.
20775 (c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__,
20776 __SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__,
20777 __SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__,
20778 __SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and
20779 __SIZEOF_PTRDIFF_T__.
20780 * doc/cpp.texi: Documentation for the new builtin macros added.
20781
20782 2007-01-24 Uros Bizjak <ubizjak@gmail.com>
20783
20784 * config/i386/i386.md (tanxf2, tan<mode>2, atan<mode>2, log<mode>2,
20785 log10<mode>2, log2<mode>2, expxf2, exp10xf2, exp2xf2): Use op2
20786 instead of operands[2] to avoid access past the end of array.
20787
20788 2007-01-24 Richard Sandiford <richard@codesourcery.com>
20789
20790 * reload1.c (emit_reload_insns): Pass the reload register
20791 for a non-spill output reload through forget_old_reloads_1.
20792
20793 2007-01-23 Joseph Myers <joseph@codesourcery.com>
20794
20795 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
20796 _SOFT_DOUBLE if doubles use software floating-point.
20797 * config/rs6000/libgcc-ppc-glibc.ver: Export additional long
20798 double functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
20799 * config/rs6000/darwin-ldouble.c: Also compile functions for
20800 hard-float without FPRs. Use fmsub function for all __NO_FPRS__
20801 cases. Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
20802 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove
20803 commented-out long double override.
20804 (CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise.
20805 * config/rs6000/eabispe.h: Likewise.
20806 * config/rs6000/rs6000.c (rs6000_override_options): Don't override
20807 long double for non-SPE.
20808 (rs6000_handle_option): Likewise.
20809 (invalid_e500_subreg): Disallow more subregs involding DImode,
20810 DFmode, TImode or TFmode.
20811 (rs6000_legitimate_offset_address_p): Check TFmode offsets for
20812 E500 double.
20813 (legitimate_lo_sum_address_p): Also check for TFmode for E500
20814 double.
20815 (rs6000_legitimize_address): Also handle TFmode for E500 double.
20816 (rs6000_legitimize_reload_address): Also handle TFmode for E500
20817 double.
20818 (rs6000_legitimate_address): Also check for TFmode for E500
20819 double.
20820 (rs6000_emit_move): Use DFmode subregs of TFmode for E500 double.
20821 (spe_build_register_parallel): Handle TFmode and TCmode.
20822 (rs6000_spe_function_arg): Handle TFmode and TCmode for E500
20823 double.
20824 (function_arg): Handle TFmode and TCmode for E500 double.
20825 (rs6000_init_libfuncs): Initialize extra libfuncs for soft double
20826 in general.
20827 (print_operand): Handle TFmode and TImode for %y.
20828 (rs6000_generate_compare): Handle TFmode comparisons for E500
20829 double.
20830 (spe_func_has_64bit_regs_p): Check for TFmode for E500 double.
20831 (rs6000_function_value): Handle TFmode and TCmode for E500 double.
20832 (rs6000_libcall_value): Handle TFmode and TCmode for E500 double.
20833 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for
20834 TFmode for E500 double.
20835 * config/rs6000/rs6000.md (FP): Allow TF for E500 double.
20836 (floatsidf2): Enable for E500 double.
20837 (movtf_softfloat): Use rs6000_nonimmediate_operand.
20838 (extenddftf2): Change to extenddftf2_fprs.
20839 (extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs
20840 depending on TARGET_E500_DOUBLE.
20841 (extendsftf2): Enable for E500 double.
20842 (trunctfdf2): Enable for E500 double.
20843 (trunctfsf2): Change to trunctfsf2_fprs.
20844 (trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs
20845 depending on TARGET_E500_DOUBLE.
20846 (floatsitf2): Enable for E500 double.
20847 (fix_trunctfsi2): Change to fix_trunctfsi2_fprs.
20848 (fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or
20849 gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE.
20850 (negtf2): Change to negtf2_internal.
20851 (negtf2): New expander.
20852 (abstf2): Enable for E500 double. Call gen_spe_abstf2_tst,
20853 gen_spe_abstf2_cmp or gen_abstf2_internal depending on
20854 TARGET_E500_DOUBLE and flag_unsafe_math_optimizations.
20855 (movdi_internal32): Use rs6000_nonimmediate_operand.
20856 (unnamed splitter): Likewise.
20857 * config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR,
20858 TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs.
20859 (SPE64TF, DITI): New mode macros.
20860 (frob_df_di): Change to frob_<SPE64:mode>_<DITI:mode>; allow more
20861 modes.
20862 (frob_tf_ti): New.
20863 (frob_<mode>_di_2): New.
20864 (frob_tf_di_8_2): New.
20865 (frob_di_df): Change to frob_di_<mode>; allow more modes.
20866 (frob_ti_tf): New.
20867 (frob_di_df_2): Change to frob_<DITI:mode>_<SPE64:mode>_2; allow
20868 more modes.
20869 (frob_ti_<mode>_8_2): New.
20870 (frob_ti_tf_2): New.
20871 (mov_si<mode>_e500_subreg0, mov_si<mode>_e500_subreg0_2,
20872 mov_si<mode>_e500_subreg4, mov_si<mode>_e500_subreg4_2): Allow
20873 TFmode.
20874 (mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2,
20875 mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New.
20876 (spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2,
20877 spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal,
20878 spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New.
20879 (cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr,
20880 tsttflt_gp): New.
20881
20882 2007-01-23 Ian Lance Taylor <iant@google.com>
20883
20884 * Makefile.in (OBJS-common): Reformat, alphabetize, but put
20885 insn-*.o first.
20886 (OBJS-archive): Reformat, alphabetize.
20887 (OBJS): Change out_object_file to OBJS-md.
20888
20889 2007-01-23 Uros Bizjak <ubizjak@gmail.com>
20890
20891 * config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
20892 JUMP_P and CALL_P predicates where applicable.
20893 * config/i386/i386.c: Ditto.
20894 * config/i386/i386.md: Ditto.
20895 * config/i386/mmx.md: Ditto.
20896 * config/i386/predicates.md: Ditto.
20897
20898 2007-01-22 Andreas Schwab <schwab@suse.de>
20899
20900 * config/m68k/m68k.h: Fix comment.
20901
20902 2007-01-22 Jan Hubicka <jh@suse.cz>
20903
20904 * passes.c (init_optimization_passes): Do not rerun
20905 pass_early_warn_uninitialized.
20906
20907 2007-01-22 Richard Guenther <rguenther@suse.de>
20908
20909 PR tree-optimization/30038
20910 * tree-ssa-math-opts.c (maybe_record_sincos): New static helper
20911 function.
20912 (execute_cse_sincos_1): Likewise.
20913 (execute_cse_sincos): Likewise.
20914 (gate_cse_sincos): Likewise.
20915 (pass_cse_sincos): New pass CSEing sin() and cos() calls using
20916 the cexpi() canonicalization of sincos().
20917 * tree-pass.h (pass_cse_sincos): Declare.
20918 * passes.c (init_optimization_passes): New pass pas_cse_sincos.
20919
20920 2007-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
20921
20922 PR rtl-optimization/29329
20923 * combine.c (replaced_rhs_insn): Rename to i2mod.
20924 (replaced_rhs_value): Rename to i2mod_new_rhs.
20925 (i2mod_old_rhs): New global variable.
20926 (combine_instructions): Adjust for above change. Save a copy of
20927 the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
20928 note are substituted in the second instruction.
20929 (distribute_notes) <REG_DEAD>: Adjust for above change. Do not
20930 ditch the note if it pertains to the second eliminated register
20931 and this register is mentioned in i2mod_old_rhs.
20932
20933 Revert:
20934 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
20935
20936 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
20937 the insn to which the note was originally attached.
20938
20939 2007-01-21 Jan Hubicka <jh@suse.cz>
20940
20941 * ipa-inline.c (inlining_mode): Comment, move up.
20942 (cgraph_decide_inlining_incrementally): Do not perform inlining
20943 itself; fix handling of flattening of self recursive functions.
20944 (cgraph_find_cycles): Remove.
20945 (cgraph_flatten_node): Remove.
20946 (cgraph_decide_inlining): Use incremental inliner to handle flattening.
20947 (try_inline): New function.
20948 (cgraph_early_inlining): Update call of
20949 cgraph_decide_inlining_incrementally. Apply inlining here.
20950 (apply_inline): Update call of cgraph_decide_inlining_incrementally.
20951
20952 2007-01-21 Dirk Mueller <dmueller@suse.de>
20953
20954 PR bootstrap/30511
20955 * tree-vrp.c (check_array_bounds): do not warn
20956 about ADDR_EXPR's of ARRAY_REF's which are immediately
20957 used in binary expressions.
20958
20959 2007-01-21 Ira Rosen <irar@il.ibm.com>
20960
20961 * tree-vectorizer.h (struct _stmt_vec_info): Add new field
20962 read_write_dep and macros for its access.
20963 * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
20964 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
20965 argument, call vect_check_interleaving for every independent pair of
20966 data-refs. Mark loads that access the same memory location as a store
20967 in the loop.
20968 (vect_check_dependences): Remove.
20969 (vect_analyze_data_ref_dependences): Remove vect_check_dependences
20970 call, fix the call to vect_analyze_data_ref_dependence.
20971 (vect_analyze_data_ref_access): For statements that access the same
20972 data-ref, check that they are not stores; for loads, check that there
20973 is no store that access the same location.
20974
20975 2007-01-20 Roger Sayle <roger@eyesopen.com>
20976 Joseph Myers <joseph@codesourcery.com>
20977
20978 * doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox.
20979 (-fdump-rtl-stack): Likewise.
20980 (-fno-signed-zeros): Use @minus{} for a minus sign. Correct typo.
20981 (-mcheck-zero-division, -mcpu): Fix under/overfull hbox.
20982 (-mpt-fixed): Use @minus{} for minus sign.
20983 (Using Precompiled Headers): Fix under/overfull hbox.
20984
20985 2007-01-20 Jan Hubicka <jh@suse.cz>
20986
20987 * tree-flow.h (struct stmt_ann_d): Move references_memory to proper
20988 place within annotation.
20989
20990 2007-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20991
20992 * pa.c (output_move_double): Change array size of xoperands to 4.
20993
20994 2007-01-20 Jan Hubicka <jh@suse.cz>
20995
20996 * tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
20997 as temporary.
20998
20999 2007-01-19 Ian Lance Taylor <iant@google.com>
21000
21001 * expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
21002 constant to unsigned HOST_WIDE_INT before negating.
21003
21004 2007-01-19 Ian Lance Taylor <iant@google.com>
21005
21006 * tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
21007 to unsigned.
21008 (VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
21009 (VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
21010 (SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
21011 (SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
21012 (SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
21013 (realloc_vdef, realloc_vuse): Change second parameter to
21014 unsigned.
21015 (ssa_operand_iterator_d): Change vuse_index and mayuse_index
21016 fields to unsigned.
21017 * tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
21018 unsigned. Change x and lim locals to unsigned.
21019 (realloc_vdef, realloc_vuse): Change num_elem parameter to
21020 unsigned.
21021 (finalize_ssa_vuse_ops): Change old_i local to unsigned.
21022 (copy_virtual_operands): Change i and n locals to unsigned.
21023
21024 2007-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21025
21026 PR middle-end/29335
21027 * builtins.c (fold_builtin_1): Handle builtin fdim.
21028
21029 2007-01-20 Jan Hubicka <jh@suse.cz>
21030
21031 * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
21032 * tree-ssa-structalias.c (compute_points_to_sets): Do call
21033 init_alias_heapvars.
21034 (init_alias_heapvars): Initialize only when not already initialized.
21035 (delete_alias_heapvars): Set heapvar_for_stmt to NULL.
21036
21037 2007-01-19 Roger Sayle <roger@eyesopen.com>
21038
21039 * common.opt (fsigned-zeros): New command line option.
21040 * flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
21041 of flag_unsafe_math_optimizations.
21042 * opts.c (set_fast_math_flags): The -ffast-math command line option
21043 implies -fno-signed-zeros.
21044 (fast_math_flags_set_p): Likewise.
21045
21046 * doc/invoke.texi: Document new -fno-signed-zeros option, and update
21047 the documentation of -ffast-math appropriately. Wrap long lines.
21048
21049 2007-01-19 Steve Ellcey <sje@cup.hp.com>
21050
21051 * system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
21052 * varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef.
21053
21054 2007-01-19 Tomas Bily <tbily@suse.cz>
21055
21056 * cgraphunit.c (cgraph_finalize_function): Updating of pid
21057 * tree-profile.c:
21058 (tree_init_ic_make_global_vars): New function
21059 (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
21060 (tree_gen_ic_profiler): New function
21061 (tree_gen_ic_func_profiler): New function
21062 (tree_profiling): Added calling of tree_gen_ic_func_profiler
21063 (tree_profile_hooks): Added hook for indirec/virtual calls
21064 * value-prof.c (tree_find_values_to_profile): New case for
21065 indirect calls
21066 (tree_values_to_profile): Call for determining indirect/virtual
21067 counters
21068 (tree_indirect_call_to_profile): New function
21069 (tree_ic_transform): New function
21070 (tree_ic): New function
21071 (find_func_by_pid): New function
21072 (init_pid_map): New function
21073 (tree_value_profile_transformations): Added check for
21074 indirect/virtual call transformation
21075 * value-prof.h (enum hist_type): New counter type for
21076 indirect/virtual calls
21077 (profile_hooks): Added new hook for profiling indirect/virtual
21078 calls
21079 * profile.c (instrument_values): New case for indirect/virtual
21080 call added
21081 * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
21082 (GCOV_COUNTER_V_INDIR): New counter type
21083 (GCOV_COUNTER_NAMES): New name of counter "indirect" added
21084 (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
21085 call added
21086 * cgraph.c: Definition of cgraph_max_pid
21087 (cgraph_create_node): Default init of pid attribute
21088 * cgraph.h: Declaration of cgraph_max_pid
21089 (struct cgraph_node): Added pid attribute
21090 * libgcov.c (__gcov_indirect_call_profiler): New function
21091 (__gcov_one_value_profiler_body): New function
21092 (__gcov_one_value_profiler): Body was moved to
21093 __gcov_one_value_profiler_body and calls it
21094
21095 2007-01-19 Basile Starynkevitch <basile@starynkevitch.net>
21096
21097 * doc/gty.texi (Options): Document the mark_hook option to GTY.
21098 * gengtype.c (write_types_data, write_func_for_structure,
21099 write_types, ggc_wtd, pch_wtd): Add skip_hooks to
21100 write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
21101 (walk_type, write_func_for_structure): Generate the mark_hook if
21102 needed.
21103
21104 2007-01-19 Jan Hubicka <jh@suse.cz>
21105
21106 * ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of
21107 'early' argument take inlining mode argument specifying whether to
21108 inline for size/speeed or all functions; add support for flattening;
21109 improve dumpting.
21110 (cgraph_early_inlining): Update call of decide_inlining_incrementally.
21111
21112 2007-01-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
21113
21114 PR c++/17947
21115 * toplev.c (warn_deprecated_use): Use %qD instead of %qs to print
21116 the name of the declared identifier.
21117
21118 2007-01-19 Dirk Mueller <dmueller@suse.de>
21119
21120 * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
21121 result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
21122 duplicate evaluation.
21123
21124 2007-01-19 Uros Bizjak <ubizjak@gmail.com>
21125
21126 * config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
21127 Macroize expander using X87MODEF12 mode macro. Extend operand 1
21128 to XFMode, use acosxf2 and truncate result to requested mode.
21129 Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
21130 (asin<mode>2): Similarly, with asin expanders.
21131 (*fscalexf4_i387): Rename from *fscalexf4.
21132 (expNcorexf3): New expander.
21133 (expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
21134 (exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
21135 X87MODEF12 mode macro. Extend operand 1 to XFMode, use expxf2 and
21136 truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
21137 patterns for SSE math.
21138 (exp10<mode>2): Similarly, with exp10 expanders.
21139 (exp2<mode>2): Similarly, with exp2 expanders.
21140 (expm1<mode>2): Similarly, with expm1 expanders.
21141 (ldexp<mode>3): Similarly, with ldexp expanders.
21142 (log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
21143 Use gen_truncxf<mode>2_i387_noop to truncate result.
21144
21145 2007-01-19 Richard Sandiford <richard@codesourcery.com>
21146
21147 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
21148 for ColdFire targets.
21149
21150 2007-01-19 Nathan Sidwell <nathan@codesourcery.com>
21151 Richard Sandiford <richard@codesourcery.com>
21152
21153 * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
21154 (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
21155 (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
21156 * config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
21157 (M68K_STATIC_CHAIN_REG_NAME): Likewise.
21158 * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
21159
21160 2007-01-19 Richard Sandiford <richard@codesourcery.com>
21161
21162 * config/m68k/m68k.md (adddi_dilshr32): Rename to...
21163 (*adddi_dilshr32): ...this. Fix formatting. Remove commented-out
21164 non-canonical pattern. Restrict to !TARGET_COLDFIRE.
21165 (*adddi_dilshr32_cf): New pattern.
21166 (adddi3, subdi3): Remove first alternatives.
21167
21168 2007-01-19 Richard Sandiford <richard@codesourcery.com>
21169
21170 * config/m68k/m68k.c (notice_update_cc): If an SFmode move is
21171 implemented using move.l, do not use its cc result for floating-point
21172 comparisons.
21173
21174 2007-01-19 Richard Sandiford <richard@codesourcery.com>
21175
21176 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
21177 from accepting 's' constraints if flag_pic.
21178
21179 2007-01-19 Richard Sandiford <richard@codesourcery.com>
21180
21181 * config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
21182 (bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
21183 (bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
21184 condition from TARGET_68881 to TARGET_HARD_FLOAT.
21185
21186 2007-01-19 Sandra Loosemore <sandra@codesourcery.com>
21187
21188 * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
21189 ColdFire alternatives.
21190 * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
21191 * config/m68k/m68k.md (clzsi2): Define for ColdFire
21192 architectures that support ff1 instruction.
21193
21194 2007-01-19 Richard Sandiford <richard@codesourcery.com>
21195 Julian Brown <julian@codesourcery.com>
21196
21197 * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
21198 * config/m68k/m68k.md (*movsi_cfv4): Fold into...
21199 (*movsi_cf): ...here. Remove unnecessary 'R' from 'Rg'.
21200 Add commentary.
21201
21202 2007-01-19 Richard Sandiford <richard@codesourcery.com>
21203
21204 * config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
21205 and return a bool.
21206 (output_move_const_into_data_reg, output_move_simode_const): Delete.
21207 * config/m68k/m68k.c (const_method, const_int_cost): Take a
21208 HOST_WIDE_INT instead of an rtx.
21209 (m68k_rtx_costs): Update call accordingly.
21210 (output_move_const_into_data_reg): Likewise. Fix formatting.
21211 (valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
21212 Return a bool.
21213 (output_move_simode_const): Update calls after above changes.
21214 Rework to use automatic variables and predicates like MEM_P.
21215 * config/m68k/m68k.md (pushexthisi_const): Update call to
21216 valid_mov3q_const.
21217
21218 2007-01-19 Dirk Mueller <dmueller@suse.de>
21219
21220 * tree-ssa-alias.c (perform_var_substitution): Fix typo
21221 in dump_flags test.
21222
21223 2007-01-19 Richard Guenther <rguenther@suse.de>
21224
21225 * builtins.c (expand_builtin_cexpi): Fall back to expanding
21226 via cexp in case sincos is not available.
21227
21228 2007-01-19 Richard Guenther <rguenther@suse.de>
21229
21230 * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
21231 * defaults.h (TARGET_HAS_SINCOS): Default to off.
21232 * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
21233 * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
21234 * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
21235 * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
21236 * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
21237 * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
21238
21239 2007-01-19 Uros Bizjak <ubizjak@gmail.com>
21240
21241 * config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
21242 New insn patterns.
21243 (atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
21244 (atan2xf3): Directly generate RTL pattern.
21245 (atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
21246 patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387
21247 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
21248 disable patterns for SSE math.
21249 (atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
21250 patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387
21251 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
21252 disable patterns for SSE math.
21253
21254 2007-01-19 Alexandre Oliva <aoliva@redhat.com>
21255
21256 * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0.
21257
21258 2007-01-18 Roger Sayle <roger@eyesopen.com>
21259
21260 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
21261 VIEW_CONVERT_EXPR to the same type as it's operand.
21262
21263 2007-01-18 David Edelsohn <edelsohn@gnu.org>
21264
21265 * config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
21266 configured for long double 128.
21267
21268 2007-01-18 Mike Stump <mrs@apple.com>
21269
21270 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build
21271 error.
21272
21273 2007-01-18 Michael Meissner <michael.meissner@amd.com>
21274
21275 * i386.c (ix86_compute_frame_layout): Make fprintf's in #if 0 code
21276 type correct.
21277
21278 2007-01-18 Jan Hubicka <jh@suse.cz>
21279
21280 * tree-ssa-operands.c (vop_free_bucket_size): Never return value
21281 greater than NUM_VOP_FREE_BUCKETS.
21282
21283 2007-01-18 Daniel Berlin <dberlin@dberlin.org>
21284
21285 * tree-ssa-structalias.c: Update comments.
21286 (ptabitmap_obstack): Removed.
21287 (pta_obstack): New.
21288 (oldpta_obstack): Ditto.
21289 (stats): Add a few members.
21290 (struct variable_info): Remove node, complex, address_taken, and
21291 indirect_target members. Add oldsolution member.
21292 (new_var_info): Do not initialize removed members.
21293 (constraint_expr_type): Remove INCLUDES.
21294 (constraint_graph): Add size, implicit_preds, rep,
21295 indirect_cycles, eq_rep, label, direct_nodes, and complex members.
21296 (FIRST_REF_NODE): New macro.
21297 (LAST_REF_NODE): Ditto.
21298 (FIRST_ADDR_NODE): Ditto.
21299 (find): New function.
21300 (unite): Ditto.
21301 (dump_constraint): Do not handle INCLUDES.
21302 (insert_into_complex): Do not insert duplicate constraints.
21303 (condense_varmap_nodes): Renamed and rewritten into ...
21304 (merge_node_constraints): This. Also fix bug in handling of
21305 offseted copy constraints.
21306 (clear_edges_for_node): No longer need to deal with preds at all,
21307 or removing associated preds/succs.
21308 (merge_graph_nodes): Deal with indirect_cycles.
21309 Don't deal with predecessors.
21310 (add_implicit_graph_edge): New function.
21311 (add_pred_graph_edge): Ditto.
21312 (add_graph_edge): Don't deal with predecessors.
21313 (build_constraint_graph): Removed.
21314 (build_pred_graph): New function.
21315 (build_succ_graph): Ditto.
21316 (struct scc_info): Removed in_component. Added roots, dfs, and
21317 node_mapping. Remove visited_index, unification_queue.
21318 (scc_visit): Deal with union-find we do now.
21319 Deal with cycles with REF nodes.
21320 (collapse_nodes): Renamed and rewritten to ...
21321 (unify_nodes): This.
21322 (process_unification_queue): Removed.
21323 (topo_visit): Cleanup
21324 (do_da_constraint): Use find.
21325 (do_sd_constraint): Ditto.
21326 (do_ds_constraint): Ditto.
21327 (do_complex_constraint): Ditto.
21328 (init_scc_info): Update for removed and added members.
21329 (find_and_collapse_graph_cycles): Renamed and rewritten into ...
21330 (find_indirect_cycles): This.
21331 (equivalence_class): New variable.
21332 (label_visit): New function.
21333 (perform_variable_substitution): Rewritten.
21334 (free_var_substitution_info): New function.
21335 (find_equivalent_node): Ditto.
21336 (move_complex_constraints): Ditto.
21337 (eliminate_indirect_cycles): Ditto.
21338 (solve_graph): Only propagate changed bits.
21339 Use indirect cycle elimination.
21340 Use find.
21341 (tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
21342 (tree_id_eq): Renamed to ...
21343 (tree_vi_eq): This. Update for member change
21344 (insert_id_for_tree): Renamed and rewritten to ...
21345 (insert_vi_for_tree): This.
21346 (lookup_id_for_tree): Renamed and rewritten to ...
21347 (lookup_vi_for_tree): This.
21348 (get_id_for_tree): Renamed and rewritten to ...
21349 (get_vi_for_tree): Ditto.
21350 (get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
21351 (process_constraint): Don't handle INCLUDES.
21352 Remove special ADDRESSOF case.
21353 (find_func_aliases): Rewrite to use vi functions instead of id
21354 ones.
21355 (create_function_info_for): Ditto.
21356 (create_variable_info_for): Ditto.
21357 (intra_create_variable_infos): Ditto.
21358 (merge_smts_into): Ditto.
21359 (find_what_p_points_to): Ditto.
21360 (init_base_vars): Ditto.
21361 (init_alias_vars): Ditto.
21362 (remove_preds_and_fake_succs): New function.
21363 (dump_sa_points_to_info): Dump new stats.
21364 (dump_solution_for_var): Use find.
21365 (set_used_smts): Fix formatting.
21366 (compute_points_to_sets): Updated for new functions.
21367 (ipa_pta_execute): Ditto.
21368
21369 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
21370 Richard Sandiford <richard@codesourcery.com>
21371
21372 * doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
21373 parallels.
21374 * calls.c (expand_call): If the return value is a PARALLEL,
21375 extract its first member.
21376 * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
21377 * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
21378 use FUNCTION_EXTRA_EPILOGUE.
21379 (m68k_function_value): Return a PARALLEL if the return value
21380 is of a pointer type.
21381 * config/m68k/netbsd-elf.h (current_function_returns_pointer)
21382 (FUNCTION_EXTRA_EPILOGUE): Remove.
21383 * config/m68k/m68k.md (D0_REG): New constant.
21384
21385 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
21386
21387 * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
21388 output a NOP for empty epilogues.
21389
21390 2007-01-18 Richard Sandiford <richard@codesourcery.com>
21391
21392 * config/m68k/m68k.c (m68k_use_return_insn): Update comments
21393 before function. Extend register save check to include all
21394 registers, not just integer ones.
21395
21396 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
21397
21398 * config/m68k/m68k-protos.h (use_return_insn): Rename to...
21399 (m68k_use_return_insn): ...this.
21400 * config/m68k/m68k.h (USE_RETURN_INSN): Delete.
21401 * config/m68k/m68k.c (use_return_insn): Rename to...
21402 (m68k_use_return_insn): ...this.
21403 * config/m68k/m68k.md (return): Use m68k_use_return_insn instead
21404 of USE_RETURN_INSN.
21405
21406 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
21407
21408 * config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
21409 nearest even, fix denormal rounding overflow.
21410
21411 2007-01-18 Richard Sandiford <richard@codesourcery.com>
21412
21413 * config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
21414 f%$smove and f%$move.
21415 (movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
21416 (extendsfdf2_cf): Use fdmove instead of f%&move.
21417 (truncdfsf2_cf): Use fsmove instead of f%$smove.
21418 (add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.
21419
21420 2007-01-18 Richard Sandiford <richard@codesourcery.com>
21421
21422 * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
21423 GPR<-GPR moves.
21424
21425 2007-01-18 Richard Sandiford <richard@codesourcery.com>
21426
21427 * real.h (real_format): Add a canonical_nan_lsbs_set field.
21428 (coldfire_single_format): Declare.
21429 (coldfire_double_format): Likewise.
21430 * real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
21431 of qnan_msb_set to determine the lower bits of a canonical
21432 NaN significand.
21433 (encode_ieee_double): Likewise.
21434 (encode_ieee_quad): Likewise.
21435 (ieee_single_format): Initialize canonical_nan_lsbs_set.
21436 (mips_single_format): Likewise.
21437 (ieee_double_format): Likewise.
21438 (mips_double_format): Likewise.
21439 (ieee_extended_motorola_format): Likewise.
21440 (ieee_extended_intel_96_format): Likewise.
21441 (ieee_extended_intel_128_format): Likewise.
21442 (ieee_extended_intel_96_round_53_format): Likewise.
21443 (ibm_extended_format): Likewise.
21444 (mips_extended_format): Likewise.
21445 (ieee_quad_format): Likewise.
21446 (mips_quad_format): Likewise.
21447 (vax_f_format): Likewise.
21448 (vax_d_format): Likewise.
21449 (vax_g_format): Likewise.
21450 (i370_single_format): Likewise.
21451 (i370_double_format): Likewise.
21452 (decimal_single_format): Likewise.
21453 (decimal_double_format): Likewise.
21454 (decimal_quad_format): Likewise.
21455 (c4x_single_format): Likewise.
21456 (c4x_extended_format): Likewise.
21457 (real_internal_format): Likewise.
21458 (coldfire_single_format): New real_format.
21459 (coldfire_double_format): Likewise.
21460 * config/pdp11/pdp11.c (pdp11_f_format): Initialize
21461 canonical_nan_lsbs_set.
21462 (pdp11_d_format): Likewise.
21463 * config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
21464 if TARGET_COLDFIRE_CPU.
21465
21466 2007-01-18 Richard Sandiford <richard@codesourcery.com>
21467
21468 * config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
21469 (output_call, m68k_legitimize_call_address): Declare.
21470 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
21471 parenthesees. Add support for a 'W' constraint.
21472 (LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
21473 (PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
21474 (m68k_symbolic_call, m68k_symbolic_jump): Declare.
21475 * config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
21476 variables.
21477 (override_options): Initialize them. Do not set flag_no_function_cse
21478 for TARGET_ID_SHARED_LIBRARY.
21479 (m68k_output_pic_call): Delete.
21480 (m68k_legitimize_call_address): New function.
21481 (print_operand): Remove the %o prefix. Handle the %p prefix.
21482 (output_call): New function.
21483 (m68k_output_mi_thunk): Use m68k_symbolic_jump. Always load the
21484 target address from the GOT if symbolic jumps are not allowed.
21485 * config/m68k/m68k.md (call, general_operand): Do not set
21486 SYMBOL_REF_FLAG. Use m68k_legitimize_call_address instead.
21487 Merge separate flag_pic and !flag_pic define_insns into...
21488 (*call, *call_value): ...these new patterns. Match the address
21489 rather than the containing MEM and require it to be a call_operand.
21490 Use output_call to generate the asm template.
21491 * config/m68k/predicates.md (const_call_operand): New predicate.
21492 (call_operand): Likewise.
21493
21494 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
21495
21496 * config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
21497 (STACK_GROWS_DOWNWARD): Define to 1.
21498 (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
21499 comments, emphasizing that these values are only defaults.
21500 * config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
21501 * config/m68k/m68k.c (const_method): Remove trailing whitespace.
21502
21503 2007-01-18 Richard Sandiford <richard@codesourcery.com>
21504
21505 * config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.
21506
21507 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
21508 Richard Sandiford <richard@codesourcery.com>
21509
21510 * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
21511 (FP_REGNO_P): New macros.
21512 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
21513 (REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
21514 (EH_RETURN_STACKADJ_RTX): Use A0_REG.
21515 * config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.
21516
21517 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
21518
21519 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
21520 (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
21521 to $tmake_file.
21522 * config/m68k/t-floatlib: New file, extracting common code from...
21523 * config/m68k/t-m68kbare, config/m68k/t-m68kelf,
21524 * config/m68k/t-uclinux: Here.
21525 * config/m68k/fpgnulib.c: Do not compile extendeed precision
21526 routines on ColdFire targets.
21527
21528 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
21529
21530 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
21531 (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
21532 (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
21533 (m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
21534 explicitly set MOTOROLA to 1.
21535 * config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.
21536
21537 2007-01-18 Richard Sandiford <richard@codesourcery.com>
21538 Nathan Sidwell <nathan@codesourcery.com>
21539
21540 * config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
21541 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
21542 * config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
21543 * config/m68k/m68020-elf.h (LIB_SPEC): Delete.
21544 * config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
21545 * config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
21546 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
21547 (NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
21548 (BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
21549 * config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
21550 * config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
21551 (WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
21552 (TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
21553 (DBX_REGISTER_NUMBER): Delete.
21554 * config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
21555 (PCC_STATIC_STRUCT_RETURN): Don't undefine.
21556 * config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.
21557
21558 2007-01-18 Richard Sandiford <richard@codesourcery.com>
21559
21560 * config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
21561 * config/flat.h: New file.
21562 * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
21563 OBJECT_FORMAT_FLAT.
21564 * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
21565 indirect references for -msep-data or -mid-shared-library.
21566 Do not use PC-relative code addresses either.
21567 * config/m68k/m68k.c (override_options): Restrict -fPIC error
21568 to -mpcrel.
21569 * config/m68k/uclinux.h (STARTFILE_SPEC): Define. Use Scrt1.o
21570 for shared libraries and crt1.o for executables. Use crti.o and
21571 crtbegin.o.
21572 (ENDFILE_SPEC): Use crtend.o and crtn.o.
21573 (LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
21574 Do not add -elf2flt or -shared-lib-id options here.
21575 (LINK_SPEC): Define. Pass -elf2flt if no -elf2flt option is given.
21576 Pass -shared-lib-id if -mid-shared-library, taking the library
21577 identifier from -mshared-library-id if given, otherwise
21578 defaulting to 0.
21579 (EH_FRAME_IN_DATA_SECTION): Do not undefine.
21580 (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
21581 (TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
21582 and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
21583 (DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
21584 * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
21585 and crtend.o.
21586 * config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
21587 jump sequence for ISA A and ISA A+.
21588 (PICJUMP): Likewise.
21589
21590 2007-01-18 Richard Sandiford <richard@codesourcery.com>
21591
21592 * config.gcc (m68k-*-uclinux*): Base the port on the common
21593 and m68k GNU/Linux files rather than on the generic ELF ones.
21594 * config/m68k/uclinux.h (TARGET_VERSION): Override.
21595 (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
21596
21597 2007-01-18 Julian Brown <julian@codesourcery.com>
21598 Richard Sandiford <richard@codesourcery.com>
21599
21600 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
21601 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
21602 * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
21603 before redefining.
21604 * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
21605 80 unconditionally.
21606 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
21607
21608 2007-01-18 Richard Sandiford <richard@codesourcery.com>
21609
21610 * doc/install.texi: Document m68k-uclinuxoldabi.
21611 * config.gcc (m68k-*-uclinuxoldabi): New configuration.
21612 * config/m68k/uclinux-oldabi.h: New file, copied from
21613 config/m68k/uclinux.h.
21614
21615 2007-01-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
21616
21617 * config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
21618 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
21619 (m32r_compute_frame_size): Use unsigned for regno.
21620 (m32r_reload_lr): Use gen_frame_mem.
21621 (pop): New.
21622 (m32r_output_function_epilogue): Don't output the function epilogue
21623 textually here.
21624 (m32r_expand_epilogue): New.
21625 (direct_return): Return false if the function has the interrupt
21626 attribute.
21627 (m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
21628 * config/m32r/m32r.md (epilogue): New expander.
21629 (return_lr, return_rte): New insns.
21630 (return): Make it expander.
21631 (return_normal): New expander.
21632
21633 2007-01-18 Josh Conner <jconner@apple.com>
21634
21635 PR target/30485
21636 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
21637 support for UNLE, UNLT, UNGE, and UNGT.
21638
21639 2007-01-18 Jan Hubicka <jh@suse.cz>
21640
21641 * tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
21642 * tree-tailcall (add_virtual_phis): Likewise.
21643 (optimize_tail_call): Return TODOs.
21644 (execute_tail_calls): Return TODOs.
21645 * tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
21646 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
21647 changed.
21648 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
21649 Cleanup cfg using TODO.
21650 * tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
21651 * passes.c (execute_function_todo): When cleanup did something, remove
21652 unused locals.
21653 * tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
21654 (make_edges): Don't cleanup_cfg.
21655
21656 2007-01-18 Uros Bizjak <ubizjak@gmail.com>
21657
21658 * reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
21659 UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
21660 operate on the top of stack.
21661 [UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
21662 register handling of instructions that output to the second
21663 stack slot.
21664 [UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
21665 (move_for_stack_reg): Special-case check for dead destination
21666 stack slot for constant load of 1.0 inside UNSPEC_TAN.
21667
21668 * config/i386/i386.md (UNSPEC_TAN): New constant.
21669 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
21670 (fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
21671 to correctly model move of constant 1.0 to top stack slot.
21672 (*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
21673 (unnamed peephole2 pattern): Remove corresponding peephole2
21674 pattern that optimizes tan insn and loading of constant 1.0.
21675 (tanxf2): Use fptanxf4_i387.
21676 (tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
21677 patterns using X87MODEF12 mode macro. Use fptan_extend<mode>xf4_i387
21678 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
21679 disable patterns for SSE math.
21680 (sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
21681 (fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.
21682
21683 2007-01-18 Dirk Mueller <dmueller@suse.de>
21684 Richard Guenther <rguenther@suse.de>
21685
21686 PR diagnostic/8268
21687 * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
21688 * common.opt (Warray-bounds): Add new warning option.
21689 * c-opts.c (c_common_handle_option): Define -Warray-bounds
21690 if -Wall is given.
21691 * Makefile.in: make tree-vrp.o depend on toplev.h
21692 * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
21693 is enabled.
21694 (check_array_refs, check_array_bounds, check_array_ref): New.
21695
21696 2007-01-18 Jan Hubicka <jh@suse.cz>
21697
21698 * tree-ssa-ccp.c (ccp_finalize): Return if something changed.
21699 (execute_ssa_ccp): Return flags conditionally.
21700 * tree-ssa-propagate.c (substitue_and_fold): Return if something was
21701 changed.
21702 * tree-ssa-propagate.h (substitute_and_fold): Update prototype.
21703
21704 2007-01-18 Steven Bosscher <steven@gcc.gnu.org>
21705
21706 * cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
21707 the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
21708
21709 * Makefile.c (GTFILES): Add cfglayout.h.
21710 * gengtype.c (open_base_files): Likewise.
21711 * cfglayout.c (cfg_layout_function_footer,
21712 cfg_layout_function_header) Reindent to make gengtype happy.
21713 * cfglayout.h (cfg_layout_function_footer,
21714 cfg_layout_function_header): Add GTY(()) marker.
21715
21716 * ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.
21717
21718 2007-01-18 Ben Elliston <bje@au.ibm.com>
21719
21720 * genautomata.c (write_automata): Include xstrerror output in the
21721 error message if writing the DFA description file fails.
21722
21723 2007-01-17 H.J. Lu <hongjiu.lu@intel.com>
21724
21725 * config/mips/mips-protos.h (mips_output_external): Make it
21726 return void.
21727 * config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
21728 * config/mips/mips.c (irix_output_external_libcall): Likewise.
21729 (extern_list): Likewise.
21730 (extern_head): Likewise.
21731 (TARGET_ASM_FILE_END): Likewise.
21732 (mips_file_end): Likewise.
21733 (mips_output_external): Rewritten.
21734
21735 2007-01-18 Ben Elliston <bje@au.ibm.com>
21736
21737 * genpreds.c (write_insn_preds_c): Only write out the function
21738 body for regclass_for_constraint if we have register constraints.
21739
21740 2007-01-17 Tom Tromey <tromey@redhat.com>
21741
21742 * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
21743 * doc/install.texi (Testing): Use sourceware.org.
21744 (Binaries): Likewise.
21745 (Specific): Likewise.
21746 * doc/contrib.texi (Contributors): Use sourceware.org.
21747
21748 2007-01-17 Anatoly Sokolov <aesok@post.ru>
21749
21750 * config/avr/avr.h (AVR_HAVE_LPMX): New macro.
21751 (AVR_ENHANCED): Rename to ...
21752 (AVR_HAVE_MUL): ... new.
21753 (avr_enhanced_p): Rename to ...
21754 (avr_have_mul_p): ... new.
21755 (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of
21756 'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
21757 * config/avr/avr.c (avr_enhanced_p): Rename to ...
21758 (avr_have_mul_p): ... new.
21759 (base_arch_s): Rename 'enhanced' to 'have_mul'.
21760 (avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
21761 'avr_enhanced_p' and 'enhanced'.
21762 (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use
21763 AVR_HAVE_MUL instead of AVR_ENHANCED.
21764 * avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
21765 (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3,
21766 *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL
21767 instead of AVR_ENHANCED.
21768 (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
21769 * libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
21770 (__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.
21771
21772 2007-01-17 Ian Lance Taylor <iant@google.com>
21773
21774 * vec.h (VEC_reserve_exact): Define.
21775 (vec_gc_p_reserve_exact): Declare.
21776 (vec_gc_o_reserve_exact): Declare.
21777 (vec_heap_p_reserve_exact): Declare.
21778 (vec_heap_o_reserve_exact): Declare.
21779 (VEC_OP (T,A,reserve_exact)): New static inline function, three
21780 versions.
21781 (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
21782 negative parameter.
21783 (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
21784 (VEC_OP (T,A,copy)) [all versions]: Likewise.
21785 (VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
21786 * vec.c (calculate_allocation): Add exact parameter. Change all
21787 callers.
21788 (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
21789 (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
21790 (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
21791 (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
21792 (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
21793 (vec_heap_p_reserve_exact): New function.
21794 (vec_heap_o_reserve_exact): New function.
21795
21796 2007-01-17 Jan Hubicka <jh@suse.cz>
21797
21798 * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p.
21799
21800 2007-01-17 Eric Christopher <echristo@apple.com>
21801
21802 * config.gcc: Support core2 processor.
21803
21804 2007-01-16 Jan Hubicka <jh@suse.cz>
21805
21806 * tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
21807 the names, just unlink the chain so we don't crash on dangling
21808 pointers
21809 to dead SSA names.
21810
21811 2007-01-16 Jan Hubicka <jh@suse.cz>
21812
21813 * cgraph.h (cgraph_decide_inlining_incrementally): Kill.
21814 * tree-pass.h: Reorder to make IPA passes appear toegher.
21815 (pass_early_inline, pass_inline_parameters, pass_apply_inline):
21816 Declare.
21817 * cgraphunit.c (cgraph_finalize_function): Do not compute inling
21818 parameters, do not call early inliner.
21819 * ipa-inline.c: Update comments. Include tree-flow.h
21820 (cgraph_decide_inlining): Do not compute inlining parameters.
21821 (cgraph_decide_inlining_incrementally): Return TODOs; assume to
21822 be called with function context set up.
21823 (pass_ipa_inline): Remove unreachable functions before pass.
21824 (cgraph_early_inlining): Simplify assuming to be called from the
21825 PM as local pass.
21826 (pass_early_inline): New pass.
21827 (cgraph_gate_ipa_early_inlining): New gate.
21828 (pass_ipa_early_inline): Turn into simple wrapper.
21829 (compute_inline_parameters): New function.
21830 (gate_inline_passes): New gate.
21831 (pass_inline_parameters): New pass.
21832 (apply_inline): Move here from tree-optimize.c
21833 (pass_apply_inline): New pass.
21834 * ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after
21835 transforming.
21836 * tree-inline.c (optimize_inline_calls): Return TODOs rather than
21837 doing them by hand.
21838 (tree_function_versioning): Do not allocate dummy struct function.
21839 * tree-inline.h (optimize_inline_calls): Update prototype.
21840 * tree-optimize.c (execute_fixup_cfg): Export.
21841 (pass_fixup_cfg): Remove
21842 (tree_rest_of_compilation): Do not apply inlines.
21843 * tree-flow.h (execute_fixup_cfg): Declare.
21844 * Makefile.in (gt-passes.c): New.
21845 * passes.c: Include gt-passes.h
21846 (init_optimization_passes): New passes.
21847 (nnodes, order): New static vars.
21848 (do_per_function_toporder): New function.
21849 (execute_one_pass): Dump current pass here.
21850 (execute_ipa_pass_list): Don't dump current pass here.
21851
21852 2007-01-16 Janis Johnson <janis187@us.ibm.com>
21853
21854 * config/dfp-bit.c (dfp_compare_op): Return separate value for NaN.
21855 (DFP_NE, DFP_LE, DFP_GE): Return false for NaN.
21856
21857 2007-01-16 David Edelsohn <edelsohn@gnu.org>
21858
21859 * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
21860 (strong_alias): Define.
21861 (__gcc_qmul): Provide non-FMA for soft-float.
21862 (__gcc_qdiv): Same.
21863 (__gcc_qneg): New.
21864 (__gcc_qeq): New.
21865 (__gcc_qle): New.
21866 (__gcc_qge): New.
21867 (__gcc_qunord): New.
21868 (__gcc_stoq): New.
21869 (__gcc_dtoq): New.
21870 (__gcc_qtos): New.
21871 (__gcc_qtod): New.
21872 (__gcc_qtoi): New.
21873 (__gcc_qtou): New.
21874 (__gcc_itoq): New.
21875 (__gcc_utoq): New.
21876 (fmsub): New.
21877 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
21878 soft-float functions.
21879 * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
21880 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
21881 about long double soft float.
21882
21883 2007-01-16 Dorit Nuzman <dorit@il.ibm.com>
21884 Tehila Meyzels <tehila@il.ibm.com>
21885
21886 * tree-vectorizer.h (is_pattern_stmt_p): New.
21887 * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix
21888 formatting (tabs instead of spaces). Cleanup and clarify setting
21889 of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p.
21890 * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo.
21891 (vectorizable_type_demotion): Check that types are integral.
21892 (vectorizable_type_promotion): Likewise.
21893 (vectorizable_store): Fix typo. Eliminate new-line at end of
21894 comments.
21895
21896 2007-01-16 Jan Hubicka <jh@suse.cz>
21897
21898 * tree-ssanames.c (release_dead_ssa_names): Remove invalidated
21899 cgraph edges too.
21900
21901 2007-01-15 Eric Christopher <echristo@apple.com>
21902
21903 * ifcvt.c: Include vec.h, vecprim.h.
21904 (check_cond_move_block): New argument regs.
21905 Reorganize. Add registers used to regs.
21906 (cond_move_process_if_block): Use regs set above as
21907 loop bounds.
21908
21909 2007-01-15 Eric Christopher <echristo@apple.com>
21910
21911 * config/darwin.h: Update copyright.
21912 (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
21913 (LINK_COMMAND_SPEC): Add -u.
21914 (LINK_SPEC): Fix umbrella for above.
21915
21916 2007-01-15 Joseph S. Myers <joseph@codesourcery.com>
21917
21918 * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
21919 glibc CVS.
21920
21921 2007-01-15 Tom Tromey <tromey@redhat.com>
21922
21923 * doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
21924 * doc/install.texi (Testing): Don't mention jacks.
21925 (Configuration): Document --enable-java-maintainer-mode. Move
21926 --with-java-home to libgcj-specific section. Document
21927 --with-ecj-jar.
21928 (Prerequisites): Mention --enable-java-maintainer-mode, ecj1.
21929
21930 2007-01-15 Jan Hubicka <jh@suse.cz>
21931
21932 * tree-ssa-dce.c (DCE_TODOs): New.
21933 (propagate_necessity): Return if something changed.
21934 (eliminate_unnecessary_stmts): Likewise.
21935 (perform_tree_ssa_dce): Return TODO flags when needed.
21936 (pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags.
21937
21938 2007-01-15 Uros Bizjak <ubizjak@gmail.com>
21939
21940 * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
21941 (fyl2x_extend<mode>xf3_i387): New insn pattern.
21942 (log<mode>2): Rename from logsf2 and logdf2 and macroize insn
21943 patterns using X87MODEF12 mode macro. Extend operand 1
21944 to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
21945 (log10<mode>2): Ditto.
21946 (log2<mode>2): Ditto.
21947 (log1p<mode>2): Ditto.
21948 (logb<mode>2): Ditto.
21949 (fyl2xp1xf3_i387): Rename from fyl2xp1_xf3.
21950 (fyl2xp1_extend<mode>xf3_i387): New insn pattern.
21951 (*fxtractxf3_i387): Rename from *fxtractxf3.
21952 (fxtract_extend<mode>xf3_i387): New insn pattern.
21953 (ilogbsi2): Use match_dup 3, not match_operand:XF 3.
21954 * config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
21955 and gen_fyl2xxf3_i387().
21956
21957 2007-01-14 Zdenek Dvorak <dvorakz@suse.cz>
21958
21959 * loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
21960 * cfgloopmanip.c (fix_loop_placement): Made static. Use
21961 get_loop_exit_edges. Changed return type to bool.
21962 * cfgloop.h (fix_loop_placement): Declaration removed.
21963
21964 2007-01-14 Dorit Nuzman <dorit@il.ibm.com>
21965
21966 * param.h (MIN_VECT_LOOP_BOUND): New.
21967 * params.def (MIN_VECT_LOOP_BOUND): New.
21968 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
21969 argument - minimum threshold for number of iterations.
21970 * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
21971 argument to declaration.
21972 * tree-vect-analyze.c (vect_analyze_operations): Check value of
21973 MIN_VECT_LOOP_BOUND.
21974 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
21975 slpeel_tree_peel_loop_to_edge with additional argument.
21976 (vect_do_peeling_for_alignment): Likewise.
21977 * doc/invoke.texi (min-vect-loop-bound): Document new param option.
21978
21979 2007-01-14 Uros Bizjak <ubizjak@gmail.com>
21980
21981 PR target/30413
21982 * config/i386/i386.c (print_operand) ['z']: Output 'b' for
21983 operands of size 1.
21984
21985 2007-01-14 Jan Hubicka <jh@suse.cz>
21986
21987 * tree-dfa.c (remove_referenced_var): New function.
21988 * tree-ssa-live.c (remove_unused_locals): Walk referenced vars and
21989 prune referenced vars list too.
21990 * tree-flow.h (remove_referenced_var): Declare.
21991
21992 2007-01-14 Jan Hubicka <jh@suse.cz>
21993
21994 * tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs
21995 separately.
21996 (remove_stmt_from_eh_region_fn): Do not remove call_exprs.
21997 (verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill.
21998 * except.h (verify_eh_throw_table_statements): Kill prototype.
21999 * cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions
22000 into call exrepssions.
22001 * tree-optimize.c (execute_free_cfg_annotatiosn): Do not call
22002 eh trhow verifier.
22003 * tree-cfg.c: Include pointer-set.h.
22004 (verify_node_sharing): Work on pointer set.
22005 (verify_eh_throw_stmt_node): New.
22006 (verify_stmts): Use pointers sets, verify throw_stmt.
22007
22008 2007-01-13 Zdenek Dvorak <dvorakz@suse.cz>
22009
22010 * ipa-reference.c (analyze_function): Consider also addresses taken
22011 in phi nodes.
22012
22013 2007-01-12 Roger Sayle <roger@eyesopen.com>
22014
22015 * c-typeck.c (null_pointer_constant_p): Replace use of
22016 TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
22017 (build_c_cast): Likewise.
22018
22019 2007-01-12 Roger Sayle <roger@eyesopen.com>
22020
22021 * tree.h (force_fit_type_double): Remove unused final argument.
22022 * c-common.c (constant_expression_warning): Replace use of
22023 TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
22024 (convert_and_check): Likewise.
22025 (shorten_compare): Update call to force_fit_type_double.
22026 (c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop.
22027 * convert.c (convert_to_pointer): Update call to
22028 force_fit_type_double.
22029 * fold-const.c (force_fit_type_double): Remove overflowed_const
22030 argument.
22031 (int_const_binop, fold_convert_const_int_from_int,
22032 fold_convert_const_int_from_real, fold_div_compare,
22033 fold_sign_changed_comparison, fold_unary, fold_negate_const,
22034 fold_abs_const, fold_not_const): Remove the final argument from
22035 calls to force_fit_type_double.
22036
22037 2007-01-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
22038
22039 * configure.ac: Set insn to "nop" for spu-*-* also.
22040 * configure: Regenerate.
22041
22042 2007-01-12 Olga Golovanevsky <olga@il.ibm.com>
22043
22044 * builtins.def : Add BUILT_IN_FREE.
22045
22046 2007-01-12 Jan Hubicka <jh@suse.cz>
22047
22048 PR tree-optimization/30443
22049 * tree-inline.c (tree_function_versioning): Do not optimize when
22050 cloning for inlining.
22051
22052 2007-01-12 Zdenek Dvorak <dvorakz@suse.cz>
22053
22054 * doc/loop.texi: Document recording of loop exits.
22055 * cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
22056 (update_single_exits_after_duplication,
22057 update_single_exit_for_duplicated_loop,
22058 update_single_exit_for_duplicated_loops): Removed.
22059 (duplicate_loop_to_header_edge): Do not call
22060 update_single_exits_after_duplication and
22061 update_single_exit_for_duplicated_loops.
22062 (loop_version): Do not update single_exit information.
22063 (fix_loop_structure): Use record_loop_exits instead of
22064 mark_single_exit_loops.
22065 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
22066 the lists of loop exits.
22067 * cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
22068 split_edge, merge_blocks): Update the lists of loop exits.
22069 * modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
22070 loop_optimizer_init.
22071 * loop-init.c (loop_optimizer_init): Call record_loop_exits instead
22072 of mark_single_exit_loops.
22073 (loop_optimizer_finalize): Call release_recorded_exits.
22074 * tree-ssa-loop.c (tree_loop_optimizer_init): Pass
22075 LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
22076 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
22077 update single exit information.
22078 * lambda-code.c (perfect_nestify): Ditto.
22079 * cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
22080 (mark_single_exit_loops): Removed.
22081 (alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
22082 get_exit_descriptions, rescan_loop_exit, record_loop_exits,
22083 dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
22084 functions.
22085 (get_loop_exit_edges, single_exit): Use recorded exit lists.
22086 (add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
22087 (verify_loop_structure): Verify consistency of the exit lists.
22088 (flow_loops_find): Use alloc_loop. Initialize exits hash.
22089 (set_single_exit): Removed.
22090 * cfgloop.h (struct loop_exit): New function.
22091 (struct loop): single_exit_ field replaced by exits field.
22092 (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by
22093 LOOPS_HAVE_RECORDED_EXITS.
22094 (struct loops): Added exits hash.
22095 (mark_single_exit_loops, set_single_exit): Declaration removed.
22096 (release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.
22097
22098 2007-01-12 Richard Sandiford <richard@codesourcery.com>
22099
22100 * doc/invoke.texi: Avoid use of @headitem.
22101
22102 2007-01-12 Richard Sandiford <richard@codesourcery.com>
22103
22104 * cse.c (cse_insn): Move HAVE_CC0 code after declarations.
22105
22106 2007-01-12 Richard Sandiford <richard@codesourcery.com>
22107
22108 * doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the
22109 list of targets.
22110
22111 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
22112 Richard Sandiford <richard@codesourcery.com>
22113
22114 * doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short.
22115 * config/m68k/m68k.opt: Resort options.
22116 (mbitfield, mrtd, mshort): Remove RejectNegative properties.
22117
22118 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
22119 Richard Sandiford <richard@codesourcery.com>
22120
22121 * doc/invoke.texi: Document the macros that are defined by
22122 m68k's -mtune and -mhard-float options.
22123 * config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare.
22124 (m68k_cpp_cpu_family): Likewise.
22125 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set
22126 of __ucfv*__ macros. Define __mcffpu__ if generating code for
22127 ColdFire FPUs. Define __mcf_cpu_* and __mcf_family_* macros.
22128 * config/m68k/m68k.c (m68k_cpp_cpu_ident): New function.
22129 (m68k_cpp_cpu_family): Likewise.
22130
22131 2007-01-12 Richard Sandiford <richard@codesourcery.com>
22132
22133 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68*
22134 macros besides mc68000 as tuning macros. Use a switch statement
22135 to set them and mcpu32.
22136
22137 2007-01-12 Julian Brown <julian@codesourcery.com>
22138
22139 * config/m68k/m68k.h: Use TARGET_68040 instead of TARGET_68040_ONLY.
22140 (TARGET_68040_ONLY): Rename to...
22141 (TARGET_68040): ...this.
22142 * config/m68k/m68k.c: Use TARGET_68040 instead of TARGET_68040_ONLY.
22143 * config/m68k/m68k.md: Likewise.
22144
22145 2007-01-12 Julian Brown <julian@codesourcery.com>
22146 Nathan Sidwell <nathan@codesourcery.com>
22147 Richard Sandiford <richard@codesourcery.com>
22148
22149 * config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to
22150 the -mcpu= argument associated with the --with-cpu setting.
22151 Define M68K_DEFAULT_TUNE to the default -mtune= option,
22152 if different from the one implied by the -mcpu setting.
22153 Accept --with-cpu=FOO if FOO is listed in m68k-devices.def,
22154 using mcpu=FOO as the default CPU option. Set target_cpu_default2.
22155 * doc/invoke.texi: Mention ColdFire in the introduction to the
22156 m68k options. Document the new -march, -mcpu, -mtune, -mdiv,
22157 -mno-div and -mhard-float options. Make -m68881 a synonym for
22158 -mhard-float. Document the previously-undocumented -m5206e,
22159 -m528x, -m5307 and -m5407 options. Tweak the existing option
22160 documentation for consistency.
22161 * doc/install.texi: Mention new --with-cpu arguments.
22162 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the
22163 default CPU if neither -mcpu nor -march are specified.
22164 (ASM_CPU_SPEC): Pass down -mcpu and -march options.
22165 (TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from
22166 TARGET_ISA*. Set the legacy __mcf*__ cpu macros in the same way,
22167 using m68k_tune to decide between families that implement the
22168 same ISA. Use m68k_tune to set __mcfv4e__.
22169 (FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC)
22170 (FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000)
22171 (FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B)
22172 (FL_ISA_C, FL_ISA_MMU): New macros.
22173 (MASK_COLDFIRE): Delete.
22174 (TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE)
22175 (TARGET_ISAB): Redefine in terms of m68k_cpu_flags.
22176 (TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu.
22177 (TARGET_HARD_FLOAT): Do not define here.
22178 (TARGET_ISAAPLUS, TARGET_ISAC): New macros.
22179 (TUNE_68000): New macro.
22180 (TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010.
22181 (TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32)
22182 (TUNE_CFV2): Redefine in terms of m68k_tune.
22183 (uarch_type, target_device, fpu_type): New enums.
22184 (m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare.
22185 * config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881.
22186 (FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40)
22187 (FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b)
22188 (FL_FOR_isa_c): New macros.
22189 (m68k_isa): New enum.
22190 (m68k_target_selection): New structure.
22191 (all_devices, all_isas, all_microarchs): New tables.
22192 (m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu)
22193 (m68k_tune, m68k_fpu, m68k_cpu_flags): New variables.
22194 (MASK_ALL_CPU_BITS): Delete.
22195 (m68k_find_selection): New function.
22196 (m68k_handle_option): Handle -mcpu=, -march= and -mtune=.
22197 Map the legacy target options to a combination of the new ones.
22198 (override_options): Set m68k_cpu, m68k_tune, m68k_fpu and
22199 m68k_cpu_flags. Handle M68K_DEFAULT_TUNE. Use m68k_cpu_flags
22200 to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT
22201 settings.
22202 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e)
22203 (m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask
22204 properties.
22205 (m68881, msoft-float): Change mask from 68881 to HARD_FLOAT.
22206 (march=, mcpu=, mdiv, mhard-float, mtune=): New options.
22207 * config/m68k/m68k-devices.def: New file.
22208
22209 2007-01-12 Richard Sandiford <richard@codesourcery.com>
22210 Nathan Sidwell <nathan@codesourcery.com>
22211
22212 * config/m68k/m68k.h (ASM_CPU_SPEC, ASM_SPEC, EXTRA_SPECS)
22213 (SUBTARGET_EXTRA_SPECS): New macros.
22214 * config/m68k/linux.h (ASM_SPEC): Remove CPU flags;
22215 use %(asm_cpu_spec) instead.
22216 * config/m68k/m68k-none.h (ASM_SPEC): Likewise.
22217 * config/m68k/openbsd.h (ASM_SPEC): Likewise.
22218 * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
22219 (EXTRA_SPECS): Rename to...
22220 (SUBTARGET_EXTRA_SPECS): ...this.
22221
22222 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
22223 Richard Sandiford <richard@codesourcery.com>
22224 Julian Brown <julian@codesourcery.com>
22225
22226 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
22227 (m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu
22228 to the configuration's default CPU.
22229 (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise.
22230 Remove default masks.
22231 (m680[012]0-*-*): Set the default with_cpu to the first part of
22232 the target name.
22233 (m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu.
22234 (m68k*-*-linux): Extend the --with-cpu handling to...
22235 (m680[012]0-*-*, m68k*-*-*): ...these configurations. Allow m68000
22236 and m68010. Don't set target_cpu_default2.
22237 * doc/install.texi: Document --with-cpu for m68k.
22238 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define.
22239 * config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k)
22240 (M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030)
22241 (M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT)
22242 (ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete.
22243 (ASM_SPEC): Remove use of %(asm_cpu_default).
22244 (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete.
22245 * config/m68k/linux.h (TARGET_DEFAULT): Delete.
22246 (CPP_SPEC): Merge definitions. Do not handle __HAVE_68881__ here.
22247 * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
22248 __HAVE_FPU__ if TARGET_HARD_FLOAT.
22249 (TARGET_DEFAULT): Delete.
22250 (EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec,
22251 cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec.
22252 (CPP_CPU_SPEC): Delete.
22253 (TARGET_VERSION): Merge definitions, using TARGET_68010 to pick
22254 the appropriate string.
22255 (CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete.
22256 (CPP_SPEC): Define to NETBSD_CPP_SPEC.
22257 (ASM_SPEC): Don't use %(asm_default_spec).
22258 * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
22259 TARGET_DEFAULT and add MASK_68881.
22260 * config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments.
22261
22262 2007-01-12 Richard Sandiford <richard@codesourcery.com>
22263
22264 * config.gcc (m68010-*-netbsdelf*): Add MASK_68010.
22265 (m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add
22266 MASK_68010 alongside MASK_68020.
22267 * doc/invoke.texi: Document -m68010.
22268 * config/m68k/m68k.opt (m68010): New.
22269 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010
22270 if TUNE_68010.
22271 (TUNE_68010): New macro.
22272 * config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010)
22273 (M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040)
22274 (M68K_CPU_m68332): Add MASK_68010.
22275 * config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to
22276 fallback definition.
22277 * config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant
22278 defines.
22279 * config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010.
22280 (m68k_handle_option): Handle OPT_m68010. Add MASK_68010
22281 to all entries that use MASK_68020.
22282 (output_move_simode_const, output_move_himode, output_move_qimode)
22283 (output_move_stricthi, output_move_strictqi): Use TARGET_68010
22284 instead of TARGET_68020 to select clr behavior. Remove comment
22285 about there being no TARGET_68010.
22286 * config/m68k/m68k.md: Likewise throughout.
22287
22288 2007-01-12 Julian Brown <julian@codesourcery.com>
22289
22290 * config/m68k/m68k.h (TARGET_ISAB): New macro.
22291 * config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4.
22292 * config/m68k/m68k.md: Likewise.
22293
22294 2007-01-12 Julian Brown <julian@codesourcery.com>
22295
22296 * config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use
22297 TARGET_COLDFIRE_FPU instead of TARGET_CFV4E.
22298
22299 2007-01-12 Julian Brown <julian@codesourcery.com>
22300
22301 * config/m68k/m68k.h (TUNE_68040_60): New macro.
22302 * config/m68k/m68k.c (standard_68881_constant_p): Use it.
22303 * config/m68k/m68k.md: Likewise.
22304
22305 2007-01-12 Julian Brown <julian@codesourcery.com>
22306 Richard Sandiford <richard@codesourcery.com>
22307
22308 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030
22309 instead of TARGET_68030, TUNE_68040 instead of TARGET_68040,
22310 TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of
22311 TARGET_CPU32.
22312 (TARGET_CPU32): Rename to...
22313 (TUNE_CPU32): ...this.
22314 (TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060)
22315 (TUNE_CFV2): New macros.
22316 * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify;
22317 remove conditions that are implied by TARGET_68020.
22318 * config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040
22319 instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32.
22320 (m68k_output_function_epilogue): Likewise.
22321 (m68k_rtx_costs): Likewise. Use TUNE_68060 instead of TARGET_68060
22322 and TUNE_CFV2 instead of TARGET_5200. Use TUNE_68000_10 instead of
22323 "!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and
22324 non-68000 timings. Refactor multiplication and division costs.
22325 (output_addsi3): Use TUNE_68040 instead of TARGET_68040 and
22326 TUNE_CPU32 instead of TARGET_CPU32.
22327 (standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040
22328 and TUNE_68060 instead of TARGET_68060.
22329 * config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040,
22330 TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of
22331 TARGET_CPU32.
22332 (movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020
22333 && !TARGET_COLDFIRE" to choose between moveq and clr.
22334 Likewise in the unnamed movsf pattern.
22335 (ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than
22336 "!TARGET_68020 && !TARGET_COLDFIRE". Likewise the unnamed
22337 ashiftrt pattern.
22338
22339 2007-01-12 Richard Sandiford <richard@codesourcery.com>
22340
22341 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount
22342 of tabbing before backslashes.
22343
22344 2007-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22345
22346 * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
22347 * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
22348 (ASM_OUTPUT_INTERNAL_LABEL): Define.
22349
22350 2007-01-11 Zdenek Dvorak <dvorakz@suse.cz>
22351
22352 * tree-ssa-loop-ivopts.c (extract_cond_operands): Split from
22353 find_interesting_uses_cond.
22354 (find_interesting_uses_cond): Use extract_cond_operands.
22355 (rewrite_use_compare): Use extract_cond_operands and
22356 force_gimple_operand_bsi. Do not call update_stmt.
22357 (determine_use_iv_cost_condition): Use extract_cond_operands.
22358 Return cheaper of using original bound and changing the exit bound.
22359
22360 2007-01-11 Zdenek Dvorak <dvorakz@suse.cz>
22361
22362 PR tree-optimization/29516
22363 * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
22364 most_expensive_mult_to_index, addr_to_parts,
22365 create_mem_ref, maybe_fold_tmr): Make the type of
22366 fields of TARGET_MEM_REF sizetype.
22367 (move_fixed_address_to_symbol, move_pointer_to_base):
22368 New functions.
22369 * tree.def (TARGET_MEM_REF): Add comment on types of
22370 the operands.
22371
22372 2007-01-11 Joseph Myers <joseph@codesourcery.com>
22373
22374 * c-common.c (vector_types_convertible_p): Treat opaque types as
22375 always convertible if they have the same size, but not otherwise.
22376
22377 2007-01-11 Steven Bosscher <steven@gcc.gnu.org>
22378
22379 * ifcvt.c (struct noce_if_info): Add comments to the fields.
22380 Remove the b_unconditional field.
22381 (noce_try_sign_mask): Do not look at b_unconditional.
22382 (noce_process_if_block): Do not use merge_if_blocks. Update
22383 the CFG here. Do not set b_unconditional.
22384 (cond_move_process_if_block): Likewise.
22385 (find_cond_trap): Likewise.
22386 (check_cond_move_block): Require simple jump insns at the end
22387 of the basic block.
22388
22389 2007-01-11 Jan Hubicka <jh@suse.cz>
22390
22391 PR tree-optimization/1046
22392 * tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE
22393 when alias info is not ready.
22394 (pass_tail_recursion): Do not require aliasing.
22395 * tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise.
22396 * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise.
22397 * tree-ssa-copy.c (pass_copy_prop): Likewise.
22398 * tree-ssa-forwprop.c (pass_forwprop): Likewise.
22399 * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise.
22400 * passes.c (init_optimization_passes): Execute rename_ssa_copies,
22401 ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion
22402 before inlining.
22403 * tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand):
22404 When aliasing is not build, mark statement as volatile.
22405
22406 2007-01-11 Tom Tromey <tromey@redhat.com>
22407
22408 PR preprocessor/15185, PR preprocessor/20989:
22409 * doc/cppopts.texi <-MT>: Update description of algorithm for
22410 computing default target.
22411 <-M, -MD>: Reword "basename" text.
22412
22413 2007-01-11 Roger Sayle <roger@eyesopen.com>
22414
22415 * builtins.c (expand_builtin_pow, expand_builtin_powi,
22416 fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc,
22417 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
22418 fold_builtin_int_int_roundingfn, fold_builtin_bitop,
22419 fold_builtin_bswap, real_constp, fold_builtin_pow,
22420 fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign,
22421 do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace
22422 uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
22423 * convert.c (convert_to_pointer): Likewise.
22424 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
22425 * fold-const.c (force_fit_type, fold_negate_expr, int_const_binop,
22426 const_binop, fold_convert_const_int_from_int,
22427 fold_convert_const_int_from_real,
22428 fold_convert_const_real_from_real, sign_bit_p,
22429 optimize_minmax_comparison, extract_muldiv_1, fold_div_compare,
22430 fold_sign_changed_comparison, fold_unary, fold_comparison,
22431 fold_binary, multiple_of_p, tree_Expr_non_zero_p,
22432 fold_negate_const, fold_abs_const, fold_not_const): Likewise.
22433 * print-tree.c (print_node_brief, print_node): Likewise.
22434 * stor-layout.c (place_field, layout_type): Likewise.
22435 * tree-chrec.c (keep_cast): Likewise.
22436 * tree.c (build_vector, build_real, build_real_from_int_cst,
22437 build_complex): Likewise.
22438
22439 2007-01-11 Roger Sayle <roger@eyesopen.com>
22440
22441 * tree.h (TREE_CONSTANT_OVERFLOW): Obsolete. For the time being,
22442 treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW.
22443
22444 2007-01-11 Paolo Bonzini <bonzini@gnu.org>
22445
22446 * configure.ac (strict1_warn): Rename to strict_warn.
22447 (WERROR, --enable-werror, symlink hacks, stage1_cflags,
22448 cc_set_by_configure, quoted_cc_set_by_configure,
22449 stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
22450 all_boot_languages, all_stagestuff): Remove.
22451 (target_list): Remove bootstrap targets.
22452 * Makefile.in (quickstrap): Unconditionally make a synonym of all.
22453 (BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
22454 REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
22455 SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
22456 VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
22457 STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
22458 stage1_copy, stage2_build, stage2_copy, stageprofile_build,
22459 stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
22460 stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
22461 bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
22462 bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
22463 unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
22464 restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
22465 cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
22466 *compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
22467 stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
22468 stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
22469 risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
22470 (ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
22471 (STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
22472 (mostlyclean): Adjust.
22473 (clean, distclean): Don't mention bootstrap stuff.
22474 * configure: Regenerate.
22475 * ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
22476 java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
22477 treelang/config-lang.in (stagestuff): Remove.
22478 * doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
22479 stageprofile, stagefeedback, stagestuff): Remove mention.
22480
22481 2007-01-11 Nick Clifton <nickc@redhat.com>
22482
22483 * config/mcore/predicates.md (mcore_general_movesrc_operand):
22484 Accept CONSTs.
22485 (mcore_general_movdst_operand): Do not accept CONST_INTs.
22486 (mcore_arith_K_S_operand): Run the test for the S constraint not
22487 the test for the M constraint.
22488 (mcore_addsub_operand): Do not accept integer values that are
22489 larger than 32 bits.
22490 * config/mcore/mcore.md: Remove unused constraints from split.
22491 (andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL.
22492 (addsi3): Likewise.
22493 (allocate_stack): Likewise.
22494 * config/mcore/mcore.c (mcore_print_operand): Restrict output of P
22495 operands to 32 bits.
22496 (mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an
22497 INTVAL.
22498 (mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore,
22499 mcore_const_ok_for_inline, mcore_const_trick_uses_not,
22500 try_constant_tricks, mcore_num_ones, mcore_num_zeros,
22501 mcore_output_bclri, mcore_output_andn, output_inline_const,
22502 mcore_output_move, mcore_output_movedouble): Likewise.
22503 (mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N.
22504 (output_inline_const): Likewise.
22505 (output_inline_const): Fix format strings used in sprintf
22506 statements.
22507 * config/mcore/mcore-protos.h: Update prototypes for changed
22508 functions in mcore.c.
22509 * config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to
22510 HOST_WIDE_INT and not int.
22511 (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M,
22512 CONST_OK_FOR_N): Likewise.
22513 (LEGITIMATE_CONSTANT_P): Also check CONSTANT_P.
22514 (GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold
22515 an INTVAL.
22516
22517 2007-01-10 Jan Hubicka <jh@suse.cz>
22518
22519 * tree-vrp.c (remove_range_assertions): Release defs.
22520 * tree-ssa-loop-ivopts.c (rmeove_statement): Likewise.
22521 * tree-ssa-dom.c (remove_stmt_or_phi): Likewise.
22522
22523 2007-01-10 Paul Brook <paul@codesourcery.com>
22524
22525 * config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract.
22526 * config/arm/arm.md (mulsi3subsi): New insn.
22527
22528 2007-01-10 Zdenek Dvorak <dvorakz@suse.cz>
22529
22530 * tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ...
22531 (tree_transform_and_unroll_loop): New.
22532 * tree-flow.h (transform_callback, tree_transform_and_unroll_loop):
22533 Declare.
22534
22535 2007-01-10 Robert Kennedy <jimbob@google.com>
22536
22537 * fold-const.c (fold_comparison): Fold comparisons like (x *
22538 1000 < 0) to (x < 0).
22539
22540 2007-01-10 Ian Lance Taylor <iant@google.com>
22541
22542 * tree-pretty-print.c (dump_generic_node): Print parentheses when
22543 operands have the same priority.
22544
22545 2007-01-10 Tom Tromey <tromey@redhat.com>
22546
22547 * fold-const.c (fold_truthop): Don't check can_use_bit_fields_p.
22548 (fold_binary): Likewise.
22549 * langhooks.c (lhd_can_use_bit_fields_p): Removed.
22550 * langhooks-def.h (lhd_can_use_bit_fields_p): Removed.
22551 (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
22552 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P.
22553 * langhooks.h (struct lang_hooks): Removed field
22554 'can_use_bit_fields_p'.
22555
22556 2007-01-10 Ralf Corsépius <ralf.corsepius@rtems.org>
22557
22558 * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
22559
22560 2007-01-10 Razya Ladelsky <razya@il.ibm.com>
22561
22562 * function.c (get_last_funcdef_no): New function.
22563 * function.h (get_last_funcdef_no): Declare.
22564 * tree-inline.c (initialize_cfun): Add initialization.
22565 (tree_function_versioning): Cleanup.
22566
22567 2007-01-10 Jan Hubicka <jh@suse.cz>
22568
22569 * tree-inline.c (setup_one_parameter): Do not propagate into abnormal
22570 PHIs.
22571
22572 2007-01-10 Sa Liu <saliu@de.ibm.com>
22573 Ben Elliston <bje@au.ibm.com>
22574
22575 * spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode
22576 for SAVE_NONLOCAL and Pmode for any other save level.
22577 * spu-protos.h (spu_restore_stack_block): Declare.
22578 * spu.md (save_stack_block): Remove.
22579 (restore_stack_block): Call spu_restore_stack_block.
22580 * spu.c (spu_restore_stack_block): New function.
22581 (spu_expand_epilogue): Remove old comment.
22582
22583 2007-01-09 Zdenek Dvorak <dvorakz@suse.cz>
22584
22585 PR tree-optimization/30322
22586 * tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed.
22587 (cand_value_at): Return the value as aff_tree.
22588 (may_eliminate_iv): Convert the bound from aff_tree to tree.
22589 * tree-affine.c (aff_combination_add_cst, aff_combination_add_product,
22590 aff_combination_mult): New functions.
22591 (aff_combination_add): Use aff_combination_add_cst.
22592 (aff_combination_convert): Allow conversions to a wider type.
22593 (tree_to_aff_combination): Handle BIT_NOT_EXPR.
22594 * tree-affine.h (aff_combination_mult): Declare.
22595
22596 2007-01-09 Carlos O'Donell <carlos@codesourcery.com>
22597
22598 * doc/tm.texi: Update documentation to reflect reality of exec
22599 and start file search behaviours. Update copyright year.
22600 * doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find
22601 header file directories.
22602
22603 2007-01-09 Uros Bizjak <ubizjak@gmail.com>
22604
22605 * config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
22606 (*cosxf2): Rename to cosxf2_i387.
22607 (*sindf2, *sinsf2): Extend operand 1 to XFmode. Macroize patterns
22608 using X87MODEF12 mode macro. Rename patterns to
22609 *sin_extend<mode>xf2_i387. Use SSE_FLOAT_MODE_P to disable patterns
22610 for SSE math.
22611 (*cosdf2, *cossf2): Ditto.
22612 (sincosdf3, sincossf3): Ditto. Rewrite corresponding splitters
22613 to match extended input operands.
22614 (sincos<mode>3): New expander.
22615 (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove
22616 insn patterns and corresponding splitters.
22617
22618 2007-01-09 Kaz Kojima <kkojima@gcc.gnu.org>
22619
22620 * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
22621 (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.
22622
22623 2007-01-09 Nicolas Pitre <nico@cam.org>
22624
22625 PR target/30173
22626 * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
22627
22628 2007-01-08 Geoffrey Keating <geoffk@apple.com>
22629
22630 * target.h (struct gcc_target): New field library_rtti_comdat.
22631 * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
22632 (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
22633 * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
22634 * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
22635
22636 2007-01-08 Geoffrey Keating <geoffk@apple.com>
22637
22638 * doc/invoke.texi (Optimize Options): Correct description of -O0.
22639
22640 2007-01-08 Richard Guenther <rguenther@suse.de>
22641
22642 * tree.h (force_fit_type_double): Export.
22643 (force_fit_type): Remove.
22644 * fold-const.c (force_fit_type_double): New function.
22645 (force_fit_type): Remove.
22646 (int_const_binop): Use it.
22647 (fold_convert_const_int_from_int): Likewise.
22648 (fold_convert_const_int_from_real): Likewise.
22649 (fold_div_compare): Likewise.
22650 (fold_sign_changed_comparison): Likewise.
22651 (fold_unary): Likewise.
22652 (fold_negate_const): Likewise.
22653 (fold_abs_const): Likewise.
22654 (fold_not_const): Likewise.
22655 * c-common.c (shorten_compare): Use force_fit_type_double.
22656 * convert.c (convert_to_pointer): Likewise.
22657
22658 2007-01-08 Richard Guenther <rguenther@suse.de>
22659
22660 * tree.h (build_int_cst_wide_type): Export.
22661 * tree.c (build_int_cst_wide_type): New function.
22662 (build_int_cst_wide): Fix comment.
22663 * builtins.c (fold_builtin_object_size): Use build_int_cst
22664 to build -1 or 0 of the correct type. Use fit_double_type
22665 to check for overflow.
22666 * fold-const.c (optimize_bit_field_compare): Use build_int_cst_type
22667 to build the mask.
22668 (decode_field_reference): Likewise.
22669 (all_ones_mask_p): Likewise.
22670 (native_interpret_int): Use build_int_cst_wide_type.
22671 (fold_binary): Use build_int_cst_type to build an all-ones
22672 value.
22673 * stor-layout.c (set_sizetype): Use build_int_cst_wide_type.
22674
22675 2007-01-08 Daniel Jacobowitz <dan@codesourcery.com>
22676
22677 * config/pa/t-pa64 (libgcc_stub.a): Use $(T).
22678
22679 2007-01-09 Ben Elliston <bje@au.ibm.com>
22680
22681 * genautomata.c (STATS_OPTION): New option.
22682 (stats_flag): New flag.
22683 (gen_automata_option): Handle it.
22684 (initiate_automaton_gen): Ditto.
22685 (write_automata): Output statistics only if stats_flag is
22686 set. Likewise, output time statistics only if time_flag is set.
22687 * doc/md.texi (Processor pipeline description): Document new flag.
22688
22689 2007-01-08 Richard Guenther <rguenther@suse.de>
22690
22691 * builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
22692 * tree.c (build_int_cst_type): Likewise.
22693 (size_in_bytes): Don't call force_fit_type on the result.
22694 (int_fits_type_p): Use fit_double_type.
22695 * fold-const.c (fit_double_type): New function.
22696 (force_fit_type): Use it.
22697 * tree.h (fit_double_type): Export.
22698
22699 2007-01-08 Jan Hubicka <jh@suse.cz>
22700
22701 * tree-vectorizer.c (gate_increase_alignment): Fix return type.
22702 * ipa.c (function_and_variable_visibility): Fix return type.
22703
22704 2007-01-08 Richard Guenther <rguenther@suse.de>
22705
22706 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
22707 of offset to build the index.
22708 * tree-pretty-print.c (dump_generic_node): Don't build negated
22709 const just for printing.
22710 * c-pretty-print.c (pp_c_integer_constant): Likewise.
22711 * builtins.c (fold_builtin_int_roundingfn): Check if result
22712 fits the type by using force_fit_type and comparing the result.
22713 * predict.c (predict_loops): Use compare_tree_int for comparison.
22714 * tree.c (build_int_cst): Fall back to integer_type_node for
22715 NULL_TREE type.
22716 (build_int_cst_wide): Assert type is non-null.
22717
22718 2007-01-08 Roberto Costa <roberto.costa@st.com>
22719
22720 * tree-vrp.c (extract_range_from_cond_expr): New.
22721 (extract_range_from_expr): Handle COND_EXPR nodes used as expressions.
22722 * tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used
22723 as expressions.
22724 (fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs.
22725 * tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond,
22726 tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes
22727 used as expressions.
22728 * tree-object-size.c (cond_expr_object_size): New.
22729 (collect_object_sizes_for): Handle COND_EXPR nodes used as expressions.
22730
22731 2007-01-08 Jan Hubicka <jh@suse.cz>
22732
22733 * tree-ssa-forwprop.c (forward_propagate_into_cond,
22734 tree_ssa_forward_propagate_single_use_va): Release defs of propagated
22735 statement.
22736
22737 2007-01-08 Richard Guenther <rguenther@suse.de>
22738
22739 PR tree-optimization/23603
22740 * tree-vrp.c (set_value_range_to_truthvalue): New function.
22741 (extract_range_from_binary): Fall back to truthvalue instead of
22742 varying for TRUTH_*_EXPR.
22743 (extract_range_from_comparison): Fall back to truthvalue instead of
22744 varying.
22745 (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF
22746 if all visited PHI values were constant.
22747
22748 2007-01-08 Jan Hubicka <jh@suse.cz>
22749
22750 * cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
22751 (cgraph_analyze_function): break out from ...
22752 (cgraph_finalize_compilation_unit): ... here.
22753 (cgraph_expand_function): Remove forgoten commented out line.
22754 (cgraph_optimize): Analyze functions.
22755
22756 2007-01-08 Jan Hubicka <jh@suse.cz>
22757
22758 * tree-pas.h (TODO_remove_function): New flag.
22759 (TODO_update*): Renumber.
22760 (pass_ipa_increase_alignment,
22761 pass_ipa_function_and_variable_visibility): New passes.
22762 * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c
22763 (cgraph_function_and_variable_visibility): Move to ipa.c
22764 (cgraph_optimize): Don't call cgraph_function_and_variable_visibility,
22765 cgraph_increase_alignment.
22766 * ipa-inline.c (cgraph_decide_inlining): Don't push timevar.
22767 (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before
22768 calling tree-inline.
22769 (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes.
22770 (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions
22771 * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c
22772 (gate_increase_alignment): New function.
22773 (pass_ipa_increase_alignment): New pass.
22774 * ipa.c: Inline tree-pass.h and timevar.h
22775 (function_and_variable_visibility): Move here from cgraphunit.c
22776 * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions.
22777 * passes.c (init_optimization_passes): Add the two new passes.
22778 (execute_todo): Handle cgraph_remove_functions.
22779
22780 2007-01-08 Nick Clifton <nickc@redhat.com>
22781
22782 * config/frv/predicates.md (reg_or_0_operand): Accept
22783 CONST_DOUBLEs.
22784
22785 2007-01-08 Ralf Corsépius <ralf.corsepius@rtems.org>
22786
22787 * config/bfin/rtems.h, config/bfin/t-rtems: New.
22788 * config.gcc: Add bfin*-rtems*.
22789
22790 2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
22791
22792 * c.opt: Add -flax-vector-conversions.
22793 * c-typeck.c (convert_for_assignment): Pass flag to
22794 vector_types_convertible_p to allow emission of note.
22795 (digest_init): Likewise.
22796 * c-opts.c: Handle -flax-vector-conversions.
22797 * c-common.c (flag_lax_vector_conversions): New.
22798 (vector_types_convertible_p): Unless -flax-vector conversions
22799 has been passed, disallow conversions between vectors with
22800 differing numbers of subparts and/or element types. If such
22801 a conversion is disallowed, possibly emit a note on the first
22802 occasion only to inform the user of -flax-vector-conversions.
22803 The new last argument specifies this.
22804 * c-common.h (flag_lax_vector_conversions): New.
22805 (vector_types_convertible_p): Add extra argument.
22806 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
22807 char_type_node for V*QI type vectors.
22808 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
22809 Update to satisfy new typechecking rules.
22810 * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
22811 C and C++ variants.
22812 * doc/invoke.texi (C Dialect Options): Document
22813 -flax-vector-conversions.
22814
22815 2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
22816
22817 PR tree-optimization/29877
22818 * tree-ssa-ter.c (is_replaceable_p): Deem assignments with
22819 a register variable on the RHS to not be replaceable.
22820
22821 2007-01-08 Chen Liqin <liqin@sunnorth.com.cn>
22822 * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
22823 * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
22824 const_simm15, const_pow2, const_npow2): Added.
22825 * config/score/misc.md (insv, extv, extzv, movmemsi,
22826 move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
22827 * config/score/score.c (score_address_cost, score_select_cc_mode):
22828 Added.
22829 Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
22830 Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
22831 Update score_print_operand.
22832 * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
22833 Adjust register allocate order and update some macro define.
22834 * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
22835 mdx_block_move_straight, mdx_block_move_loop_head,
22836 mdx_block_move_loop_body, mdx_block_move_loop_foot,
22837 mdx_block_move_loop, mdx_block_move): Added.
22838 (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
22839 mdp_limm): Updated and fix some bug and typo.
22840 * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
22841 (movsf, movdf, doloop_end): Added.
22842
22843 2007-01-08 Kazu Hirata <kazu@codesourcery.com>
22844
22845 * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
22846 config/arm/thumb2.md: Fix comment typos.
22847 * doc/extend.texi: Fix a typo.
22848
22849 2007-01-07 Eric Christopher <echristo@apple.com>
22850
22851 * configure.ac: Check for __stack_chk_fail for darwin.
22852 * configure: Regenerate.
22853
22854 2007-01-07 Richard Guenther <rguenther@suse.de>
22855
22856 * tree-vrp.c (extract_range_from_assert): CSE calls to
22857 compare_values where possible.
22858 (extract_range_from_unary_expr): Likewise.
22859
22860 2007-01-07 Anatoly Sokolov <aesok@post.ru>
22861
22862 * config/avr/avr-protos.h (call_insn_operand): Delete prototype.
22863 * config/avr/avr.c (call_insn_operand): Delete function.
22864 * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
22865 instead of register number. Use predicates.
22866 * config/avr/predicates.md (const0_operand, reg_or_0_operand,
22867 call_insn_operand): Add.
22868
22869 2007-01-06 Jan Hubicka <jh@suse.cz>
22870
22871 * tree-pass.h (pass_build_cgraph_edges): Declare.
22872 * cgraphunit.c (record_refernece): Move to cgraphbuild.c
22873 (visited_nodes): Remove.
22874 (cgraph_create_edges): Move to cgraphbuild.c; rename to
22875 build_cgrpah_edges; make visited_nodes local.
22876 (cgraph_process_new_functions): DO not call initialize_inline_failed.
22877 (record_references_in_initializer): Move to cgraphbuild.c
22878 (initialize_inline_failed, rebuild_cgraph_edges,
22879 pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
22880 (verify_cgraph_node): Make visited_nodes local.
22881 (cgraph_analyze_function): Do not call cgraph_create_edges and
22882 initialize_inline_failed.
22883 (cgraph_expand_function): Do not call cgraph_lower_function;
22884 assert that function is already lowered.
22885 * Makefile.in (cgraphbuild.o): New.
22886 * passes.c (init_optimization_passes): Add pass_build_cgraph_edges
22887 at the end of lowering passes.
22888
22889 2007-01-06 Steven Bosscher <steven@gcc.gnu.org>
22890
22891 * ifcvt.c (cond_move_convert_if_block): New function, code
22892 factored out from...
22893 (cond_move_process_if_block): ...here. Call the new function
22894 on the THEN and ELSE blocks.
22895 (merge_if_block): Do not copy global_live_at_end, merge_blocks
22896 already takes care of this.
22897
22898 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
22899
22900 PR c/19978
22901 * tree.h (TREE_OVERFLOW_P): New.
22902 * c-typeck.c (parser_build_unary_op): Warn only if result
22903 overflowed and operands did not.
22904 (parser_build_binary_op): Likewise.
22905 (convert_for_assignment): Remove redundant overflow_warning.
22906 * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.
22907
22908 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
22909
22910 * c-typeck.c (store_init_value): Split over two lines to follow
22911 the GNU coding style.
22912
22913 2007-01-05 Benjamin Kosnik <bkoz@redhat.com>
22914
22915 * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
22916 __GXX_EXPERIMENTAL_CXX0X__.
22917 * doc/cpp.texi: Same.
22918
22919 2007-01-05 Richard Guenther <rguenther@suse.de>
22920
22921 PR middle-end/27826
22922 * tree.c (get_narrower): Do not construct COMPONENT_REFs
22923 with mismatched types. Instead explicitly build a
22924 conversion NOP_EXPR.
22925
22926 2007-01-05 Ian Lance Taylor <iant@google.com>
22927
22928 * c-common.c (decl_with_nonnull_addr_p): New function.
22929 (c_common_truthvalue_conversion): Call it.
22930 * c-typeck.c (build_binary_op): Likewise.
22931 * c-common.h (decl_with_nonnull_addr_p): Declare.
22932
22933 2007-01-05 Jakub Jelinek <jakub@redhat.com>
22934
22935 PR c/30360
22936 * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
22937 denom against 0.0.
22938
22939 2007-01-05 Joel Brobecker <brobecker@adacore.com>
22940
22941 * doc/install.texi (Final install): Document the fact that
22942 the GNAT runtime should not be stripped.
22943
22944 2007-01-04 Jan Hubicka <jh@suse.cz>
22945
22946 * tree-inline.c (fold_marked_statements): Update operand caches
22947 and EH after folding
22948
22949 2007-01-04 Ian Lance Taylor <iant@google.com>
22950
22951 * c-common.c (check_function_nonnull): Whitespace fix.
22952
22953 2007-01-04 Jan Hubicka <jh@suse.cz>
22954
22955 * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
22956 comitted older version of patch.
22957 (pass_fixup_cfg): Add TODOs to verify flow and statements, dump
22958 function, celanup cfg and collect garbage.
22959
22960 2007-01-04 Mike Stump <mrs@apple.com>
22961
22962 * Makefile.in (mostlyclean): Don't remove libgcc anymore.
22963 (clean): Likewise.
22964
22965 2007-01-04 Eric Christopher <echristo@apple.com>
22966
22967 * libgcc2.c (__bswapsi2): Use SItype.
22968 (__bswapdi2): Use DItype.
22969 * libgcc2.h: Update for above.
22970
22971 2007-01-04 Paul Brook <paul@codesourcery.com>
22972
22973 * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
22974 mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0,
22975 mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3,
22976 umulsidi3, umulsidi3adddi, smulsi3_highpart,
22977 umulsi3_highpart): Make conditional on !arm_arch6.
22978 (arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6,
22979 mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6,
22980 mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6,
22981 umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6,
22982 umulsi3_highpart_v6): New insns.
22983
22984 2007-01-04 Roger Sayle <roger@eyesopen.com>
22985
22986 * fold-const.c (fold_convert): When casting an expression to void,
22987 fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
22988 have a type. Instead of attempting to build a NOP_EXPR, return
22989 these "special" trees directly.
22990
22991 2007-01-04 Joseph Myers <joseph@codesourcery.com>
22992
22993 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
22994 MULT inside MINUS as either argument. Use rs6000_cost->dmul -
22995 rs6000_cost->fp not 0 as adjustment for outer NEG.
22996
22997 2007-01-04 Jan Hubicka <jh@suse.cz>
22998
22999 * cgraph.c (cgraph_release_function_body): New function.
23000 (cgraph_remove_node): Use it.
23001 * cgraph.h (cgraph_release_function_body): Declare.
23002 * cgraphunit.c (cgraph_expand_function): Use it.
23003 * ipa.c (cgraph_remove_unreahchable_nodes): Use it.
23004 * tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing
23005 is initialized and while compilation of other function is running.
23006 * tree-optimize.c (execute_free_cfg_annotations): Move code to clear
23007 statement CFG annotations from here to ...
23008 * tree-cfg.c (delete_tree_cfg_annotations): ... here.
23009
23010 2007-01-04 Zdenek Dvorak <dvorakz@suse.cz>
23011
23012 * cfgloop.h (enum li_flags): Make the constants powers of two.
23013
23014 2007-01-04 Jan Hubicka <jh@suse.cz>
23015
23016 * tree-inline.c (copy_bb): Insert new statements to statements_to_fold
23017 set.
23018 (fold_marked_statements): New function.
23019 (optimize_inline_calls, tree_function_versioning): Fold new statements.
23020 * tree-inline.h (copy_body_data): Add statements_to_fold.
23021
23022 2007-01-03 Daniel Jacobowitz <dan@codesourcery.com>
23023
23024 * config.gcc: Mention libgcc/config.host.
23025 * Makefile.in: Update comments mentioning libgcc.
23026 (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
23027 (all.cross, start.encap, rest.encap, rest.cross): Update
23028 dependencies for libgcc move.
23029 (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
23030 (clean-target, clean-target-libgcc): Delete.
23031 (srcdirify, GCC_EXTRA_PARTS): New macros.
23032 (libgcc-support, libgcc.mvars): New rules.
23033 (distclean): Remove mention of mklibgcc.
23034 (install): Don't reference INSTALL_LIBGCC.
23035 (install-common): Don't reference EXTRA_PARTS.
23036 (install-libgcc, install-multilib): Delete rules.
23037 * mklibgcc.in: Delete file.
23038 * doc/configfiles.texi: Don't mention mklibgcc.
23039
23040 * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
23041 * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
23042 * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
23043 * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
23044 (mklibgcc, ldblspecs): Likewise.
23045
23046 * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
23047 (posixpre.def): Use $(T).
23048 (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
23049 (SHLIB_SRC, SHLIB_INSTALL): Delete.
23050 (SHLIB_LINK): Make dummy.
23051 * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.
23052
23053 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.
23054
23055 * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
23056 * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
23057 config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
23058 config/rs6000/t-newas, config/sparc/t-elf: Likewise.
23059
23060 * configure.ac (all_outputs): Remove mklibgcc.
23061 * configure: Regenerated.
23062
23063 2007-01-03 Josh Conner <jconner@apple.com>
23064
23065 PR middle-end/29683
23066 * calls.c (compute_argument_addresses): Set stack and stack_slot
23067 for partial args, too.
23068 (store_one_arg): Use locate.size.constant for the size when
23069 generating a save_area.
23070
23071 2007-01-03 Robert Kennedy <jimbob@google.com>
23072
23073 * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
23074 whose definitions are deleted due to basic block merging.
23075
23076 2007-01-03 Paul Brook <paul@codesourcery.com>
23077
23078 PR target/16634
23079 * config/arm/arm.c (output_return_instruction): Pop PC in interrupt
23080 functions.
23081 (use_return_insn): Return 0 for Thumb interrupt functions.
23082 (print_multi_reg): Add rfe argument for IRQ returns.
23083 (arm_output_epilogue): Pop interrupt return address directly into PC.
23084 (arm_expand_prologue): Only adjust IRQ return address in Arm mode.
23085
23086 2007-01-03 Paul Brook <paul@codesourcery.com>
23087
23088 Merge from sourcerygxx-4_1.
23089 * config/arm/thumb2.md: New file.
23090 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
23091 Thumb-2.
23092 * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
23093 * config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
23094 (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
23095 * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
23096 tables.
23097 (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
23098 * config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
23099 comptibility.
23100 * config/arm/ieee754-sf.S: Ditto.
23101 * config/arm/arm.c (thumb_base_register_rtx_p): Rename...
23102 (thumb1_base_register_rtx_p): ... to this.
23103 (thumb_index_register_rtx_p): Rename...
23104 (thumb1_index_register_rtx_p): ... to this.
23105 (thumb_output_function_prologue): Rename...
23106 (thumb1_output_function_prologue): ... to this.
23107 (thumb_legitimate_address_p): Rename...
23108 (thumb1_legitimate_address_p): ... to this.
23109 (thumb_rtx_costs): Rename...
23110 (thumb1_rtx_costs): ... to this.
23111 (thumb_compute_save_reg_mask): Rename...
23112 (thumb1_compute_save_reg_mask): ... to this.
23113 (thumb_final_prescan_insn): Rename...
23114 (thumb1_final_prescan_insn): ... to this.
23115 (thumb_expand_epilogue): Rename...
23116 (thumb1_expand_epilogue): ... to this.
23117 (arm_unwind_emit_stm): Rename...
23118 (arm_unwind_emit_sequence): ... to this.
23119 (thumb2_legitimate_index_p, thumb2_legitimate_address_p,
23120 thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
23121 thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
23122 arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
23123 thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
23124 thumb2_output_casesi): New functions.
23125 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
23126 (FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
23127 FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
23128 THUMB2_WORK_REGS): Define.
23129 (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
23130 arm_condexec_mask, arm_condexec_masklen)): New variables.
23131 (all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
23132 (arm_override_options): Check new CPU capabilities.
23133 Set new architecture flag variables.
23134 (arm_isr_value): Handle v7m interrupt functions.
23135 (user_return_insn): Return 0 for v7m interrupt functions. Handle
23136 Thumb-2.
23137 (const_ok_for_arm): Handle Thumb-2 constants.
23138 (arm_gen_constant): Ditto. Use movw when available.
23139 (arm_function_ok_for_sibcall): Return false for v7m interrupt
23140 functions.
23141 (legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
23142 (thumb_find_work_register, arm_load_pic_register,
23143 legitimize_tls_address, arm_address_cost, load_multiple_sequence,
23144 emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
23145 print_multi_reg, output_mov_long_double_fpa_from_arm,
23146 output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
23147 output_mov_double_fpa_from_arm, output_move_double,
23148 arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
23149 output_return_instruction, arm_output_function_prologue,
23150 arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
23151 arm_output_mi_thunk, thumb_set_return_address): Ditto.
23152 (arm_expand_prologue): Handle Thumb-2. Use arm_save_coproc_regs.
23153 (arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
23154 (arithmetic_instr, shift_op): Use arm_shift_nmem.
23155 (arm_print_operand): Use arm_print_condition. Handle '(', ')', '.',
23156 '!' and 'L'.
23157 (arm_final_prescan_insn): Use extract_constrain_insn_cached.
23158 (thumb_expand_prologue): Use thumb_set_frame_pointer.
23159 (arm_file_start): Output directive for unified syntax.
23160 (arm_unwind_emit_set): Handle stack alignment instruction.
23161 * config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
23162 Add v6t2, v7, v7a, v7r and v7m.
23163 (RETLDM): Add Thumb-2 code.
23164 (do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
23165 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
23166 (TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
23167 TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
23168 THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
23169 ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
23170 THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
23171 CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
23172 ADJUST_INSN_LENGTH): Define.
23173 (TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
23174 STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
23175 BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
23176 PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
23177 SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
23178 TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
23179 HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
23180 HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
23181 REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
23182 REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
23183 LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
23184 GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
23185 ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
23186 FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
23187 PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
23188 (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
23189 * config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
23190 cortex-m3.
23191 * config/arm/arm-tune.md: Regenerate.
23192 * config/arm/arm-protos.h: Update prototypes.
23193 * config/arm/vfp.md: Enable patterns for Thumb-2.
23194 (arm_movsi_vfp): Add movw alternative. Use output_move_vfp.
23195 (arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
23196 (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
23197 thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
23198 * config/arm/libunwind.S: Add Thumb-2 code.
23199 * config/arm/constraints.md: Update include Thumb-2.
23200 * config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
23201 * config/arm/ieee754-df.S: Ditto.
23202 * config/arm/bpabi.S: Ditto.
23203 * config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
23204 * config/arm/predicates.md (low_register_operand,
23205 low_reg_or_int_operand, thumb_16bit_operator): New.
23206 (thumb_cmp_operand, thumb_cmpneg_operand): Rename...
23207 (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
23208 * config/arm/t-arm-elf: Add armv7 multilib.
23209 * config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
23210 Include thumb2.md.
23211 (UNSPEC_STACK_ALIGN, ce_count): New.
23212 (arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
23213 arm_zero_extendsidi2, arm_zero_extendqidi2): New
23214 insns/expanders.
23215 * config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
23216 (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
23217 thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
23218 * config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
23219 (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
23220 thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
23221 insns.
23222 * doc/extend.texi: Document ARMv7-M interrupt functions.
23223 * doc/invoke.texi: Document Thumb-2 new cores+architectures.
23224
23225 2007-01-03 Jakub Jelinek <jakub@redhat.com>
23226
23227 * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
23228 (struct _Unwind_Context): Rename args_size to flags, remove
23229 signal_frame field, add a new args_size field and version field.
23230 (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
23231 _Unwind_IsExtendedContext): New inline functions.
23232 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
23233 Assume by_value array is only present if _Unwind_IsExtendedContext.
23234 (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
23235 _Unwind_IsSignalFrame.
23236 (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
23237 (uw_update_context_1): Use _Unwind_SetSignalFrame.
23238 (uw_init_context_1): Initialize context->flags to
23239 EXTENDED_CONTEXT_BIT.
23240 * config/rs6000/linux-unwind.h (frob_update_context): Use
23241 _Unwind_SetSignalFrame.
23242
23243 2007-01-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
23244
23245 PR middle-end/30353
23246 * gimplify.c (gimplify_modify_expr_complex_part): Move below
23247 tree_to_gimple_tuple. Call tree_to_gimple_tuple when we need
23248 the value.
23249
23250 2007-01-03 Kazu Hirata <kazu@codesourcery.com>
23251
23252 * config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P,
23253 REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER,
23254 RET, AT_SP): Remove.
23255 * config/i386/i386.md (*sse_prologue_save_insn): Use return
23256 instead of RET.
23257
23258 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
23259 * cfgbuild.c (find_basic_blocks): Likewise.
23260 * cfgrtl.c (rtl_create_basic_block): Likewise.
23261 * function.c (temp_slots_at_level): Likewise.
23262 * reg-stack.c (stack_regs_mentioned): Likewise.
23263 * regclass.c (allocate_reg_info): Likewise.
23264 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
23265 set_bb_for_stmt, move_block_to_fn): Likewise.
23266 * tree-complex.c (tree_lower_complex): Likewise.
23267 * vec.h (VEC_safe_grow_cleared): New.
23268
23269 * cgraphunit.c, tree-ssa-alias.c: Fix comment typos.
23270
23271 2007-01-03 Zdenek Dvorak <dvorakz@suse.cz>
23272
23273 * loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
23274 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities
23275 to loop_version.
23276 * cfgloopmanip.c (scale_loop_frequencies): Export.
23277 (loopify): Scale the frequencies by prescribed coefficients.
23278 (set_zero_probability): New function.
23279 (duplicate_loop_to_header_edge): Improve updating of frequencies.
23280 (lv_adjust_loop_entry_edge, loop_version): Set probabilities
23281 and frequencies according to arguments.
23282 * tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities
23283 correctly.
23284 * cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up.
23285 * modulo-sched.c (sms_schedule): Set probabilities for entering
23286 versioned loop correctly.
23287 * tree-vect-transform.c (vect_transform_loop): Ditto.
23288 * cfgloop.h (loopify, loop_version): Declaration changed.
23289 (scale_loop_frequencies): Declared.
23290
23291 2007-01-02 Jan Hubicka <jh@suse.cz>
23292
23293 * cgraph.c: Include tree-flow.h
23294 (cgraph_add_new-function): Handle IPA_SSA mode; execute
23295 early_local_passes.
23296 * cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
23297 * tree-pass.h (pass_all_early_optimizations): Declare.
23298 * cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
23299 early_local_passes.
23300 (cgraph_analyze_function): Do early_local_passes.
23301 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
23302 Do not add referenced vars.
23303 * tree-optimize.c (gate_all_optimizations): Do not execute when not in
23304 SSA form.
23305 (gate_all_early_local_passes): New gate.
23306 (pass_early_local_passes): Use new gate.
23307 (execute_early_local_optimizations): New functions.
23308 (gate_all_early_optimizations): New gate.
23309 (pass_all_early_optimizations): New pass.
23310 (execute_free_datastructures): Free SSA only when initialized.
23311 (gate_init_datastructures): Init only when optimizing.
23312 (tree_lowering_passes): Do early local passes when called late.
23313 * tree-profile.c (do_tree_profiling): Don't profile functions added
23314 late.
23315 (do_early_tree_profiling, pass_early_tree_profile): Kill.
23316 * tree-cfg.c (update_modified_stmts): Do not update when operands are
23317 not active.
23318 * passes.c (init_optimizations_passes): Reorder so we go into SSA
23319 during early_local_passes.
23320 * Makefile.in (cgraph.o): Add dependency on tree-flow.h.
23321
23322
23323 2007-01-02 Carlos O'Donell <carlos@codesourcery.com>
23324
23325 * Makefile.in: Update copyright year.
23326
23327 2007-01-02 Carlos O'Donell <carlos@codesourcery.com>
23328
23329 * Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST)
23330 in $(lang_checks) and check-consistency targets.
23331
23332 2007-01-02 Jan Hubicka <jh@suse.cz>
23333
23334 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
23335 Do not add referenced vars.
23336 * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
23337 are not active.
23338 * passes.c (init_optimization_passes): Put mudflap_2 after
23339 free_datastructures.
23340
23341 2007-01-02 Jan Hubicka <jh@suse.cz>
23342
23343 * tree-optimize (execute_fixup_cfg): Set after_inlining flag.
23344 Set NOTHROW flag on call statements proved to be nothrow.
23345 Update statement of local calls so new pure/const functions are
23346 updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal
23347 goto receivers.
23348 (tree_rest_of_compilation): Register hooks and initialize bitmap
23349 early. Do not set after_inlining flag.
23350
23351 2007-01-02 Steve Ellcey <sje@cup.hp.com>
23352
23353 * sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to
23354 HOST_BITS_PER_LONGLONG
23355
23356 2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23357
23358 PR c/19977
23359 * c-typeck.c (store_init_value): Don't emit pedantic overflow
23360 warning for non-static initializers.
23361
23362 2007-01-02 Steven Bosscher <steven@gcc.gnu.org>
23363
23364 * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
23365 m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
23366 rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
23367 Always use set_unique_reg_note to add REG_EQUAL notes.
23368
23369 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
23370
23371 Revert:
23372 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
23373
23374 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
23375 * cfgbuild.c (find_basic_blocks): Likewise.
23376 * cfgrtl.c (rtl_create_basic_block): Likewise.
23377 * function.c (temp_slots_at_level): Likewise.
23378 * reg-stack.c (stack_regs_mentioned): Likewise.
23379 * regclass.c (allocate_reg_info): Likewise.
23380 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
23381 set_bb_for_stmt, move_block_to_fn): Likewise.
23382 * tree-complex.c (tree_lower_complex): Likewise.
23383 * vec.h (VEC_safe_grow_cleared): New.
23384
23385 2007-01-02 Ian Lance Taylor <iant@google.com>
23386
23387 * c-common.c (c_common_truthvalue_conversion): When warning about
23388 using an assignment as a truth value, set TREE_NO_WARNING.
23389
23390 2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23391
23392 PR middle-end/7651
23393 * c.opt (Wold-style-declaration): New.
23394 * doc/invoke.texi (C-only Warning Options): New.
23395 (Wold-style-declaration): Document it.
23396 (Wextra): Enabled by -Wextra.
23397 * c-opts.c (c_common_post_options): Enabled by -Wextra.
23398 * c-decl.c (declspecs_add_scspec): Replace -Wextra with
23399 -Wold-style-declaration.
23400
23401 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
23402
23403 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
23404 * cfgbuild.c (find_basic_blocks): Likewise.
23405 * cfgrtl.c (rtl_create_basic_block): Likewise.
23406 * function.c (temp_slots_at_level): Likewise.
23407 * reg-stack.c (stack_regs_mentioned): Likewise.
23408 * regclass.c (allocate_reg_info): Likewise.
23409 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
23410 set_bb_for_stmt, move_block_to_fn): Likewise.
23411 * tree-complex.c (tree_lower_complex): Likewise.
23412 * vec.h (VEC_safe_grow_cleared): New.
23413
23414 2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
23415
23416 * c-common.c (c_common_nodes_and_builtins): Since variants of
23417 void_type_node get built before it is given a name, we need to
23418 give those variants the name, too.
23419 (complete_array_type): We need to work with the canonical main
23420 type of the array, from which we will build the qualified version.
23421 * params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
23422 * print-tree.c (print_node): Display canonical type information
23423 for each type.
23424 * stor-layout.c (layout_type): When we don't know the
23425 alignment of a type for which we're building an array, we end up
23426 guessing wrong, so make the type require structural equality.
23427 * tree.c (make_node_stat): When we build a new type, it is its
23428 own canonical type.
23429 (build_type_attribute_qual_variant): When building an attribute
23430 variant, its canonical type is the non-attribute variant. However,
23431 if the attributes are target-dependent and they differ, we need to
23432 use structural equality checks for this type.
23433 (build_qualified_type): A qualified type is not equivalent to its
23434 unqualified variant; set the canonical type appropriately.
23435 (build_distinct_type_copy): When building a distinct type from
23436 another type, the new type is its own canonical type.
23437 (build_variant_type_copy): When building a new type variant, we
23438 assume that it is equivalent to the original type.
23439 (build_pointer_type_for_mode): When building a pointer type, also
23440 build a canonical type pointer.
23441 (build_reference_type_for_mode): When building a reference type,
23442 also build a canonical type reference.
23443 (build_index_type): When we can't hash an index type (e.g.,
23444 because its maximum value is negative), the index type requires
23445 structural equality tests.
23446 (build_array_type): Build the canonical form of an array type.
23447 (build_function_type): Function types require structural equality,
23448 because they contain default arguments, attributes, etc.
23449 (build_method_type_directly): Ditto for method types.
23450 (build_offset_type): Build the canonical offset type.
23451 (build_complex_type): Build the canonical vector type.
23452 (make_vector_type): Build the canonical vector type.
23453 * tree.h (TYPE_CANONICAL): New.
23454 (TYPE_STRUCTURAL_EQUALITY_P): New.
23455 (SET_TYPE_STRUCTURAL_EQUALITY): New.
23456 (struct tree_type): Added "canonical" field.
23457 * params.h (VERIFY_CANONICAL_TYPES): New.
23458 * doc/c-tree.texi (TYPE_CANONICAL): Document.
23459 (TYPE_STRUCTURAL_EQUALITY_P): Document.
23460 (SET_TYPE_STRUCTURAL_EQUALITY): Document.
23461 * doc/invoke.texi (verify-canonical-types): Document --param
23462 parameter for verifying canonical types.
23463
23464 2007-01-02 Joseph Myers <joseph@codesourcery.com>
23465
23466 * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
23467 powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*,
23468 powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae,
23469 powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to
23470 tm_file.
23471 * config/rs6000/e500.h: New.
23472 * config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500,
23473 TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE):
23474 Remove.
23475 * config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE,
23476 TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE,
23477 TARGET_E500_DOUBLE): Remove.
23478 * config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE,
23479 TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove.
23480 * config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define.
23481 * config/rs6000/rs6000.c (rs6000_override_options): Use
23482 CHECK_E500_OPTIONS.
23483
23484 2007-01-02 Joseph Myers <joseph@codesourcery.com>
23485
23486 * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
23487 TARGET_E500_DOUBLE), not TARGET_E500, for %y.
23488 (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
23489 rs6000_emit_cmove): Don't check TARGET_E500.
23490 * config/rs6000/rs6000.md (bunordered, bordered, sunordered,
23491 sordered): Don't check TARGET_E500.
23492
23493 2007-01-01 Eric Christopher <echristo@apple.com>
23494
23495 * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use
23496 HARD_REGISTER_NUM_P.
23497
23498 2007-01-01 Roger Sayle <roger@eyesopen.com>
23499
23500 * fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
23501 "X eq/ne (C1^C2)". Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
23502 has no side-effects. Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
23503 eq/ne Y".
23504
23505 2007-01-01 Mike Stump <mrs@apple.com>
23506
23507 * configure.ac: Remove support for building with Apple's gcc-3.1.
23508
23509 2007-01-02 Joseph Myers <joseph@codesourcery.com>
23510
23511 PR middle-end/30311
23512 * caller-save.c (add_stored_regs): Only handle SUBREGs if inner
23513 REG is a hard register. Do not modify REG before calling
23514 subreg_nregs.
23515 * rtlanal.c (subreg_get_info): Don't assert size of XMODE is a
23516 multiple of the size of YMODE for certain lowpart cases.
23517
23518 2007-01-01 Andrew Pinski <pinskia@gmail.com>
23519
23520 PR middle-end/30253
23521 * gimplify (voidify_wrapper_expr): Update for
23522 GIMPLE_MODIFY_STMT.
23523
23524 2007-01-01 Andreas Schwab <schwab@suse.de>
23525
23526 PR target/29166
23527 * config/ia64/ia64.c (ia64_compute_frame_size): Account space for
23528 save of BR0 in extra_spill_size instead of spill_size.
23529 (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
23530 area.
23531 (ia64_expand_epilogue): Restore BR0 from its new location.
23532
23533 2007-01-01 Andrew Pinski <pinskia@gmail.com>
23534
23535 * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
23536 Use a temporary variable if the left hand side is not a gimple
23537 register.
23538
23539 2007-01-01 Andrew Pinski <pinskia@gmail.com>
23540
23541 * gimplify.c (gimplify_return_expr): Make the temporary variable
23542 for the return expression, a gimple register variable.
23543
23544 2007-01-01 Jan Hubicka <jh@suse.cz>
23545
23546 * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
23547 INSN_LIST.
23548
23549 2007-01-01 Mike Stump <mrs@apple.com>
23550
23551 * configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
23552 .literal16.
23553 * config/darwin.c (machopic_select_rtx_section): Use
23554 HAVE_GAS_LITERAL16.
23555 (darwin_mergeable_constant_section): Likewise.
23556 * configure: Regenerate.
23557 * config.in: Regenerate.
23558
23559 2007-01-01 Jan Hubicka <jh@suse.cz>
23560 Andrew Pinski <pinskia@gmail.com>
23561
23562 * cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
23563 before starting IPA passes.