1 2009-04-06 Richard Guenther <rguenther@suse.de>
3 PR tree-optimization/28868
4 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
5 of which PHI results we inserted.
6 (insert_into_preds_of_block): Record inserted PHIs.
7 (eliminate): Eliminate redundant PHI nodes.
8 (init_pre): Init inserted_phi_names.
10 2009-04-06 Richard Guenther <rguenther@suse.de>
12 PR tree-optimization/39643
13 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
14 IMAGPART_EXPRs of complex constants.
15 (execute_fold_all_builtins): If we folded a call queue
16 TODO_update_address_taken.
18 2009-04-06 Jan Hubicka <jh@suse.cz>
21 * except.c (remove_unreachable_regions): Propagate may_contain_throw
24 2009-04-06 Andrew Stubbs <ams@codesourcery.com>
26 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
28 (ic_invalidate_array): Likewise.
30 2009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
32 * calls.c (emit_library_call_value_1): Fix a problem with parameter
33 alignment for library calls.
35 2009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
37 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
38 (mingw32 tm clause use_gcc_stdint): Set to wrap.
39 * config/i386/mingw-stdint.h: New file.
41 2009-04-05 Richard Guenther <rguenther@suse.de>
43 PR tree-optimization/39648
44 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
45 our &A vs. &A[0] IL deficiencies.
47 2009-04-04 Jan Hubicka <jh@suse.cz>
49 * except.c (sjlj_find_directly_reachable_regions): Be ready for
50 removed toplevel regions.
51 (sjlj_mark_call_sites): Likewise.
53 2009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
55 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
56 (cygwin tm clause use_gcc_stdint): Set to wrap.
57 * config/i386/cygwin-stdint.h: New file.
59 2009-04-04 Richard Guenther <rguenther@suse.de>
61 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
62 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
63 single-argument PHIs if we are in loop-closed SSA form.
64 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
65 for the pre-condition.
66 (slpeel_tree_peel_loop_to_edge): Likewise.
67 (vect_build_loop_niters): Take an optional sequence to append stmts.
68 (vect_generate_tmps_on_preheader): Likewise.
69 (vect_do_peeling_for_loop_bound): Take extra guards for the
71 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
73 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
74 guards if we are going to peel. Do not apply versioning in that
76 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
77 (vect_do_peeling_for_loop_bound): Likewise.
78 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
79 loop bound only record extra pre-conditions, do not apply loop
82 2009-04-04 Richard Guenther <rguenther@suse.de>
84 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
87 2009-04-04 Jan Hubicka <jh@suse.cz>
89 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
90 last_basic_block for size of bb->index indexed array.
91 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
92 compute_out, link_btr_uses, build_btr_def_use_webs,
93 build_btr_def_use_webs, migrate_btr_defs): Likewise.
95 2009-04-04 Jan Hubicka <jh@suse.cz>
97 * except.c (remove_eh_handler_and_replace): Break out from ...
98 (remove_eh_handler): ... here.
99 (bring_to_root): New function.
100 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
101 handled ones, bring others to root of tree.
103 2009-04-04 Jan Hubicka <jh@suse.cz>
105 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
106 (all_phis_safe_to_merge): New function.
107 (update_info): New structure.
108 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
109 (cleanup_empty_eh): Update SSA if possible.
111 2009-04-04 Richard Guenther <rguenther@suse.de>
113 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
114 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
115 (append_vuse): Likewise.
117 2009-04-04 Jakub Jelinek <jakub@redhat.com>
119 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
120 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
121 instead of REG_UNSAVED for DW_CFA_undefined.
122 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
123 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
126 2009-04-04 Richard Earnshaw <rearnsha@arm.com>
129 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
130 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
131 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
133 2009-04-04 Richard Guenther <rguenther@suse.de>
135 PR tree-optimization/8781
136 PR tree-optimization/37892
137 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
138 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
139 (valueize_refs): Call it for *& valueizations.
140 (shared_reference_ops_from_ref): Rename to ...
141 (valueize_shared_reference_ops_from_ref): ... this and valueize.
142 (shared_reference_ops_from_call): Rename to ...
143 (valueize_shared_reference_ops_from_call): ... this and valueize.
144 (vn_reference_lookup): Update.
145 (visit_reference_op_call): Likewise.
146 * tree-ssa-pre.c (phi_translate_1): Fold *&.
147 (eliminate): Value-replace the call address in call statements.
149 2009-04-04 Richard Guenther <rguenther@suse.de>
151 PR tree-optimization/39636
152 * tree-ssa-forwprop.c
153 (forward_propagate_addr_into_variable_array_index): Check for
154 GIMPLE_ASSIGN before accessing the rhs code.
156 2009-04-03 Jason Merrill <jason@redhat.com>
158 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
160 2009-04-03 Steve Ellcey <sje@cup.hp.com>
162 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
163 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
164 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
165 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
166 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
167 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
168 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
169 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
170 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
171 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
172 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
173 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
174 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
175 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
176 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
177 Use fr_reg_or_fp01_operand instead of fr_register_operand
179 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
180 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
181 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
183 2009-04-03 Vladimir Makarov <vmakarov@redhat.com>
185 PR rtl-optimization/39607
186 PR rtl-optimization/39631
188 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
189 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
190 instead of DF_LR_OUT.
191 * ira-lives.c (process_bb_node_lives): Ditto.
192 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
193 instead of DF_LR_{OUT,IN}.
194 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
195 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
197 2009-04-03 Steven Bosscher <steven@gcc.gnu.org>
199 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
200 (execute_lower_omp): Always run but take the short way out if -fopenmp
202 (gate_lower_omp): Remove, forcing the pass manager to always run the
203 pass and always set PROP_gimple_lomp.
204 (pass_lower_omp): Remove gate function.
205 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
206 PROP_trees. Instead, require it.
207 * ipa-cp.c (pass_ipa_cp): Likewise.
208 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
209 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
210 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
213 2009-04-03 Richard Guenther <rguenther@suse.de>
216 PR tree-optimization/23940
217 PR tree-optimization/33237
220 PR tree-optimization/36201
221 PR tree-optimization/36230
222 PR tree-optimization/38049
223 PR tree-optimization/38207
224 PR tree-optimization/38230
225 PR tree-optimization/38301
226 PR tree-optimization/38585
228 PR tree-optimization/38985
229 PR tree-optimization/39299
230 * tree-ssa-structalias.h: Remove.
231 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
232 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
233 (struct vuse_element_d): Remove.
234 (struct vuse_vec_d): Likewise.
235 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
236 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
237 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
238 VUSE_ELEMENT_VAR): Likewise.
239 (struct voptype_d): Likewise.
240 (NUM_VOP_FREE_BUCKETS): Likewise.
241 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
242 (struct stmt_operands_d): Remove.
243 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
244 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
245 VDEF_NUM, VDEF_VECT): Likewise.
246 (copy_virtual_operands): Remove.
247 (operand_build_cmp): Likewise.
248 (create_ssa_artificial_load_stmt): Likewise.
249 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
250 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
251 vuse_index and mayuse_index members. Pack and move done and iter_type
252 members to the front.
253 (SSA_OP_VMAYUSE): Remove.
254 (SSA_OP_VIRTUAL_USES): Adjust.
255 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
256 (unlink_stmt_vdef): Declare.
257 (add_to_addressable_set): Remove.
258 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
259 (vrp_visit_stmt): Likewise.
260 * doc/tree-ssa.texi (Alias analysis): Update.
261 * doc/invoke.texi (max-aliased-vops): Remove docs.
262 (avg-aliased-vops): Likewise.
263 * tree-into-ssa.c (syms_to_rename): Remove.
264 (need_to_update_vops_p): Likewise.
265 (need_to_initialize_update_ssa_p): Rename to ...
266 (update_ssa_initialized_fn): ... this. Track function we are
268 (symbol_marked_for_renaming): Simplify.
269 (add_new_name_mapping): Do not set need_to_update_vops_p.
270 (dump_currdefs): Use SYMS_TO_RENAME.
271 (rewrite_update_stmt): Always walk all uses/defs.
272 (dump_update_ssa): Adjust.
273 (init_update_ssa): Take function argument. Track what we are
275 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
276 (create_new_def_for): Initialize for cfun, assert we are initialized
278 (mark_sym_for_renaming): Simplify.
279 (mark_set_for_renaming): Do not initialize update-ssa.
280 (need_ssa_update_p): Simplify. Take function argument.
281 (name_mappings_registered_p): Assert we ask for the correct function.
282 (name_registered_for_update_p): Likewise.
283 (ssa_names_to_replace): Likewise.
284 (release_ssa_name_after_update_ssa): Likewise.
285 (update_ssa): Likewise. Use SYMS_TO_RENAME.
286 (dump_decl_set): Do not print a newline.
287 (debug_decl_set): Do it here.
288 (dump_update_ssa): And here.
289 * tree-ssa-loop-im.c (move_computations): Adjust.
290 (movement_possibility): Likewise.
291 (determine_max_movement): Likewise.
292 (gather_mem_refs_stmt): Likewise.
293 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
295 * tree-complex.c (update_all_vops): Remove.
296 (expand_complex_move): Adjust.
297 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
298 Simplify test for memory referencing statement. Exclude
299 non-invariant ADDR_EXPRs.
300 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
301 * tree-loop-distribution.c (generate_memset_zero): Adjust.
302 (rdg_flag_uses): Likewise.
303 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
305 (tree_optimize_tail_calls_1): Also split the
306 edge from the entry block if we have degenerate PHI nodes in
307 the first basic block.
308 * tree.c (init_ttree): Remove memory-tag related code.
309 (tree_code_size): Likewise.
310 (tree_node_structure): Likewise.
311 (build7_stat): Re-write to be build6_stat.
312 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
314 (struct tree_memory_tag): Remove.
315 (struct tree_memory_partition_tag): Likewise.
316 (union tree_node): Adjust.
317 (build7): Re-write to be build6.
318 * tree-pass.h (pass_reset_cc_flags): Remove.
319 (TODO_update_address_taken): New flag.
320 (pass_simple_dse): Remove.
321 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
322 * params.h (MAX_ALIASED_VOPS): Remove.
323 (AVG_ALIASED_VOPS): Likewise.
324 * omp-low.c (expand_omp_taskreg): Update SSA form.
325 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
326 aliases the lhs in a copy stmt.
327 * tree-ssa-dse.c (struct address_walk_data): Remove.
328 (memory_ssa_name_same): Likewise.
329 (memory_address_same): Likewise.
330 (get_kill_of_stmt_lhs): Likewise.
331 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
332 unused stores. Look through PHI nodes into post-dominated regions.
333 (dse_optimize_stmt): Simplify. Properly remove stores.
334 (tree_ssa_dse): Compute dominators.
335 (execute_simple_dse): Remove.
336 (pass_simple_dse): Likewise.
337 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
338 gimple_loaded_syms and gimple_stored_syms computation.
339 * toplev.c (dump_memory_report): Dump alias and pta stats.
340 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
341 (vn_reference_eq): Likewise.
342 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
343 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
344 valueize_vuses): Remove.
345 (get_def_ref_stmt_vuses): Simplify. Rename to ...
346 (get_def_ref_stmt_vuse): ... this.
347 (vn_reference_lookup_2): New function.
348 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
349 walking equivalent vuses. Simplify.
350 (vn_reference_lookup): Likewise.
351 (vn_reference_insert): Likewise.
352 (vn_reference_insert_pieces): Likewise.
353 (visit_reference_op_call): Simplify.
354 (visit_reference_op_load): Likewise.
355 (visit_reference_op_store): Likewise.
356 (init_scc_vn): Remove shared_lookup_vuses initialization.
357 (free_scc_vn): Remove shared_lookup_vuses freeing.
358 (sort_vuses, sort_vuses_heap): Remove.
359 (get_ref_from_reference_ops): Export.
360 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
361 vector with single vuse pointer.
362 (vn_reference_lookup_pieces, vn_reference_lookup,
363 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
364 (shared_vuses_from_stmt): Remove.
365 (get_ref_from_reference_ops): Declare.
366 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
367 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
368 memory-tag related code.
369 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
370 (likely_value): Add comment, skip static-chain of call statements.
371 (surely_varying_stmt_p): Adjust.
372 (gimplify_and_update_call_from_tree): Likewise.
373 (execute_fold_all_builtins): Do not rebuild alias info.
374 (gimplify_and_update_call_from_tree): Properly update VOPs.
375 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
376 (copy_ref_info): Remove memory-tag related code.
377 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
378 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
379 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
381 * tree-ssa-dom.c (gimple_p): Remove typedef.
382 (eliminate_redundant_computations): Adjust.
383 (record_equivalences_from_stmt): Likewise.
384 (avail_expr_hash): Likewise.
385 (avail_expr_eq): Likewise.
386 * tree-ssa-propagate.c (update_call_from_tree): Properly
388 (stmt_makes_single_load): Likewise.
389 (stmt_makes_single_store): Likewise.
390 * tree-ssa-alias.c: Rewrite completely.
391 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
392 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
393 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
394 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
395 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
396 Remove public functions.
397 (pass_reset_cc_flags): Remove.
398 (pass_build_alias): Move ...
399 * tree-ssa-structalias.c (pass_build_alias): ... here.
400 * tree-ssa-alias.c (may_be_aliased): Move ...
401 * tree-flow-inline.h (may_be_aliased): ... here.
402 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
403 count_uses_and_derefs): Move ...
404 * gimple.c: ... here.
405 * gimple.h (count_uses_and_derefs): Declare.
406 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
407 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
408 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
409 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
410 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
411 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
412 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
414 * tree-dfa.c (refs_may_alias_p): Move ...
415 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
416 * tree-ssa-alias.h: New file.
417 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
418 (statement_sink_location): Likewise.
419 * opts.c (decode_options): Do not adjust max-aliased-vops or
420 avg-aliased-vops values.
421 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
422 (TV_CALL_CLOBBER): Likewise.
423 (TV_FLOW_SENSITIVE): Likewise.
424 (TV_FLOW_INSENSITIVE): Likewise.
425 (TV_MEMORY_PARTITIONING): Likewise.
426 (TV_ALIAS_STMT_WALK): New timevar.
427 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
428 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
429 (get_address_description): Remove memory-tag related code.
430 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
431 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
432 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
433 and immediate uses in statements. Document.
434 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
435 (dump_symbols): Remove.
436 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
437 * alias.c (get_deref_alias_set): New function split out from ...
438 (get_alias_set): ... here.
439 * alias.h (get_deref_alias_set): Declare.
440 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
441 type parameter. Remove restrict pointer handling. Create a
442 ref-all pointer in case type-based alias sets do not conflict.
443 (vect_analyze_data_refs): Remove SMT related code.
444 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
445 (vectorizable_load): Likewise.
446 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
447 (DR_SYMBOL_TAG, DR_VOPS): Remove.
448 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
449 Ignore vops and SMTs.
450 (dr_analyze_alias): Likewise..
451 (free_data_ref): Likewise.
452 (create_data_ref): Likewise.
453 (analyze_all_data_dependences): Likewise.
454 (get_references_in_stmt): Adjust.
455 * tree-flow-inline.h (gimple_aliases_computed_p,
456 gimple_addressable_vars, gimple_call_clobbered_vars,
457 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
458 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
459 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
460 gimple_mem_ref_stats): Remove.
461 (gimple_vop): New function.
462 (op_iter_next_use): Remove vuses and mayuses cases.
463 (op_iter_next_def): Remove vdefs case.
464 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
465 (clear_and_done_ssa_iter): Do not set removed fields.
466 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
467 Assert we are not iterating over vuses or vdefs if not also
468 iterating over uses or defs.
469 (op_iter_init_use): Likewise.
470 (op_iter_init_def): Likewise.
471 (op_iter_next_vdef): Remove.
472 (op_iter_next_mustdef): Likewise.
473 (op_iter_init_vdef): Likewise.
474 (compare_ssa_operands_equal): Likewise.
475 (link_use_stmts_after): Handle vuse operand.
476 (is_call_used): Use is_call_clobbered.
477 (is_call_clobbered): Global variables are always call clobbered,
478 query the call-clobbers bitmap.
479 (mark_call_clobbered): Ignore global variables.
480 (clear_call_clobbered): Likewise.
481 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
482 virtual operands sanity check.
483 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
485 (TARGET_MEM_REF): Remove TMR_TAG operand.
486 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
487 Remove call-clobber related code.
488 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
489 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
490 partitions or escape reason.
491 (get_single_def_stmt, get_single_def_stmt_from_phi,
492 get_single_def_stmt_with_phi): Remove.
493 (dump_referenced_vars): Tidy.
494 (get_ref_base_and_extent): Allow bare decls.
495 (collect_dfa_stats): Adjust.
496 * graphite.c (rename_variables_in_stmt): Adjust.
497 (graphite_copy_stmts_from_block): Likewise.
498 (translate_clast): Likewise.
499 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
501 (translate_vuse_through_block): Use the oracle.
502 (phi_translate_1): Adjust.
503 (value_dies_in_block_x): Use the oracle. Cache the outcome
505 (valid_in_sets): Check if the VUSE for
506 a REFERENCE is available.
507 (eliminate): Do not remove stmts during elimination,
508 instead queue and remove them afterwards.
509 (do_pre): Do not rebuild alias info.
510 (pass_pre): Run TODO_rebuild_alias before PRE.
511 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
512 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
513 (mark_all_v_defs_stmt): Remove.
514 (mark_all_v_defs_seq): Adjust.
515 (sra_replace): Likewise.
516 (scalarize_use): Likewise.
517 (scalarize_copy): Likewise.
518 (scalarize_init): Likewise.
519 (scalarize_ldst): Likewise.
521 (tree_sra): Do not rebuild alias info.
522 (tree_sra_early): Adjust.
523 (pass_sra): Run TODO_update_address_taken before SRA.
524 * tree-predcom.c (set_alias_info): Remove.
525 (prepare_initializers_chain): Do not call it.
526 (mark_virtual_ops_for_renaming): Adjust.
527 (mark_virtual_ops_for_renaming_list): Remove.
528 (initialize_root_vars): Adjust.
529 (initialize_root_vars_lm): Likewise.
530 (prepare_initializers_chain): Likewise.
531 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
532 (may_propagate_copy_into_stmt): Likewise.
533 (merge_alias_info): Do nothing for now.
534 (propagate_tree_value_into_stmt): Adjust.
535 (stmt_may_generate_copy): Likewise.
536 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
537 not mark symbols for renaming.
538 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
539 with the same statement, make sure to update the new pointed-to one.
540 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
541 call statements, do not mark symbols for renaming.
542 (mark_operand_necessary): Dump something.
543 (ref_may_be_aliased): New function.
544 (mark_aliased_reaching_defs_necessary_1): New helper function.
545 (mark_aliased_reaching_defs_necessary): Likewise.
546 (mark_all_reaching_defs_necessary_1): Likewise.
547 (mark_all_reaching_defs_necessary): Likewise.
548 (propagate_necessity): Do not process virtual PHIs. For
549 non-aliased loads mark all reaching definitions as necessary.
550 For aliased loads and stores mark the immediate dominating
551 aliased clobbers as necessary.
552 (visited): New global static.
553 (perform_tree_ssa_dce): Free visited bitmap after propagating
555 (remove_dead_phis): Perform simple dead virtual PHI removal.
556 (remove_dead_stmt): Properly unlink virtual operands when
558 (eliminate_unnecessary_stmts): Schedule PHI removal after
560 * tree-ssa-ter.c (is_replaceable_p): Adjust.
561 (process_replaceable): Likewise.
562 (find_replaceable_in_bb): Likewise.
563 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
564 based on the single gimple vop.
565 (verify_flow_insensitive_alias_info): Remove.
566 (verify_flow_sensitive_alias_info): Likewise.
567 (verify_call_clobbering): Likewise.
568 (verify_memory_partitions): Likewise.
569 (verify_alias_info): Likewise.
570 (verify_ssa): Adjust..
571 (execute_update_addresses_taken): Export. Update SSA
572 manually. Optimize only when optimizing. Use a local bitmap.
573 (pass_update_address_taken): Remove TODO_update_ssa, add
575 (pass_update_address_taken): Just use TODO_update_address_taken.
576 (init_tree_ssa): Do not initialize addressable_vars.
577 (verify_ssa): Verify new VUSE / VDEF properties.
578 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
579 Do not call verify_alias_info.
580 (delete_tree_ssa): Clear the VUSE, VDEF operands.
581 Do not free the loaded and stored syms bitmaps. Reset the escaped
582 and callused solutions. Do not free addressable_vars.
583 Remove memory-tag related code.
584 (warn_uninitialized_var): Aliases are always available.
585 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
586 * lambda-code.c (can_put_in_inner_loop): Adjust.
587 (can_put_after_inner_loop): Likewise.
588 (perfect_nestify): Likewise.
589 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
590 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
591 (vectorizable_conversion): Do not mark symbols for renaming.
592 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
593 (expand_call_inline): Unlink the calls virtual operands before
595 (tree_function_versioning): Do not call update_ssa if we are not
596 updating clones. Simplify.
597 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
598 (propagate_with_phi): Likewise..
599 * tree-outof-ssa.c (create_temp): Remove memory tag and call
600 clobber code. Assert we are not aliased or global.
601 * tree-flow.h: Include tree-ssa-alias.h
602 (enum escape_type): Remove.
603 (struct mem_sym_stats_d): Likewise.
604 (struct mem_ref_stats_d): Likewise.
605 (struct gimple_df): Add vop member. Remove global_var,
606 call_clobbered_vars, call_used_vars, addressable_vars,
607 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
608 escaped and callused members.
609 (struct ptr_info_def): Remove all members, add points-to solution
611 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
612 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
613 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
614 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
615 (tree-ssa-alias.o): Likewise.
616 (toplev.o): Add tree-ssa-alias.h
617 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
618 * gimple.c (gimple_set_bb): Fix off-by-one error.
619 (is_gimple_reg): Do not handle memory tags.
620 (gimple_copy): Also copy virtual operands.
621 Delay updating the statement. Do not reset loaded and stored syms.
622 (gimple_set_stored_syms): Remove.
623 (gimple_set_loaded_syms): Likewise.
624 (gimple_call_copy_skip_args): Copy the virtual operands
625 and mark the new statement modified.
626 * tree-ssa-structalias.c (may_alias_p): Remove.
627 (set_uids_in_ptset): Take the alias set to prune with as
628 parameter. Fold in the alias test of may_alias_p.
629 (compute_points_to_sets): Compute whether a ptr is dereferenced
631 (process_constraint): Deal with &ANYTHING on the lhs, reject all
632 other ADDRESSOF constraints on the lhs.
633 (get_constraint_for_component_ref): Assert that we don't get
634 ADDRESSOF constraints from the base of the reference.
635 Properly generate UNKNOWN_OFFSET for DEREF if needed.
636 (struct variable_info): Remove collapsed_to member.
637 (get_varinfo_fc): Remove.
638 (new_var_info): Do not set collapsed_to.
639 (dump_constraint): Do not follow cycles.
640 (dump_constraint_graph): Likewise.
641 (build_pred_graph): Likewise.
642 (build_succ_graph): Likewise.
643 (rewrite_constraints): Likewise.
644 (do_simple_structure_copy): Remove.
645 (do_rhs_deref_structure_copy): Remove.
646 (do_lhs_deref_structure_copy): Remove.
647 (collapse_rest_of_var): Remove.
648 (do_structure_copy): Re-implement.
649 (pta_stats): New global variable.
650 (dump_pta_stats): New function.
651 (struct constraint_expr): Make offset signed.
652 (UNKNOWN_OFFSET): Define special value.
653 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
654 (solution_set_expand): New helper function split out from ...
655 (do_sd_constraint): ... here.
656 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
657 (do_ds_constraint): Likewise.
658 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
659 and CALLUSED = *CALLUSED.
660 (set_union_with_increment): Make inc argument signed.
662 (get_constraint_for_ptr_offset): Handle unknown and negative
664 (first_vi_for_offset): Handle offsets before start. Bail
665 out early for offsets beyond the variable extent.
666 (first_or_preceding_vi_for_offset): New function.
667 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
668 Together with ESCAPED = *ESCAPED this properly computes reachability.
669 (find_what_var_points_to): New function.
670 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
671 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
672 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
673 pt_solutions_intersect): New functions.
674 (compute_call_used_vars): Remove.
675 (compute_may_aliases): New main entry into PTA computation.
676 * gimple.h (gimple_p): New typedef.
677 (struct gimple_statement_base): Remove references_memory_p.
678 (struct gimple_statement_with_memory_ops_base): Remove
679 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
681 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
682 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
683 gimple_set_references_memory): Remove.
684 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
685 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
687 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
688 (verify_expr): Allow RESULT_DECL.
689 (gimple_duplicate_bb): Do not copy virtual operands.
690 (gimple_duplicate_sese_region): Adjust.
691 (gimple_duplicate_sese_tail): Likewise.
692 (mark_virtual_ops_in_region): Remove.
693 (move_sese_region_to_fn): Do not call it.
694 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
696 (execute_function_todo): Handle TODO_update_address_taken,
697 call execute_update_addresses_taken for TODO_rebuild_alias.
698 (execute_todo): Adjust.
699 (execute_one_pass): Init dump files early.
700 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
702 (create_general_new_stmt): Clear vops.
703 * tree-ssa-reassoc.c (get_rank): Adjust.
704 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
705 symbols for renaming.
706 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
707 (PARAM_AVG_ALIASED_VOPS): Likewise.
708 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
709 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
710 * tree-ssa-operands.c: Simplify for new virtual operand
712 (operand_build_cmp, copy_virtual_operands,
713 create_ssa_artificial_load_stmt, add_to_addressable_set,
714 gimple_add_to_addresses_taken): Remove public functions.
715 (unlink_stmt_vdef): New function.
717 2009-04-03 Alan Modra <amodra@bigpond.net.au>
719 * config.gcc (powerpc-*-linux*): Merge variants.
721 2009-04-02 Chao-ying Fu <fu@mips.com>
722 James Grosbach <james.grosbach@microchip.com>
724 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
725 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
727 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
728 keep_interrupts_masked_p, use_debug_exception_return_p.
729 (mips_attribute_table): Add interrupt, use_shadow_register_set,
730 keep_interrupts_masked, use_debug_exception_return.
731 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
732 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
734 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
735 (mips_print_operand): Process COP0 registers to print $0 .. $31
736 correctly for GAS to process.
737 (mips_interrupt_extra_call_saved_reg_p): New function.
738 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
740 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
741 (mips_compute_frame_info): Add supports for interrupt context that
742 includes doubleword accumulators and COP0 registers.
743 (mips_for_each_saved_acc): New function.
744 (mips_for_each_saved_gpr_and_fpr): Change the function name from
745 mips_for_each_saved_reg.
746 (mips_save_reg): Save accumulators.
747 (mips_kernel_reg_p): A new for_each_rtx callback.
748 (mips_expand_prologue): Support interrupt handlers.
749 (mips_restore_reg): Restore accumulators.
750 (mips_expand_epilogue): Support interrupt handlers.
751 (mips_can_use_return_insn): Return false for interrupt handlers.
752 (mips_epilogue_uses): New function.
753 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
754 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
755 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
756 cop0_move): New instructions.
757 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
758 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
760 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
762 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
763 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
764 interrupt handlers, we use K0 as the temporary register.
765 (EPILOGUE_USES): Change to a function call.
766 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
767 handlers, we use K0 as the temporary register.
769 * doc/extend.texi (Function Attributes): Document interrupt,
770 use_shadow_register_set, keep_interrupts_masked,
771 use_debug_exception_return for MIPS attributes.
773 2009-04-03 Alan Modra <amodra@bigpond.net.au>
775 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
776 Remove a number of t-files from tmake_file.
777 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
778 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
779 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
780 target_prototype, not TARGET_PROTOTYPE.
781 (LINK_OS_GNU_SPEC): Define.
782 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
783 and darwin-ldoubdle.c.
785 2009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
788 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
789 (cpp_options): Ditto.
790 (default_compilers): Ditto.
791 (display_help): Ditto.
792 (process_command): Ditto.
794 (set_input): Use lbasename instead of duplicate code.
795 (save_temps_prefix): New static for -save-temps=obj.
796 (save_temps_length): Ditto.
798 * doc/invoke.texi (-save-temps=obj): Document new variant to
801 2009-04-02 Jeff Law <law@redhat.com>
803 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
806 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
808 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
809 * configure: Regenerated.
811 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
813 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
814 share the argument list.
816 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
820 2009-02-12 Diego Novillo <dnovillo@google.com>
822 * varpool.c (debug_varpool): New.
823 * cgraph.h (debug_varpool): Declare.
825 2009-04-02 Jan Hubicka <jh@suse.cz>
827 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
830 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
832 * config/i386/i386.c (ix86_abi): Move initialization to ...
833 (override_options): Here.
835 2009-04-02 Christian Bruel <christian.bruel@st.com>
837 * config/sh/sh.c (sh_dwarf_register_span): New function.
838 (TARGET_DWARF_REGISTER_SPAN): Define.
839 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
841 2009-04-02 Ira Rosen <irar@il.ibm.com>
843 PR tree-optimization/39595
844 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
845 interleaved loads group is not greater than the SLP group size.
847 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
849 * builtins.c (is_builtin_name): New.
850 (called_as_built_in): Use is_builtin_name.
851 * tree.h (is_builtin_name): New.
852 * varasm.c (incorporeal_function_p): Use is_builtin_name
854 2009-04-02 Andrew Stubbs <ams@codesourcery.com>
856 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
858 2009-04-02 Dodji Seketeli <dodji@redhat.com>
861 * c-decl.c: (clone_underlying_type): Move this ...
862 * c-common.c (set_underlying_type): ... here.
863 Also, make sure the function properly sets TYPE_STUB_DECL() on
864 the newly created typedef variant type.
865 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
866 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry points.
868 2009-04-02 Richard Guenther <rguenther@suse.de>
870 PR tree-optimization/37221
871 * tree-flow.h (degenerate_phi_result): Declare.
872 * tree-ssa-dom.c (degenerate_phi_result): Export.
873 * tree-scalar-evolution.c (analyze_initial_condition): If
874 the initial condition is defined by a degenerate PHI node
875 use the degenerate value.
877 2009-04-01 Eric Botcazou <ebotcazou@adacore.com>
879 PR rtl-optimization/39588
880 * combine.c (merge_outer_ops): Do not set the constant when this
882 (simplify_shift_const_1): Do not modify it either in this case.
884 2009-04-01 Steven Bosscher <steven@gcc.gnu.org>
886 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
887 tuning is deprecated if -mtune value is set to an Itanium1 variant.
889 2009-04-01 Janis Johnson <janis187@us.ibm.com>
892 * c-lex.c (interpret_float): Default (no suffix) is double.
894 2009-04-1 Xinliang David Li <davidxl@google.com>
896 * config/i386/i386.c (legitimate_constant_p): Recognize
897 all one vector constant.
899 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
901 * gcc/config/vax/vax.c: Add #includes to silence warnings.
902 Change #include order to silence two warnings.
904 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
906 * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
907 (ASM_SPEC): Pass -k to the assembler for PIC code.
909 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
911 * gcc/config.gcc: Add vax-*-linux* to the switch.
912 * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
913 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
915 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
917 * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
918 Use predicate macros instead of GET_CODE() == foo.
919 * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
920 ashlsi3, rotrsi3, <unnamed>): Likewise.
922 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
924 * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
925 jbbccihi, jbbccisi): Remova trailing whitespace.
926 * gcc/config/vax/constraints.md: Likewise.
927 * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
928 * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
929 * gcc/config/vax/predicates.md: Likewise.
930 * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
931 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
932 * gcc/config/vax/vax.h: Likewise.
933 * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
935 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
937 * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
938 (indirectable_address_p, adjacent_operands_p): Add spaces around
940 * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
942 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
944 * gcc/config/vax/vax.c (legitimate_constant_address_p,
945 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
946 index_term_p, reg_plus_index_p, legitimate_address_p,
947 vax_mode_dependent_address_p): Update comments to match functions
948 modified by the recent int->bool conversion.
950 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
952 * gcc/config/vax/builtins.md: Update copyright message.
953 * gcc/config/vax/constraints.md: Likewise.
954 * gcc/config/vax/netbsd-elf.h: Likewise.
955 * gcc/config/vax/predicates.md: Likewise.
956 * gcc/config/vax/vax-protos.h: Likewise.
957 * gcc/config/vax/vax.c: Likewise.
958 * gcc/config/vax/vax.h: Likewise.
959 * gcc/config/vax/vax.md: Likewise.
960 * gcc/config/vax/vax.opt: Likewise.
962 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
964 * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
965 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
966 * gcc/config/vax/constraints.md (B, R): Likewise.
967 * gcc/config/vax/predicates.md (external_memory_operand,
968 nonimmediate_addsub_di_operand): Likewise.
969 * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
970 * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
971 untyped_call): Likewise.
973 2009-04-01 Matt Thomas <matt@3am-software.com>
975 * config/vax/predicates.md: New file. (symbolic_operand,
976 local_symbolic_operand, external_symbolic_operand,
977 external_const_operand, nonsymbolic_operand, external_memory_operand,
978 indirect_memory_operand, indexed_memory_operand,
979 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
980 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
982 * config/vax/constraints.md: New file. (Z0, U06, U08, U16, CN6, S08,
983 S16, I, J, K, L, M, N, O, G, Q, B, R, T): New constraint.
984 * config/vax/builtins.md: New file. (ffssi2, ffssi2_internal,
985 sync_lock_test_and_set<mode>, jbbssiqi, jbbssihi, jbbssisi,
986 sync_lock_release<mode>, jbbcciqi, jbbccihi, jbbccisi): Define.
987 * config/vax/vax.opt (mqmath): Add option.
988 * config/vax/vax.md (isfx): Extend with DI.
989 (VAXintQH, VAXintQHSD): Define.
990 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
991 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
992 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
993 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
994 (movdi): Update constraints and use vax_output_int_move().
995 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
996 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
997 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
999 (mov<mode>): Extend accepted operand types.
1000 (subdi3_old): Rename from subdi3, change update constraints and use
1001 a new implementation.
1002 * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
1003 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
1004 MOVE_RATIO, CLEAR_RATIO): Define.
1005 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
1006 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
1007 (PRINT_OPERAND): Redefine using a function instead of inlined code.
1008 * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
1009 (split_quadword_operands): Make static and really allow variable
1011 (print_operand_address): Update for PIC generation.
1012 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
1013 indexable_address_p, fixup_mathdi_operand,
1014 vax_expand_addsub_di_operands, adjacent_operands_p): New.
1015 (vax_float_literal, legitimate_constant_p,
1016 indirectable_constant_address_p, index_term_p,
1017 reg_plus_index_p): Return bool instead of int.
1018 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
1020 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
1022 (vax_output_conditional_branch): Indent.
1023 (legitimate_constant_address_p, indirectable_constant_address_p,
1024 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
1025 vax_mode_dependent_address_p): Return bool instead of int, update for
1027 * config/vax/vax-protos.h (legitimate_constant_address_p,
1028 legitimate_constant_p, legitimate_address_p,
1029 vax_mode_dependent_address_p): Change declaration to bool.
1030 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
1031 vax_expand_addsub_di_operands, vax_output_int_subtract,
1032 vax_output_movmemsi): Declare.
1033 (split_quadword_operands, vax_float_literal): Delete declaration.
1034 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
1035 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
1036 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
1037 ASM_OUTPUT_DWARF_PCREL): Define.
1038 (ASM_SPEC): Change definition to allow PIC generation.
1040 2009-04-01 Jakub Jelinek <jakub@redhat.com>
1043 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
1044 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
1045 (booldi3_internal3): Use boolean_or_operator instead of
1048 2009-04-01 Joseph Myers <joseph@codesourcery.com>
1051 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
1052 declarator whose size is not an integer constant expression but
1053 folds to an integer constant, then treat it as a constant
1056 2009-04-01 Richard Guenther <rguenther@suse.de>
1058 * fold-const.c (fold_plusminus_mult_expr): Do not fold
1059 i * 4 + 2 to (i * 2 + 1) * 2.
1061 2009-04-01 Jakub Jelinek <jakub@redhat.com>
1064 * c-parser.c (c_parser_asm_statement): Skip until close paren and
1065 return if c_parser_asm_string_literal returned NULL.
1067 2009-04-01 Nick Clifton <nickc@redhat.com>
1069 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
1071 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
1072 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
1073 other typedefs to avoid conflicts with libgcc2.c. Define labels
1074 to gain 16-bit bit-manipulation functions from libgcc2.c and then
1076 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
1077 to gain 16-bit trapping arithmetic functions from libgcc2.c and
1080 2009-04-01 Rafael Avila de Espindola <espindola@google.com>
1082 * varasm.c (default_function_rodata_section): Declare DOT as const char*.
1084 2009-04-01 Kai Tietz <kai.tietz@onevision.com>
1085 Andrey Galkin <agalkin@hypercom.com>
1088 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
1089 Make object_name unique for each process.
1091 2009-04-01 Jakub Jelinek <jakub@redhat.com>
1094 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
1095 addressable variables in the parallel that could go out of scope while
1096 running queued tasks.
1098 2009-04-01 Anatoly Sokolov <aesok@post.ru>
1100 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
1101 (CASE_VALUES_THRESHOLD): Redefine.
1102 * config/avr/avr.c (avr_override_options): Remove initialization of
1103 avr_case_values_threshold variable.
1104 (avr_case_values_threshold): Remove variable. Add new function.
1105 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
1106 * config/avr/avr.opt (mno-tablejump): Remove option.
1107 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
1109 2009-04-01 DJ Delorie <dj@redhat.com>
1111 * varasm.c (default_function_rodata_section): Don't assume
1112 anything about where the first '.' in the section name is.
1114 2009-04-01 Alan Modra <amodra@bigpond.net.au>
1116 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
1117 rs6000_emit_stack_tie.
1119 2009-03-31 Ian Lance Taylor <iant@google.com>
1121 * tree-eh.c (tree_remove_unreachable_handlers): Compare
1122 gimple_code with GIMPLE_RESX, not RESX.
1124 2009-03-31 Joseph Myers <joseph@codesourcery.com>
1126 * c-common.c (c_get_ident): New.
1127 (c_common_nodes_and_builtins): Call it for type names that may be
1130 2009-04-01 Ben Elliston <bje@au.ibm.com>
1132 * config/rs6000/sysv4.opt (msdata): Improve option description.
1134 2009-03-31 Steve Ellcey <sje@cup.hp.com>
1136 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
1137 (divdf3_internal_lat): Remove.
1138 (divxf3_internal_lat): Remove.
1139 (divxf3_internal_thr): Remove.
1140 (divxf): Use divxf3_internal.
1141 * config/ia64/div.md (divsf3_internal_lat): New.
1142 (divdf3_internal_lat): New.
1143 (divxf3_internal): New.
1145 2009-03-31 Joseph Myers <joseph@codesourcery.com>
1148 * Makefile.in (USE_GCC_STDINT): Define.
1149 (stmp-int-hdrs): Install stdint.h if applicable.
1150 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
1152 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
1153 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
1154 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
1155 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1156 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1157 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1158 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1159 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1160 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1161 (c_common_nodes_and_builtins): Initialize
1162 underlying_wchar_type_node. Do not initialize
1163 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
1164 nodes for new types.
1165 (c_stddef_cpp_builtins): Define macros for new types.
1166 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
1168 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
1169 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
1170 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
1171 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
1172 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
1173 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
1174 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
1175 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
1176 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
1177 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
1178 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
1179 int16_type_node, int32_type_node, int64_type_node,
1180 uint8_type_node, uint16_type_node, c_uint32_type_node,
1181 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
1182 int_least32_type_node, int_least64_type_node,
1183 uint_least8_type_node, uint_least16_type_node,
1184 uint_least32_type_node, uint_least64_type_node,
1185 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
1186 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
1187 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
1188 uintptr_type_node): Define.
1189 * c-cppbuiltin.c (builtin_define_constants,
1190 builtin_define_type_minmax): New.
1191 (builtin_define_stdint_macros): Define more macros.
1192 (c_cpp_builtins): Define more limit macros.
1194 (builtin_define_type_max): Define in terms of
1195 builtin_define_type_minmax. Remove is_long parameter. All
1197 * config.gcc (use_gcc_stdint): Define.
1198 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
1199 Add newlib-stdint.h for generic targets.
1200 * config/glibc-stdint.h, config/newlib-stdint.h,
1201 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
1202 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
1203 * config/score/score.h (UINTPTR_TYPE): Define.
1204 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
1205 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
1206 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1207 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1208 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1209 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1210 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1211 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1212 * config/spu/spu.h (STDINT_LONG32): Define.
1213 * configure.ac (use_gcc_stdint): Substitute.
1214 * configure: Regenerate.
1215 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
1216 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
1217 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
1218 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
1219 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
1220 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
1221 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
1222 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
1223 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
1224 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
1225 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
1226 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
1227 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
1228 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
1229 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
1230 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
1231 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
1232 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
1233 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
1234 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
1235 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
1236 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
1237 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
1238 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1239 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1240 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1241 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1242 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1243 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
1245 2009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
1247 * loop-iv.c (suitable_set_for_replacement): Renamed from
1248 simplify_using_assignment; changed to return bool and to accept new
1249 args DEST and SRC. Return true iff we find a source/destination pair
1250 that can be used to make a replacement, and fill SRC and DEST if so.
1251 Remove arg ALTERED. Don't deal with altered regs here. All callers
1253 (simplify_using_initial_values): Deal with altered regs here and track
1254 more precisely the effect they have on the validity of our expression.
1256 * loop-iv.c (simplify_using_condition): A condition of the form
1257 (EQ REG CONST) can be used to simply make a substitution.
1258 (simplify_using_initial_values): Keep track of conditions we have seen
1259 and keep using them to simplify new expressions, while applying the
1260 same substitutions to them as to the expression.
1262 * simplify-rtx.c (simplify_relational_operation_1): Simplify
1263 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
1266 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
1267 changed. Use this when trying to improve the upper bound.
1268 Generate the comparison by using simplify_gen_relational.
1270 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
1272 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
1274 (simplify_using_assignment, simplify_using_initial_values): Call
1275 replace_in_expr to make replacements. Call replace_single_def_regs
1276 once on the initial version of the expression.
1278 2009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1281 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
1283 2009-03-31 Richard Guenther <rguenther@suse.de>
1286 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
1287 equality comparisons. Fold C - X CMP X if C % 2 == 1.
1289 2009-03-31 Richard Guenther <rguenther@suse.de>
1291 * tree.h (div_if_zero_remainder): Declare.
1292 * fold-const.c (div_if_zero_remainder): Export.
1293 * tree-ssa-forwprop.c
1294 (forward_propagate_addr_into_variable_array_index): Handle
1295 constant array index addition outside of the variable index.
1297 2009-03-31 Joseph Myers <joseph@codesourcery.com>
1300 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
1301 define_splits, floatunssi<mode>2): Require x87 conversions from
1302 DImode to be permitted.
1304 2009-03-31 Joseph Myers <joseph@codesourcery.com>
1306 PR preprocessor/15638
1307 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
1309 2009-03-31 Richard Guenther <rguenther@suse.de>
1313 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
1314 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
1315 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
1316 a separate statement.
1317 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
1318 (lookup_tmp_var): Likewise.
1319 (is_gimple_formal_tmp_or_call_rhs): Remove.
1320 (is_gimple_reg_or_call_rhs): Rename to ...
1321 (is_gimple_reg_rhs_or_call): ... this.
1322 (is_gimple_mem_or_call_rhs): Rename to ...
1323 (is_gimple_mem_rhs_or_call): ... this.
1324 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
1325 DECL_GIMPLE_REG_P only if is_formal is true.
1326 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
1327 for non-proper post-modify expression gimplification.
1328 (gimplify_self_mod_expr): For post-modify expressions gimplify
1329 the lvalue to a minimal lvalue.
1330 (rhs_predicate_for): Remove formal temp case.
1331 (gimplify_modify_expr_rhs): Likewise.
1332 (gimplify_addr_expr): Use is_gimple_reg.
1333 (gimplify_expr): Remove formal temp cases.
1334 (gimple_regimplify_operands): Likewise.
1335 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
1336 and FILTER_EXPR like constants.
1337 * gimple.c (walk_gimple_op): Fix val_only initialization, use
1339 (is_gimple_formal_tmp_rhs): Remove.
1340 (is_gimple_reg_rhs): Remove special casing.
1341 (is_gimple_mem_rhs): Fix.
1342 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
1343 (is_gimple_formal_tmp_var): Remove.
1344 (is_gimple_formal_tmp_reg): Likewise.
1345 (is_gimple_min_lval): Allow invariant component ref parts.
1346 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
1347 is_gimple_formal_tmp_reg): Remove declarations.
1348 * tree-cfg.c (verify_expr): Verify that variables with address
1349 taken do not have DECL_GIMPLE_REG_P set.
1350 * tree-mudflap.c (mf_build_check_statement_for): Use
1351 force_gimple_operand instead of gimplify_expr.
1353 2009-03-31 Ayal Zaks <zaks@il.ibm.com>
1355 * modulo-sched.c (sms_schedule_by_order): Pass the actual
1356 schedulable rows to compute_split_row.
1358 2009-03-31 Ben Elliston <bje@au.ibm.com>
1361 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
1364 2009-03-31 Alan Modra <amodra@bigpond.net.au>
1366 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
1367 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
1368 * configure: Regenerate.
1369 * config.in: Regenerate.
1370 * config/rs6000/rs6000.opt (mtls-markers): Add.
1371 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
1372 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
1373 (tls_ld_aix, tls_ld_sysv): Likewise.
1374 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
1375 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
1377 2009-03-31 Alan Modra <amodra@bigpond.net.au>
1379 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
1381 2009-03-30 Jan Hubicka <jh@suse.cz>
1383 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
1385 (tree_remove_unreachable_handlers): Cleanup EH predecestor
1386 detection and label handling.
1388 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
1390 * ira-int.h (ira_allocno): Rename left_conflicts_num to
1391 left_conflicts_size.
1392 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
1393 ALLOCNO_LEFT_CONFLICTS_SIZE.
1395 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
1396 remove_allocno_from_bucket_and_push,
1397 allocno_spill_priority_compare, push_allocnos_to_stack,
1398 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
1399 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
1400 (setup_allocno_left_conflicts_num): Ditto. Rename to
1401 setup_allocno_left_conflicts_size.
1402 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
1403 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
1404 setup_allocno_left_conflicts_size instead of
1405 setup_allocno_left_conflicts_num.
1407 * ira-build.c (ira_create_allocno): Use
1408 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
1409 ALLOCNO_LEFT_CONFLICTS_NUM.
1411 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
1413 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
1414 instead of DF_LR_OUT.
1416 * ira-lives.c (process_bb_node_lives): Ditto.
1418 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
1419 instead of DF_LR_{OUT,IN}.
1421 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
1423 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
1425 2009-03-30 Jan Hubicka <jh@suse.cz>
1427 * except.c (label_to_region_map): Fix thinko.
1429 2009-03-30 Steve Ellcey <sje@cup.hp.com>
1432 * tree.h (tree_find_value): New declaration.
1433 * tree.c (tree_find_value): New function.
1434 * varasm.c (assemble_external): Avoid duplicate entries on lists.
1436 2009-03-30 Jakub Jelinek <jakub@redhat.com>
1439 * c-decl.c (struct c_binding): Add locus field.
1440 (bind): Add locus argument, set locus field from it.
1441 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
1442 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
1443 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
1444 implicitly_declare, undeclared_variable, lookup_label,
1445 declare_label, c_make_fname_decl, c_builtin_function,
1446 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
1449 2008-03-30 H.J. Lu <hongjiu.lu@intel.com>
1452 * config/i386/i386.c (classify_argument): Check total size of
1455 2009-03-30 Martin Jambor <mjambor@suse.cz>
1457 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
1458 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
1459 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
1462 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
1463 seen_variable_array_ref while also traversing a union.
1465 * tree-inline.c (optimize_inline_calls): Do not call
1466 cgraph_node_remove_callees.
1467 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
1468 (pass_remove_cgraph_callee_edges): New variable.
1469 * passes.c (init_optimization_passes): Add
1470 pass_remove_cgraph_callee_edges after early inlining and before all
1471 late intraprocedural passes.
1473 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
1475 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
1477 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
1480 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
1482 * combine.c (simplify_comparison): Use have_insn_for.
1483 * dojump.c (do_jump): Likewise.
1485 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
1487 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
1488 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
1489 sparc_compare_op0 like sparc_compare_emitted used to be handled.
1490 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
1491 instead of sparc_compare_emitted.
1492 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
1493 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
1494 instead of sparc_compare_emitted.
1496 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
1498 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
1499 enter/exit cfglayout mode.
1500 (pass_partition_block): Require it.
1501 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
1502 (combine_instructions): Track basic blocks instead of labels.
1503 (update_cfg_for_uncondjump): New.
1504 (try_combine): Use it. Update jumps after rescanning.
1505 (pass_combine): Require PROP_cfglayout.
1506 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
1508 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
1510 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
1511 Provide/destroy PROP_cfglayout respectively.
1512 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
1513 * tree-pass.h (PROP_cfglayout): New.
1515 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
1517 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
1518 fold_convert_const_fixed_from_fixed,
1519 fold_convert_const_fixed_from_int,
1520 fold_convert_const_fixed_from_real, fold_negate_const): Do not
1521 set TREE_CONSTANT_OVERFLOW.
1522 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
1523 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
1525 2009-03-30 Ira Rosen <irar@il.ibm.com>
1527 * tree-vect-loop-manip.c: New file.
1528 * tree-vectorizer.c: Update documentation and included files.
1529 (vect_loop_location): Make extern.
1530 (rename_use_op): Move to tree-vect-loop-manip.c
1531 (rename_variables_in_bb, rename_variables_in_loop,
1532 slpeel_update_phis_for_duplicate_loop,
1533 slpeel_update_phi_nodes_for_guard1,
1534 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
1535 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
1536 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
1537 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
1538 find_loop_location): Likewise.
1539 (new_stmt_vec_info): Move to tree-vect-stmts.c.
1540 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
1541 get_vectype_for_scalar_type, vect_is_simple_use,
1542 supportable_widening_operation, supportable_narrowing_operation):
1544 (bb_in_loop_p): Move to tree-vect-loop.c.
1545 (new_loop_vec_info, destroy_loop_vec_info,
1546 reduction_code_for_scalar_code, report_vect_op,
1547 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
1548 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
1549 (vect_supportable_dr_alignment): Likewise.
1550 * tree-vectorizer.h (tree-data-ref.h): Include.
1551 (vect_loop_location): Declare.
1552 Reorganize function declarations according to the new file structure.
1553 * tree-vect-loop.c: New file.
1554 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
1555 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
1556 * tree-vect-data-refs.c: New file.
1557 * tree-vect-patterns.c (timevar.h): Don't include.
1558 * tree-vect-stmts.c: New file.
1559 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
1560 tree-vect-slp.c, tree-vect-loop.c.
1561 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
1562 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
1563 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
1564 (tree-vect-analyze.o): Remove.
1565 (tree-vect-transform.o): Likewise.
1566 (tree-vect-data-refs.o): Add rule.
1567 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
1568 tree-vect-slp.o): Likewise.
1569 (tree-vect-patterns.o): Remove redundant dependencies.
1570 (tree-vectorizer.o): Likewise.
1571 * tree-vect-slp.c: New file.
1573 2009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1575 * optc-gen.awk: Warn if an option flag has multiple different
1578 2009-03-30 Sebastian Pop <sebastian.pop@amd.com>
1580 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
1581 -floop-block): Document dependences on PPL, CLooG and Graphite.
1583 2009-03-30 Joseph Myers <joseph@codesourcery.com>
1585 PR rtl-optimization/323
1586 * c-common.c (c_fully_fold, convert_and_check,
1587 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
1588 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
1589 * c-common.def (EXCESS_PRECISION_EXPR): New.
1590 * c-cppbuiltin.c (builtin_define_float_constants): Define
1591 constants with enough digits for long double.
1592 * c-lex.c (interpret_float): Interpret constant with excess
1593 precision where appropriate.
1594 * c-opts.c (c_common_post_options): Set
1595 flag_excess_precision_cmdline. Give an error for
1596 -fexcess-precision=standard for C++ for processors where the
1597 option is significant.
1598 * c-parser.c (c_parser_conditional_expression): Handle excess
1599 precision in condition.
1600 * c-typeck.c (convert_arguments): Handle arguments with excess
1602 (build_unary_op): Move excess precision outside operation.
1603 (build_conditional_expr): Likewise.
1604 (build_compound_expr): Likewise.
1605 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
1606 (build_modify_expr): Handle excess precision in RHS.
1607 (convert_for_assignment): Handle excess precision in converted
1609 (digest_init, output_init_element, process_init_element): Handle
1610 excess precision in initializer.
1611 (c_finish_return): Handle excess precision in return value.
1612 (build_binary_op): Handle excess precision in operands and add
1613 excess precision as needed for operation.
1614 * common.opt (-fexcess-precision=): New option.
1615 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
1616 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
1617 For standard excess precision, output explicit conversion to and
1618 truncation from XFmode.
1619 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
1620 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
1621 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
1622 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
1623 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
1624 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
1625 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
1626 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
1627 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
1628 define_splits, sqrt<mode>2): Disable where appropriate for
1629 standard excess precision.
1630 * convert.c (convert_to_real): Do not shorten arithmetic to type
1631 for which excess precision would be used.
1632 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
1633 * doc/invoke.texi (-fexcess-precision=): Document option.
1634 (-mfpmath=): Correct index entry.
1635 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
1636 flag_excess_precision): New.
1637 * langhooks.c (lhd_post_options): Set
1638 flag_excess_precision_cmdline.
1639 * opts.c (common_handle_option): Handle -fexcess-precision=.
1640 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
1641 init_excess_precision): New.
1642 (lang_dependent_init_target): Call init_excess_precision.
1643 * tree.c (excess_precision_type): New.
1644 * tree.h (excess_precision_type): Declare.
1646 2009-03-30 Joseph Myers <joseph@codesourcery.com>
1649 * c-typeck.c (build_component_ref): Do not copy qualifiers from
1650 non-lvalue to component.
1652 2009-03-29 Joseph Myers <joseph@codesourcery.com>
1654 PR preprocessor/34695
1655 * Makefile.in (c-opts.o): Depend on c-tree.h.
1656 * c-common.c: Move down include of diagnostic.h.
1657 (done_lexing, c_cpp_error): New.
1658 * c-common.h (done_lexing): Declare.
1659 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
1661 * c-opts.c: Include c-tree.h.
1662 (c_common_init_options): Set preprocessor error callback.
1663 (c_common_handle_option): Do not set preprocessor
1664 inhibit_warnings, warnings_are_errors, warn_system_headers,
1665 pedantic_errors or inhibit_warnings flags.
1666 (c_common_post_options): Do not check cpp_errors (parse_in).
1667 (c_common_finish): Do not output dependencies if there were
1668 errors. Do not check return value of cpp_finish.
1669 * c-ppoutput.c (pp_file_change): Set input_location.
1670 * c-tree.h (c_cpp_error): Declare.
1671 * diagnostic.c (diagnostic_set_info_translated): Also initialize
1673 (diagnostic_build_prefix): Check override_column.
1674 * diagnostic.h (diagnostic_info): Add override_column field.
1675 (diagnostic_override_column): Define.
1677 2009-03-28 Paolo Bonzini <bonzini@gnu.org>
1679 * c-common.c (c_expand_expr, c_staticp): Remove.
1680 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
1681 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
1682 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
1683 * c-gimplify.c (gimplify_compound_literal_expr,
1684 optimize_compound_literals_in_ctor): Remove.
1685 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
1686 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
1687 * c-semantics.c (emit_local_var): Remove.
1689 * langhooks-def.h (lhd_expand_expr): Remove.
1690 * langhooks.c (lhd_expand_expr): Remove.
1691 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
1693 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
1694 handling from c-semantics.c; don't call into langhook.
1695 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
1696 * gimplify.c (gimplify_compound_literal_expr,
1697 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
1698 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
1699 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
1700 as was done in c-gimplify.c.
1701 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
1702 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
1703 Move from c-common.h.
1704 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
1706 * tree.c (staticp): Do not call langhook.
1707 * langhooks.c (lhd_staticp): Delete.
1708 * langhooks-def.h (lhd_staticp): Delete prototype.
1709 (LANG_HOOKS_STATICP): Delete.
1710 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
1712 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
1713 instead of DECL_STMTs.
1715 2009-03-29 Joseph Myers <joseph@codesourcery.com>
1723 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
1725 (fold_call_expr): Return a NOP_EXPR from folding rather than the
1726 contained expression.
1727 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
1728 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
1729 conditional expressions for C.
1730 (decl_constant_value_for_optimization): Move from
1731 decl_constant_value_for_broken_optimization in c-typeck.c. Check
1732 whether optimizing and that the expression is a VAR_DECL not of
1733 array type instead of doing such checks in the caller. Do not
1734 check pedantic. Call gcc_unreachable for C++.
1735 * c-common.def (C_MAYBE_CONST_EXPR): New.
1736 * c-common.h (c_fully_fold, c_save_expr,
1737 decl_constant_value_for_optimization): New prototypes.
1738 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
1739 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
1740 EXPR_INT_CONST_OPERANDS): Define.
1741 * c-convert.c (convert): Strip nops from expression.
1742 * c-decl.c (groktypename): Take extra parameters expr and
1743 expr_const_operands. Update call to grokdeclarator.
1744 (start_decl): Update call to grokdeclarator. Add statement for
1745 expressions used in type of decl.
1746 (grokparm): Update call to grokdeclarator.
1747 (push_parm_decl): Update call to grokdeclarator.
1748 (build_compound_literal): Add parameter non_const and build a
1749 C_MAYBE_COSNT_EXPR if applicable.
1750 (grokdeclarator): Take extra parameters expr and
1751 expr_const_operands. Track expressions used in declaration
1752 specifiers and declarators. Fold array sizes and track whether
1753 they are constant expressions and whether they are integer
1754 constant expressions.
1755 (parser_xref_tag): Set expr and expr_const_operands fields in
1757 (grokfield): Update call to grokdeclarator.
1758 (start_function): Update call to grokdeclarator.
1759 (build_null_declspecs): Set expr and expr_const_operands fields in
1761 (declspecs_add_type): Handle expressions in typeof specifiers.
1762 * c-parser.c (c_parser_declspecs): Set expr and
1763 expr_const_operands fields for declaration specifiers.
1764 (c_parser_enum_specifier): Likewise.
1765 (c_parser_struct_or_union_specifier): Likewise.
1766 (c_parser_typeof_specifier): Likewise. Update call to
1767 groktypename. Fold expression as needed. Return expressions with
1768 type instead of adding statements.
1769 (c_parser_attributes): Update calls to c_parser_expr_list.
1770 (c_parser_statement_after_labels): Fold expression before passing
1771 to objc_build_throw_stmt.
1772 (c_parser_condition): Fold expression.
1773 (c_parser_asm_operands): Fold expression.
1774 (c_parser_conditional_expression): Use c_save_expr. Update call
1775 to build_conditional_expr.
1776 (c_parser_alignof_expression): Update call to groktypename.
1777 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
1778 original_code. Fold expression argument of va_arg. Create
1779 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
1780 argument to va_arg. Update calls to groktypename. Fold array
1781 index for offsetof. Verify that first argument to
1782 __builtin_choose_expr has integer type.
1783 (c_parser_postfix_expression_after_paren_type): Update calls to
1784 groktypename and build_compound_literal. Handle expressions with
1785 side effects in type name.
1786 (c_parser_postfix_expression_after_primary): Update call to
1787 c_parser_expr_list. Set original_code for calls to
1788 __builtin_constant_p.
1789 (c_parser_expr_list): Take extra parameter fold_p. Fold
1790 expressions if requested.
1791 (c_parser_objc_type_name): Update call to groktypename.
1792 (c_parser_objc_synchronized_statement): Fold expression.
1793 (c_parser_objc_receiver): Fold expression.
1794 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
1795 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
1796 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
1797 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
1798 (struct c_typespec): Add elements expr and expr_const_operands.
1799 (struct c_declspecs): Add elements expr and expr_const_operands.
1800 (groktypename, build_conditional_expr, build_compound_literal):
1802 (in_late_binary_op): Declare.
1803 * c-typeck.c (note_integer_operands): New function.
1804 (in_late_binary_op): New variable.
1805 (decl_constant_value_for_broken_optimization): Move to c-common.c
1806 and rename to decl_constant_value_for_optimization.
1807 (default_function_array_conversion): Do not strip nops.
1808 (default_conversion): Do not call
1809 decl_constant_value_for_broken_optimization.
1810 (build_array_ref): Do not fold result.
1811 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
1812 result when operand is a VLA.
1813 (c_expr_sizeof_type): Update call to groktypename. Handle
1814 expressions included in type name. Use C_MAYBE_CONST_EXPR for
1815 result when operand names a VLA type.
1816 (build_function_call): Update call to build_compound_literal.
1817 Only fold result for calls to __builtin_* functions. Strip
1818 NOP_EXPR from INTEGER_CST returned from such functions. Fold
1819 the function designator.
1820 (convert_arguments): Fold arguments. Update call to
1821 convert_for_assignment.
1822 (build_unary_op): Handle increment and decrement of
1823 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
1824 decrement earlier. Fold operand of increment and decrement.
1825 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
1826 built for integer operand. Wrap returns that are INTEGER_CSTs
1827 without being integer constant expressions or that have integer
1828 constant operands without being INTEGER_CSTs.
1829 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
1830 (build_conditional_expr): Add operand ifexp_bcp. Track whether
1831 result is an integer constant expression or can be used in
1832 unevaluated parts of one and avoid folding and wrap as
1833 appropriate. Fold operands before possibly doing -Wsign-compare
1835 (build_compound_expr): Wrap result for C99 if operands can be used
1836 in integer constant expressions.
1837 (build_c_cast): Update call to digest_init. Do not ignore
1838 overflow from casting floating-point constants to integers. Wrap
1839 results that could be confused with integer constant expressions,
1840 null pointer constants or floating-point constants.
1841 (c_cast_expr): Update call to groktypename. Handle expressions
1842 included in type name.
1843 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
1844 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
1845 Update calls to convert_for_assignment.
1846 (convert_for_assignment): Take new parameter
1847 null_pointer_constant. Do not strip nops or call
1848 decl_constant_value_for_broken_optimization. Set
1849 in_late_binary_op for conversions to boolean.
1850 (store_init_value): Update call to digest_init.
1851 (digest_init): Take new parameter null_pointer_constant. Do not
1852 call decl_constant_value_for_broken_optimization. pedwarn for
1853 initializers not constant expressions. Update calls to
1854 convert_for_assignment.
1855 (constructor_nonconst): New.
1856 (struct constructor_stack): Add nonconst element.
1857 (really_start_incremental_init, push_init_level, pop_init_level):
1858 Handle constructor_nonconst and nonconst element.
1859 (set_init_index): Call constant_expression_warning for array
1861 (output_init_element): Fold value. Set constructor_nonconst as
1862 applicable. pedwarn for initializers not constant expressions.
1863 Update call to digest_init. Call constant_expression_warning
1864 where constant initializers are required.
1865 (process_init_element): Use c_save_expr.
1866 (c_finish_goto_ptr): Fold expression.
1867 (c_finish_return): Fold return value. Update call to
1868 convert_for_assignment.
1869 (c_start_case): Fold switch expression.
1870 (c_process_expr_stmt): Fold expression.
1871 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
1872 ensure statement expression is not evaluated in constant expression.
1873 (build_binary_op): Track whether results are integer constant
1874 expressions or may occur in such, disable folding and wrap results
1875 as applicable. Fold operands for -Wsign-compare warnings unless
1877 (c_objc_common_truthvalue_conversion): Handle results folded to
1878 integer constants that are not integer constant expressions.
1879 * doc/extend.texi: Document when typeof operands are evaluated,
1880 that condition of __builtin_choose_expr is an integer constant
1881 expression, and more about use of __builtin_constant_p in
1884 2009-03-29 Richard Guenther <rguenther@suse.de>
1886 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
1887 propagate addresses of array references.
1889 2009-03-29 Steven Bosscher <steven@gcc.gnu.org>
1891 * regmove.c (perhaps_ends_bb_p): Remove.
1892 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
1893 from INSN and check that the main loop stays within that basic block.
1894 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
1895 (regmove_forward_pass): Split out from regmove_optimize. Use
1896 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
1897 (regmove_backward_pass): Split out from regmove_optimize. Use
1898 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
1899 (regmove_optimize): Simplify.
1901 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
1904 * config/i386/i386.c (classify_argument): Ignore flexible array
1905 member in struct and warn ABI change.
1907 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
1909 * config/i386/i386-protos.h (ix86_agi_dependent): New.
1911 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
1912 (ix86_adjust_cost): Updated.
1914 2009-03-29 Jan Hubicka <jh@suse.cz>
1917 * tree-pass.h (pass_cleanup_eh): New function.
1918 (remove_unreachable_regions): Break code handling RTL
1919 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
1920 that can not be reached by runtime.
1921 (can_be_reached_by_runtime): New function.
1922 (label_to_region_map): New function.
1923 (num_eh_regions): New function.
1924 (rtl_remove_unreachable_regions): New function.
1925 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
1926 (remove_eh_region): New function.
1927 * except.h: Include sbitmap and vecprim.
1928 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
1929 num_eh_regions): Declare.
1930 * passes.c (init_optimization_passes): Schedule cleanup_eh.
1931 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
1932 * tree-eh.c (tree_remove_unreachable_handlers): New function.
1933 (tree_empty_eh_handler_p): New function.
1934 (cleanup_empty_eh): New function.
1935 (cleanup_eh): New function.
1936 (pass_cleanup_eh): New function.
1938 2009-03-29 Jan Hubicka <jh@suse.cz>
1940 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
1941 for removed regions.
1943 2009-03-29 Jan Hubicka <jh@suse.cz>
1945 * except.c (dump_eh_tree): Dump all datastructures.
1947 2009-03-29 Jan Hubicka <jh@suse.cz>
1949 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
1950 (duplicate_eh_regions_1): Likewise.
1951 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
1952 vector; call EH verification.
1953 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
1954 Be ready for region being removed.
1956 2009-03-29 Jan Hubicka <jh@suse.cz>
1958 * bitmap.c (bitmap_last_set_bit): New function.
1959 * bitmap.h (bitmap_last_set_bit): Declare.
1961 2009-03-29 David Ayers <ayers@fsfe.org>
1964 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
1965 by calling objc_compare_types and surpress warnings about
1966 incompatible C pointers that are compatible ObjC pointers.
1968 2009-03-29 Adam Nemet <anemet@caviumnetworks.com>
1970 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
1971 call initialize_inline_failed.
1972 (initialize_inline_failed): Move it from here ...
1973 * cgraph.c (initialize_inline_failed): ... to here.
1974 (cgraph_create_edge): Call initialize_inline_failed rather than
1975 setting inline_failed directly.
1977 2009-03-29 Ben Elliston <bje@au.ibm.com>
1980 * sysv4.opt (msdata): Improve comment.
1981 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
1982 * sysv4.h (SVR4_ASM_SPEC): Likewise.
1984 2009-03-29 Ben Elliston <bje@au.ibm.com>
1987 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
1988 load and store attributes.
1990 2009-03-29 Ben Elliston <bje@au.ibm.com>
1992 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
1993 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
1994 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
1995 * doc/extend.texi (X86 Built-in Functions): Add index entries for
1996 __builtin_infq and __builtin_huge_valq.
1998 2009-03-28 Anatoly Sokolov <aesok@post.ru>
2000 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
2002 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2003 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
2005 2009-03-28 Xinliang David Li <davidxl@google.com>
2007 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
2008 (do_dbg_cnt): New function.
2010 2009-03-28 Jan Hubicka <jh@suse.cz>
2012 Merge from pretty-ipa:
2014 2009-03-27 Jan Hubicka <jh@suse.cz>
2016 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
2017 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
2018 * passes.c (function_called_by_processed_nodes_p): New.
2019 * ipa-pure-const.c (check_call): Fix handling of operands.
2020 (analyze_function): Dump debug output for skipped bodies.
2021 (local_pure_const): Use function_called_by_processed_nodes_p.
2022 * dwarf2out.c (reference_to_unused): Use output.
2023 * passes.c (do_per_function_toporder): Likewise.
2025 2008-11-12 Jan Hubicka <jh@suse.cz>
2027 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
2028 * ipa-pure-const.c (funct_state_d): Add can throw field; make
2029 state_set_in_source enum
2030 (check_decl): Ignore memory tags; do not set fake looping flags;
2032 (check_operand, check_tree, check_rhs_var, check_lhs_var,
2033 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
2034 (check_call, analyze_function): Rewrite.
2036 (add_new_function): Update call of analyze_function.
2037 (generate_summary): Add call of analyze_function.
2038 (propagate): Propagate can_throw; handle state_set_in_source correctly.
2039 (local_pure_const): New function.
2040 (pass_local_pure_const): New pass.
2041 * ipa-inline.c (inline_transform): Set after_inlining.
2042 * tree-eh.c (stmt_can_throw_external): New.
2043 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
2044 work with aliasing built.
2045 * tree-flow.h (stmt_can_throw_external): New.
2046 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
2047 and local pure/const pass in early and late optimization queue.
2049 2009-03-28 Martin Jambor <mjambor@suse.cz>
2051 * fold-const.c (get_pointer_modulus_and_residue): New parameter
2053 (fold_binary): Allow function decl aligment consideration is the
2054 second argument is integer constant one.
2055 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
2056 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
2057 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
2059 2009-03-28 Jan Hubicka <jh@suse.cz>
2061 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
2062 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
2063 * function.h (rtl_data): Add nothrow flag.
2064 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
2065 set DECL_NOTHROW for AVAILABLE functions.
2067 2009-03-28 Jakub Jelinek <jakub@redhat.com>
2069 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
2070 following vector keyword has expansion starting with pixel or bool
2071 keyword, expand vector to __vector and pixel or bool to __pixel or
2075 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
2076 warn_if_disallowed_function_p): Removed.
2077 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
2078 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
2079 warning_if_disallowed_function_p.
2080 * flags.h (warn_if_disallowed_function_p,
2081 warn_disallowed_functions): Removed.
2082 * common.opt (Wdisallowed-function-list=): Removed.
2083 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
2085 2009-03-28 Richard Guenther <rguenther@suse.de>
2087 PR tree-optimization/38723
2088 * tree-ssa-pre.c (compute_avail): Add all default definitions to
2091 2009-03-28 Jan Hubicka <jh@suse.cz>
2093 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
2094 test introduced by my previous patch.
2096 2009-03-28 Richard Guenther <rguenther@suse.de>
2098 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
2099 the PHIs value undefined.
2101 2009-03-28 Jan Hubicka <jh@suse.cz>
2103 * tree-pass.h (pass_fixup_cfg): New pass.
2104 * ipa-inline.c (inline_transform): Set
2105 always_inline_functions_inlined/after_inlining.
2106 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
2107 (pass_fixup_cfg): New pass.
2108 * passes.c (init_optimization_passes): Add fixup_cfg.
2110 2009-03-28 Richard Guenther <rguenther@suse.de>
2112 PR tree-optimization/38458
2113 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
2114 argument use the arguments copy-of value.
2116 2009-03-28 Richard Guenther <rguenther@suse.de>
2118 PR tree-optimization/38180
2119 * tree-ssa-ccp.c (get_default_value): Simplify.
2120 (likely_value): Likewise.
2121 (surely_varying_stmt_p): Properly handle VOP case.
2122 (ccp_initialize): Likewise.
2123 (ccp_fold): Handle propagating through *&.
2124 (fold_const_aggregate_ref): Also handle decls.
2126 2009-03-28 Jan Hubicka <jh@suse.cz>
2128 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
2129 * cgraph.h (cgraph_node): Likewise.
2130 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
2131 (cgraph_reset_node): Use process flag.
2132 (cgraph_mark_functions_to_output): Likewise.
2133 (cgraph_expand_function): Likewise.
2134 (cgraph_expand_all_functions): Likewise.
2135 (cgraph_output_in_order): Likewise.
2136 * dwarf2out.c (reference_to_unused): Likewise.
2137 * passes.c do_per_function_toporder): Likewise.
2139 2009-03-28 Jan Hubicka <jh@suse.cz>
2141 Bring from lto-branch:
2143 2008-09-03 Doug Kwan <dougkwan@google.com>
2145 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
2146 enums instead of reason strings.
2147 * cgraph.c (cgraph_create_edge): Same.
2148 (cgraph_inline_failed_string): New function.
2149 * cgraph.h (cgraph_inline_failed_t): New enum type.
2150 (cgraph_inline_failed_string): New prototype.
2151 (struct cgraph_edge): Change type of INLINED_FAILED from constant
2152 char pointer to cgraph_inline_failed_t.
2153 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
2154 (cgraph_default_inline_p): Ditto.
2155 * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
2156 to cgraph_inline_failed_t pointer.
2157 * cif-code.def: New file.
2158 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
2160 (cgraph_check_inline_limits): Change type of REASON to pointer to
2161 cgraph_inline_failed_t. Replace reason strings with enums.
2162 (cgraph_default_inline_p): Ditto.
2163 (cgraph_recursive_inlining_p): Ditto.
2164 (update_caller_keys): Change type of FAILED_REASON to
2165 cgraph_inline_failed_t.
2166 (cgraph_set_inline_failed): Change type of REASON to pointer to
2167 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
2168 convert enums to strings for text output.
2169 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
2170 to be of type cgraph_inline_failed_t. Replace reason strings with
2171 enums. Call cgraph_inline_failed_string to covert enums
2172 to strings for text output.
2173 (cgraph_decide_inlining): Replace reason strings with enums.
2174 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
2175 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
2177 * tree-inline.c (expand_call_inline): Change type of REASON
2178 to cgraph_inline_failed_t. Replace reason strings with enums.
2179 Call cgraph_inline_failed_string for text output.
2180 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
2183 2009-03-28 Jan Hubicka <jh@suse.cz>
2185 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
2186 cgraph_clone_node): Remove master clone handling.
2187 (cgraph_is_master_clone, cgraph_master_clone): Remove.
2188 * cgraph.h (master_clone): Remove.
2189 (cgraph_is_master_clone, cgraph_master_clone): Remove.
2190 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
2191 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
2193 2009-03-28 Jan Hubicka <jh@suse.cz>
2195 * cgraph.c (cgraph_function_body_availability): Functions declared
2196 inline are always safe to assume that it is not going to be replaced.
2198 2009-03-28 Richard Guenther <rguenther@suse.de>
2200 PR tree-optimization/38513
2201 * tree-ssa-pre.c (eliminate): Remove redundant stores.
2202 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2203 EXC_PTR_EXPR and FILTER_EXPR.
2204 (get_ref_from_reference_ops): Likewise.
2206 2009-03-28 Richard Guenther <rguenther@suse.de>
2208 PR tree-optimization/38968
2209 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
2210 Use FLOOR_MOD_EXPR to compute misalignment.
2212 2009-03-28 Richard Guenther <rguenther@suse.de>
2214 PR tree-optimization/37795
2215 * tree.h (combine_comparisons): Declare.
2216 * fold-const.c (combine_comparisons): Export.
2217 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
2219 (ifcombine_iforif): Use combine_comparisons.
2221 2009-03-28 Jan Hubicka <jh@suse.cz>
2223 * tree-eh.c (inlinable_call_p): New function.
2224 (make_eh_edges): Use it.
2225 (verify_eh_edges): Use it.
2226 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
2227 * except.c (reachable_next_level): Add inlinable_function argument
2228 (sjlj_find_directly_reachable_regions): Update.
2229 (add_reachable_handler): Do not set saw_any_handlers.
2230 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
2231 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
2232 Add new inlinable call parameter.
2233 (can_throw_internal, can_throw_external): Update.
2234 * except.h (can_throw_internal_1, can_throw_external_1,
2235 foreach_reachable_handler): Update declaration.
2237 2009-03-28 Joseph Myers <joseph@codesourcery.com>
2239 * config/arm/t-arm-coff, config/h8300/coff.h,
2240 config/i386/i386-aout.h, config/i386/i386-coff.h,
2241 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
2242 config/pdp11/2bsd.h, config/rs6000/aix41.h,
2243 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
2244 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
2245 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
2246 sys-types.h: Remove.
2247 * Makefile.in: Remove protoize and fixproto support and references
2249 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
2250 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
2252 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
2253 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
2254 unprotoize$(exeext).
2255 (rest.encap): Don't depend on $(STMP_FIXPROTO)
2256 (.PHONY): Don't depend on proto.
2257 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
2258 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
2259 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
2260 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
2261 build/gen-protos.o, build/scan.o, xsys-protos.h,
2262 build/fix-header$(build_exeext), build/fix-header.o,
2263 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
2264 stmp-install-fixproto): Remove.
2265 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
2266 SYSCALLS.c or fixproto files.
2267 (install-common): Don't install protoize.
2268 (install-headers-tar, install-headers-cpio, install-headers-cp):
2269 Don't depend on $(STMP_FIXPROTO).
2270 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
2271 install fixproto files or write out fixproto settings.
2272 (uninstall): Don't uninstall protoize.
2273 * config.gcc (use_fixproto): Remove.
2274 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
2275 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
2276 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
2277 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
2278 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
2279 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
2280 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
2281 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
2282 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
2283 * config/t-vxworks (STMP_FIXPROTO): Remove.
2284 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
2285 STMP_FIXPROTO): Remove.
2286 * config.in, configure: Regenerate.
2287 * crtstuff.c (gid_t, uid_t): Don't undefine.
2288 * doc/install.texi: Change m68k-coff to m68k-elf in example.
2289 (arm-*-coff, arm-*-aout: Remove target entries.
2290 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
2291 Remove mention of AIX 4.1.
2292 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
2293 * doc/invoke.texi (Running Protoize): Remove.
2294 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
2295 (Protoize Caveats): Remove.
2296 * tsystem.h: Update comments on headers assumed to exist.
2298 2009-03-27 Vladimir Makarov <vmakarov@redhat.com>
2300 * genautomata.c: Add a new year to the copyright. Add a new
2302 (struct insn_reserv_decl): Add comments for member bypass_list.
2303 (find_bypass): Remove.
2304 (insert_bypass): New.
2305 (process_decls): Use insert_bypass.
2306 (output_internal_insn_latency_func): Output all bypasses with the
2307 same input insn in one switch case.
2309 * rtl.def (define_bypass): Describe bypass choice.
2310 * doc/md.texi (define_bypass): Ditto.
2312 2009-03-27 Richard Guenther <rguenther@suse.de>
2314 * gimplify.c (mark_addressable): Export.
2315 * tree-flow.h (mark_addressable): Declare.
2316 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
2317 * tree-ssa.c (verify_phi_args): Verify that address taken
2318 variables have TREE_ADDRESSABLE set.
2320 2009-03-27 Richard Guenther <rguenther@suse.de>
2322 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
2323 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
2324 Do not mark decls TREE_ADDRESSABLE.
2325 (build_fold_addr_expr): Adjust.
2326 (fold_addr_expr): Remove.
2327 (fold_unary): Use build_fold_addr_expr.
2328 (fold_comparison): Likewise.
2329 (split_address_to_core_and_offset): Likewise.
2330 * coverage.c (tree_coverage_counter_addr): Mark the array decl
2332 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
2333 (gimplify_modify_expr_to_memcpy): Mark source and destination
2335 * omp-low.c (create_omp_child_function): Mark the object decl
2337 (lower_rec_input_clauses): Mark the var we take the address of
2339 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
2341 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
2344 * cfgexpand.c (expand_one_stack_var_at): Change alignment
2345 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
2347 2009-03-27 Richard Guenther <rguenther@suse.de>
2349 PR tree-optimization/39120
2350 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
2352 (handle_lhs_call): Process return constraints. Add escape
2353 constraints if necessary.
2354 (handle_const_call): Fill out return constraints. Make nested
2355 case more precise. Avoid consttmp if possible.
2356 (handle_pure_call): Fill out return constraints. Avoid
2357 callused if possible.
2358 (find_func_aliases): Simplify call handling.
2360 2009-03-27 Richard Guenther <rguenther@suse.de>
2362 PR tree-optimization/39120
2363 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
2364 as a representative.
2365 (solve_graph): Do propagate CALLUSED.
2366 (handle_pure_call): Use a scalar constraint from CALLUSED for
2368 (find_what_p_points_to): CALLUSED shall not appear in poins-to
2371 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
2374 * c-common.c (handle_aligned_attribute): Properly check alignment
2375 overflow. Use (1U << i) instead of (1 << i).
2377 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
2379 * expr.h (get_mem_align_offset): Updated.
2381 * tree.h (tree_decl_common): Change align to "unsigned int" and
2382 move it before pointer_alias_set.
2384 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
2385 Jakub Jelinek <jakub@redhat.com>
2388 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
2389 gr_register_operand with gr_reg_or_0_operand.
2390 (cmpxchg_rel_di): Likewise.
2391 (sync_lock_test_and_set<mode>): Likewise.
2393 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
2395 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
2396 (true_regnum): Likewise.
2398 * rtlanal.c (subreg_info): Moved to ...
2399 * rtl.h (subreg_info): Here. New.
2400 (subreg_get_info): New.
2402 * rtlanal.c (subreg_get_info): Make it extern.
2404 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
2407 * config/i386/i386.c (ix86_abi): New.
2408 (override_options): Handle -mabi=.
2409 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
2410 (ix86_call_abi_override): Likewise.
2411 (init_cumulative_args): Likewise.
2412 (function_arg_advance): Likewise.
2413 (function_arg_64): Likewise.
2414 (function_arg): Likewise.
2415 (ix86_pass_by_reference): Likewise.
2416 (ix86_function_value_regno_p): Likewise.
2417 (ix86_build_builtin_va_list_abi): Likewise.
2418 (setup_incoming_varargs_64): Likewise.
2419 (is_va_list_char_pointer): Likewise.
2420 (ix86_init_machine_status): Likewise.
2421 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
2422 (ix86_function_type_abi): Return enum calling_abi. Rewrite
2423 for 64bit. Replace DEFAULT_ABI with ix86_abi.
2424 (ix86_function_abi): Make it static and return enum calling_abi.
2425 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
2427 (ix86_fn_abi_va_list): Updated.
2429 * config/i386/i386.h (ix86_abi): New.
2430 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
2431 (CONDITIONAL_REGISTER_USAGE): Likewise.
2432 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
2433 (machine_function): Likewise.
2435 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
2437 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
2438 (STACK_BOUNDARY): Likewise.
2439 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
2441 * config/i386/i386.opt (mabi=): New.
2443 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
2444 return enum calling_abi.
2445 (ix86_function_type_abi): Likewise.
2446 (ix86_function_abi): Removed.
2448 * doc/invoke.texi: Document -mabi= option for x86.
2450 2009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2452 * builtins.c (real_dconstp): Delete.
2453 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
2455 2009-03-27 Dodji Seketeli <dodji@redhat.com>
2456 Jakub Jelinek <jakub@redhat.com>
2459 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
2460 (gen_subprogram_die): When a function is explicit, generate the
2461 DW_AT_explicit attribute.
2462 * langhooks.h (struct lang_hooks_for_decls): Add
2463 function_decl_explicit_p langhook.
2464 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
2465 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
2467 2009-03-27 Jakub Jelinek <jakub@redhat.com>
2469 * builtins.c (fold_builtin_memory_op): Optimize memmove
2470 into memcpy if we can prove source and destination don't overlap.
2472 * tree-inline.c: Include gt-tree-inline.h.
2473 (clone_fn_id_num): New variable.
2474 (clone_function_name): New function.
2475 (tree_function_versioning): Use it.
2476 * Makefile.in (GTFILES): Add tree-inline.c.
2478 2009-03-27 Mark Mitchell <mark@codesourcery.com>
2480 * BASE-VER: Change to 4.5.0.
2482 2009-03-27 Xinliang David Li <davidxl@google.com>
2484 PR tree-optimization/39557
2485 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
2487 2009-03-27 Xinliang David Li <davidxl@google.com>
2489 PR tree-optimization/39548
2490 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
2493 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
2495 * c-common.c (pointer_int_sum): Use %wd on return from
2498 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
2500 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
2501 on return from tree_low_cst.
2503 2009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
2506 * ginclude/stdarg.h (va_copy): Define also for
2507 __GXX_EXPERIMENTAL_CXX0X__.
2509 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2512 * builtins.h (c_strlen): Do not warn here.
2513 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
2514 * c-common.c (pointer_int_sum): Take an explicit location.
2515 Warn about offsets out of bounds.
2516 * c-common.h (pointer_int_sum): Adjust declaration.
2518 2009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2520 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
2523 2009-03-26 Jakub Jelinek <jakub@redhat.com>
2526 * opts.c (warn_if_disallowed_function_p): Don't assume
2527 get_callee_fndecl must return non-NULL.
2529 2009-03-26 Vladimir Makarov <vmakarov@redhat.com>
2531 PR rtl-optimization/39522
2532 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
2533 when reg_reloaded_valid is set.
2535 2009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2537 * config/spu/divv2df3.c: New file.
2538 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
2539 (DPBIT_FUNCS): Filter out _div_df.
2541 2009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
2543 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
2544 a jump insn, count that jump in the distance to the loop start.
2546 2009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
2549 * config/sh/sh.c (calc_live_regs): Fix condition for global
2550 registers except PIC_OFFSET_TABLE_REGNUM.
2552 2009-03-25 Kai Tietz <kai.tietz@onevision.com>
2555 * doc/invoke.texi (-mconsole): New.
2559 (-mnop-fun-dllimport): New.
2563 (sub section "i386 and x86-64 Windows Options"): New.
2565 2009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
2567 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
2568 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
2570 2009-03-25 Richard Guenther <rguenther@suse.de>
2573 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
2576 2009-03-25 Andrey Belevantsev <abel@ispras.ru>
2578 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
2579 neither of haifa/selective schedulers are working.
2581 2009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2583 * doc/invoke.texi (Debugging Options): Fix description of
2584 -fno-merge-debug-strings.
2586 2009-03-24 Hans-Peter Nilsson <hp@axis.com>
2588 * config/cris/libgcc.ver: New version-script.
2589 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
2591 * configure.ac <GAS features, nop mnemonic>: Add pattern
2592 crisv32-*-* for "nop".
2593 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
2594 * configure: Regenerate.
2596 2009-03-24 Ira Rosen <irar@il.ibm.com>
2598 PR tree-optimization/39529
2599 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
2600 mark_sym_for_renaming for the tag copied to the new vector
2603 2009-03-24 Arthur Loiret <aloiret@debian.org>
2605 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
2606 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
2607 EXTRA_SPEC_FUNCTIONS.
2608 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
2609 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
2610 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
2611 -march and -mtune options.
2613 2009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
2615 * config/m68k/t-rtems: Add m5329 multilib.
2617 2009-03-24 Dodji Seketeli <dodji@redhat.com>
2618 Jakub Jelinek <jakub@redhat.com>
2621 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
2624 2009-03-23 Jakub Jelinek <jakub@redhat.com>
2627 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
2628 instead of c_parser_expression_conv, if original_code isn't one of the
2629 4 allowed comparison codes, fail.
2631 2009-03-23 Richard Guenther <rguenther@suse.de>
2633 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
2634 * tree.h (struct tree_type): Likewise.
2635 * reload.h (struct insn_chain): Likewise.
2636 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
2637 * function.h (struct function): Likewise.
2638 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
2640 2009-03-23 Jakub Jelinek <jakub@redhat.com>
2642 PR tree-optimization/39516
2643 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
2645 2009-03-23 Bingfeng Mei <bmei@broadcom.com>
2647 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
2648 should be set true if BITS_PER_WORD of target is bigger than 32
2650 2009-03-22 Hans-Peter Nilsson <hp@axis.com>
2652 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
2653 Translate -B-options to -rpath-link. Correct existing
2654 rpath-link and conditionalize on !nostdlib.
2656 2009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2658 * doc/extend.texi (Function Attributes, Variable Attributes):
2660 * doc/invoke.texi (Debugging Options, Optimize Options)
2661 (i386 and x86-64 Options, MCore Options): Likewise.
2663 2009-03-20 Jakub Jelinek <jakub@redhat.com>
2666 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
2667 it for block local namespace aliases.
2668 (gen_decl_die): Pass context_die to gen_namespace_die.
2670 2009-03-19 Jakub Jelinek <jakub@redhat.com>
2673 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
2674 minimum or maximum value.
2676 2009-03-19 Alexandre Oliva <aoliva@redhat.com>
2678 * reginfo.c (globalize_reg): Recompute derived reg sets.
2680 2009-03-19 Ozkan Sezer <sezeroz@gmail.com>
2683 * libgcc2.c (mprotect): Do not use signed arguments for
2684 VirtualProtect, use DWORD arguments. Also fix the 'may
2685 be used uninitialized' warning for the np variable.
2687 2009-03-19 Jakub Jelinek <jakub@redhat.com>
2690 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
2691 functions using regparm calling conventions when not optimizing.
2692 (ix86_function_sseregparm): Similarly for sseregparm calling
2695 2009-03-19 Li Feng <nemokingdom@gmail.com>
2698 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
2699 dependence if the first conflict is after niter iterations.
2701 2009-03-19 Hans-Peter Nilsson <hp@axis.com>
2704 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
2705 functions with dynamic stack-pointer adjustments.
2707 2009-03-19 Ben Elliston <bje@au.ibm.com>
2709 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
2710 option; change to -msdata=data.
2712 2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2714 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
2717 2009-03-18 Eric Botcazou <ebotcazou@adacore.com>
2720 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
2722 2009-03-18 Sandra Loosemore <sandra@codesourcery.com>
2724 * doc/invoke.texi (Code Gen Options): Expand discussion of
2727 2009-03-18 Jakub Jelinek <jakub@redhat.com>
2729 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
2730 * matrix-reorg.c (struct matrix_info): Likewise.
2731 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
2732 * rtl.h (struct mem_attrs): Likewise.
2733 * df.h (struct df): Likewise.
2734 * tree-data-ref.h (struct data_dependence_relation): Likewise.
2735 * ira-int.h (struct ira_allocno): Likewise.
2736 * df-scan.c (struct df_collection_rec): Likewise.
2737 * ira.c (struct equivalence): Likewise.
2738 * function.c (struct temp_slot): Likewise.
2739 * cfgloop.h (struct loop): Likewise.
2742 * function.c (use_register_for_decl): When not optimizing, disregard
2743 register keyword for variables with types containing methods.
2745 2009-03-18 Sebastian Pop <sebastian.pop@amd.com>
2748 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
2749 (is_simple_operand): Call contains_component_ref_p before calling data
2750 reference analysis that would fail on COMPONENT_REFs.
2752 * tree-vrp.c (search_for_addr_array): Fix formatting.
2754 2009-03-18 Richard Guenther <rguenther@suse.de>
2756 * tree-vect-transform.c (vect_loop_versioning): Fold the
2757 generated comparisons.
2758 * tree-vectorizer.c (set_prologue_iterations): Likewise.
2759 (slpeel_tree_peel_loop_to_edge): Likewise.
2761 2009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2764 * opts.c (print_specific_help): In addition to `undocumented',
2765 accept `separate' and `joined' flags if passed alone. Describe
2766 output by the first matched one of those.
2767 (common_handle_option): Skip over empty strings.
2768 * gcc.c (display_help): Fix help string for `--help='.
2769 * doc/invoke.texi (Option Summary, Overall Options): With
2770 `--help=', classes and qualifiers can both be repeated, but
2771 only the latter can be negated. One should not pass only
2772 negated qualifiers. Fix markup and examples.
2775 2008-10-14 Jakub Jelinek <jakub@redhat.com>
2777 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
2778 and -fhelp=separate.
2780 2009-03-17 Jing Yu <jingyu@google.com>
2783 * function.h (struct rtl_data): Move is_thunk from here...
2784 (struct function): ...to here.
2785 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
2786 * varasm.c (assemble_start_function): Change is_thunk from crtl to
2788 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
2790 (alpha_does_function_need_gp, alpha_start_function): Likewise.
2791 (alpha_output_function_end_prologue): Likewise.
2792 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
2793 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
2794 (rs6000_output_function_epilogue): Likewise.
2795 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
2797 2009-03-17 Uros Bizjak <ubizjak@gmail.com>
2800 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
2801 from different units in a single alternative.
2802 (*truncdfsf_i387): Ditto.
2803 (*truncxfsf2_mixed): Ditto.
2804 (*truncxfdf2_mixed): Ditto.
2806 2009-03-17 Jakub Jelinek <jakub@redhat.com>
2808 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
2809 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
2812 * tree-ssa-live.c (remove_unused_locals): Don't remove local
2813 unused non-artificial variables when not optimizing.
2816 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
2817 DW_TAG_imported_module even if decl is IMPORTED_DECL with
2818 NAMESPACE_DECL in its DECL_INITIAL.
2821 * optabs.c (set_user_assembler_libfunc): New function.
2822 * expr.h (set_user_assembler_libfunc): New prototype.
2823 * c-common.c: Include libfuncs.h.
2824 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
2825 for memcmp, memset, memcpy, memmove and abort.
2826 * Makefile.in (c-common.o): Depend on libfuncs.h.
2829 * dwarf2out.c (gen_inlined_enumeration_type_die,
2830 gen_inlined_structure_type_die, gen_inlined_union_type_die,
2831 gen_tagged_type_instantiation_die): Removed.
2832 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
2835 2009-03-17 Janis Johnson <janis187@us.ibm.com>
2838 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
2840 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
2841 (check-parallel-%): Ditto.
2842 (check-consistency): Ditto.
2844 2009-03-17 Kai Tietz <kai.tietz@onevision.com>
2846 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
2847 local variable rhs by NULL_TREE.
2849 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
2852 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
2854 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
2857 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
2859 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
2862 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
2863 for ms->sysv ABI calls only in 64bit mode.
2865 * config/i386/i386.md (untyped_call): Support 32bit.
2867 2009-03-16 H.J. Lu <hongjiu.lu@intel.com>
2869 * doc/extend.texi: Replace x86_65 with x86_64.
2871 2009-03-16 Jakub Jelinek <jakub@redhat.com>
2873 PR tree-optimization/39455
2874 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
2875 mismatches for POINTER_TYPE_P (type).
2876 (number_of_iterations_le): Likewise.
2878 2009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
2880 * config/picochip/picochip.c: Removed profiling support.
2881 * config/picochip/picochip.md: Removed profiling instruction.
2882 * config/picochip/picochip.h: Removed profiling builtin.
2884 2009-03-16 Joseph Myers <joseph@codesourcery.com>
2886 * doc/install.texi (--with-host-libstdcxx): Document.
2888 2009-03-14 Anatoly Sokolov <aesok@post.ru>
2891 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
2892 generate a warning if the function name does not begin with
2893 "__vector" and the function has either the 'signal' or 'interrupt'
2894 attribute, from here to ...
2895 (avr_declare_function_name): ...here. New function.
2896 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
2897 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
2899 2009-03-14 Jakub Jelinek <jakub@redhat.com>
2902 * cse.c (fold_rtx): Don't modify original const_arg1 when
2903 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
2904 separate variable instead.
2905 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
2906 from out of range shift counts.
2907 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
2909 2008-03-13 Catherine Moore <clm@codesourcery.com>
2911 * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
2912 diagnostic.h with $(DIAGNOSTIC_H).
2914 2008-03-12 Jakub Jelinek <jakub@redhat.com>
2917 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
2919 * config/i386/sync.md (sync_compare_and_swap<mode>,
2920 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
2921 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
2923 (sync_double_compare_and_swapdi_pic,
2924 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
2925 cmpxchg8b_pic_memory_operand instead of just memory_operand.
2927 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
2930 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
2932 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
2935 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
2936 (avx_addsubv4df3): Likewise.
2937 (*avx_addsubv4sf3): Likewise.
2938 (sse3_addsubv4sf3): Likewise.
2940 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
2943 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
2945 2009-03-12 Vladimir Makarov <vmakarov@redhat.com>
2948 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
2949 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
2950 registers for allocnos created from user-defined variables.
2952 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2955 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
2956 of non-integer mode as well.
2958 2009-03-11 Adam Nemet <anemet@caviumnetworks.com>
2960 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
2961 for functions for which the parameter types are unknown.
2963 2009-03-11 Jakub Jelinek <jakub@redhat.com>
2966 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
2967 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
2968 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
2969 * config/i386/i386.c (ix86_local_alignment): For
2970 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
2971 long long variables on the stack to avoid dynamic realignment.
2972 Allow the first argument to be a decl rather than type.
2973 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
2975 2009-03-11 Nick Clifton <nickc@redhat.com>
2978 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
2980 Add description to mno-lsim option.
2981 * config/mcore/mcore.h: Remove comment about deprecated m4align
2983 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
2984 * doc/invoke.texi: Add description of mno-lsim and
2985 mstack-increment options.
2987 * config/fr30/fr30.opt: Document the -mno-lsim option.
2988 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
2989 and -mno-lsim options.
2991 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2993 * fold-const.c (fold_comparison): Only call fold_inf_compare
2994 if the mode supports infinities.
2996 2009-03-11 Jason Merrill <jason@redhat.com>
2999 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
3000 end already did. Notice GIMPLE_CALL modifications of the result.
3001 Don't copy debug information from an ignored decl or a decl from
3004 2009-03-10 Richard Guenther <rguenther@suse.de>
3005 Nathan Froyd <froydnj@codesourcery.com>
3008 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
3009 (__divMODE3): Likewise.
3011 2009-03-09 Jakub Jelinek <jakub@redhat.com>
3013 PR tree-optimization/39394
3014 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
3015 DECL_SIZE_UNIT of variable length FIELD_DECLs.
3017 2009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3019 * recog.c (verfiy_changes): Disallow renaming of hard regs in
3020 inline asms for register asm ("") declarations.
3022 2009-03-09 Eric Botcazou <ebotcazou@adacore.com>
3024 * fold-const.c (fold_unary): Fix comment.
3026 2009-03-07 Jan Hubicka <jh@suse.cz>
3029 * tree-inline.c (setup_one_parameter): Do replacement of const
3030 argument by constant in SSA form.
3032 2009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3035 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
3036 determine alignment passed to assign_stack_local.
3037 (assign_parms_unsplit_complex): Likewise.
3038 * except.c (sjlj_build_landing_pads): Likewise.
3040 2009-03-06 Jakub Jelinek <jakub@redhat.com>
3043 * tree-flow.h (add_referenced_var): Return bool instead of void.
3044 * tree-dfa.c (add_referenced_var): Return result of
3045 referenced_var_check_and_insert call.
3046 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
3047 of referenced_var_check_and_insert.
3050 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
3051 (gen_variable_die): Emit DW_AT_location on abstract static variable's
3052 DIE, don't emit it if abstract origin already has it.
3053 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
3054 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
3056 2009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3058 * genpreds.c (needs_variable): Fix parentheses at variable name
3060 (write_tm_constrs_h): Indent generated code.
3062 2009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3064 * doc/extend.texi (Function Attributes): Add documentation
3067 2009-03-06 Jakub Jelinek <jakub@redhat.com>
3070 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
3071 take locus from its DECL_SOURCE_LOCATION instead of input_location.
3073 2009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
3075 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
3078 2009-03-05 Jakub Jelinek <jakub@redhat.com>
3081 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
3082 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
3084 2009-03-05 Uros Bizjak <ubizjak@gmail.com>
3086 * config/i386/i386.md (R8_REG, R9_REG): New constants.
3087 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
3088 constants instead of magic numbers.
3089 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
3091 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
3092 (x86_64_ms_abi_int_parameter_registers): Ditto.
3093 (x86_64_int_return_registers): Ditto.
3094 (ix86_maybe_switch_abi): Ditto.
3095 (ix86_expand_call): Ditto for clobbered_registers array.
3096 (ix86_hard_regno_mode_ok): Ditto.
3097 (x86_extended_QIreg_mentioned_p): Ditto.
3099 2009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
3101 PR tree-optimization/39349
3102 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
3104 * combine.c (gen_lowpart_for_combine): Use omode when generating
3107 2009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
3109 PR rtl-optimization/39235
3110 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
3112 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
3114 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
3116 2009-03-04 Richard Guenther <rguenther@suse.de>
3118 PR tree-optimization/39362
3119 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
3120 that occur in abnormal PHIs should be varying.
3122 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
3124 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
3126 (simple_iv): Take loop as an argument instead of statement.
3127 * tree-scalar-evolution.h (simple_iv): Declaration changed.
3128 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
3130 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
3132 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
3133 * matrix-reorg.c (analyze_transpose): Ditto.
3134 * tree-data-ref.c (dr_analyze_innermost): Ditto.
3135 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
3136 * tree-predcom.c (ref_at_iteration): Ditto.
3137 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
3139 2009-03-04 Richard Guenther <rguenther@suse.de>
3141 PR tree-optimization/39358
3142 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
3143 escaped_id and callused_id.
3144 (solve_graph): Likewise.
3146 2009-03-04 Richard Guenther <rguenther@suse.de>
3148 PR tree-optimization/39339
3149 * tree-sra.c (try_instantiate_multiple_fields): Make it
3150 no longer ICE on the above.
3152 2009-03-03 Joseph Myers <joseph@codesourcery.com>
3154 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
3155 that fits within Pmode.
3157 2009-03-03 Steve Ellcey <sje@cup.hp.com>
3160 * tm.texi (LIBCALL_VALUE): Update description.
3162 2009-03-03 Steve Ellcey <sje@cup.hp.com>
3165 * doc/extend.texi (section): Update description.
3167 2009-03-03 H.J. Lu <hongjiu.lu@intel.com>
3170 * tree-inline.c (remapped_type): New.
3171 (can_be_nonlocal): Call remapped_type instead of remap_type.
3173 2009-03-03 Jakub Jelinek <jakub@redhat.com>
3176 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
3177 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
3179 2009-03-03 Richard Guenther <rguenther@suse.de>
3182 * tree.c (tree_nonartificial_location): New function.
3183 * tree.h (tree_nonartificial_location): Declare.
3184 * builtins.c (expand_builtin_memory_chk): Provide location
3185 of the call location for artificial function pieces.
3186 (maybe_emit_chk_warning): Likewise.
3187 (maybe_emit_sprintf_chk_warning): Likewise.
3188 (maybe_emit_free_warning): Likewise.
3189 * expr.c (expand_expr_real_1): Likewise.
3191 2009-03-03 Jakub Jelinek <jakub@redhat.com>
3193 PR tree-optimization/39343
3194 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
3195 COMPONENT_REF t has ARRAY_TYPE.
3197 2009-03-02 Sebastian Pop <sebastian.pop@amd.com>
3200 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
3201 when the type precision of the induction variable should be
3202 larger than the type precision of nit.
3203 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
3204 * graphite.c (graphite_loop_normal_form): Same.
3205 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
3207 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
3209 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
3210 (*call_1_rex64_ms_sysv): Use named constants instead of magic
3211 numbers to describe clobbered registers.
3212 (*call_value_0_rex64_ms_sysv): Ditto.
3213 * config/i386/mmx.md (mmx_emms): Ditto.
3216 2009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
3218 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
3221 2009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3223 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
3224 (spu_section_type_flags): New function.
3226 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
3228 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
3229 reg_class_contents of FLOAT_REGS into a temporary.
3231 2009-03-02 Richard Guenther <rguenther@suse.de>
3232 Ira Rosen <irar@il.ibm.com>
3234 PR tree-optimization/39318
3235 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
3236 information to the vectorized statement.
3238 2009-03-01 Uros Bizjak <ubizjak@gmail.com>
3240 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
3241 variable. Use defined names instead of magic constants for REX SSE
3244 2009-03-01 Richard Guenther <rguenther@suse.de>
3246 PR tree-optimization/39331
3247 * omp-low.c (lower_send_shared_vars): Do not receive new
3248 values for the reference of DECL_BY_REFERENCE parms or results.
3250 2009-03-01 Jan Hubicka <jh@suse.cz>
3253 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
3254 BLOCK_NONLOCALIZED_VAR): New macros.
3255 (tree_block): Add nonlocalized_vars.
3256 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
3257 gen_decl_die): Add origin argument. Allow generation of die with
3258 origin at hand only.
3259 (gen_member_die, gen_type_die_with_usage, force_decl_die,
3260 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
3262 (gen_block_die): Fix checking for unused blocks.
3263 (process_scope_var): Break out from .... ; work with origins only.
3264 (decls_for_scope) ... here; process nonlocalized list.
3265 (dwarf2out_ignore_block): Look for nonlocalized vars.
3266 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
3268 (dump_scope_block): Dump them.
3269 * tree-inline.c (remap_decls): Handle nonlocalized vars.
3270 (remap_block): Likewise.
3271 (can_be_nonlocal): New predicate.
3272 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
3274 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3276 * configure: Regenerate.
3278 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3280 * optc-gen.awk: No need to duplicate option flags twice.
3281 Reuse help texts for duplicate options which do not have any.
3283 * gcc.c (display_help): Document --version.
3285 * gcc.c (main): If print_help_list and verbose_flag, ensure
3286 driver output comes before subprocess output.
3288 * optc-gen.awk: Assign all remaining fields to help string,
3289 space-separated, for multi-line help in *.opt.
3291 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
3292 -Wno-pedantic-ms-format is for MinGW targets only.
3294 * doc/options.texi (Option file format): Fix bad indentation,
3295 restoring dropped sentence.
3297 2009-02-28 Jan Hubicka <jh@suse.cz>
3299 * tree-inline.c (tree_function_versioning): Output debug info.
3301 2009-02-28 Jan Hubicka <jh@suse.cz>
3304 * tree-inline.c (setup_one_parameter): Do not copy propagate
3305 arguments when not optimizing.
3307 2009-02-28 H.J. Lu <hongjiu.lu@intel.com>
3310 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
3311 (avx_addsubv4df3): Likewise.
3312 (*avx_addsubv4sf3): Likewise.
3313 (sse3_addsubv4sf3): Likewise.
3314 (*avx_addsubv2df3): Likewise.
3315 (sse3_addsubv2df3): Likewise.
3316 (avx_unpckhps256): Correct item selectors.
3317 (avx_unpcklps256): Likewise.
3318 (avx_unpckhpd256): Likewise.
3319 (avx_unpcklpd256): Likewise.
3321 2009-02-28 Jan Hubicka <jh@suse.cz>
3323 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
3325 (copy_arguments_for_versioning): If var is declared don't declare it.
3326 (tree_function_versioning): First setup substitutions and then copy
3329 2009-02-27 Jan Hubicka <jh@suse.cz>
3332 * cgraph.h (varpool_output_debug_info): Remove.
3333 * cgraphunit.c (varpool_output_debug_info): Remove.
3334 * dwarf2out.c (deferred_locations_struct): New struct
3335 (deferred_locations): New type.
3336 (deferred_locations_list): New static var.
3337 (deffer_location): New function.
3338 (gen_variable_die): Use it.
3339 (decls_for_scope): Output info on local static vars.
3340 (dwarf2out_finish): Process deferred locations.
3341 * varpool.c (varpool_output_debug_info): Remove.
3343 2009-02-27 Jan Hubicka <jh@suse.cz>
3346 * tree.h (TREE_PROTECTED): Fix comment.
3347 (BLOCK_HANDLER_BLOCK): Remove.
3348 (struct tree_block): Remove handler_block add body_block.
3349 (inlined_function_outer_scope_p): New.
3350 (is_body_block): Remove.
3351 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
3352 * dwarf2out.c (is_inlined_entry_point): Remove.
3353 (add_high_low_attributes): Use inlined_function_outer_scope_p.
3354 (gen_block_die): Use is_inlined_entry_point check. Remove body block
3356 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
3357 * gimplify.c (gimplify_expr): Gimplify body blocks.
3358 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
3359 block with multiple subblocks.
3360 (dump_scope_block): Prettier output; dump more flags and info.
3361 (dump_scope_blocks): New.
3362 (remove_unused_locals): Use dump_scope_blocks.
3363 * tree-flow.h (dump_scope_blocks): Declare.
3364 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
3365 * stmt.c (is_body_block): Remove.
3366 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
3367 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
3369 2009-02-27 Sebastian Pop <sebastian.pop@amd.com>
3372 * graphite.c (graphite_loop_normal_form): Do not call
3373 number_of_iterations_exit from a gcc_assert.
3375 2009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3377 * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
3378 jumps if COND is NULL.
3379 (find_cond_jump): New function.
3380 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
3381 * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
3383 2009-02-26 Uros Bizjak <ubizjak@gmail.com>
3385 * config/alpha/alpha.h (alpha_expand_mov): Return false if
3386 force_const_mem returns NULL_RTX.
3388 2009-02-26 Jan Hubicka <jh@suse.cz>
3391 * cgraph.h (varpool_output_debug_info): Remove.
3392 * cgraphunit.c (varpool_output_debug_info): Remove.
3393 * dwarf2out.c (deferred_locations_struct): New struct
3394 (deferred_locations): New type.
3395 (deferred_locations_list): New static var.
3396 (deffer_location): New function.
3397 (gen_variable_die): Use it.
3398 (decls_for_scope): Output info on local static vars.
3399 (dwarf2out_finish): Process deferred locations.
3400 * varpool.c (varpool_output_debug_info): Remove.
3402 2009-02-25 H.J. Lu <hongjiu.lu@intel.com>
3404 PR rtl-optimization/39241
3405 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
3406 to subreg_offset_representable_p.
3408 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
3410 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
3411 execute function prototype. Get f and nregs from max_reg_num
3412 and get_insns. Remove the first backward pass as it's dead,
3413 guard the forward pass by flag_expensive_optimizations.
3414 (rest_of_handle_regmove): Delete.
3415 (pass_regmove): Replace it with regmove_optimize.
3417 2009-02-25 Martin Jambor <mjambor@suse.cz>
3419 PR tree-optimization/39259
3420 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
3421 calls_alloca function flags.
3422 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
3425 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
3427 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
3428 flags_set_1_rtx, flags_set_1_set): Delete.
3429 (regmove_optimize): Do not call mark_flags_life_zones.
3431 2009-02-24 Julian Brown <julian@codesourcery.com>
3434 * config/arm/arm.c (require_pic_register): Only set
3435 cfun->machine->pic_reg once per function.
3437 2009-02-24 Sandra Loosemore <sandra@codesourcery.com>
3439 * doc/invoke.texi (Link Options): Document an easier way to pass
3440 options that take arguments to the GNU linker using -Xlinker and -Wl.
3442 2009-02-24 Steve Ellcey <sje@cup.hp.com>
3445 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
3447 2009-02-24 Richard Guenther <rguenther@suse.de>
3450 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
3452 2009-02-24 Richard Guenther <rguenther@suse.de>
3453 Zdenek Dvorak <ook@ucw.cz>
3455 PR tree-optimization/39233
3456 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
3457 from converting them to a generic type.
3459 2009-02-23 Sebastian Pop <sebastian.pop@amd.com>
3461 PR tree-optimization/39260
3462 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
3463 contains a condition with a real type.
3464 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
3466 2009-02-23 Jason Merrill <jason@redhat.com>
3469 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
3470 narrowing_initializer_constant_valid_p.
3471 (narrowing_initializer_constant_valid_p): Don't return
3472 null_pointer_node for adding a pointer to itself.
3474 2009-02-23 Jan Hubicka <jh@suse.cz>
3477 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
3480 2009-02-23 Jan Hubicka <jh@suse.cz>
3482 PR tree-optimization/37709
3483 * tree.c (block_ultimate_origin): Move here from dwarf2out.
3484 * tree.h (block_ultimate_origin): Declare.
3485 * dwarf2out.c (block_ultimate_origin): Move to tree.c
3486 * tree-ssa-live.c (remove_unused_scope_block_p):
3487 Eliminate blocks containig no instructions nor live variables nor
3489 (dump_scope_block): New function.
3490 (remove_unused_locals): Enable removal of dead blocks by default;
3491 enable dumping at TDF_DETAILS.
3493 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
3495 * config/i386/i386.c (classify_argument): Don't allow COImode
3497 (function_arg_advance_32): Don't allow OImode.
3498 (function_arg_32): Likewise.
3499 (function_value_32): Likewise.
3500 (return_in_memory_32): Likewise.
3501 (function_arg_64): Remove OImode comment.
3503 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
3506 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
3507 ix86_expand_vector_set for V4DImode in 64bit mode only.
3508 (ix86_expand_vector_init_one_var): Likewise.
3510 2009-02-21 Sebastian Pop <sebastian.pop@amd.com>
3512 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
3514 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
3517 * loop-iv.c: Revert last change.
3518 * emit-rtl.c: Likewise.
3520 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
3523 * config/i386/i386.c (type_natural_mode): Remove an extra
3524 space in the warning message.
3525 (function_value_32): Handle 32-byte vector modes.
3526 (return_in_memory_32): Likewise.
3528 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
3530 * loop-iv.c (truncate_value): New function.
3531 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
3533 (lowpart_subreg): Move to...
3534 * emit-rtl.c: ...here.
3536 2009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
3538 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
3539 accidental and undocumented change at revision 140860.
3541 2009-02-21 Joseph Myers <joseph@codesourcery.com>
3543 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
3544 take gimple_seq * arguments.
3545 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
3546 types_compatible_p langhook.
3548 2009-02-20 Mark Mitchell <mark@codesourcery.com>
3549 Joseph Myers <joseph@codesourcery.com>
3551 * config/arm/arm.c (arm_builtin_va_list): New function.
3552 (arm_expand_builtin_va_start): Likewise.
3553 (arm_gimplify_va_arg_expr): Likewise.
3554 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
3555 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
3556 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
3557 (va_list_type): New variable.
3558 (arm_mangle_type): Mangle va_list_type appropriately.
3560 2009-02-20 Jakub Jelinek <jakub@redhat.com>
3563 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
3564 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
3565 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
3566 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
3567 parameter to 1000 for -O1 by default.
3568 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
3570 * loop-invariant.c: Include params.h.
3571 (move_loop_invariants): Don't call move_single_loop_invariants on
3574 2009-02-20 Jaka Mocnik <jaka@xlab.si>
3576 * calls.c (emit_library_call_value_1): Use slot_offset instead of
3577 offset when calculating bounds for indexing stack_usage_map. Fixes
3578 a buffer overflow with certain target setups.
3580 2009-02-20 Jakub Jelinek <jakub@redhat.com>
3583 * calls.c (expand_call): Clear try_tail_call if caller and callee
3584 disagree in promotion of function return value.
3586 2009-02-19 Jakub Jelinek <jakub@redhat.com>
3589 * c-common.c (c_determine_visibility): If visibility changed and
3590 DECL_RTL has been already set, call make_decl_rtl to update symbol
3593 2009-02-19 H.J. Lu <hongjiu.lu@intel.com>
3596 * varasm.c (assemble_variable): Don't check DECL_NAME when
3597 globalizing a variable.
3599 2009-02-19 Joseph Myers <joseph@codesourcery.com>
3602 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
3603 expression before any __builtin_trap call.
3604 * c-typeck.c (build_function_call): Convert and check function
3605 arguments before generating a call to a trap. Evaluate the
3606 function arguments before the trap.
3608 2009-02-19 Uros Bizjak <ubizjak@gmail.com>
3611 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
3612 (UNSPEC_FXAM_MEM): New unspec.
3613 (fxam<mode>2_i387_with_temp): New insn and split pattern.
3614 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
3615 memory using fxam<mode>2_i387_with_temp to remove excess precision.
3617 2009-02-19 Richard Guenther <rguenther@suse.de>
3619 PR tree-optimization/39207
3620 PR tree-optimization/39074
3621 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
3622 storedanything_tree): New.
3623 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
3624 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
3625 (build_succ_graph): Add edges from STOREDANYTHING to all
3627 (init_base_vars): Initialize STOREDANYTHING.
3628 (compute_points_to_sets): Free substitution info after
3629 building the succ graph.
3630 (ipa_pta_execute): Likewise.
3632 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
3634 (do_ds_constraint): Do not add to special var or non-pointer
3636 (type_could_have_pointers): Split out from ...
3637 (could_have_pointers): ... here. For arrays use the element type.
3638 (create_variable_info_for): Initialize may_have_pointers.
3639 (new_var_info): Likewise.
3640 (handle_lhs_call): Make the HEAP variable unknown-sized.
3641 (intra_create_variable_infos): Use a type with pointers for
3642 PARM_NOALIAS, make it unknown-sized.
3644 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
3647 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
3649 2009-02-18 Jason Merrill <jason@redhat.com>
3652 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
3653 value if DECL_EXTERNAL.
3654 * tree-sra.c (sra_walk_gimple_assign): Likewise.
3655 * target.h (gcc_target::binds_local_p): Clarify "module".
3656 * tree.h (TREE_PUBLIC): Clarify "module".
3658 2009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
3661 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
3662 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
3664 2009-02-17 H.J. Lu <hongjiu.lu@intel.com>
3667 * c.opt (Wabi): Support C and ObjC.
3670 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
3672 * config/i386/i386.c (classify_argument): Warn once about the ABI
3673 change when passing union with long double.
3675 * doc/invoke.texi: Update -Wabi for warning psABI changes.
3677 2009-02-18 Joseph Myers <joseph@codesourcery.com>
3680 * c-parser.c (c_parser_compound_statement): Always enter and leave
3683 2009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3686 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
3688 2009-02-18 Jakub Jelinek <jakub@redhat.com>
3690 PR tree-optimization/36922
3691 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
3692 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
3695 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
3697 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
3700 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
3702 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
3704 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
3706 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
3709 2009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
3710 Richard Sandiford <rdsandiford@googlemail.com>
3712 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
3713 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
3714 (loongson_biadd): ...this.
3716 2009-02-17 Richard Guenther <rguenther@suse.de>
3718 PR tree-optimization/39202
3719 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
3720 a var make sure to follow existing collapses.
3722 2009-02-17 Richard Guenther <rguenther@suse.de>
3725 * langhooks.c (lhd_print_error_function): Check for NULL block.
3727 2009-02-17 Richard Guenther <rguenther@suse.de>
3729 PR tree-optimization/39204
3730 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
3733 2009-02-17 Uros Bizjak <ubizjak@gmail.com>
3735 * config/soft-fp/double.h: Update from glibc CVS.
3737 2009-02-17 Richard Guenther <rguenther@suse.de>
3739 PR tree-optimization/39207
3740 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
3741 strict-aliasing warnings for pointers pointing to NULL.
3743 2009-02-16 Joseph Myers <joseph@codesourcery.com>
3746 * c-parser.c (c_parser_braced_init): Call pop_init_level when
3747 skipping until next close brace.
3749 2009-02-16 H.J. Lu <hongjiu.lu@intel.com>
3752 * config/i386/i386.c (ix86_expand_push): Set memory alignment
3753 to function argument boundary.
3755 2009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
3757 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
3758 in the lea_add. Reload eventually constraints it properly.
3759 * config/picochip/constraints.md : Remove the target constraint
3760 "b", since it is not needed anymore.
3762 2009-02-16 Jakub Jelinek <jakub@redhat.com>
3764 * gthr-dce.h: Uglify function parameter and local variable names.
3765 * gthr-gnat.h: Likewise.
3766 * gthr-mipssde.h: Likewise.
3767 * gthr-nks.h: Likewise.
3768 * gthr-posix95.h: Likewise.
3769 * gthr-posix.h: Likewise.
3770 * gthr-rtems.h: Likewise.
3771 * gthr-single.h: Likewise.
3772 * gthr-solaris.h: Likewise.
3773 * gthr-tpf.h: Likewise.
3774 * gthr-vxworks.h: Likewise.
3775 * gthr-win32.h: Likewise.
3777 2009-02-15 H.J. Lu <hongjiu.lu@intel.com>
3780 * config/i386/i386.md: Restrict the new peephole2 to move
3781 between MMX/SSE registers.
3783 2009-02-15 Richard Guenther <rguenther@suse.de>
3786 2009-02-13 Richard Guenther <rguenther@suse.de>
3788 * configure.ac: Enable LFS.
3789 * configure: Re-generate.
3790 * config.in: Likewise.
3792 2009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3794 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
3795 spu_srqwbyte, spu_srqwbytebc): Define.
3796 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
3797 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
3798 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
3799 "shrqby_<mode>"): New insn-and-split patterns.
3800 * config/spu/spu.c (expand_builtin_args): Determine and return
3801 number of operands using spu_builtin_description data.
3802 (spu_expand_builtin_1): Use it.
3804 2009-02-13 Steve Ellcey <sje@cup.hp.com>
3807 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
3810 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
3813 * config/i386/i386.c (override_options): Correct warning
3814 messages for -malign-loops, -malign-jumps and -malign-functions.
3816 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
3819 * config/i386/i386.md: Restrict the new peephole2 to move
3820 between the general purpose registers.
3822 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
3825 * config/i386/i386.c (type_natural_mode): Add a new argument.
3826 Return the original mode and warn ABI change if vector size is 32byte.
3827 (function_arg_advance): Updated.
3828 (function_arg): Likewise.
3829 (ix86_function_value): Likewise.
3830 (ix86_return_in_memory): Likewise.
3831 (ix86_sol10_return_in_memory): Likewise.
3832 (ix86_gimplify_va_arg): Likewise.
3833 (function_arg_32): Don't warn ABX ABI change here.
3834 (function_arg_64): Likewise.
3836 2009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
3838 * loop-iv.c (implies_p): In the final case, test that operands 0
3839 of the two comparisons match.
3841 * config/bfin/bfin.c (find_prev_insn_start): New function.
3842 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
3843 (find_next_insn_start): Move.
3845 2009-02-13 Richard Guenther <rguenther@suse.de>
3847 * configure.ac: Enable LFS.
3848 * configure: Re-generate.
3849 * config.in: Likewise.
3851 2009-02-13 Joseph Myers <joseph@codesourcery.com>
3854 * c-parser.c (c_parser_parms_list_declarator): Discard pending
3855 sizes on syntax error after some arguments have been parsed.
3857 2009-02-12 Jakub Jelinek <jakub@redhat.com>
3859 * doc/invoke.texi (-fira): Remove.
3861 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
3863 * caller-save.c: Replace regclass.c with reginfo.c in comments.
3864 * recog.c: Likewise.
3867 2009-02-12 Uros Bizjak <ubizjak@gmail.com>
3869 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
3870 (umul_ppmm): Likewise.
3871 (count_leading_zeros): Likewise.
3872 (count_trailing_zeros): Likewise.
3873 (UMUL_TIME): Likewise.
3875 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
3877 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
3878 soft-fp/t-softfp to tmake_file.
3880 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
3881 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
3882 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
3883 IA64_BUILTIN_INFQ]: New.
3884 (ia64_init_builtins): Initialize __builtin_infq,
3885 __builtin_fabsq and __builtin_copysignq if not HPUX.
3886 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
3887 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
3889 * config/ia64/lib1funcs.asm (__divtf3): Define only if
3891 (__fixtfti): Likewise.
3892 (__fixunstfti): Likewise.
3893 (__floattitf): Likewise.
3895 * config/ia64/libgcc-glibc.ver: New.
3896 * config/ia64/t-fprules-softfp: Likewise.
3897 * config/ia64/sfp-machine.h: Likewise.
3899 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
3900 (LIBGCC2_TF_CEXT): Likewise.
3901 (TF_SIZE): Likewise.
3902 (TARGET_INIT_LIBFUNCS): Likewise.
3904 * config/ia64/t-glibc (SHLINB_MAPFILES):
3905 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
3907 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
3909 * config/i386/i386.c (construct_container): Rewrite processing
3910 BLKmode with X86_64_SSE_CLASS.
3912 2009-02-12 Paolo Bonzini <bonzini@gnu.org>
3915 * config/i386/i386.md: Replace simplify_replace_rtx with
3916 replace_rtx in the new peephole2.
3918 2009-02-12 Nathan Sidwell <nathan@codesourcery.com>
3920 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
3921 loop unrolling do not happen at -O2.
3923 2009-02-12 Michael Matz <matz@suse.de>
3925 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
3927 2009-02-12 Jakub Jelinek <jakub@redhat.com>
3929 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
3932 2009-02-12 Ben Elliston <bje@au.ibm.com>
3934 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
3935 patterns when updating the back chain. Missed in the 2009-02-10
3938 2009-02-11 Janis Johnson <janis187@us.ibm.com>
3940 * doc/extend.texi (Decimal Floating Types): Update identifier of
3941 draft TR and list of missing support.
3943 2009-02-11 Jakub Jelinek <jakub@redhat.com>
3946 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
3947 bit to variable length decl's flags, add it also to its
3948 pointer replacement variable.
3950 2009-02-11 Uros Bizjak <ubizjak@gmail.com>
3951 Jakub Jelinek <jakub@redhat.com>
3954 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
3955 (memory_blockage): New expander.
3956 (*memory_blockage): New insn pattern.
3957 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
3958 instead of general blockage at the end of function prologue when
3959 frame pointer is used to access red zone area. Do not emit blockage
3960 when profiling, it is emitted in generic code.
3961 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
3962 function epilogue when frame pointer is used to access red zone area.
3964 2009-02-11 Paolo Bonzini <bonzini@gnu.org>
3967 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
3968 by arithmetic with memory operands.
3969 * config/i386/predicates.md (commutative_operator): New.
3971 2009-02-10 Janis Johnson <janis187@us.ibm.com>
3973 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
3976 2009-02-10 Eric Botcazou <ebotcazou@adacore.com>
3978 * alias.h (record_alias_subset): Declare.
3979 * alias.c (record_alias_subset): Make global.
3981 2009-02-10 Nick Clifton <nickc@redhat.com>
3983 * tree-parloops.c: Change license to GPLv3.
3984 * ipa-struct-reorg.c: Change license to GPLv3.
3985 * ipa-struct-reorg.h: Change license to GPLv3.
3987 2009-02-10 Steve Ellcey <sje@cup.hp.com>
3990 * c-decl.c (start_struct): Return NULL on error.
3992 2009-02-10 Jakub Jelinek <jakub@redhat.com>
3995 * cfgloopmanip.c (remove_path): Call remove_bbs after
3996 cancel_loop_tree, not before it.