1 2007-06-11 Diego Novillo <dnovillo@google.com>
3 * Makefile.in (reload1.o-warn): Remove.
5 2007-06-11 Seongbae Park <seongbae.park@gmail.com>
7 * combine.c (subst): Use reg_overlap_mentioned_p
8 instead of comparing register numbers directly.
10 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
12 * reload1.c (mark_home_live_1): Use the mode parameter.
14 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
16 * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
17 df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
21 2007-06-11 Daniel Berlin <dberlin@dberlin.org>
23 * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
25 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
27 * config/i386/i386.md ("*movtf_internal): Penalize moves to and
28 from integer registers.
29 (FP mode splitters): Handle TFmode.
31 2007-06-11 Eric Botcazou <ebotcazou@adacore.com>
33 * tree-ssa-structalias.c (find_what_p_points_to): Return false
34 for ref-all pointers that point-to anything.
36 2007-06-11 Joseph Myers <joseph@codesourcery.com>
38 * config/arm/arm.c (arm_output_dwarf_dtprel,
39 TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
41 2007-06-11 Bernd Schmidt <bernd.schmidt@analog.com>
43 * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
44 movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
47 2007-06-11 Rafael Avila de Espindola <espindola@google.com>
49 * gcc/tree.c (signed_or_unsigned_type_for): New.
50 (unsigned_type_for): Use signed_or_unsigned_type_for.
51 (signed_type_for): Use signed_or_unsigned_type_for.
52 * gcc/tree.h (signed_or_unsigned_type_for): New.
53 (get_signed_or_unsigned_type): Remove.
54 * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
55 lang_hooks.types.signed_type
56 (size_diffop): Likewise.
57 (all_ones_mask_p): Likewise.
58 (build_range_check): Likewise.
59 (fold_cond_expr_with_comparison): Likewise.
60 (fold_cond_expr_with_comparison): Likewise.
62 (extract_muldiv_1): Likewise.
63 (fold_single_bit_test_into_sign_test): Likewise.
64 (fold_binary): Likewise.
65 (fold_ternary): Likewise.
66 (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
67 instead of get_signed_or_unsigned_type.
68 * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
69 (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
70 * gcc/expr.c (signed_or_unsigned_type_for): Use
71 signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
72 * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
73 (lhd_signed_or_unsigned_type): Remove.
74 * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
75 signed_or_unsigned_type.
76 (lhd_signed_or_unsigned_type): Remove.
77 * gcc/expmed.c (make_tree): Use signed_type_for instead of
78 lang_hooks.types.signed_type.
79 * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
80 c_common_signed_type instead of lang_hooks.types.signed_type.
81 (c_common_unsigned_type): New.
82 (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
83 (shorten_compare): Use c_common_unsigned_type instead of
84 c_common_signed_or_unsigned_type.
85 (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
87 * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
88 lang_hooks.types.signed_type.
89 * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
90 (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
91 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
92 * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
93 instead of unsigned_type_for.
94 * gcc/c-decl.c (groakdeclarator): Likewise.
95 * gcc/c-typeck.c (convert_for_assignment): Likewise.
96 * gcc/c-common.h (c_common_unsigned_type): New.
98 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
101 * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
102 * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
104 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
107 * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
108 into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
110 2007-06-10 Jan Sjodin <jan.sjodin@amd.com>
111 Sebastian Pop <sebpop@gmail.com>
113 * lambda-code.c (remove_iv): New.
114 (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
116 2007-06-10 Zdenek Dvorak <dvorakz@suse.cz>
118 * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
119 * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
120 * tree-ssa-loop-prefetch.c: Include optabs.h.
121 (FENCE_FOLLOWING_MOVNT): New macro.
122 (struct mem_ref): Add independent_p and storent_p fields.
123 (record_ref): Initalize the new fields.
124 (gather_memory_references_ref): Return true if the reference
126 (gather_memory_references): Check whether all memory accesses
127 in loop were recorded.
128 (should_issue_prefetch_p): Return false for nontemporal stores.
129 (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
130 may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
131 (determine_loop_nest_reuse): Detect independent memory references.
132 (loop_prefetch_arrays): Call mark_nontemporal_stores.
133 * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
134 * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
135 * config/i386/i386.h (x86_mfence): Declare.
136 (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
137 * config/i386/i386.c (x86_mfence): New variable.
138 (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
140 * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
141 * optabs.c (init_optabs): Initialize storent_optab.
142 * optabs.h (enum optab_index): Add OTI_storent.
143 (storent_optab): Declare.
144 * genopinit.c (optabs): Add initialization for storent_optab.
145 * tree.h (MOVE_NONTEMPORAL): New macro.
146 * expr.c (expand_assignment, store_expr, store_constructor_field,
147 store_constructor, store_field, expand_expr_real_1): Propagate
148 nontemporality of the expanded store.
149 (emit_storent_insn): New function.
150 * expr.h (expand_assignment, store_expr): Declaration changed.
151 * function.c (assign_parm_setup_reg): Pass false as nontemporality
152 to expand_assignment.
153 * stmt.c (expand_asm_expr): Ditto.
154 * calls.c (initialize_argument_information): Pass false as
155 nontemporality to store_expr.
156 * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
159 2007-06-09 Daniel Berlin <dberlin@dberlin.org>
161 * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
163 (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
165 2007-06-09 Daniel Berlin <dberlin@dberlin.org>
167 * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
168 and allow DECL_P here.
170 2007-06-09 Zdenek Dvorak <dvorakz@suse.cz>
172 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
173 follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
174 track of the size of the expression.
175 * cfghooks.c (merge_blocks): Remove block from loops structure only
176 after call of the merge_blocks hook.
178 2007-06-09 Tom Tromey <tromey@redhat.com>
180 * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
181 (deprecated_state): Removed.
182 (start_decl): Update.
183 (enum deprecated_states): Moved earlier.
184 (groktypename): Update.
185 (push_parm_decl): Likewise.
186 (grokfield): Likewise.
187 (start_function): Likewise.
189 2007-06-09 Ian Lance Taylor <iant@google.com>
191 PR tree-optimization/32169
192 * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
193 CONVERT_EXPR, check whether min and max both converted to an
194 overflow infinity representation.
196 2007-06-08 Eric Botcazou <ebotcazou@adacore.com>
198 * reload1.c (fixup_abnormal_edges): Clear bb field for insns
199 not inserted on the edge.
201 2007-06-08 Bob Wilson <bob.wilson@acm.org>
203 * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
204 instructions if they are supported.
205 (__divsi3, __umodsi3, __modsi3): Likewise.
206 (__ashldi3, __ashrdi3, __lshrdi3): New.
207 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
209 2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com>
210 Tony Linthicum <tony.linthicum@amd.com>
212 * doc/extend.texi: Add fvect-cost-model flag.
213 * common.opt (fvect-cost-model): New flag.
214 * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
215 cost fields in stmt_vec_info struct for STMT.
216 * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
217 fields in stmt_vec_info struct and access functions for the same.
218 (TARG_COND_BRANCH_COST): Define cost of conditional branch.
219 (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
220 load, store and vector to scalar operation.
221 (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
222 (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
223 (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
224 (TARG_VEC_STORE_COST): Define cost of vector store.
225 (vect_estimate_min_profitable_iters): Define new function.
226 * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
227 check to evaluate if loop iterations are less than minimum profitable
228 iterations determined by cost model or minimum vect loop bound defined
229 by user, whichever is more conservative.
230 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
231 run-time check to evaluate if loop iterations are less than minimum
232 profitable iterations determined by cost model or minimum vect loop
233 bound defined by user, whichever is more conservative.
234 (vect_estimate_min_profitable_iterations): New function to estimate
235 mimimimum iterartions required for vector version of loop to be
236 profitable over scalar version.
237 (vect_model_reduction_cost): New function.
238 (vect_model_induction_cost): New function.
239 (vect_model_simple_cost): New function.
240 (vect_cost_strided_group_size): New function.
241 (vect_model_store_cost): New function.
242 (vect_model_load_cost): New function.
243 (vectorizable_reduction): Call vect_model_reduction_cost during
245 (vectorizable_induction): Call vect_model_induction_cost during
247 (vectorizable_load): Call vect_model_load_cost during analysis phase.
248 (vectorizable_store): Call vect_model_store_cost during analysis phase.
249 (vectorizable_call, vectorizable_assignment, vectorizable_operation,
250 vectorizable_promotion, vectorizable_demotion): Call
251 vect_model_simple_cost during analysis phase.
253 2007-06-08 Simon Baldwin <simonb@google.com>
255 * reg-stack.c (get_true_reg): Readability change. Moved default case
256 label into direct switch statement scope.
258 2007-06-08 Simon Baldwin <simonb@google.com>
260 * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
261 in gcc_assert() with '==' comparison.
263 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
265 * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
266 TARGET_ABM handling of x86_popcnt variable.
268 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
270 * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
271 __builtin_copysignq and __builtin_infq built-in functions.
273 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
275 * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
276 SSE4.2 section. Correct built-in function names in SSE4A section.
278 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
280 PR tree-optimization/32243
281 * tree-vect-transform.c (vectorizable_type_promotion): Move check
282 for ncopies after ratio check between nunits_out and nunits_in.
283 (vectorizable_type_demotion): Remove single-use variable "scalar_type".
285 2007-06-08 Dorit Nuzman <dorit@il.ibm.com>
287 PR tree-optimization/32224
288 * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
289 vectorization upon a non GIMPLE_MODIFY_STMT.
291 2007-06-08 Christian Bruel <christian.bruel@st.com>
294 * config/sh/sh.md (doloop_end): New pattern and splitter.
295 * loop-iv.c (simple_rhs_p): Check for hardware registers.
297 2007-06-08 Zdenek Dvorak <dvorakz@suse.cz>
300 * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
302 (verify_dominators): Do not change dominance tree.
304 2007-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
306 * config/sh/constraints.md: New file.
307 * config/sh/sh.c: Include tm-constrs.h.
308 (reg_class_from_letter): Remove.
309 (prepare_cbranch_operands): Use satisfies_constraint_*
310 function instead of macro.
311 (andcosts, broken_move, sh_secondary_reload): Likewise.
312 * config/sh/predicates.md (trapping_target_operand): Likewise.
313 (and_operand, arith_operand, arith_reg_or_0_operand,
314 cmp_operand, logical_operand, target_operand,
315 ua_address_operand, ua_offset, xor_operand): Likewise.
316 * config/sh/sh.md: Include constraints.md.
317 (*movsicc_t_false): Use satisfies_constraint_* function
319 (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
320 lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
321 movdi_const_16bit+1, beq, bne, *ptb): Likewise.
322 * config/sh/sh.h (reg_class_from_letter): Remove prototype.
323 (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
324 (REG_CLASS_FROM_CONSTRAINT): Remove.
325 (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
326 CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
327 CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
328 CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
329 CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
330 (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
331 function instead of macro.
332 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
333 (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
334 EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
335 EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
336 (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
337 (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
338 (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
339 (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
340 (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
341 EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
342 EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
343 EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
344 EXTRA_CONSTRAINT_STR): Likewise.
345 (GO_IF_LEGITIMATE_INDEX): Fix indentation.
347 2007-06-07 Geoffrey Keating <geoffk@apple.com>
349 * config/i386/darwin.h (STACK_BOUNDARY): Define.
351 2007-06-07 Simon Martin <simartin@users.sourceforge.net>
354 * c-common.h (flag_cpp0x): Replaced by...
355 (cxx_dialect): ... this new variable specifying the C++ dialect that
357 * c-common.c (flag_cpp0x): Removed.
358 (cxx_dialect): Defined.
359 * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
361 * c-opts.c (c_common_post_options): Likewise.
362 (set_std_cxx98): Set cxx_dialect to cxx98.
363 (set_std_cxx0x): Set cxx_dialect to cxx0x.
365 2007-06-07 Geoffrey Keating <geoffk@apple.com>
366 Hui-May Chang <hm.chang@apple.com>
368 * doc/invoke.texi (Darwin Options): Update documentation for
369 -mmacosx-version-min.
370 * config.gcc (*-*-darwin*): Set extra_gcc_objs.
371 * config/darwin-driver.c: New file.
372 * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
373 * config/t-darwin (darwin-driver.o): New rule.
375 * config/darwin-c.c (version_as_macro): Ignore low digit.
377 2007-06-07 Uros Bizjak <ubizjak@gmail.com>
379 * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
380 (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
381 (CSGNMODE): New mode macro.
382 (CSGNVMODE): New mode attribute.
383 (copysign<mode>3): Rename from copysingsf3 and copysigndf3. Macroize
384 expander using CSGNMODE mode macro. Handle TFmode.
385 (copysign<mode>3_const): Rename from copysignsf3_const and
386 copysigndf3_const. Macroize pattern using CSGNMODE mode macro.
388 (copysign<mode>3_var): Rename from copysignsf3_var and
389 copysigndf3_var. Macroize pattern using CSGNMODE mode macro.
391 (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
392 mode macro. Handle TFmode.
393 * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
394 (iortf3, *iortf3): Ditto.
395 (xortf3, *xortf3): Ditto.
396 * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
397 TFmode and TImode masks.
398 (ix86_expand_copysign): Expand TFmode copysign insn.
399 (IX86_BUILTIN_INFQ): New.
400 (IX86_BUILTIN_FABSQ): Ditto.
401 (IX86_BUILTIN_COPYSIGNQ): Ditto.
402 (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
403 [__builtin_fabsq]: Ditto.
404 [__builtin_copysignq]: Ditto.
405 (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
406 [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
407 [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
408 ix86_expand_binop_builtin().
410 2007-06-07 Bob Wilson <bob.wilson@acm.org>
412 * config/xtensa/lib1funcs.asm: Clean up whitespace.
414 2007-06-07 Steve Ellcey <sje@cup.hp.com>
417 * rtl.h (push_to_sequence2): New.
418 * emit-rtl.c (push_to_sequence2): New.
419 * function.c (assign_parm_data_all): Add new fields.
420 (assign_parm_setup_block): Call push_to_sequence2 instead of
422 (assign_parm_setup_reg): Ditto.
423 (assign_parm_setup_stack): Ditto.
424 (assign_parms_unsplit_complex): Ditto.
425 (assign_parms): Change field name.
427 2007-06-07 Zdenek Dvorak <dvorakz@suse.cz>
429 PR tree-optimization/32220
430 * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
431 phi node is reached before defining statement.
433 2007-06-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
436 * tree-vect-transform.c (vectorizable_call): Call update_stmt
437 after changing the right hand side of the assignment.
439 2007-06-06 Eric Christopher <echristo@apple.com>
441 * config.gcc (i?86-*-darwin*): Remove arch parameter.
442 (x86_64-*-darwin*): Ditto.
443 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
444 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
446 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
448 * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
451 * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
452 * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
454 * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory macros.
455 (add_cost_one_coalesce): Likewise.
456 * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
457 variable names. Rename orig to orig_name for consistency.
458 * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the coding
460 (cprop_into_successor_phis): Avoid using C++ keywords as variable names.
461 (record_equivalences_from_stmt): Likewise.
462 * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
463 the coding conventions.
464 (memory_ssa_name_same): Likewise.
465 (dse_optimize_stmt): Likewise.
466 (dse_record_phis): Likewise.
467 (dse_finalize_block): Likewise.
468 * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
469 keywords as variable names.
470 (may_move_till): Cast according to the coding conventions.
471 (force_move_till_expr): Avoid using C++ keywords as variable names.
472 (force_move_till): Cast according to the coding conventions.
473 (memref_hash): Likewise.
474 (memref_eq): Likewise.
475 (gather_mem_refs_stmt): Likewise.
476 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid using C++
477 keywords as variable names.
478 (idx_find_step): Cast according to the coding conventions.
479 (idx_record_use): Likewise.
480 (find_depends): Likewise.
481 (prepare_decl_rtl): Likewise.
482 (mbc_entry_hash): Likewise.
483 (mbc_entry_eq): Likewise.
484 * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
485 (simplify_replace_tree): Avoid using C++ keywords as variable names.
486 (idx_infer_loop_bounds): Cast according to the coding conventions.
487 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
488 * tree-ssa-math-opts.c (occ_new ): Likwise.
489 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
491 * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as variable
493 (add_use_op): Likewise.
495 (add_vuse_op): Likewise.
496 (add_vdef_op): Likewise.
497 (get_expr_operands): Likewise.
498 (push_stmt_changes): Use type safe memory macros.
499 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
500 keywords as variable names.
501 (conditional_replacement): Likewise.
502 (minmax_replacement): Likewise.
503 (abs_replacement): Likewise.
504 * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
506 (insert_fake_stores): Avoid using C++ keywords as variable names.
507 * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
509 * tree-ssa-structalias.c (heapvar_lookup): Likewise.
510 (heapvar_insert): Use type safe memory macros.
511 (new_var_info): Cast according to the coding conventions.
512 (new_constraint): Likewise.
513 (remove_preds_and_fake_succs): Use type safe memory macros.
514 * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
516 (thread_single_edge): Likewise.
517 (thread_through_loop_header): Likewise.
519 2007-06-06 Eric Christopher <echristo@apple.com>
521 * config/i386/i386.c (override_options): Move handling
522 of TARGET_SUBTARGET* earlier.
524 2007-06-06 Paolo Bonzini <bonzini@gnu.org>
526 * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
529 2007-06-06 Zdenek Dvorak <dvorakz@suse.cz>
531 * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
532 emited outside of basic block.
533 * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
535 * rtl.h (delete_insn_chain): Declaration changed.
536 * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
538 (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
539 (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
540 rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
541 to delete_insn_chain.
542 (rtl_verify_flow_info_1): Verify that the insns in header and footer
543 do not have bb field set.
544 (rtl_verify_flow_info): Verify that insns between basic blocks do not
546 * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
547 * cfgcleanup.c (try_optimize_cfg): Ditto.
549 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
551 * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
552 (lambda_body_vector_new): Use type safe memory macros.
553 (lambda_linear_expression_new): Likewise.
554 (lambda_loopnest_new): Likewise.
555 (lambda_lattice_new): Likewise.
556 (replace_uses_equiv_to_x_with_y): Cast according to the coding
557 conventions. Use type safe memory macros.
558 * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
559 (lambda_body_vector_s): Likewise.
560 * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
561 * lambda-trans.c (lambda_trans_matrix_new): Likewise.
563 2007-06-06 Richard Guenther <rguenther@suse.de>
565 * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
566 if we need to schedule cfg_cleanup.
567 (tree_ssa_forward_propagate_single_use_vars): Do so.
569 2007-06-06 Ian Lance Taylor <iant@google.com>
571 * fold-const.c (merge_ranges): If range_successor or
572 range_predecessor fail, just return 0.
574 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
576 PR tree-optimization/32216
577 * tree-vectorizer.c (supportable_widening_operation): Determine
578 signedness of FIX_TRUNC_EXPR from output operand.
579 (supportable_narrowing_operation): Ditto.
580 * tree-vect-generic.c (expand_vector_operations_1): Determine
581 signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
584 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
586 * config/i386/i386.c (enum pta_flags): Move out of struct scope...
587 (struct pta): ...from here. Change flags to unsigned to avoid
588 excessive casting (as it is used as a bit mask).
589 (override_options): Add casts according to the coding convenventions.
590 (x86_64_elf_unique_section): Likewise.
591 (examine_argument): Avoid using C++ keywords as variable names.
592 (construct_container): Likewise.
593 (legitimize_pic_address): Likewise.
594 (get_dllimport_decl): Cast according to the coding conventions. Use
595 type safe memory macros.
596 (legitimize_address): Cast according to the coding conventions.
597 (emit_i387_cw_initialization): Corrected the type of slot to enum
599 (ix86_init_machine_status): Use type safe memory macros.
600 (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
601 (bdesc_pcmpistr): Likewise.
602 (bdesc_crc32): Likewise.
603 (bdesc_sse_3arg): Likewise.
604 (bdesc_2arg): Likewise.
605 (bdesc_1arg): Likewise.
606 (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
607 (ix86_expand_sse_pcmpistr): Likewise.
608 (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
609 (ix86_builtin_vectorized_function): Change the type of fn to unsigned
610 int to match the langhook definition.
611 (ix86_builtin_conversion): Change the type of code to unsigned init to
612 match the langhook definition.
613 (ix86_preferred_reload_class): Avoid using C++ keywords as variable
615 (ix86_preferred_output_reload_class): Likewise.
616 (ix86_cannot_change_mode_class): Likewise.
617 (ix86_memory_move_cost): Likewise.
618 (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
619 avoid excessive casting later on.
620 (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
622 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
624 * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
625 as flags setting insn.
626 (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
628 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
630 * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
632 ("sse4_1_round<mode>2"): New insn pattern.
633 ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
635 ("floor<mode>2"): Rename from floordf2 and floorsf2. Macroize
636 expander using SSEMODEF mode macro. Expand using
637 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
638 ("ceil<mode>2"): Rename from ceildf2 and ceilsf2. Macroize
639 expander using SSEMODEF mode macro. Expand using
640 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
641 ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2. Macroize
642 expander using SSEMODEF mode macro. Expand using
643 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
644 * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
645 UNSPEC_ROUND instead of UNSPEC_ROUNDP.
646 ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
649 2007-06-06 Jan Sjodin <jan.sjodin@amd.com>
650 Sebastian Pop <sebpop@gmail.com>
652 * lambda.h (build_linear_expr): New.
653 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
654 Use build_linear_expr, call fold and force_gimple_operand.
655 (lambda_loopnest_to_gcc_loopnest): Check that there is
657 * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
659 2007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
661 PR preprocessor/23479
662 * doc/extend.texi: Document the 0b-prefixed binary integer
665 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
667 PR tree-optimization/32215
668 * tree-vectorizer.c (supportable_widening_operation): Return false
669 for unsupported FIX_TRUNC_EXPR tree code.
670 (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
672 2007-06-06 Nathan Froyd <froydnj@codesourcery.com>
674 * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
675 register on SPE targets. Change documentation to reflect
677 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
678 Change FIXED_SCRATCH to 14 and document why we're keeping r14
679 out of the register allocation pool.
680 (rs6000_reg_live_or_pic_offset_p): New function.
681 (rs6000_emit_prologue): Move the actual saving of LR up to free
682 r0 for holding r11. Split saving of SPE 64-bit registers into
683 its own case. Ensure that offsets will always be in-range for
684 'evstdd' by using r11 as a scratch register to point at the start
685 of the SPE save area. Save r11 if necessary, as it is the static
687 (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
688 into its own case. Ensure that offsets will always be in-range
689 for 'evldd' by using r11 as a scratch register to point at the
690 start of the SPE save area. Also adjust r11 when restoring
691 the stack pointer to compensate for pre-loading r11.
693 2007-06-05 Thomas Neumann <tneumann@users.sourceforge.net>
695 * cfg.c (init_flow): Use type safe memory macros.
696 (alloc_block): Likewise.
697 (unchecked_make_edge): Likewise.
698 (dump_flow_info): Avoid using C++ keywords as variable names.
699 (copy_original_table_clear): Cast according to the coding conventions.
700 (copy_original_table_set): Likewise.
701 * cfgexpand (label_rtx_for_bb): Likewise.
702 (expand_gimple_basic_block): Likewise.
703 * cfghooks.c (dump_bb): Likewise.
704 (lv_adjust_loop_header_phi): Avoid using C++ keywords as
706 (lv_add_condition_to_bb): Likewise.
707 * cfglayout (relink_block_chain): Cast according to the coding
709 (fixup_reorder_chain): Likewise.
710 (fixup_fallthru_exit_predecessor): Likewise.
711 * cfgloop.c (glb_enum_p): Likewise.
712 (get_exit_description): Likewise.
713 (dump_recorded_exit): Likewise.
714 * cfgloop.h (enum loop_estimation): Move out of struct scope...
715 (struct loop): ... from here.
716 * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
718 * cfgrtl.c (rtl_create_basic_block): Likewise.
719 (rtl_split_block): Likewise.
720 (rtl_dump_bb): Likewise.
721 (cfg_layout_split_block): Likewise.
722 (init_rtl_bb_info): Use typesafe memory macros.
724 * graphds.h (struct graph_edge): Renamed edge to graph_edge.
725 * graphds.h: Updated all usages of edge to graph_edge.
726 * graphds.c: Likewise.
727 * cfgloopanal.c: Likewise.
729 2007-06-05 Ian Lance Taylor <iant@google.com>
731 * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
732 PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
733 (extract_range_from_assert): Set TREE_NO_WARNING when creating an
735 (test_for_singularity): Likewise.
737 2007-06-05 H.J. Lu <hongjiu.lu@intel.com>
739 * config/i386/constraints.md ("Y2"): Replaced by ...
741 * config/i386/i386.md: Likewise.
742 * config/i386/mmx.md: Likewise.
743 * config/i386/sse.md: Likewise.
745 2007-06-05 H.J. Lu <hongjiu.lu@intel.com>
747 * config/i386/constraints.md ("z"): Replaced by ...
749 * config/i386/sse.md (sse4_1_blendvpd): Likewise.
750 (sse4_1_blendvps): Likewise.
751 (sse4_1_pblendvb): Likewise.
752 (sse4_2_pcmpestr): Likewise.
753 (sse4_2_pcmpestrm): Likewise.
754 (sse4_2_pcmpestr_cconly): Likewise.
755 (sse4_2_pcmpistr): Likewise.
756 (sse4_2_pcmpistrm): Likewise.
757 (sse4_2_pcmpistr_cconly): Likewise.
759 2007-06-05 Razya Ladelsky <razya@il.ibm.com>
761 * matrix-reorg.c (transform_access_sites): Fix computation.
762 (transform_allocation_sites): Same.
764 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
766 * config/i386/i386.c (override_options): Use
767 TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
769 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
771 * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
772 (nonimm_not_xmm0_operand): Ditto.
773 * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
774 as operand[0] and operand[1] predicate. Use "nonimm_not_xmm0_operand"
775 as operand[2] predicate. Require "z" class XMM register for
776 operand[3]. Adjust asm template.
777 ("sse4_1_blendvpd"): Ditto.
778 ("sse4_1_pblendvb"): Ditto.
779 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
780 force op2 into xmm0 register for variable blend instructions.
782 2007-06-04 Tom Tromey <tromey@redhat.com>
784 * c-tree.h (start_enum): Update.
785 (build_enumerator): Likewise.
786 * c-decl.c (enum_next_value): Removed.
787 (enum_overflow): Likewise.
788 (start_enum): Add c_enum_contents argument. Don't use globals.
789 (build_enumerator): Likewise.
790 * c-tree.h (struct c_enum_contents): New struct.
792 2007-06-04 Tom Tromey <tromey@redhat.com>
794 * c-common.c (c_common_get_alias_set): Fix indentation.
796 2007-06-04 Ian Lance Taylor <iant@google.com>
798 * tree-vrp.c (adjust_range_with_scev): When loop is not expected
799 to overflow, reduce overflow infinity to regular infinity.
800 (vrp_var_may_overflow): New static function.
801 (vrp_visit_phi_node): Check vrp_var_may_overflow.
803 2007-06-04 Kazu Hirata <kazu@codesourcery.com>
805 * stor-layout.c (layout_type): Remove duplicate code.
807 2007-06-04 Uros Bizjak <ubizjak@gmail.com>
810 * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins ()
811 before build_common_builtin_nodes ().
813 2007-06-04 Steve Ellcey <sje@cup.hp.com>
816 * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
818 2007-06-04 Jan Hubicka <jh@suse.cz>
820 * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
821 reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
822 instead of _stat version.
824 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
826 PR tree-optimization/32194
827 * tree-predcom.c (determine_offset): Check that both references have
830 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
832 * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
833 Change dom_bbs to vector. Add argument to iterate_fix_dominators call.
834 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
835 * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
836 Add argument to iterate_fix_dominators call.
837 (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
838 * gcse.c (hoist_code): Change domby to vector.
839 * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
840 Add argument to iterate_fix_dominators call.
841 * loop-doloop.c (doloop_modify): Changed recount_dominator to
843 * lambda-code.c (perfect_nestify): Ditto.
844 * cfgloopanal.c: Include graphds.h.
845 (struct edge, struct vertex, struct graph, dump_graph, new_graph,
846 add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
847 (mark_irreducible_loops): Use graphds_scc. Remove argument from
849 * graphds.c: New file.
850 * graphds.h: New file.
851 * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
852 (get_dominated_by, get_dominated_by_region): Change return type to
854 (verify_dominators): Recompute all dominators and compare the results.
855 (recount_dominator): Renamed to ...
856 (recompute_dominator): ... this. Do not check that the block is
858 (iterate_fix_dominators): Reimplemented.
859 (prune_bbs_to_update_dominators, root_of_dom_tree,
860 determine_dominators_for_sons): New functions.
861 * et-forest.c (et_root): New function.
862 * et-forest.h (et_root): Declare.
863 * Makefile.in (graphds.o): Add.
864 (cfgloopanal.o): Add graphds.h dependency.
865 (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
866 * basic-block.h (get_dominated_by, get_dominated_by_region,
867 iterate_fix_dominators): Declaration changed.
868 (recount_dominator): Renamed to ...
869 (recompute_dominator): ... this.
870 * tree-ssa-threadupdate.c (thread_block): Free dominance info.
871 (thread_through_all_blocks): Do not free dominance info.
873 2007-06-03 Andreas Schwab <schwab@suse.de>
875 * config/m68k/m68k.c (override_options): Don't override
877 * config/m68k/m68k-modes.def (SF, DF): Define to use
878 motorola_single_format and motorola_double_format, resp.
879 * real.c (motorola_single_format): Renamed from
880 coldfire_single_format.
881 (motorola_double_format): Renamed from coldfire_double_format.
882 (encode_ieee_extended): Generate a proper canonical NaN image
883 respecting canonical_nan_lsbs_set.
884 (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
886 * real.h: Adjust declarations.
888 2007-06-03 Kaz Kojima <kkojima@gcc.gnu.org>
891 * config/sh/sh.md (symGOT_load): Don't schedule insns when
892 the symbol is generated with the stack protector.
894 2007-06-03 Kazu Hirata <kazu@codesourcery.com>
896 * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
897 (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
899 * doc/extend.texi (interrupt): Mention m68k.
901 2007-06-02 Uros Bizjak <ubizjak@gmail.com>
903 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
904 safe_vector_operand() if input operand is VECTOR_MODE_P operand.
905 (ix86_expand_sse_pcmpestr): Do not check operands for
906 "register_operand", when insn operand predicate is "register_operand".
907 (ix86_expand_sse_pcmpistr): Ditto.
909 2007-06-02 H.J. Lu <hongjiu.lu@intel.com>
910 Uros Bizjak <ubizjak@gmail.com>
912 * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
913 (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
914 (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
915 (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
916 * config/i386/constraints.md ("z"): New register constraint
917 for members of SSE_FIRST_REG class.
918 * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
919 * config/i386/i386.c (regclass_map): Change class of %xmm0 to
921 (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
922 (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
923 (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
924 (IX86_BUILTIN_PCMPESTRM128): Likewise.
925 (IX86_BUILTIN_PCMPESTRA128): Likewise.
926 (IX86_BUILTIN_PCMPESTRC128): Likewise.
927 (IX86_BUILTIN_PCMPESTRO128): Likewise.
928 (IX86_BUILTIN_PCMPESTRS128): Likewise.
929 (IX86_BUILTIN_PCMPESTRZ128): Likewise.
930 (IX86_BUILTIN_PCMPISTRI128): Likewise.
931 (IX86_BUILTIN_PCMPISTRM128): Likewise.
932 (IX86_BUILTIN_PCMPISTRA128): Likewise.
933 (IX86_BUILTIN_PCMPISTRC128): Likewise.
934 (IX86_BUILTIN_PCMPISTRO128): Likewise.
935 (IX86_BUILTIN_PCMPISTRS128): Likewise.
936 (IX86_BUILTIN_PCMPISTRZ128): Likewise.
937 (struct builtin_description): Change "flag" field to unsigned.
938 (bdesc_pcmpestr): New builtin description table.
939 (bdesc_pcmpistr): Likewise.
940 (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
941 v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
942 Initialize pcmp[ei]str[im] insns for SSE4.2.
943 (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
944 (ix86_expand_sse_pcmpistr): Likewise.
945 (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
946 * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
947 (UNSPEC_PCMPISTR): Likewise.
948 * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
949 (sse4_2_pcmpestri):New isns pattern.
950 (sse4_2_pcmpestrm): Likewise.
951 (sse4_2_pcmpestr_cconly): Likewise.
952 (sse4_2_pcmpistr): New insn patern and splitter.
953 (sse4_2_pcmpistri):New isns pattern.
954 (sse4_2_pcmpistrm): Likewise.
955 (sse4_2_pcmpistr_cconly): Likewise.
956 * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
959 2007-06-01 David Daney <ddaney@avtrex.com>
961 * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
962 LOADGP_ABSOLUTE and not binds_local_p.
964 2007-06-01 Geoffrey Keating <geoffk@apple.com>
966 * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
968 2007-06-01 Ian Lance Taylor <iant@google.com>
970 * tree-vrp.c (compare_name_with_value): Always set
971 used_strict_overflow if we get a result from the variable itself.
973 2007-06-01 Ian Lance Taylor <iant@google.com>
975 PR rtl-optimization/31455
976 * lower-subreg.c (find_decomposable_subregs): Don't decompose
977 subregs which have a cast between modes which are not tieable.
979 2007-06-01 Uros Bizjak <ubizjak@gmail.com>
981 * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
982 breaks after return statements.
984 2007-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
986 * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
987 only after no_new_pseudos.
989 2007-05-31 Eric Christopher <echristo@apple.com>
991 * expr.c (convert_move): Assert that we don't have a BLKmode
993 (store_expr): Handle BLKmode moves by calling emit_block_move.
995 2007-05-31 Daniel Berlin <dberlin@dberlin.org>
997 * c-typeck.c (build_indirect_ref): Include type in error message.
998 (build_binary_op): Pass types to binary_op_error.
999 * c-common.c (binary_op_error): Take two type arguments, print out
1001 * c-common.h (binary_op_error): Update prototype.
1003 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
1005 * config/i386/i386.c: Correct coments on -mno-sse4.
1007 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
1009 * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
1010 (x86_64-*-*): Likewise.
1011 * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
1012 (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
1013 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
1014 (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
1015 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
1016 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
1017 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
1018 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
1019 (OPTION_MASK_ISA_SSE4): Likewise.
1020 (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
1021 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
1022 (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET. Handle SSE4.2.
1023 (override_options): Support SSE4.2.
1024 (ix86_build_const_vector): Support SImode and DImode.
1025 (ix86_build_signbit_mask): Likewise.
1026 (ix86_expand_int_vcond): Support V2DImode.
1027 (IX86_BUILTIN_CRC32QI): New for SSE4.2.
1028 (IX86_BUILTIN_CRC32HI): Likewise.
1029 (IX86_BUILTIN_CRC32SI): Likewise.
1030 (IX86_BUILTIN_CRC32DI): Likewise.
1031 (IX86_BUILTIN_PCMPGTQ): Likewise.
1032 (bdesc_crc32): Likewise.
1033 (bdesc_sse_3arg): Likewise.
1034 (ix86_expand_crc32): Likewise.
1035 (ix86_init_mmx_sse_builtins): Support SSE4.2.
1036 (ix86_expand_builtin): Likewise.
1037 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
1038 __SSE4_2__ for -msse4.2.
1039 * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
1040 (CRC32MODE): Likewise.
1041 (crc32modesuffix): Likewise.
1042 (crc32modeconstraint): Likewise.
1043 (sse4_2_crc32<mode>): Likewise.
1044 (sse4_2_crc32di): Likewise.
1045 * config/i386/i386.opt (msse4.2): New for SSE4.2.
1047 * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
1048 * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
1049 * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
1050 (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
1051 (vcondu<mode>): Likewise.
1052 * doc/extend.texi: Document SSE4.2 built-in functions.
1053 * doc/invoke.texi: Document -msse4.2/-msse4.
1055 2007-05-31 Zdenek Dvorak <dvorakz@suse.cz>
1057 PR tree-optimization/32160
1058 * tree-predcom.c (predcom_tmp_var): New function. Mark created
1059 variable as gimple reg.
1060 (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
1062 2007-05-31 Kazu Hirata <kazu@codesourcery.com>
1064 * gcc.c (main): Don't consider linker options when issuing the
1065 warning about a linker input file not being used.
1067 2007-05-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1069 * tree-vrp.c (compare_names): Initialize sop.
1071 2007-05-30 Dirk Mueller <dmueller@suse.de>
1073 * cgraphunit.c (cgraph_analyze_function): Remove
1074 computation of inline parameters.
1076 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
1078 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
1080 2007-05-30 Richard Sandiford <richard@codesourcery.com>
1082 * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
1083 Add vx-common.h. Include vxworks.h between vx-common.h and
1085 * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
1087 * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
1088 (TARGET_ASM_DESTRUCTOR): Likewise.
1089 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
1090 instead of arm_is_xscale. Use VXWORKS_OS_CPP_BUILTINS.
1091 (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
1092 (CC1_SPEC): Add -tstrongarm. Line up backslashes.
1093 (VXWORKS_ENDIAN_SPEC): Define.
1094 (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
1095 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
1096 VXWORKS_* equivalents.
1097 (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
1098 (ASM_FILE_START): Delete.
1099 (TARGET_VERSION): Reformat.
1100 (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
1101 (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
1102 * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
1103 (FPBIT, DPBIT): Define.
1104 (fp-bit.c, dp-bit.c): New rules.
1105 (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
1106 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
1107 * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
1108 * config/arm/arm.h: Include vxworks-dummy.h.
1109 * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
1110 Mark with ATTRIBUTE_UNUSED.
1111 (arm_override_options): Do not allow VxWorks RTP PIC to be used
1112 for Thumb. Force r9 to be the PIC register for VxWorks RTPs and
1113 make it incompatible with -msingle-pic-base.
1114 (arm_function_ok_for_sibcall): Return false for calls that might
1115 go through a VxWorks PIC PLT entry.
1116 (require_pic_register): New function, split out from...
1117 (legitimize_pic_address): ...here. Do not use GOTOFF accesses
1119 (arm_load_pic_register): Handle the VxWorks RTP initialization
1120 sequence. Use pic_reg as a shorthand for cfun->machine->pic_reg.
1121 (arm_emit_call_insn): New function.
1122 (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
1123 * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
1124 (pic_offset_arm): New pattern.
1125 (call, call_value): Use arm_emit_call_insn.
1126 (call_internal, call_value_internal): New expanders.
1127 * config/arm/lib1funcs.asm (__PLT__): Define to empty for
1128 VxWorks unless __PIC__.
1130 2007-05-30 Eric Christopher <echristo@gmail.com>
1132 * genrecog.c: Include regs.h in generated file.
1133 * genemit.c: Ditto. Fix up formatting.
1134 * config/mn10300/constraints.md: New.
1135 * config/mn10300/mn10300.md: Include.
1136 * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
1137 Fix up for removed macro.
1138 * config/mn10300/predicates.md (call_address_operand): Ditto.
1139 * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
1140 (CONST_OK_FOR_I): Ditto.
1141 (CONST_OK_FOR_J): Ditto.
1142 (CONST_OK_FOR_K): Ditto.
1143 (CONST_OK_FOR_L): Ditto.
1144 (CONST_OK_FOR_M): Ditto.
1145 (CONST_OK_FOR_N): Ditto.
1146 (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
1150 (EXTRA_CONSTRAINT): Ditto.
1152 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
1154 * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
1156 * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
1157 OPTION_MASK_ISA_64BIT.
1158 * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
1160 2007-05-30 Richard Guenther <rguenther@suse.de>
1163 * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
1164 types for comparison.
1165 * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
1166 with original typed arguments.
1167 * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
1169 2007-05-30 Jakub Jelinek <jakub@redhat.com>
1171 PR tree-optimization/31769
1172 * except.c (duplicate_eh_regions): Clear prev_try if
1173 ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
1175 2007-05-30 Zdenek Dvorak <dvorakz@suse.cz>
1177 * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
1178 * tree-ssa-sink.c (statement_sink_location): Return basic block and
1179 bsi of the location where statements should be inserted.
1180 (sink_code_in_bb): Take bsi from statement_sink_location.
1181 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
1182 instead of bsi_start.
1183 * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
1185 * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
1186 (bsi_move_before): Document inconsistency with bsi_move_after.
1187 (tree_redirect_edge_and_branch): Do not create labels if not necessary.
1189 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
1191 * config/i386/i386.h (TARGET_ABM): New define.
1192 (TARGET_POPCNT): Ditto.
1193 (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
1194 New temporary defines to redefine from OPTION_ISA_* defines.
1195 (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
1196 New temporary defines to redefine from OPTION_MASK_ISA_* defines.
1197 (ix86_isa_flags): New extern int declaration.
1198 (TARGET_SUBTARGET_DEFAULT): New define.
1199 (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
1200 (TARGET_SUBTARGET32_DEFAULT): Ditto.
1201 (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
1202 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
1203 * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
1204 * config/i386/darwin.h: Change TARGET_64BIT define to
1207 * config/i386/i386.opt (m3dnowa): Define as undocumented option
1208 using existing "ix86_isa_flags" varible.
1209 (m32, m64): Use existing "ix86_isa_flags" variable.
1210 (mmmx, m3dnow): Ditto.
1211 (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
1212 (mabm): Define as non-negative option using "x86_abm" variable.
1213 (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
1215 * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
1216 Rewrite feature test bitmap.
1217 (ix86_isa_flags): New initialized global int varible.
1218 (ix86_isa_flags_explicit): New static int variable.
1219 (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
1220 msse, msse2, msse3, msse4.1 and msse4a option is processed. Change
1221 i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
1222 target_flags_explicit.
1223 (override_options): Remove "target_enable" and "target_disable" fields
1224 from "struct ptt". Update processor_target_table accordingly. Remove
1225 PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
1226 defined and rearrange PTA_* bits. Use "ix86_isa_flags" instead of
1227 "target_flags" and "ix86_isa_flags_explicit" instead of
1228 "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
1229 MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*. Set "x86_abm" to true when
1230 PTA_ABM is set in processor_alias_table flags entry. Set "x86_popcnt"
1231 to true when either of PTA_POPCNT or PTA_ABM is set in
1232 processor_alias_table flags entry. Set "x86_prefetch_sse" to true
1233 when either of PTA_PREFETCH_SSE or PTA_SSE is set in
1234 processor_alias_table flags entry. Remove handling of
1235 "target_enable" and "target_disable" fields of processor_target_table.
1236 Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
1237 targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
1238 Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
1239 targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
1240 (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
1242 (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
1244 2007-05-29 David Daney <ddaney@avtrex.com>
1247 * config/mips/mips.c (mips_output_mi_thunk): Emit
1248 NOTE_INSN_PROLOGUE_END at beginning of the thunk.
1250 2007-05-29 Hui-May Chang <hm.chang@apple.com>
1251 * config/i386/i386.c (ix86_function_regparm): Added checking of
1252 ix86_force_align_arg_pointer to determine the number of
1253 register parameters.
1255 2007-05-29 Zdenek Dvorak <dvorakz@suse.cz>
1257 * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
1258 (SET_DR_MISALIGNMENT): New.
1259 * tree-vect-analyze.c (vect_compute_data_ref_alignment,
1260 vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
1261 Use SET_DR_MISALIGNMENT.
1262 * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
1264 * tree-data-ref.c (create_data_ref, compute_all_dependences,
1265 find_loop_nest): Export.
1266 * tree-data-ref.h (struct data_reference): Change aux field to pointer.
1267 (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
1268 * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
1269 (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
1271 (struct mem_ref): Add field reuse_distance.
1272 (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
1273 Initialize reuse_distance field.
1274 (issue_prefetch_ref): Select temporality of prefetch according to
1276 (volume_of_references, volume_of_dist_vector, add_subscript_strides,
1277 self_reuse_distance, determine_loop_nest_reuse): New functions.
1278 (loop_prefetch_arrays): Call determine_loop_nest_reuse.
1279 (tree_ssa_prefetch_arrays): Dump L2 cache size.
1280 * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
1283 2007-05-29 Daniel Berlin <dberlin@dberlin.org>
1285 * tree-ssa-alias.c: Add aliasing overview.
1287 2007-05-29 Zuxy Meng <zuxy.meng@gmail.com>
1288 Danny Smith <dannysmith@users.sourceforge.net>
1291 * config/i386/t-crtfm: Compile crtfastmath.o with
1292 -minline-all-stringops.
1293 * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
1294 * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
1296 2007-05-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1298 * doc/md.texi: Document constraints on HP PA-RISC.
1300 * pa/constraints.md: New file.
1301 * pa.md: Include constraints.md.
1302 * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
1303 (integer_store_memory_operand, ldil_cint_p): New functions.
1304 * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
1305 * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
1306 IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
1307 * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
1308 * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
1310 2007-05-28 Andrew Pinski <Andrew_pinski@playstation.sony.com>
1313 * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
1314 case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
1315 case POSTDECREMENT_EXPR>): Return the error_mark_node
1316 if either the real or imaginary parts would an
1319 2007-05-28 Daniel Berlin <dberlin@dberlin.org>
1321 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
1322 name when we remove it from a call.
1324 2007-05-28 Kazu Hirata <kazu@codesourcery.com>
1326 * targhooks.c (default_narrow_bitfield): Remove.
1327 * targhooks.h: Remove the prototype for
1328 default_narrow_bitfield.
1330 * langhooks-def.h: Remove the prototype for
1331 hook_get_alias_set_0.
1332 * langhooks.c (hook_get_alias_set_0): Remove.
1334 * global.c (EXECUTE_IF_CONFLICT): Remove.
1336 2007-05-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
1339 * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
1340 return true when truth_value_p is true and the type
1343 2007-05-28 Gerald Pfeifer <gerald@pfeifer.com>
1345 * doc/install.texi (Prerequisites): We no longer require Autoconf
1346 2.13 for the top-level.
1348 2007-05-28 Uros Bizjak <ubizjak@gmail.com>
1350 * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
1351 memory access via x86_expand_vector_move_misalign() only for
1352 TImode values on 32-bit targets.
1354 2007-05-28 Razya Ladelsky <razya@il.ibm.com>
1356 * matrix-reorg.c: New file. Implement matrix flattening and
1357 transposing optimization.
1358 * tree-pass.h: Add matrix reorg pass.
1359 * common.opt: Add fipa-mreorg flag.
1360 * Makefile.in: Add matrix-reorg.c.
1361 * passes.c: Add matrix reorg pass.
1362 * varpool.c (add_new_static_var): New function.
1363 * cgraph.h (add_new_static_var): Declare.
1365 2007-05-27 Eric Christopher <echristo@apple.com>
1367 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
1368 sp_offset depending on stack size. Save r12 depending
1369 on registers we're saving later.
1370 (rs6000_emit_epilogue): Update sp_offset depending only
1373 2007-05-27 Zdenek Dvorak <dvorakz@suse.cz>
1375 * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
1376 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
1377 * ifcvt.c (if_convert): Ditto.
1378 * tree-ssa-threadupdate.c (thread_block): Ditto.
1379 (thread_through_all_blocks): Ditto. Assert that loops were analysed.
1380 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
1381 verify_loop_closed_ssa): Check number_of_loops instead of
1383 * predict.c (tree_estimate_probability): Ditto.
1384 * tree-if-conv.c (main_tree_if_conversion): Ditto.
1385 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
1386 * modulo-sched.c (sms_schedule): Ditto.
1387 * tree-scalar-evolution.c (scev_const_prop): Ditto.
1388 (scev_finalize): Do not do anything if scev analysis was not
1390 * cfgloopanal.c (mark_irreducible_loops): Do not check whether
1391 current_loops == NULL.
1392 (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
1393 * loop-init.c (loop_optimizer_init): Do not free current_loops when
1395 (loop_optimizer_finalize): Assert that loops were analyzed.
1396 (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
1397 rtl_doloop): Check number_of_loops instead of current_loops.
1398 * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
1399 current_loops == NULL.
1400 (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
1401 gate_tree_vectorize tree_linear_transform, check_data_deps,
1402 tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
1403 tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
1404 Check number_of_loops instead of current_loops.
1405 (tree_ssa_loop_done): Do not check whether current_loops == NULL.
1406 * tree-ssa-pre.c (fini_pre): Do not take do_fre argument. Always
1407 free loops if available.
1408 (execute_pre): Do not pass do_fre to fini_pre.
1410 2007-05-27 Tobias Burnus <burnus@net-b.de>
1413 * real.c (mpfr_from_real): Fix sign of -Inf.
1415 2007-05-27 H.J. Lu <hongjiu.lu@intel.com>
1417 * tree-vect-transform.c (vectorizable_conversion): Initialize
1418 tree_code variables to ERROR_MARK.
1419 (vectorizable_type_demotion): Likewise.
1420 (vectorizable_type_promotion): Likewise.
1422 2007-05-26 Uros Bizjak <ubizjak@gmail.com>
1425 * config/i386/i386.md (movti): Handle push operands via
1428 2007-05-26 Kazu Hirata <kazu@codesourcery.com>
1430 * basic-block.h: Remove the prototype for merge_seq_blocks.
1431 * cfgcleanup.c (merge_seq_blocks): Remove.
1433 * tree-flow.h: Remove the prototype for is_aliased_with.
1434 * tree-ssa-alias.c (is_aliased_with): Remove.
1436 2007-05-26 H.J. Lu <hongjiu.lu@intel.com>
1438 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
1440 * config/i386/i386.c (ix86_expand_sse4_unpack): New.
1442 * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
1443 ix86_expand_sse4_unpack if SSE4.1 is enabled.
1444 (vec_unpacks_hi_v16qi): Likewise.
1445 (vec_unpacku_lo_v16qi): Likewise.
1446 (vec_unpacks_lo_v16qi): Likewise.
1447 (vec_unpacku_hi_v8hi): Likewise.
1448 (vec_unpacks_hi_v8hi): Likewise.
1449 (vec_unpacku_lo_v8hi): Likewise.
1450 (vec_unpacks_lo_v8hi): Likewise.
1451 (vec_unpacku_hi_v4si): Likewise.
1452 (vec_unpacks_hi_v4si): Likewise.
1453 (vec_unpacku_lo_v4si): Likewise.
1454 (vec_unpacks_lo_v4si): Likewise.
1456 2007-05-26 Kazu Hirata <kazu@codesourcery.com>
1458 * c-typeck.c, config/arm/arm.c, config/darwin.c,
1459 config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
1460 omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
1461 follow spelling conventions in various
1462 warning/error/diagnostic messages.
1464 * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
1465 df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
1466 fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
1467 tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
1468 tree-vrp.c: Fix comment typos. Follow spelling conventions.
1469 * doc/tm.texi: Follow spelling conventions.
1471 2007-05-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
1474 * tree-ssa-forwprop.c
1475 (forward_propagate_addr_into_variable_array_index): Remove
1476 the lhs argument. Use the type of def_rhs instead of lhs.
1477 (forward_propagate_addr_expr_1): Update use of
1478 forward_propagate_addr_into_variable_array_index.
1480 2007-05-25 Sandra Loosemore <sandra@codesourcery.com>
1481 Nigel Stephens <nigel@mips.com>
1483 * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
1484 function attributes, "far" being an alias for "long_call".
1485 (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
1486 (mips_near_type_p, mips_far_type_p): New.
1487 (mips_comp_type_attributes): New function to check that attributes
1488 attached to a function type are compatible.
1489 (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
1490 TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
1491 to the target function of the thunk.
1492 (mips_encode_section_info): Check for "near" and "far" function
1493 attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
1495 * config/mips/predicates.md (const_call_insn_operand): Test only
1496 SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
1498 * doc/extend.texi (Function Attributes): Document MIPS "near" and
1501 * testsuite/gcc.target/mips/near-far-1.c: New test case.
1502 * testsuite/gcc.target/mips/near-far-2.c: New test case.
1503 * testsuite/gcc.target/mips/near-far-3.c: New test case.
1504 * testsuite/gcc.target/mips/near-far-4.c: New test case.
1506 2007-05-25 Eric Christopher <echristo@apple.com>
1508 * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
1509 to x86-darwin configurations.
1510 * config/i386/t-darwin: Add softfp support.
1511 * config/i386/t-darwin64: Ditto.
1512 * config/i386/sfp-machine.h: If mach then don't use
1513 aliasing, emit a stub to call.
1515 2007-05-25 Kazu Hirata <kazu@codesourcery.com>
1517 * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
1518 haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
1519 tree-predcom.c, tree-ssa-alias-warnings.c,
1520 tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
1521 comment typos. Follow spelling conventions.
1522 * doc/cpp.texi, doc/invoke.texi: Fix typos.
1524 2007-05-26 Uros Bizjak <ubizjak@gmail.com>
1527 * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
1528 constants into memory. Expand unaligned memory references for
1529 SSE modes via x86_expand_vector_move_misalign() function.
1531 2007-05-25 Uros Bizjak <ubizjak@gmail.com>
1533 * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
1534 "memory" attribute for "sseishft" type insn without operands[2].
1536 2007-05-25 Dirk Mueller <dmueller@suse.de>
1537 Marcus Meissner <meissner@suse.de>
1539 * doc/extend.texi (alloc_size): New attribute.
1540 * c-common.c (handle_alloc_size_attribute): New.
1541 * tree-object-size.c (alloc_object_size): Use alloc_size
1542 attribute, if available.
1544 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
1546 * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
1548 (__builtin_ia32_vec_ext_v2di): Likewise.
1549 (__builtin_ia32_vec_ext_v4si): Likewise.
1550 (__builtin_ia32_vec_ext_v8hi): Likewise.
1551 (__builtin_ia32_vec_ext_v16qi): Likewise.
1552 (__builtin_ia32_vec_set_v8hi): Likewise.
1554 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
1556 * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
1558 2007-05-25 Richard Sandiford <richard@codesourcery.com>
1560 * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
1561 (arm_is_longcall_p): Rename to...
1562 (arm_is_long_call_p): ...this. Take a single tree argument and
1564 * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
1565 (CUMULATIVE_ARGS): Remove call_cookie.
1566 (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
1567 (ENCODED_LONG_CALL_ATTR_P): Delete.
1568 (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
1569 LONG_CALL_FLAG_CHAR cases.
1570 (ARM_DECLARE_FUNCTION_SIZE): Delete.
1571 * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
1572 ARM_DECLARE_FUNCTION_SIZE.
1573 * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
1574 (arm_function_arg): Return const0_rtx for VOIDmode arguments.
1575 (arm_encode_call_attribute, current_file_function_operand): Delete.
1576 (arm_function_in_section_p): New function.
1577 (arm_is_longcall_p): Rename to...
1578 (arm_is_long_call_p): ...this. Take the target function as a single
1579 argument and return a bool. Do not rely on call cookies. Check
1580 whether the target symbol is in the same section as the current
1581 function, not just the same compilation unit.
1582 (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
1583 (arm_encode_section_info): Don't encode a call type.
1584 * config/arm/arm.md (call, call_value): Update calls to
1585 arm_is_long(_)call_p. Simplify logic.
1586 (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
1587 Update calls to arm_is_long(_)call_p.
1589 2007-05-25 Richard Guenther <rguenther@suse.de>
1591 PR tree-optimization/31982
1592 * tree-ssa-forwprop.c
1593 (forward_propagate_addr_into_variable_array_index): Handle arrays
1594 with element size one.
1596 2007-05-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
1598 * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
1599 (umulsi3_highpart): Likewise.
1601 2007-05-24 Ian Lance Taylor <iant@google.com>
1603 PR rtl-optimization/32069
1604 * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
1607 2007-05-24 Ollie Wild <aaw@google.com>
1609 * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
1612 2007-05-24 Richard Sandiford <rsandifo@nildram.co.uk>
1614 * postreload-gcse.c (reg_changed_after_insn_p): New function.
1615 (oprs_unchanged_p): Use it to check all registers in a REG.
1616 (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
1617 (reg_set_between_after_reload_p): Delete.
1618 (reg_used_between_after_reload_p): Likewise.
1619 (reg_set_or_used_since_bb_start): Likewise.
1620 (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
1621 and reg_used_between_p instead of reg_set_or_used_since_bb_start.
1622 Use reg_set_between_p instead of reg_set_between_after_reload_p.
1623 * rtlanal.c (reg_set_p): Check whether REG overlaps
1624 regs_invalidated_by_call, rather than just checking the
1625 membership of REGNO (REG).
1627 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
1629 * doc/passes.texi: Document predictive commoning.
1630 * doc/invoke.texi (-fpredictive-commoning): Document.
1631 * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
1632 * tree-ssa-loop-im.c (get_lsm_tmp_name): Export. Allow
1633 adding indices to the generated name.
1634 (schedule_sm): Pass 0 to get_lsm_tmp_name.
1635 * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
1636 * tree-pretty-print.c (op_symbol_1): Renamed to ...
1637 (op_symbol_code): ... and exported.
1638 (dump_omp_clause, op_symbol): Use op_symbol_code
1639 instead of op_symbol_1.
1640 * tree-pass.h (pass_predcom): Declare.
1641 * timevar.def (TV_PREDCOM): New timevar.
1642 * tree-ssa-loop.c (run_tree_predictive_commoning,
1643 gate_tree_predictive_commoning, pass_predcom): New.
1644 * tree-data-ref.c (find_data_references_in_loop): Find the
1645 references in dominance order.
1646 (canonicalize_base_object_address): Ensure that the result has
1648 (dr_analyze_innermost): Export.
1649 (create_data_ref): Code to fail for references with invariant
1651 (find_data_references_in_stmt): ... here.
1652 * tree-data-ref.h (dr_analyze_innermost): Declare.
1653 * tree-affine.c: Include tree-gimple.h and hashtab.h.
1654 (aff_combination_find_elt, name_expansion_hash,
1655 name_expansion_eq, tree_to_aff_combination_expand,
1656 double_int_constant_multiple_p, aff_combination_constant_multiple_p):
1658 * tree-affine.h (aff_combination_constant_multiple_p,
1659 tree_to_aff_combination_expand): Declare.
1660 * tree-predcom.c: New file.
1661 * common.opt (fpredictive-commoning): New option.
1662 * tree-flow.h (op_symbol_code, tree_predictive_commoning,
1663 stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
1664 * Makefile.in (tree-predcom.o): Add.
1665 (tree-affine.o): Add TREE_GIMPLE_H dependency.
1666 * passes.c (init_optimization_passes): Add dceloop after
1667 copy propagation in loop optimizer. Add predictive commoning
1668 to loop optimizer passes.
1670 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
1672 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
1675 2007-05-24 Jan Hubicka <jh@suse.cz>
1677 * gengenrtl.c (gendecl, gendef): Output the gens annotated for
1679 (genheader): Include statistics.h.
1681 * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
1683 * print-rtl.c (flag_dump_unnumbered): Update comments.
1684 (print_rtl): Fix my previous change.
1685 * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
1688 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
1691 * tree-ssa-threadupdate.c (thread_through_loop_header): Use
1693 (thread_through_all_blocks): Call initialize_original_copy_tables
1694 and free_original_copy_tables.
1695 * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
1697 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
1698 * cfghooks.c (duplicate_block): Use get_loop_copy.
1699 * cfg.c: Include cfgloop.h.
1700 (loop_copy): New hash table.
1701 (initialize_original_copy_tables): Initialize loop_copy table.
1702 (free_original_copy_tables): Free loop_copy table.
1703 (copy_original_table_clear, copy_original_table_set,
1704 set_loop_copy, get_loop_copy): New functions.
1705 (set_bb_original, set_bb_copy): Use copy_original_table_set.
1706 * cfgloop.h (struct loop): Remove copy field.
1707 * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
1708 * basic-block.h (set_loop_copy, get_loop_copy): Declare.
1710 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
1712 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
1713 -msse/-msse2/-msse3.
1715 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
1717 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
1718 __builtin_ia32_vec_set_v2di with MASK_64BIT.
1720 2007-05-24 Danny Smith <dannysmith@users.sourceforge.net>
1723 * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
1724 * targhooks.h (default_mangle_decl_assembler_name): Declare
1726 * targhooks.c (default_mangle_decl_assembler_name): Define
1728 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
1730 * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
1731 * langhooks.c (lhd_set_decl_assembler_name): Call
1732 targetm.mangle_decl_assembler_name for names with global scope.
1734 * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
1736 (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
1737 * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
1739 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
1740 New. Factored out of i386_pe_encode_section_info.
1741 (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
1742 Move check for prior decoration of stdcall
1743 symbols to i386_pe_encode_section_info.
1744 (i386_pe_encode_section_info): Adjust call to
1745 gen_stdcall_or_fastcall_suffix. Use
1746 i386_pe_maybe_mangle_decl_assembler_name, if needed.
1747 (i386_pe_mangle_decl_assembler_name): New. Wrap
1748 i386_pe_maybe_mangle_decl_assembler_name.
1750 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
1752 * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
1753 INTEGRAL_TYPE_P and TYPE_UNSIGNED.
1754 * langhooks.c (get_signed_or_unsigned_type): Don't check for
1755 INTEGRAL_TYPE_P or TYPE_UNSIGNED.
1756 (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
1759 2007-05-23 Sandra Loosemore <sandra@codesourcery.com>
1760 Nigel Stephens <nigel@mips.com>
1761 Richard Sandiford <richard@codesourcery.com>
1763 Fix up MIPS16 hard float and add support for complex.
1765 * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
1766 (TARGET_SOFT_FLOAT_ABI): New.
1767 (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
1768 __mips_soft_float to reflect the ABI in use, not whether the
1769 FPU is directly accessible (e.g., in MIPS16 mode).
1770 (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
1771 (UNITS_PER_FPVALUE): Likewise.
1773 * config/mips/mips.c (mips_expand_call): Remove redundant
1774 TARGET_MIPS16 check.
1775 (mips_arg_regno): New.
1776 (function_arg_advance): When setting bits in cum->fp_code for
1777 MIPS16, don't subtract 1 from cum->arg_number, since it is now
1779 (function_arg): Use mips_arg_regno.
1780 (mips_return_mode_in_fpr_p): New.
1781 (mips16_call_stub_mode_suffix): New.
1782 (mips16_cfun_returns_in_fpr_p): New.
1783 (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
1784 (mips_output_function_prologue): Test mips16_hard_float, not
1785 !TARGET_SOFT_FLOAT, to decide when a function stub is required.
1786 (mips_expand_epilogue): Call MIPS16 helper routines to copy
1787 return value into a floating-point register.
1788 (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
1789 (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
1790 (mips16_fp_args): Handle MIPS32r2 ISA which supports
1791 TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
1792 word of double arguments from or to the high bits of 64-bit
1793 floating point registers.
1794 (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
1795 (mips16_fpret_double): New helper function.
1796 (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p. Add
1797 support for complex modes. Fill in DECL_RESULT for stubdecl.
1798 (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
1800 * config/mips/mips16.S
1801 (RET, ARG1, ARG2): New.
1802 (MERGE_GPRf, MERGE_GPRt): New.
1803 (DELAYt, DELAYf): New.
1804 (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
1805 (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
1806 (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
1807 (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
1808 (SFOP): Renamed to...
1809 (OPSF3): This, and macro-ified. Updated all uses.
1810 (SFOP2): Renamed to...
1811 (OPSF2): This, and macro-ified. Updated all uses.
1812 (SFCMP): Renamed to...
1813 (CMPSF): This, and macro-ified. Updated all uses.
1814 (SFREVCMP): Renamed to...
1815 (REVCMPSF): This, and macro-ified. Updated all uses.
1816 (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
1817 (LDDBL1, LDDBL2, RETDBL): Deleted.
1818 (DFOP): Renamed to...
1819 (OPDF3): This, and macro-ified. Updated all uses.
1820 (DFOP2): Renamed to...
1821 (OPDF2): This, and macro-ified. Updated all uses.
1822 (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
1823 (DFCMP): Renamed to...
1824 (CMPDF): This, and macro-ified. Updated all uses.
1825 (DFREVCMP): Renamed to...
1826 (REVCMPDF): This, and macro-ified. Updated all uses.
1827 (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
1828 (RET_FUNCTION): New.
1829 (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
1830 (__mips16_ret_sc, __mips16_ret_dc): New.
1831 (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
1832 STUB_ARGS_6, STUB_ARGS_10): New.
1833 (CALL_STUB_NO_RET): New.
1834 (__mips16_call_stub_1): Macro-ified.
1835 (__mips16_call_stub_5): Macro-ified.
1836 (__mips16_call_stub_2): Macro-ified.
1837 (__mips16_call_stub_6): Macro-ified.
1838 (__mips16_call_stub_9): Macro-ified.
1839 (__mips16_call_stub_10): Macro-ified.
1840 (CALL_STUB_RET): New.
1841 (__mips16_call_stub_sf_0): Macro-ified.
1842 (__mips16_call_stub_sf_1): Macro-ified.
1843 (__mips16_call_stub_sf_5): Macro-ified.
1844 (__mips16_call_stub_sf_2): Macro-ified.
1845 (__mips16_call_stub_sf_6): Macro-ified.
1846 (__mips16_call_stub_sf_9): Macro-ified.
1847 (__mips16_call_stub_sf_10): Macro-ified.
1848 (__mips16_call_stub_df_0): Macro-ified.
1849 (__mips16_call_stub_df_1): Macro-ified.
1850 (__mips16_call_stub_df_5): Macro-ified.
1851 (__mips16_call_stub_df_2): Macro-ified.
1852 (__mips16_call_stub_df_6): Macro-ified.
1853 (__mips16_call_stub_df_9): Macro-ified.
1854 (__mips16_call_stub_df_10): Macro-ified.
1855 (__mips16_call_stub_sc_0): New.
1856 (__mips16_call_stub_sc_1): New.
1857 (__mips16_call_stub_sc_5): New.
1858 (__mips16_call_stub_sc_2): New.
1859 (__mips16_call_stub_sc_6): New.
1860 (__mips16_call_stub_sc_9): New.
1861 (__mips16_call_stub_sc_10): New.
1862 (__mips16_call_stub_dc_0): New.
1863 (__mips16_call_stub_dc_1): New.
1864 (__mips16_call_stub_dc_5): New.
1865 (__mips16_call_stub_dc_2): New.
1866 (__mips16_call_stub_dc_6): New.
1867 (__mips16_call_stub_dc_9): New.
1868 (__mips16_call_stub_dc_10): New.
1870 * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
1871 * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
1872 * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
1874 2007-05-23 Ian Lance Taylor <iant@google.com>
1876 * doc/invoke.texi (Invoking GCC): Document that the order of the
1879 2007-05-23 Chen Liqin <liqin@sunnorth.com.cn>
1882 * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
1883 * config/score/predicate.md (const_pow2, const_npow2): Remove.
1884 * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
1888 * config/score/score.c (score_print_operand): Make sure that only
1889 lower bits are used.
1891 2007-05-22 Ian Lance Taylor <iant@google.com>
1893 * tree-vrp.c (avoid_overflow_infinity): New static function,
1894 broken out of set_value_range_to_value.
1895 (set_value_range_to_value): Call avoid_overflow_infinity.
1896 (extract_range_from_assert): Likewise.
1898 2007-05-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
1901 * builtins.c (expand_builtin_memmove_args): Strip nops that don't
1902 change the type before looking for a COMPOUND_EXPR.
1904 2007-05-22 Ian Lance Taylor <iant@google.com>
1906 * lower-subreg.c (decompose_multiword_subregs): If we change an
1907 insn, call remove_retval_note on it.
1909 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
1911 * regs.h (end_hard_regno): New function.
1912 (END_HARD_REGNO, END_REGNO): New macros.
1913 (add_to_hard_reg_set): New function.
1914 (remove_from_hard_reg_set): Likewise.
1915 (in_hard_reg_set_p): Likewise.
1916 (overlaps_hard_reg_set_p): Likewise.
1917 * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
1918 (note_btr_set): Use END_HARD_REGNO.
1919 * caller-save.c (setup_save_areas): Use end_hard_regno.
1920 (mark_set_regs): Use END_HARD_REGNO.
1921 (add_stored_regs): Use end_hard_regno.
1922 (mark_referenced_regs): Use add_to_hard_reg_set.
1923 * combine.c (update_table_tick): Use END_REGNO.
1924 (record_value_for_reg): Likewise.
1925 (record_dead_and_set_regs): Likewise.
1926 (get_last_value_validate): Likewise.
1927 (use_crosses_set_p): Likewise.
1928 (reg_dead_at_p_1): Likewise.
1929 (reg_dead_at_p): Likewise.
1930 (mark_used_regs_combine): Use add_to_hard_reg_set.
1931 (move_deaths): Use END_HARD_REGNO.
1932 (reg_bitfield_target_p): Use end_hard_regno.
1933 (distribute_notes): Use END_HARD_REGNO.
1934 * cse.c (mention_regs): Use END_REGNO.
1935 (insert): Use add_to_hard_reg_set.
1936 (invalidate): Use END_HARD_REGNO.
1937 (invalidate_for_call): Likewise.
1938 (exp_equiv_p): Use END_REGNO.
1939 (cse_insn): Likewise.
1940 * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
1941 * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
1942 * df-scan.c (df_ref_record): Use END_HARD_REGNO.
1943 * function.c (keep_stack_depressed): Use end_hard_regno.
1944 * global.c (global_alloc): Use end_hard_regno.
1945 (global_conflicts): Use add_to_hard_reg_set instead of
1947 (find_reg): Likewise.
1948 (mark_reg_store): Likewise.
1949 (mark_reg_conflicts): Likewise.
1950 (mark_reg_death): Use remove_from_hard_reg_set.
1951 (mark_reg_live_nc): Delete.
1952 (set_preference): Use end_hard_regno.
1953 * local-alloc.c (mark_life): Use add_to_hard_reg_set and
1954 remove_from_hard_reg_set.
1955 (post_mark_life): Use add_to_hard_reg_set.
1956 * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
1957 (reg_becomes_live): Use add_to_hard_reg_set.
1958 * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
1959 (peep2_find_free_register): Use add_to_hard_reg_set.
1960 * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
1961 * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
1962 * regrename.c (note_sets): Use add_to_hard_reg_set.
1963 (clear_dead_regs): Use remove_from_hard_reg_set.
1964 (regrename_optimize): Use add_to_hard_reg_set.
1965 (find_oldest_value_reg): Use in_hard_reg_set_p.
1966 * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
1967 (hard_reg_set_here_p): Use end_hard_regno.
1968 (decompose): Likewise.
1969 (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
1970 (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
1971 * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
1972 (mark_home_live): Use end_hard_regno.
1973 (spill_hard_reg): Likewise.
1974 (clear_reload_reg_in_use): Likewise.
1975 * reorg.c (delete_prior_computation): Use END_REGNO.
1976 * resource.c (update_live_status): Use END_HARD_REGNO.
1977 (mark_referenced_resources): Use add_to_hard_reg_set.
1978 (mark_set_resources): Likewise.
1979 (mark_target_live_regs): Likewise. Use remove_from_hard_reg_set.
1980 * rtlanal.c (refers_to_regno_p): Use END_REGNO.
1981 (reg_overlap_mentioned_p): Likewise.
1982 (dead_or_set_p): Likewise. Use an exclusive upper loop bound.
1983 (covers_regno_no_parallel_p): Use END_REGNO.
1984 (find_regno_note): Likewise.
1985 (find_reg_fusage): Use END_HARD_REGNO.
1986 * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
1987 * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
1989 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
1991 * mode-switching.c (reg_dies): Change type of second argument to
1993 (optimize_mode_switching): Update accordingly.
1995 2007-05-22 Richard Sandiford <richard@codesourcery.com>
1997 * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
1999 (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
2000 (hard_reg_set_empty_p): ...these new functions.
2001 * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
2002 GO_IF_HARD_REG_SUBSET.
2003 * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
2004 instead of GO_IF_HARD_REG_EQUAL.
2005 * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
2006 instead of GO_IF_HARD_REG_EQUAL.
2007 * global.c (find_reg): Use hard_reg_set_empty_p instead of
2008 GO_IF_HARD_REG_SUBSET.
2009 (modify_reg_pav): Use hard_reg_set_empty_p instead of
2010 GO_IF_HARD_REG_EQUAL.
2011 * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
2012 of GO_IF_HARD_REG_SUBSET.
2013 * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
2014 instead of GO_IF_HARD_REG_EQUAL.
2015 * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
2016 hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
2017 (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
2018 of GO_IF_HARD_REG_SUBSET,
2019 * reload1.c (finish_spills): Use hard_reg_subset_p instead of
2020 GO_IF_HARD_REG_SUBSET.
2021 * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
2022 instead of GO_IF_HARD_REG_EQUAL.
2023 * config/sh/sh.c (push_regs, calc_live_regs): Use
2024 hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
2025 (hard_regs_intersect_p): Delete.
2027 2007-05-22 Janis Johnson <janis187@us.ibm.com>
2029 * doc/sourcebuild.texi (Test Directives) Add dg-message.
2031 2007-05-22 H.J. Lu <hongjiu.lu@intel.com>
2032 Richard Henderson <rth@redhat.com>
2034 * config.gcc (i[34567]86-*-*): Add smmintrin.h to
2036 (x86_64-*-*): Likewise.
2038 * i386/i386-modes.def (V2QI): New.
2040 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
2042 (override_options): Support SSE4.1.
2043 (IX86_BUILTIN_BLENDPD): New for SSE4.1.
2044 (IX86_BUILTIN_BLENDPS): Likewise.
2045 (IX86_BUILTIN_BLENDVPD): Likewise.
2046 (IX86_BUILTIN_BLENDVPS): Likewise.
2047 (IX86_BUILTIN_PBLENDVB128): Likewise.
2048 (IX86_BUILTIN_PBLENDW128): Likewise.
2049 (IX86_BUILTIN_DPPD): Likewise.
2050 (IX86_BUILTIN_DPPS): Likewise.
2051 (IX86_BUILTIN_INSERTPS128): Likewise.
2052 (IX86_BUILTIN_MOVNTDQA): Likewise.
2053 (IX86_BUILTIN_MPSADBW128): Likewise.
2054 (IX86_BUILTIN_PACKUSDW128): Likewise.
2055 (IX86_BUILTIN_PCMPEQQ): Likewise.
2056 (IX86_BUILTIN_PHMINPOSUW128): Likewise.
2057 (IX86_BUILTIN_PMAXSB128): Likewise.
2058 (IX86_BUILTIN_PMAXSD128): Likewise.
2059 (IX86_BUILTIN_PMAXUD128): Likewise.
2060 (IX86_BUILTIN_PMAXUW128): Likewise.
2061 (IX86_BUILTIN_PMINSB128): Likewise.
2062 (IX86_BUILTIN_PMINSD128): Likewise.
2063 (IX86_BUILTIN_PMINUD128): Likewise.
2064 (IX86_BUILTIN_PMINUW128): Likewise.
2065 (IX86_BUILTIN_PMOVSXBW128): Likewise.
2066 (IX86_BUILTIN_PMOVSXBD128): Likewise.
2067 (IX86_BUILTIN_PMOVSXBQ128): Likewise.
2068 (IX86_BUILTIN_PMOVSXWD128): Likewise.
2069 (IX86_BUILTIN_PMOVSXWQ128): Likewise.
2070 (IX86_BUILTIN_PMOVSXDQ128): Likewise.
2071 (IX86_BUILTIN_PMOVZXBW128): Likewise.
2072 (IX86_BUILTIN_PMOVZXBD128): Likewise.
2073 (IX86_BUILTIN_PMOVZXBQ128): Likewise.
2074 (IX86_BUILTIN_PMOVZXWD128): Likewise.
2075 (IX86_BUILTIN_PMOVZXWQ128): Likewise.
2076 (IX86_BUILTIN_PMOVZXDQ128): Likewise.
2077 (IX86_BUILTIN_PMULDQ128): Likewise.
2078 (IX86_BUILTIN_PMULLD128): Likewise.
2079 (IX86_BUILTIN_ROUNDPD): Likewise.
2080 (IX86_BUILTIN_ROUNDPS): Likewise.
2081 (IX86_BUILTIN_ROUNDSD): Likewise.
2082 (IX86_BUILTIN_ROUNDSS): Likewise.
2083 (IX86_BUILTIN_PTESTZ): Likewise.
2084 (IX86_BUILTIN_PTESTC): Likewise.
2085 (IX86_BUILTIN_PTESTNZC): Likewise.
2086 (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
2087 (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
2088 (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
2089 (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
2090 (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
2092 (bdesc_sse_3arg): Likewise.
2093 (bdesc_2arg): Likewise.
2094 (bdesc_1arg): Likewise.
2095 (ix86_init_mmx_sse_builtins): Support SSE4.1. Handle SSE builtins
2097 (ix86_expand_sse_4_operands_builtin): New.
2098 (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
2099 smaller than 8 bits as the 2nd arg.
2100 (ix86_expand_sse_ptest): New.
2101 (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
2102 (ix86_expand_vector_set): Support SSE4.1.
2103 (ix86_expand_vector_extract): Likewise.
2105 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
2106 __SSE4_1__ for -msse4.1.
2108 * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
2109 (UNSPEC_INSERTPS): Likewise.
2110 (UNSPEC_DP): Likewise.
2111 (UNSPEC_MOVNTDQA): Likewise.
2112 (UNSPEC_MPSADBW): Likewise.
2113 (UNSPEC_PHMINPOSUW): Likewise.
2114 (UNSPEC_PTEST): Likewise.
2115 (UNSPEC_ROUNDP): Likewise.
2116 (UNSPEC_ROUNDS): Likewise.
2118 * config/i386/i386.opt (msse4.1): New for SSE4.1.
2120 * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
2121 (const_pow2_1_to_32768_operand): Likewise.
2123 * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
2126 * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
2128 (sse4_1_insertps): Likewise.
2129 (*sse4_1_extractps): Likewise.
2130 (sse4_1_ptest): Likewise.
2131 (sse4_1_mulv2siv2di3): Likewise.
2132 (*sse4_1_mulv4si3): Likewise.
2133 (*sse4_1_smax<mode>3): Likewise.
2134 (*sse4_1_umax<mode>3): Likewise.
2135 (*sse4_1_smin<mode>3): Likewise.
2136 (*sse4_1_umin<mode>3): Likewise.
2137 (sse4_1_eqv2di3): Likewise.
2138 (*sse4_1_pinsrb): Likewise.
2139 (*sse4_1_pinsrd): Likewise.
2140 (*sse4_1_pinsrq): Likewise.
2141 (*sse4_1_pextrb): Likewise.
2142 (*sse4_1_pextrb_memory): Likewise.
2143 (*sse4_1_pextrw_memory): Likewise.
2144 (*sse4_1_pextrq): Likewise.
2145 (sse4_1_blendpd): Likewise.
2146 (sse4_1_blendps): Likewise.
2147 (sse4_1_blendvpd): Likewise.
2148 (sse4_1_blendvps): Likewise.
2149 (sse4_1_dppd): Likewise.
2150 (sse4_1_dpps): Likewise.
2151 (sse4_1_movntdqa): Likewise.
2152 (sse4_1_mpsadbw): Likewise.
2153 (sse4_1_packusdw): Likewise.
2154 (sse4_1_pblendvb): Likewise.
2155 (sse4_1_pblendw): Likewise.
2156 (sse4_1_phminposuw): Likewise.
2157 (sse4_1_extendv8qiv8hi2): Likewise.
2158 (*sse4_1_extendv8qiv8hi2): Likewise.
2159 (sse4_1_extendv4qiv4si2): Likewise.
2160 (*sse4_1_extendv4qiv4si2): Likewise.
2161 (sse4_1_extendv2qiv2di2): Likewise.
2162 (*sse4_1_extendv2qiv2di2): Likewise.
2163 (sse4_1_extendv4hiv4si2): Likewise.
2164 (*sse4_1_extendv4hiv4si2): Likewise.
2165 (sse4_1_extendv2hiv2di2): Likewise.
2166 (*sse4_1_extendv2hiv2di2): Likewise.
2167 (sse4_1_extendv2siv2di2): Likewise.
2168 (*sse4_1_extendv2siv2di2): Likewise.
2169 (sse4_1_zero_extendv8qiv8hi2): Likewise.
2170 (*sse4_1_zero_extendv8qiv8hi2): Likewise.
2171 (sse4_1_zero_extendv4qiv4si2): Likewise.
2172 (*sse4_1_zero_extendv4qiv4si2): Likewise.
2173 (sse4_1_zero_extendv2qiv2di2): Likewise.
2174 (*sse4_1_zero_extendv2qiv2di2): Likewise.
2175 (sse4_1_zero_extendv4hiv4si2): Likewise.
2176 (*sse4_1_zero_extendv4hiv4si2): Likewise.
2177 (sse4_1_zero_extendv2hiv2di2): Likewise.
2178 (*sse4_1_zero_extendv2hiv2di2): Likewise.
2179 (sse4_1_zero_extendv2siv2di2): Likewise.
2180 (*sse4_1_zero_extendv2siv2di2): Likewise.
2181 (sse4_1_roundpd): Likewise.
2182 (sse4_1_roundps): Likewise.
2183 (sse4_1_roundsd): Likewise.
2184 (sse4_1_roundss): Likewise.
2185 (mulv4si3): Don't expand for SSE4.1.
2186 (smax<mode>3): Likewise.
2187 (umaxv4si3): Likewise.
2188 (uminv16qi3): Likewise.
2189 (umin<mode>3): Likewise.
2190 (umaxv8hi3): Rewrite. Only enabled for SSE4.1.
2192 * doc/extend.texi: Document SSE4.1 built-in functions.
2194 * doc/invoke.texi: Document -msse4.1.
2196 2007-05-22 Nathan Sidwell <nathan@codesourcery.com>
2198 * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
2199 * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
2200 * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
2201 (ASM_SPEC): Add asm_pcrel_spec.
2202 (EXTRA_SPECS): Add asm_pcrel_spec.
2204 2007-05-21 David Daney <ddaney@avtrex.com>
2206 * doc/install.texi (Building a cross compiler): Add requirements
2207 for Java cross compiler.
2209 2007-05-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
2212 * tree-chrec.c (evolution_function_is_affine_multivariate_p):
2213 Add loopno argument. Use evolution_function_is_invariant_rec_p
2214 instead of evolution_function_is_constant_p.
2215 Update calls to evolution_function_is_affine_multivariate_p.
2216 * tree-chrec.h (evolution_function_is_affine_multivariate_p):
2217 Add loopno argument.
2218 * tree-scalar-evolution.c (gather_chrec_stats): Call
2219 evolution_function_is_affine_multivariate_p with a loop
2221 * tree-data-ref.c (analyze_miv_subscript): Likewise.
2222 (analyze_overlapping_iterations): Likewise.
2223 (access_functions_are_affine_or_constant_p): Likewise.
2224 (build_classic_dist_vector_1): If the access functions
2225 are equal, don't do anything.
2227 2007-05-21 Paolo Bonzini <bonzini@gnu.org>
2228 Paolo Carlini <pcarlini@suse.de>
2229 Uros Bizjak <ubizjak@gmail.com>
2231 * c-cppbuiltin.c (c_cpp_builtins): Define
2232 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
2233 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
2234 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
2235 * doc/cpp.texi ([Standard Predefined Macros]): Document.
2237 2007-05-21 Mike Stump <mrs@apple.com>
2239 * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
2241 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
2243 2007-05-21 Uros Bizjak <ubizjak@gmail.com>
2245 * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
2246 implementation if __OPTIMIZE__ is not defined.
2247 (_mm_alignr_pi8): Ditto.
2248 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
2249 (_mm_inserti_si64): Ditto.
2250 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
2251 (_mm_slli_epi16): Ditto.
2252 (_mm_slli_epi32): Ditto.
2253 (_mm_slli_epi64): Ditto.
2254 (_mm_srai_epi16): Ditto.
2255 (_mm_srai_epi32): Ditto.
2256 (_mm_srli_si128): Ditto.
2257 (_mm_slli_si128): Ditto.
2258 (_mm_srli_epi16): Ditto.
2259 (_mm_srli_epi32): Ditto.
2260 (_mm_srli_epi64): Ditto.
2261 (_mm_extract_epi16): Ditto.
2262 (_mm_insert_epi16): Ditto.
2263 (_mm_shufflehi_epi16): Ditto.
2264 (_mm_shufflelo_epi16): Ditto.
2265 (_mm_shuffle_epi32): Ditto.
2266 * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
2268 (_mm_insert_pi16): Ditto.
2270 (_mm_shuffle_pi16): Ditto.
2272 (_mm_shufle_ps): Ditto.
2273 (_mm_prefetch): Ditto.
2275 2007-05-21 Andreas Krebbel <krebbel1@de.ibm.com>
2277 * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
2278 * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
2279 * real.c (encode_i370_single, decode_i370_single,
2280 encode_i370_double, decode_i370_double): Functions removed.
2281 (i370_single_format, i370_double_format): Initializations removed.
2282 (real_maxval, round_for_format, exact_real_truncate, significand_size):
2283 Consider the log2_b field to always be one.
2284 (ieee_single_format, mips_single_format, coldfire_single_format,
2285 ieee_double_format, mips_double_format, coldfire_double_format,
2286 ieee_extended_motorola_format, ieee_extended_intel_96_format,
2287 ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
2288 ibm_extended_format, mips_extended_format, ieee_quad_format,
2289 mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
2290 decimal_single_format, decimal_double_format, decimal_quad_format,
2291 c4x_single_format, c4x_extended_format, real_internal_format): Remove
2292 initialization of log2_b.
2293 * real.h (i370_single_format, i370_double_format): Declarations removed.
2294 * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
2295 field to always be one.
2297 2007-05-21 Andreas Schwab <schwab@suse.de>
2299 * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
2300 NOTE_INSN_BASIC_BLOCK_P.
2301 (process_for_unwind_directive): Likewise.
2303 2007-05-21 Nathan Sidwell <nathan@codesourcery.com>
2305 * builtins.c (expand_builtin_setjmp_setup): Update comment.
2306 * function.h (struct function): Move va_list_gpr_size,
2307 va_list_fpr_size, function_frequency to front of bitfields. Add
2309 (current_function_calls_unwind_init): New.
2310 * except.c (expand_builtin_unwind_init): Set
2311 current_function_calls_unwind_init not
2312 current_function_has_nonlocal_label.
2313 * reload1.c (has_nonexceptional_receiver): New.
2314 (reload): Use it and current_function_calls_unwind_init to
2315 determine whether call-saved regs must be saved.
2317 2007-05-20 Jan Hubicka <jh@suse.cz>
2319 * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
2320 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
2321 * ddg.c (create_ddg): LIkewise.
2322 * final.c (final): Remove hunk moving line numbernotes around since
2323 they are no longer present at this stage.
2324 (final_scan_insn): Use NOTE_KIND instead of
2325 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
2326 (output_asm_label): Likewise.
2327 * reorg.c (dbr_schedule): Likewise.
2328 * haifa-sched.c (unlink_other_notes): Likewise.
2329 * mode-switching.c (optimize_mode_switching): Likewise.
2330 * graph.c (start_bb): Likewise.
2331 * rtl.def (NOTE): Update description.
2332 * jump.c (squeeze_notes): Delete.
2333 (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
2334 NOTE_INSN_BASIC_BLOCK_P when possible.
2335 * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
2336 * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
2337 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
2338 (dwarf2out_var_location): Likewise.
2339 * cfgbuild.c (make_edges): Likewise.
2340 (find_basic_blocks_1): Likewise.
2341 * function.c (reorder_blocks_1): Likewise.
2342 (epilogue_done): Likewise.
2343 (reposition_prologue_and_epilogue_notes): Likewise.
2344 * print-rtl.c (print_rtx): Likewise; drop code for printing line number
2346 (print_rtl): Likewise.
2347 (print_rtl_single): Likewise.
2348 * gcse.c (insert_insn_start_bb): Likewise.
2349 * alias.c (init_alias_analysis): Likewise.
2350 * calls.c (fixup_tail_calls): Likewise.
2351 * except.c (sjlj_emit_function_enter): Likewise.
2352 * emit-rtl.c (add_insn_after): Likeiwse.
2353 (emit_label_before): Likewise.
2354 (emit_label_after): Likewise.
2355 (emit_note_before, emit_note_after, emit_note): Update
2356 parameter to be enum insn_note; do not deal with source
2358 * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
2359 Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
2361 (merge_blocks_move_successor_nojumps): Simplify now when
2362 we don't have BLOCK notes.
2363 (try_optimize_cfg): Likewise.
2364 * cfglayout.c (skip_insns_after_block): Likewise.
2365 (record_effective_endpoints): Likewise.
2366 (duplicate_insn_chain): Likewise.
2367 * varasm.c (output_constant_pool_1): Likewise.
2368 * sched-deps.c (sched_analyze): Likewise.
2369 * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
2371 (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
2372 * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
2373 (SET_INSN_DELETED): Simplify.
2374 (NOTE_LINE_NUMBER): Exterminate.
2375 (NOTE_LINE_KIND): New.
2376 (NOTE_INSN_BASIC_BLOCK_P): Update.
2377 (enum insn_note): Simplify.
2378 (GET_NOTE_INSN_NAME) Simplify.
2379 (emit_note_before, emit_note_after, emit_note): Update prototype.
2380 (squeeze_notes): Remove.
2381 * sched-int.h (NOTE_NOT_BB_P): Update.
2382 * resource.c (mark_target_live_regs): Update.
2383 * sched-rgn.c (debug_dependencies): Update.
2384 * sched-vis.c (print_insn): Update.
2385 * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
2386 * config/i386/i386.c (ix86_output_function_epilogue): Update.
2387 * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
2388 (TARGET_ADJUST_UNROLL_MAX): Likewise.
2389 (split_branches): Update.
2390 (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
2392 (sh_adjust_unroll_max): Exterminate.
2393 * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
2394 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
2395 (m68hc11_reorg): Likewise.
2396 * config/ia64/ia64.c (emit_insn_group_barriers): Update.
2397 (emit_predicate_relation_info): Update.
2398 (process_for_unwind_directive): Update.
2399 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
2400 (output_call): Update.
2401 * config/pa/pa.c (output_lbranch): Update.
2402 (output_millicode_call): Update.
2403 (output_call): Update.
2404 (pa_combine_instructions): Update.
2405 * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
2406 * config/bfin/bfin.c (gen_one_bundle): Update.
2407 * cfgrtl.c (can_delete_note_p): Update.
2408 (delete_insn): Update.
2409 (rtl_merge_blocks): Update.
2410 (commit_one_edge_insertion): Update.
2411 (rtl_verify_flow_info): Update.
2412 * stmt.c (expand_case): Do not call squeeze_notes.
2414 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2421 * c.opt (Wtype-limits): New.
2422 * doc/invoke.texi (Wtype-limits): Document it.
2423 (Wextra): Enabled by -Wextra.
2424 * c-opts.c (c_common_post_options): Enabled by -Wextra.
2425 * c-common.c (shorten_compare): Warn with Wtype-limits.
2427 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
2429 * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
2430 inlined function, not as a macro.
2431 (_mm_alignr_pi8): Ditto.
2432 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
2433 (_mm_inserti_si64): Ditto.
2434 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
2435 (_mm_extract_epi16): Ditto.
2436 (_mm_insert_epi16): Ditto.
2437 (_mm_shufflehi_epi16): Ditto.
2438 (_mm_shufflelo_epi16): Ditto.
2439 (_mm_shuffle_epi32): Ditto.
2440 * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
2441 * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
2443 (_m_from_float): Add __extension__ to conversion. Use 0.0f for
2445 (_m_to_float): Use C89 compatible assignment.
2447 2007-04-20 Martin Michlmayr <tbm@cyrius.com>
2450 * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
2452 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2455 * doc/invoke.texi (Wreturn-type): Complete description.
2456 (Wextra): Delete item about return-type warning.
2457 * c-decl.c: Delete redundant Wextra warning.
2459 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
2462 * config/i386/pmmintrin.h: Do not include xmmintrin.h
2463 * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
2464 inlined function, not as a macro.
2465 (_mm_prefetch): Ditto.
2467 (_mm_insert_pi16): Ditto.
2469 (_mm_shuffle_pi16): Ditto. Add const to __N argument.
2470 (_m_pshufw): Ditto. Add const to __N argument.
2471 (_mm_shufle_ps): Ditto. Add const to __mask argument.
2472 * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
2473 (_mm_slli_epi32): Ditto.
2474 (_mm_srli_si128): Implement as always inlined function, not as a macro.
2475 Add __inline to function declaration.
2476 (_mm_slli_si128): Ditto.
2478 2007-05-19 Uros Bizjak <ubizjak@gmail.com>
2480 * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
2481 FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
2483 (struct fenv): New structure.
2484 (FP_HANDLE_EXCEPTIONS): New define.
2485 (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
2486 (_FP_DECL_EXP): New define.
2487 (FP_INIT_ROUNDMODE): New define.
2488 (FP_ROUNDMODE): New define.
2490 2007-05-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2492 * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
2493 (Wconversion): Update description.
2494 (Wconversion-sign): New.
2495 * c.opt (Wconversion-sign): New.
2496 * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
2497 means disabled for C++. Otherwise, take the status of Wconversion.
2498 * c-common.c (conversion_warning): Warn with either Wconversion or
2500 (warnings_for_convert_and_check): Conditions are already checked by
2502 (convert_and_check): Don't check warnings if the conversion failed.
2504 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
2505 Anatoly Sokolov <aesok@dol.ru>
2507 * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
2508 avr_epilogue_uses) : Add declaration.
2509 * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
2510 * config/avr/constraints.md (R): New constraint.
2511 config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
2512 UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
2513 (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
2514 (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
2515 (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
2516 call_prologue_saves, epilogue_restores, return_from_epilogue,
2517 return_from_main_epilogue, return_from_interrupt_epilogue,
2518 return_from_naked_epilogue, prologue, epilogue): New patterns.
2519 (jump): Handle symbol reference.
2520 * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
2521 avr_output_function_prologue, avr_output_function_epilogue): Remove
2523 (avr_init_machine_status, expand_prologue, expand_epilogue,
2524 avr_asm_function_end_prologue, avr_epilogue_uses,
2525 avr_asm_function_begin_epilogue): New functions.
2526 (prologue_size, epilogue_size, jump_tables_size): Remove global
2528 (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
2529 (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
2530 (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
2531 (avr_override_options): Initialise init_machine_status.
2532 (output_movhi): Handle all stack pointer loads.
2533 (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
2534 (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
2535 * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
2536 (EPILOGUE_USES) Redefine.
2537 (machine_function) Declare.
2539 2007-05-19 Richard Sandiford <richard@codesourcery.com>
2541 * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
2542 Use a single return statement.
2544 2007-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2547 * builtins.c (do_mpfr_lgamma_r): New.
2548 (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
2549 * tree.h (CASE_FLT_FN_REENT): New.
2551 2007-05-18 Geoffrey Keating <geoffk@apple.com>
2553 * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
2554 (output_die): Use 'unsigned long' with %x.
2555 * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
2556 HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
2557 * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
2559 * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
2561 2007-05-18 H.J. Lu <hongjiu.lu@intel.com>
2566 * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
2567 true if function has no argument.
2569 2007-05-18 DJ Delorie <dj@redhat.com>
2571 * config/mips/mips.c (mips_offset_within_alignment_p): New.
2572 (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
2574 2007-05-18 Uros Bizjak <ubizjak@gmail.com>
2576 * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
2577 sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
2578 count_trailing_zeros.
2579 (__i386__): Implement count_leading_zeros using __builtin_clz().
2580 Implement count_trailing_zeros usign __builtin_ctz().
2582 2007-05-18 Richard Sandiford <richard@codesourcery.com>
2584 * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
2586 2007-05-18 Uros Bizjak <ubizjak@gmail.com>
2589 * expr.c (emit_move_change_mode): Change mode of push operands here.
2591 2007-05-17 Ian Lance Taylor <iant@google.com>
2593 PR tree-optimization/31953
2594 * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
2596 (set_value_range_to_null): Call set_value_range_to_value.
2597 (extract_range_from_comparison): Likewise.
2599 2007-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2601 * toplev.c (print_version): Output GMP/MPFR version info.
2603 * builtins.c (CASE_MATHFN_REENT): New macro.
2604 (mathfn_built_in): Use it.
2605 * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
2606 BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
2607 BUILT_IN_LGAMMAL_R): New.
2608 * doc/extend.texi: Document new builtins.
2611 * builtins.c (do_mpfr_remquo): New.
2612 (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
2613 (fold_builtin_3): Handle BUILT_IN_REMQUO.
2616 * builtins.c (fold_builtin_1): Handle y0, y1.
2617 (fold_builtin_2): Handle yn.
2620 * builtins.c (do_mpfr_bessel_n): New.
2621 (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
2622 (fold_builtin_2): Handle BUILT_IN_JN.
2624 2007-05-17 Danny Smith <dannysmith@users.sourceforge.net>
2627 * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
2628 TYPE_PRECISION (intmax_type_node).
2630 2007-05-17 Steve Ellcey <sje@cup.hp.com>
2633 * reload.c (subst_reloads): Remove checking.
2635 2007-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
2637 PR rtl-optimization/31691
2638 * combine.c (simplify_set): Build a new src pattern instead of
2639 substituting its operands in the COMPARE case.
2641 2007-05-17 Zdenek Dvorak <dvorakz@suse.cz>
2643 * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
2644 (execute_vrp): Preserve loops through jump threading.
2645 * tree-ssa-threadupdate.c (thread_single_edge,
2646 dbds_continue_enumeration_p, determine_bb_domination_status,
2647 thread_through_loop_header): New functions.
2648 (create_edge_and_update_destination_phis,
2649 create_edge_and_update_destination_phis): Set loops for the new blocks.
2650 (prune_undesirable_thread_requests): Removed.
2651 (redirect_edges): Do not pretend that redirect_edge_and_branch can
2653 (thread_block): Do not call prune_undesirable_thread_requests.
2655 (mark_threaded_blocks): Select edges to thread here.
2656 (thread_through_all_blocks): Take may_peel_loop_headers argument.
2657 Thread edges through loop headers independently.
2658 * cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
2659 * tree-pass.h (TODO_mark_first_instance): New.
2660 (first_pass_instance): Declare.
2661 * cfghooks.c (duplicate_block): Put the block to the original loop
2662 if copy is not specified.
2663 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
2664 jump threading. Pass may_peel_loop_headers to
2665 thread_through_all_blocks according to first_pass_instance.
2666 * cfgloop.h (create_preheader): Declare.
2667 * tree-flow.h (thread_through_all_blocks): Declaration changed.
2668 * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
2669 * passes.c (first_pass_instance): New variable.
2670 (next_pass_1): Set TODO_mark_first_instance.
2671 (execute_todo): Set first_pass_instance.
2673 2007-05-17 Uros Bizjak <ubizjak@gmail.com>
2675 PR tree-optimization/24659
2676 * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
2677 OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
2678 OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
2679 OTI_vec_pack_ufix_trunc.
2680 (vec_unpacks_float_hi_optab): Define new macro.
2681 (vec_unpacks_float_lo_optab): Ditto.
2682 (vec_unpacku_float_hi_optab): Ditto.
2683 (vec_unpacku_float_lo_optab): Ditto.
2684 (vec_pack_sfix_trunc_optab): Ditto.
2685 (vec_pack_ufix_trunc_optab): Ditto.
2686 * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
2687 and vec_pack_[s|u]fix_trunc_optab using
2688 vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
2689 * tree-vectorizer.c (supportable_widening_operation): Handle
2690 FLOAT_EXPR and CONVERT_EXPR. Update comment.
2691 (supportable_narrowing_operation): New function.
2692 * tree-vectorizer.h (supportable_narrowing_operation): Prototype.
2693 * tree-vect-transform.c (vectorizable_conversion): Handle
2694 (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
2695 (vect_gen_widened_results_half): Move before vectorizable_conversion.
2696 (vectorizable_type_demotion): Call supportable_narrowing_operation()
2697 to check for target support.
2698 * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
2699 for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
2700 for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
2701 for VEC_PACK_FIX_TRUNC_EXPR.
2702 (expand_binop): Special case mode of the result for
2703 vec_pack_[u|s]fix_trunc_optab.
2704 (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
2705 vec_pack_[u|s]fix_trunc_optab.
2707 * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
2708 VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
2709 * tree-pretty-print.c (dump_generic_node): Handle
2710 VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
2711 VEC_PACK_FIX_TRUNC_EXPR.
2713 * expr.c (expand_expr_real_1): Ditto.
2714 * tree-inline.c (estimate_num_insns_1): Ditto.
2715 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
2717 * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
2718 (vec_unpacks_float_lo_v8hi): Ditto.
2719 (vec_unpacku_float_hi_v8hi): Ditto.
2720 (vec_unpacku_float_lo_v8hi): Ditto.
2721 (vec_unpacks_float_hi_v4si): Ditto.
2722 (vec_unpacks_float_lo_v4si): Ditto.
2723 (vec_pack_sfix_trunc_v2df): Ditto.
2725 * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
2727 [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
2728 [VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
2729 * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
2730 [vec_pack_ufix_trunc]: Ditto.
2731 [vec_unpacks_float_hi]: Ditto.
2732 [vec_unpacks_float_lo]: Ditto.
2733 [vec_unpacku_float_hi]: Ditto.
2734 [vec_unpacku_float_lo]: Ditto.
2736 2007-05-16 Uros Bizjak <ubizjak@gmail.com>
2738 * soft-fp/README: Update for new files.
2739 * soft-fp/floattisf.c: New file.
2740 * soft-fp/floattidf.c: New file.
2741 * soft-fp/floattitf.c: New file.
2742 * soft-fp/floatuntisf.c: New file.
2743 * soft-fp/floatuntidf.c: New file.
2744 * soft-fp/floatuntitf.c: New file.
2745 * soft-fp/fixsfti.c: New file.
2746 * soft-fp/fixdfti.c: New file.
2747 * soft-fp/fixtfti.c: New file.
2748 * soft-fp/fixunssfti.c: New file.
2749 * soft-fp/fixunsdfti.c: New file.
2750 * soft-fp/fixunstfti.c: New file.
2751 * soft-fp/extendxftf.c: New file.
2752 * soft-fp/trunctfxf.c: New file.
2754 * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
2755 (__trunctfxf2): Ditto.
2757 * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
2758 __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
2759 __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
2760 __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
2761 __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
2762 __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.
2764 * config/i386/t-fprules-softfp64: New file.
2765 * config/i386/sfp-machine.h: New file.
2766 * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
2767 x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
2768 and soft-fp/t-softfp to tmake_file.
2769 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
2770 i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
2772 * config/i386/t-linux64 (softfp_wrap_start): New.
2773 (softfp_wrap_end): New.
2774 * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
2775 supported for TARGET_64BIT.
2777 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
2779 * c-common.c (c_common_signed_or_unsigned_type): Emulate
2780 c_common_unsigned_type behavior.
2782 2007-05-16 Paolo Bonzini <bonzini@gnu.org>
2784 * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
2787 2007-05-16 Eric Christopher <echristo@apple.com>
2789 * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
2790 saving after stack push. Set sp_offset whenever we push.
2791 (rs6000_emit_epilogue): Move altivec register restore before
2794 2007-05-16 Richard Sandiford <richard@codesourcery.com>
2796 * configure.ac: Allow sysroots to be relocated under $prefix as
2797 well as $exec_prefix.
2798 * configure: Regenerate.
2800 2007-05-16 Richard Sandiford <richard@codesourcery.com>
2804 2007-05-12 Richard Sandiford <richard@codesourcery.com>
2806 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
2807 (gcc_tooldir): Likewise.
2808 * configure: Regenerate.
2809 * Makefile.in (libsubdir_to_prefix): New variable, based on the
2810 old configure.ac gcc_tooldir setting.
2811 (prefix_to_exec_prefix): New variable.
2812 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
2813 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
2815 2007-05-14 Janis Johnson <janis187@us.ibm.com>
2817 * c-typeck.c (build_binary_op): Return early for error.
2819 2007-05-15 Zdenek Dvorak <dvorakz@suse.cz>
2821 * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
2822 struct nb_iter_bound.
2823 (free_numbers_of_iterations_estimates_loop): Use ggc_free.
2824 * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
2825 * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
2826 * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
2827 (struct scev_info_str, scalar_evolution_info): Add GTY markers.
2828 (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
2829 (del_scev_info): Use ggc_free.
2830 (scev_initialize): Allocate scalar_evolution_info in gc memory.
2831 * loop-init.c: Include ggc.h.
2832 (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
2833 (loop_optimizer_finalize): Use ggc_free.
2834 * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
2835 pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
2836 pass_iv_optimize): Add TODO_ggc_collect.
2837 * function.h (struct function): Remove skip marker from x_current_loops.
2838 * cfgloop.c: Include ggc.h.
2839 (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
2841 (establish_preds): Vector superloops is gc allocated.
2842 (alloc_loop): Allocate loop using GGC_CNEW. Allocate head of
2844 (flow_loops_find): Vector larray is gc allocated.
2845 (loop_exit_free): Use ggc_free.
2846 (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit. Reflect
2847 that head of exits list is now not a part of struct loop.
2848 (record_loop_exits): Allocate exits table in gc memory.
2849 (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect that
2850 head of exits list is now not a part of struct loop.
2851 * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
2852 struct loop_exit): Add GTY marker.
2853 (struct loop): Add GTY marker. Make superloops vector gc allocated.
2854 Add skip marker to aux field. Make head of exits list a separate
2856 (struct loops): Add GTY marker. Make larray vector gc allocated.
2857 Add param marker to exits table.
2858 (get_loops): Type changed.
2859 * Makefile.in (tree-scalar-evolution.o): Add gt-tree-scalar-evolution.h
2861 (cfgloop.o, loop-init.o): Add ggc.h dependency.
2862 (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
2863 * basic-block.h (struct basic_block_def): Remove skip marker from
2866 2007-05-14 Uros Bizjak <ubizjak@gmail.com>
2868 * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
2869 of 0 in the call to expand_expr().
2870 (expand_builtin_mathfn_3): Ditto.
2871 (expand_builtin_interclass_mathfn): Ditto.
2872 (expand_builtin_cexpi): Ditto.
2873 (expand_builtin_int_roundingfn): Ditto.
2874 (expand_builtin_int_roundingfn_2): Ditto.
2875 (expand_builtin_pow): Ditto.
2876 (expand_builtin_powi): Ditto.
2877 (expand_builtin_bswap): Ditto.
2878 (expand_builtin_unop): Ditto.
2879 (expand_builtin_fabs): Ditto.
2880 (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
2881 the call to expand_expr().
2882 (expand_builtin_sync_operation): Ditto.
2883 (expand_builtin_compare_and_swap): Ditto.
2884 (expand_builtin_lock_test_and_set): Ditto.
2885 * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
2886 instead of 0 in the call to expand_expr().
2887 (expand_builtin_extract_return_addr): Ditto.
2888 (expand_builtin_eh_return): Ditto.
2889 (expand_eh_return): Ditto.
2890 * explow.c (expr_size): Ditto.
2891 * expr.c (optimize_bitfield_assignment_op): Ditto.
2892 (expand_assignement): Ditto.
2893 (store_expr): Ditto.
2894 (store_field): Ditto.
2895 (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
2896 the call to expand_expr().
2897 (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
2898 in the call to expand_expr().
2899 [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
2900 BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
2901 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
2903 * optabs.c (expand_vec_shift_expr): Ditto.
2904 (expand_vec_cond_expr): Ditto.
2905 (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
2906 call to expand_expr().
2907 * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
2908 in the call to expand_expr().
2910 2007-05-14 Dave Korn <dave.korn@artimi.com>
2912 * genautomata.c (gen_regexp_el): Allocate correct size for regexp.
2914 2007-05-14 Rafael Avila de Espindola <espindola@google.com>
2916 * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
2917 instead of c_common_unsigned_type.
2918 (c_common_unsigned_type): Remove.
2919 (shorten_compare): Use c_common_signed_or_unsigned_type instead of
2920 c_common_unsigned_type.
2921 (c_common_nodes_and_builtins): Use unsigned_type_for instead of
2922 c_common_unsigned_type.
2923 * c-common.h (c_common_unsigned_type): Remove.
2924 * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
2925 c_common_unsigned_type.
2926 * c-format.c (check_format_types): Use unsigned_type_for instead of
2927 c_common_unsigned_type.
2928 * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
2929 * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead of
2930 c_common_unsigned_type.
2931 * convert.c (convert_to_integer): Use unsigned_type_for instead of
2932 lang_hooks.types.unsigned_type.
2933 * expmed.c (make_tree): Use unsigned_type_for instead of
2934 lang_hooks.types.unsigned_type.
2935 * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
2936 lang_hooks.types.unsigned_type.
2937 (build_range_check): Likewise.
2938 (fold_unary): Likewise.
2939 (fold_binary): Likewise.
2940 (fold_ternary): Likewise.
2941 * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
2942 * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
2943 * tree.c (get_unsigned_type): New.
2944 (unsigned_type_for): Use get_unsigned_type instead of
2945 lang_hooks.types.unsigned_type.
2947 2007-05-14 Kazu Hirata <kazu@codesourcery.com>
2949 * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
2950 to m68k_get_function_kind. Update its prototype.
2951 * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
2953 (m68k_interrupt_function_p): Return enum m68k_function_type
2954 instead of bool. Rename to m68k_get_function_kind.
2955 (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
2957 (m68k_compute_frame_layout): Don't mark any register for save
2958 if an interrupt_thread attribute is specified.
2959 (m68k_hard_regno_rename_ok): Update a use of
2960 m68k_interrupt_function_p.
2961 * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
2962 m68k_interrupt_function_p.
2963 (m68k_function_type): New.
2964 * config/m68k/m68k.md (*return): Output a 'sleep' instruction
2965 for a function with an interrupt_thread attribute.
2966 * doc/extend.texi: Document the interrupt_thread attribute.
2968 2007-05-13 Daniel Berlin <dberlin@dberlin.org>
2970 Fix PR tree-optimization/31911
2971 * tree-ssa-pre.c (phi_translate): Make sure to cache results even
2972 if they didn't change the expression.
2974 2007-05-13 Zdenek Dvorak <dvorakz@suse.cz>
2976 * tree-scalar-evolution.c (resolve_mixers): Exported.
2977 * tree-scalar-evolution.h (resolve_mixers): Declare.
2978 * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
2979 ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
2980 record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
2981 base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
2982 init_array_ref, init_pointer_ref, analyze_indirect_ref,
2983 strip_conversion, analyze_offset_expr, address_analysis,
2984 object_analysis, analyze_offset): Removed.
2985 (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
2986 split_constant_offset, canonicalize_base_object_address,
2987 object_address_invariant_in_loop_p, disjoint_objects_p,
2988 dr_may_alias_p, dr_address_invariant_p): New functions.
2989 (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
2990 and dr_analyze_alias.
2991 (initialize_data_dependence_relation): Use dr_may_alias_p
2992 and object_address_invariant_in_loop_p.
2993 (compute_self_dependence): Handle the case when DDR_ARE_DEPENDENT (ddr)
2995 (find_data_references_in_stmt): Restrict the analysis of data references
2996 to the given loop nest.
2997 (find_data_references_in_loop): Made static. Pass loop nest to
2998 find_data_references_in_stmt.
2999 (compute_data_dependences_for_loop): Use DR_VOPS.
3000 (free_data_ref): Free DR_VOPS.
3001 * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
3002 (struct innermost_loop_behavior): ... new.
3003 (struct base_object_info): Replaced by ...
3004 (struct indices): ... new.
3005 (struct dr_alias): New.
3006 (enum data_ref_type): Removed.
3007 (struct data_reference): Consist of struct innermost_loop_behavior,
3008 struct indices and struct dr_alias.
3009 (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
3010 (DR_MEMTAG): Renamed to ...
3011 (DR_SYMBOL_TAG): ... this.
3012 (find_data_references_in_loop): Declaration removed.
3013 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
3014 instead of DR_OFFSET_MISALIGNMENT. DR_ALIGNED_TO is never NULL.
3015 (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
3016 * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
3018 2007-05-13 Revital Eres <eres@il.ibm.com>
3020 * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
3021 which walks virtual def-use chains to find redundant stores.
3022 (dse_optimize_stmt): Call it.
3024 2007-05-12 Steven Bosscher <steven@gcc.gnu.org>
3026 * gcse.c (gcse_main): Do jump bypassing in CPROP2.
3027 * passes.c (init_optimization_passes): Move pass_jump_bypass
3030 * basic-block.h (bb_has_eh_pred): Fix style issue.
3032 2007-05-12 Steven Bosscher <steven@gcc.gnu.org>
3034 PR rtl-optimization/31848
3035 * loop-invariant.c (move_invariant_reg): If we move an insn
3036 with a REG_EQUAL note, and that insn is not always executed,
3037 remove the REG_EQUAL note.
3039 2007-05-12 Richard Guenther <rguenther@suse.de>
3041 PR tree-optimization/31797
3042 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
3043 propagate into a stmt that has volatile ops.
3045 2007-05-12 Richard Sandiford <richard@codesourcery.com>
3047 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
3048 (gcc_tooldir): Likewise.
3049 * configure: Regenerate.
3050 * Makefile.in (libsubdir_to_prefix): New variable, based on the
3051 old configure.ac gcc_tooldir setting.
3052 (prefix_to_exec_prefix): New variable.
3053 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
3054 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
3056 2007-05-11 Silvius Rus <rus@google.com>
3058 * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
3059 * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
3060 * c-common.h (strict_aliasing_warning): Change return type.
3061 * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
3062 * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
3063 (build_c_cast): Condition call to strict_aliasing_warning.
3064 * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
3065 * flags.h (set_Wstrict_aliasing): Declare.
3066 * opts.c (set_Wstrict_alising): Define, add call to.
3067 * tree-flow.h (strict_aliasing_warning_backend): Declare.
3068 * tree-ssa-alias-warnings.c: New file.
3069 * tree-ssa-alias.c (compute_may_aliases): Add call to
3070 strict_aliasing_warning_backend.
3072 2007-05-11 Zdenek Dvorak <dvorakz@suse.cz>
3074 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
3075 Use loop_depth and loop_outer accessor functions.
3076 * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
3077 determine_invariantness_stmt, move_computations_stmt): Ditto.
3078 * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
3079 add_loop, loopify, unloop, fix_loop_structure): Ditto.
3080 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
3081 * tree-scalar-evolution.c (interpret_loop_phi,
3082 compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
3083 instantiate_parameters_1, scev_const_prop): Ditto.
3084 * cfghooks.c (make_forwarder_block): Ditto.
3085 * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
3086 * modulo-sched.c (loop_canon_p): Ditto.
3087 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
3088 slpeel_can_duplicate_loop_p): Ditto.
3089 * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
3090 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
3091 * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
3092 cancel_loop, verify_loop_structure): Ditto.
3093 (flow_loop_nested_p, superloop_at_depth, flow_loop_free,
3094 add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
3095 superloops vector instead of "pred" array.
3096 (establish_preds): Take father loop as an argument. Initialize the
3098 (flow_loop_tree_node_add): Pass father loop to establish_preds. Do not
3099 initialize loop->outer.
3100 (flow_loop_tree_node_remove): Truncate the superloops vector.
3101 * cfgloop.h (struct loop): Removed field "outer", fields "depth" and
3102 "pred" merged to "superloops" vector.
3103 (loop_depth, loop_outer): New.
3104 (fel_init): Use loop_outer.
3106 2007-05-11 Jan Hubicka <jh@suse.cz>
3108 * cgraphunit.c: Include gt-cgraphunit.h
3109 (static_ctors, static_dtors): New static vars.
3110 (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
3111 based on implementation in c-common.c
3112 (cgraph_finalize_function): Call record_cdtor_fn.
3113 (cgraph_optimize): Call cgraph_build_cdtor_fns.
3114 * decl.c (finish_function): Do not call c_record_cdtor_fn.
3115 (c_write_global_declarations): Do not call c_build_cdtor_fns.
3116 * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
3117 build_cdtor, c_build_cdtor_fns): Remove.
3118 * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
3119 c_build_cdtor_fns): Remove prototype.
3121 2007-05-11 Paolo Carlini <pcarlini@suse.de>
3124 * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
3125 * builtins.def: Add BUILT_IN_MEMCHR, use the latter.
3126 * builtins.c (fold_builtin_memchr): New.
3127 (expand_builtin_memchr): Call the latter.
3128 (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
3129 * doc/extend.texi ([Other built-in functions provided by GCC]):
3132 2007-05-11 Andreas Krebbel <krebbel1@de.ibm.com>
3134 * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
3135 PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
3136 PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
3137 PFPO_OP1_TYPE_SHIFT): Constants added.
3138 (DFP_ALL): Mode macro defined.
3139 ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
3140 "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
3141 Insn definitions added.
3142 ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
3143 "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
3146 2007-05-10 Zdenek Dvorak <dvorakz@suse.cz>
3148 PR tree-optimization/31885
3149 * tree-chrec.c (chrec_contains_undetermined): Do not consider NULL_TREE
3151 (automatically_generated_chrec_p): Return false for NULL.
3153 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
3155 * config/bfin/bfin.h (MOVE_RATIO): Define.
3157 2007-05-10 Richard Sandiford <richard@codesourcery.com>
3159 * config.gcc (sparc-wrs-vxworks): New target.
3160 * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
3161 * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
3162 * config/sparc/sparc.h: Include vxworks-dummy.h.
3163 (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
3164 include LABEL_REFs too.
3165 * config/sparc/sparc.c (sparc_expand_move): Don't assume that
3166 _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
3168 (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
3170 (load_pic_register): Use gen_vxworks_load_got for VxWorks.
3171 (sparc_emit_call_insn): New function.
3172 (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
3173 functions when generating VxWorks PIC.
3174 * config/sparc/sparc.md (vxworks_load_got): New pattern.
3175 (call, call_value): Use sparc_emit_call_insn instead of
3178 2007-05-09 Bob Wilson <bob.wilson@acm.org>
3180 * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
3182 2007-05-09 Bob Wilson <bob.wilson@acm.org>
3184 * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
3185 for floating-point values if HOST_BITS_PER_LONG > 32. Use split_double
3186 instead of operand_subword.
3188 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
3190 * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
3191 * config/bfin/bfin.c (bfin_local_alignment): New function.
3192 * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.
3194 2007-05-08 Chao-ying Fu <fu@mips.com>
3196 * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
3197 * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
3198 (smsub_widen_optab, umsub_widen_optab): Define.
3199 * optabs.c (init_optabs): Initialize smsub_widen_optab and
3201 * genopinit.c (optabs): Fill in smsub_widen_optab and
3203 * expr.c (expand_expr_real_1): Try to use smsub_widen_optab
3204 and umsub_widen_optab to implement multiply-subtract sequences.
3205 * config/mips/mips.md (*msac<u>_di): Rename to...
3206 (<u>msubsidi4): ...this. Extend condition to include
3207 GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
3208 of operand 0 to "ka" and use the three-operand form of msub<u>
3210 * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
3213 2007-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
3215 PR rtl-optimization/28011
3216 * reload.c (push_reload): Set dont_share if IN appears in OUT
3217 also when IN is a PLUS rtx.
3218 (reg_overlap_mentioned_for_reload_p): Return true if X and IN
3221 2007-05-08 Kazu Hirata <kazu@codesourcery.com>
3223 * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL. Don't
3224 call unshare_all_decls.
3225 (unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
3226 (unshare_all_decls): Remove.
3228 2007-05-08 Simon Martin <simartin@users.sourceforge.net>
3231 * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
3234 2007-05-08 Sandra Loosemore <sandra@codesourcery.com>
3235 Nigel Stephens <nigel@mips.com>
3237 * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
3238 Update comments and all uses.
3239 (MIN_FPRS_PER_FMT): Define.
3240 * config/mips/mips.c (function_arg): Fix to correctly handle
3241 the -mips32r2 -mfp64 -mabi=32 case.
3242 (override_options): Enable use of odd-numbered registers for
3243 SFmode values on MIPS32.
3244 (mips_save_reg_p): Save whole floating-point register pair if
3245 either half is used.
3246 (compute_frame_size): Fix comment.
3248 2007-05-08 Jie Zhang <jie.zhang@analog.com>
3250 * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
3251 argument of type bool.
3252 * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
3253 argument. Safely select temporary P register according to it.
3254 (do_link): Change call site of add_to_reg accordingly.
3255 (do_unlink): Add epilogue_p as a fourth argument and pass it
3257 (expand_interrupt_handler_epilogue): Change call of do_unlink
3259 (bfin_expand_prologue): Add a third argument sibcall_p.
3260 * config/bfin/bfin.md (epilogue): Change call of
3261 bfin_expand_epilogue accordingly.
3262 (sibcall_epilogue): Likewise.
3263 (eh_return_internal): Likewise.
3265 * config/bfin/bfin-protos.h (enum bfin_cpu): Add
3266 BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
3267 * config/bfin/bfin.c (bfin_handle_option): Handle
3268 -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
3269 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
3270 Support bf534, bf536 and bf561.
3271 * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
3273 2007-05-08 Uros Bizjak <ubizjak@gmail.com>
3276 * config/i386/i386.c (ix86_function_regparm): Process local
3277 functions only when TREE_CODE (decl) equals FUNCTION_DECL.
3279 2007-05-07 Mike Stump <mrs@apple.com>
3281 * doc/invoke.texi (Warning Options): Document that -Wempty-body
3282 also checks for and while statements in C++.
3284 2007-05-07 Nathan Froyd <froydnj@codesourcery.com>
3286 * gcc.c (at_file_supplied): New variable.
3287 (main): Set it if we expanded argv.
3288 (do_spec_1): Pass an @-file to the linker if we were called with
3289 an @-file argument and HAVE_GNU_LD.
3290 * collect2.c (at_file_supplied): New variable.
3291 (response_file): New variable.
3292 (collect_exit): Unlink response_file if necessary.
3293 (handler): Likewise.
3294 (do_wait): Likewise.
3295 (main): Set at_file_supplied if we expanded argv.
3296 (collect_execute): Pass an @-file to subprocesses if we were called
3297 with an @-file argument.
3298 * configure.ac: Add define for HAVE_GNU_LD.
3299 * configure: Regenerate.
3300 * config.in: Regenerate.
3302 2007-05-07 Naveen.H.S <naveen.hs@kpitcummins.com>
3304 * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
3310 2007-05-07 Jayant Sonar <jayants@kpitcummins.com>
3312 * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
3313 (TARGET_ENCODE_SECTION_INFO): Re-define.
3314 (m32c_encode_section_info): New
3315 (function_vector_handler): New
3316 (current_function_special_page_vector): New
3317 (m32c_special_page_vector_p): New.
3318 * config/m32c/m32c-protos.h (m32c_special_page_vector_p):
3320 * config/m32c/jump.md: Added instruction JSRS for functions
3321 with attribute "function_vector".
3322 * doc/extend.texi (function_vector): Added description
3323 for M16C, M32C targets.
3325 2007-05-07 DJ Delorie <dj@redhat.com>
3328 * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
3329 ashrpsi3, lshrpsi3): Update shift count constraint.
3331 2007-05-07 Danny Smith <dannysmith@users.sourceforge.net>
3332 Nathan Froyd <froydnj@codesourcery.com>
3335 * c-incpath.c (add_path): Strip trailing path separators.
3337 2007-05-07 Eric Botcazou <ebotcazou@adacore.com>
3339 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
3340 Free dominance info before purging EH edges.
3341 (eliminate_degenerate_phis): Likewise.
3342 (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
3344 2007-05-07 Jan Hubicka <jh@suse.cz>
3346 * gimplify.c (gimplify_expr): Do not crash when folding
3347 (void *)(int)&a + 4.
3349 2007-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3352 * c-opts.c (lang_fortran): Make it non static.
3353 * c-common.h (lang_fortran): New prototype.
3354 * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
3355 -lang-fortran option was passed by the driver.
3357 2007-05-06 Eric Botcazou <ebotcazou@adacore.com>
3359 * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
3360 of ASSERT_CHECKING. Tweak message.
3362 2007-05-06 Revital Eres <eres@il.ibm.com>
3365 * loop-unroll.c (insert_var_expansion_initialization):
3366 Initialize the expansions with -zero instead of +zero.
3368 2007-05-05 Aurelien Jarno <aurelien@aurel32.net>
3370 * config/pa/pa.md: Split tgd_load, tld_load and tie_load
3371 into pic and non-pic versions. Mark r19 as used for
3372 tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
3373 for tgd_load, tld_load and tie_load .
3374 * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
3375 version of tgd_load, tld_load and tie_load depending on the
3378 2007-05-04 Ulrich Drepper <drepper@redhat.com>
3379 Jakub Jelinek <jakub@redhat.com>
3381 * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.