1 2007-06-20 Eric Botcazou <ebotcazou@libertysurf.fr>
3 * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
5 2007-06-20 Rask Ingemann Lambertsen <rask@sygehus.dk>
8 * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
10 * config/m32c/prologue.md (epilogue_exitd_16): New.
11 (epilogue_reit_16): New.
12 (epilogue_exitd): Rename to epilogue_exitd_24.
13 (epilogue_reit): Rename to epilogue_reit_24.
15 2007-06-20 Seongbae Park <seongbae.park@gmail.com>
16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
18 * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
20 * haifa-sched.c (queue_to_ready): Don't requeue next insn
21 if dbg_cnt (sched_insn) reaches the limit.
22 (choose_ready): New parameter INSN_PTR and new return value.
23 (schedule_block): Handle dbg_cnt (sched_insn). Handle
24 the new return value from choose_ready.
25 * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
26 (rest_of_handle_global_alloc): New global_alloc_at_func.
28 2007-06-20 Adam Nemet <anemet@caviumnetworks.com>
30 PR tree-optimization/25737
31 * tree.h (struct tree_struct_field_tag): Add new field alias_set.
32 (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
33 * tree-flow.h (struct fieldoff): Add new field alias_set.
34 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
35 argument addressable_type. Set alias_set of fieldoff.
36 * tree-ssa-alias.c (create_sft): Add new argument alias_set.
37 (create_overlap_variables_for): Pass alias_set from fieldoff to
39 * alias.c (get_alias_set): Use alias_set from SFT if set.
41 2007-06-20 Hui-May Chang <hm.chang@apple.com>
43 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
44 of a variable as an unsigned HOST_WIDE_INT integer.
46 2007-06-20 Zdenek Dvorak <dvorakz@suse.cz>
48 PR rtl-optimization/32405
49 * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
51 2007-06-20 Jakub Jelinek <jakub@redhat.com>
53 * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
56 * builtins.c: Include diagnostic.h.
57 (expand_builtin_expect): Make gcc_assert more permissive.
58 * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
61 * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
65 * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
66 if ACCUMULATE_OUTGOING_ARGS.
68 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
70 * config/m68hc11/m68hc11.c: Include dataflow header file.
71 (m68hc11_reorg): Port to dataflow.
73 2007-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
75 * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
76 (struct df_problem.free_blocks_on_set_blocks): New field.
77 (struct dataflow.optional_p): New field.
78 (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
79 (df_live_set_all_dirty): New function.
80 * df-scan.c (df_scan_alloc): Initialize optional_p.
81 (problem_SCAN): Initialize free_blocks_on_set_blocks.
82 * df-core.c (df_set_blocks): Removed use of
83 DF_FIRST_OPTIONAL_PROBLEM. Now uses
84 df_problem.free_blocks_on_set_blocks to determine which blocks are
86 (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
87 (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now
88 uses dataflow.optional_p to determine if problem should be
90 (rest_of_handle_df_initialize): Only start live problem if
92 (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
93 * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
94 df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
95 (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
96 problem_NOTE): Initialize free_blocks_on_set_blocks.
97 (df_lr_bb_local_compute): Recompute luids if df_live problem is
99 (df_live_set_all_dirty, df_note_alloc): New function.
100 * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
102 * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
103 * postreload.c (reload_combine): Ditto.
104 * cse.c (cse_extended_basic_block): Ditto.
105 * regmove.c (mark_flags_life_zones): Ditto.
106 * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
107 erase_matching_seqs): Ditto.
108 * bt-load.c (compute_defs_uses_and_gen): Ditto.
109 * integrate (allocate_initial_values): Ditto.
110 * combine.c (reg_dead_at_p): Ditto.
111 * resource.c (mark_target_live_regs): Ditto.
112 * sched-rgn.c (check_live_1, update_live_1): Ditto.
113 * config/sh/sh.c (find_r0_life_regions): Ditto.
114 * global.c (rest_of_handle_global_alloc): Only add back df_live
116 * local-alloc.c (rest_of_handle_local_alloc): Only remove
118 * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
120 (if_convert): Make sure df_live is there at -O == 1.
121 (pass_if_after_combine): Cleanup flags.
122 * init-regs.c (initialize_uninitialized_regs): Make sure df_live
125 2007-06-19 Seongbae Park <seongbae.park@gmail.com>
127 * config/arm/arm.c (arm_get_frame_offsets): Set
128 offsets->locals_base to avoid negative stack size.
129 (thumb1_expand_prologue): Assert on negative stack size.
131 2007-04-19 Sebastian Pop <sebpop@gmail.com>
133 PR tree-optimization/32367
134 * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side
135 of the chrec has no evolution in that loop.
136 * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
138 2007-06-19 Bob Wilson <bob.wilson@acm.org>
140 * config/xtensa/xtensa.c: Include "df.h".
141 (xtensa_builtin_saveregs): Use adjust_address instead of change_address.
142 (xtensa_va_start): Invoke make_tree with sizetype for
143 expand_builtin_saveregs and then convert the result to a pointer.
144 Use POINTER_PLUS_EXPR. Use size_int instead of build_int_cst.
145 (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
146 Subtract argument size from index value as integers and then use
147 POINTER_PLUS_EXPR to add the result to the array address.
149 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
152 * config/m32c/m32c.c: Include dataflow header file.
153 (m32c_emit_prologue): Adjust for prologue insn change.
154 * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
155 once inside a PARALLEL. Assume frame size passed in operand 0
156 includes space to save the fb register.
157 (prologue_enter_24): Likewise.
158 (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
160 2007-06-19 David Daney <ddaney@avtrex.com
163 * config/mips/mips.md (cprestore): Mark $gp as used.
165 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
168 * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
169 (frv_ifcvt_modify_insn): Likewise.
171 2007-06-19 Richard Guenther <rguenther@suse.de>
173 * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
174 only handle positive offsets that fit in a HOST_WIDE_INT.
176 2007-06-19 Uros Bizjak <ubizjak@gmail.com>
178 * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
179 result of rsqrt insn for zero input argument to avoid NaN.
181 2007-06-19 Richard Guenther <rguenther@suse.de>
184 * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
186 2007-06-19 Jakub Jelinek <jakub@redhat.com>
188 PR tree-optimization/32353
189 * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
191 2007-06-19 Nick Clifton <nickc@redhat.com>
193 * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for
196 2007-06-18 Uros Bizjak <ubizjak@gmail.com>
199 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
200 * config/i386/i386.c (assign_386_stack_local): Assert that
201 SLOT_VIRTUAL is valid only before virtual regs are instantiated.
202 (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
203 Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
204 * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
206 2007-06-18 Steve Ellcey <sje@cup.hp.com>
208 * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
210 2007-06-18 Seongbae Park <seongbae.park@gmail.com>
212 PR rtl-optimization/32321
213 * gcse.c (replace_store_insn): Update the note before
214 calling emit_insn_after.
216 2007-06-18 David Daney <ddaney@avtrex.com
220 2007-06-18 David Daney <ddaney@avtrex.com
223 * config/mips/mips.c (mips_expand_call): Mark $gp as used by
226 2007-06-18 David Daney <ddaney@avtrex.com
229 * config/mips/mips.c (mips_expand_call): Mark $gp as used by
232 2007-06-18 Kenneth Zadeck <zadeck@naturalbridge.com>
235 * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
237 * df-problems.c (df_note_bb_compute): Fix dumping info.
239 2007-06-18 Kazu Hirata <kazu@codesourcery.com>
241 * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
242 insn with emit_jump_insn.
244 2007-06-18 Uros Bizjak <ubizjak@gmail.com>
246 PR tree-optimization/32383
247 * targhooks.c (default_builtin_reciprocal): Add new bool argument.
248 * targhooks.h (default_builtin_reciprocal): Update prototype.
249 * target.h (struct gcc_target): Update builtin_reciprocal.
250 * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
251 * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
252 where arg1 is not SSA_NAME. Pass true to targetm.builtin_reciprocal
253 when fndecl is in BUILT_IN_MD class.
254 (execute_convert_to_rsqrt): Ditto.
256 * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
257 argument. Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
258 Convert BUILT_IN_SQRTF code only when md_fn is false.
260 2007-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
262 * bt-load.c (move_btr_def): Fix the order of arguments
263 to validate_replace_rtx.
265 2007-06-18 Nathan Sidwell <nathan@codesourcery.com>
267 * config/m68k/m68k-devices.def: Add 54450..54455.
269 2007-06-17 Uros Bizjak <ubizjak@gmail.com>
271 PR rtl-optimization/32366
272 * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
273 FLOAT_EXTEND]: Prevent non-scalar modes from entering
276 2007-06-17 Kenneth Zadeck <zadeck@naturalbridge.com>
279 * modulo-sched (generate_reg_moves): Added rescan parameter and if
280 this is true, rescan insn being modified.
281 (sms_schedule): Added rescan parameter.
282 (rest_of_handle_sms): Moved freeing of dominance info to before
283 getting out of cfg_layout.
285 2007-06-17 Nathan Sidwell <nathan@codesourcery.com>
287 * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
288 * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
291 * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
292 FL_CF_EMAC from the entry for isac.
294 * config/m68k/predicates.md (const_call_operand): Adjust comment.
295 (const_sibcall_operand): New.
296 (sibcall_operand): Use it.
297 * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
298 (m68k_isas): ISAC does not imply FPU or EMAC.
299 (override_options): Add ISA_C logic for symbolic jump & call.
301 2007-06-17 Eric Botcazou <ebotcazou@libertysurf.fr>
303 * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
304 return mode from the builtin itself.
305 (sparc_fold_builtin): Fix cast of zero constant.
307 2007-06-16 Uros Bizjak <ubizjak@gmail.com>
309 * targhooks.c (default_builtin_reciprocal): New default target hook.
310 * targhooks.h (default_builtin_reciprocal): Add prototype.
311 * hooks.c (hook_tree_tree_bool_null): Remove hook.
312 * hooks.h (hook_tree_tree_bool_null): Remove prototype.
313 * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
314 default_builtin_reciprocal.
316 2007-06-16 Uros Bizjak <ubizjak@gmail.com>
319 * hooks.c (hook_tree_tree_bool_null): New hook.
320 * hooks.h (hook_tree_tree_bool_null): Add prototype.
321 * tree-pass.h (pass_convert_to_rsqrt): Declare.
322 * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
323 * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
324 and convert it to reciprocal a*rfunc(b).
325 (execute_convert_to_rsqrt): New function.
326 (gate_convert_to_rsqrt): New function.
327 (pass_convert_to_rsqrt): New pass definition.
328 * target.h (struct gcc_target): Add builtin_reciprocal.
329 * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
330 (TARGET_INITIALIZER): Initialize builtin_reciprocal with
331 TARGET_BUILTIN_RECIPROCAL.
332 * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
334 * config/i386/i386.h (TARGET_RECIP): New define.
335 * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
336 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
337 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
338 and not optimizing for size.
339 (*rcpsf2_sse): New insn pattern.
340 (*rsqrtsf2_sse): Ditto.
341 (rsqrtsf2): New expander. Expand by calling ix86_emit_swsqrtsf
342 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
343 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
344 and not optimizing for size.
345 (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
346 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
347 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
348 and not optimizing for size.
349 * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
350 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
351 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
352 and not optimizing for size.
353 (*sse_rsqrtv4sf2): Do not export.
355 (sse_rsqrtv4sf2): New expander. Expand by calling ix86_emit_swsqrtsf
356 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
357 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
358 and not optimizing for size.
360 * config/i386/i386.opt (mrecip): New option.
361 * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
362 (ix86_emit_swsqrtsf): Ditto.
363 * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
364 (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
366 (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
367 ix86_expand_unop1_builtin.
368 (ix86_emit_swdivsf): New function.
369 (ix86_emit_swsqrtsf): Ditto.
370 (ix86_builtin_reciprocal): New function.
371 (TARGET_BUILTIN_RECIPROCAL): Use it.
372 (ix86_vectorize_builtin_conversion): Rename from
373 ix86_builtin_conversion.
374 (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
375 * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
376 "i386 and x86_64 Options" section.
377 (Intel 386 and AMD x86_64 Options): Document -mrecip.
379 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
380 Zdenek Dvorak <dvorakz@suse.cz>
381 Richard Guenther <rguenther@suse.de>
382 Kaz Kojima <kkojima@gcc.gnu.org>
384 * tree-vrp.c (compare_values_warnv): Convert val2 to
386 (extract_range_from_assert): Create
387 POINTER_PLUS_EXPR for pointer types.
388 (extract_range_from_binary_expr): Handle
389 only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
391 * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
392 * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
393 POINTER_PLUS_EXPR as PLUS_EXPR.
394 (number_of_iterations_lt_to_ne):
395 For pointer types, use sizetype when
396 creating MINUS_EXPR/PLUS_EXPRs.
397 (assert_loop_rolls_lt): For pointer types, use sizetype when
398 creating MINUS_EXPR/PLUS_EXPRs.
399 (number_of_iterations_le): Likewise.
400 (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
401 (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
402 like PLUS_EXPR and MINUS_EXPR.
403 * tree-pretty-print.c (dump_generic_node): Handle
406 (op_symbol_1): Likewise.
407 * optabs.c (optab_for_tree_code): Likewise.
408 * tree-ssa-loop-manip.c (create_iv): Handle pointer base
410 * tree-tailcall.c (process_assignment): Mention
411 POINTER_PLUS_EXPR in a TODO comment.
412 * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or
413 MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
414 not used with a pointer and an integer type.
415 * tree-scalar-evolution.c (add_to_evolution_1): Convert the
416 increment using chrec_convert_rhs instead of chrec_convert.
417 (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
418 PLUS_EXPR except for the right hand side's type will be
420 (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
421 (fold_used_pointer_cast): Kill.
422 (pointer_offset_p): Kill.
423 (fold_used_pointer): Kill.
424 (pointer_used_p): Kill.
425 (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
426 call fold_used_pointer.
427 (instantiate_parameters_1): Convert the increment
428 using chrec_convert_rhs instead of chrec_convert.
429 Handle POINTER_PLUS_EXPR as PLUS_EXPR.
430 * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
431 instead of PLUS_EXPR.
432 (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
433 PLUS_EXPR for pointers.
434 (std_gimplify_va_arg_expr): Likewise.
435 (fold_builtin_memory_op): Likewise.
436 (fold_builtin_strstr): Likewise.
437 (fold_builtin_strchr): Likewise.
438 (fold_builtin_strrchr): Likewise.
439 (fold_builtin_strpbrk): Likewise.
440 (expand_builtin_memory_chk): Likewise.
441 (fold_builtin_memory_chk): Likewise.
442 (std_expand_builtin_va_start): Use
443 sizetype for the call to make_tree and then convert
445 (fold_builtin_memchr): Use POINTER_PLUS_EXPR
446 instead of PLUS_EXPR for adding to a pointer.
447 (std_gimplify_va_arg_expr): Use fold_build2 for
448 the creating of POINTER_PLUS_EXPR. For the BIT_AND_EXPR, cast
449 the operands to sizetype first and then cast the BIT_AND_EXPR
450 back to the pointer type.
451 * fold-const.c (build_range_check): Handle pointer types
453 (extract_array_ref): Look for POINTER_PLUS_EXPR instead
454 of PLUS_EXPR's. Make sure the offset is converted to
456 (try_move_mult_to_index): Strip the NOPs from the offset.
457 Remove code argument and replace all uses with PLUS_EXPR.
458 (fold_to_nonsharp_ineq_using_bound): Handle pointer types
459 specially. Don't use a pointer type for MINUS_EXPR.
460 (fold_unary): Handle for (T1)(X op Y),
461 only p+ as that is the only as that can be handled for
462 binary operators now.
463 (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
465 <case PLUS_EXPR>: Add folding of PTR+INT into
467 Don't call try_move_mult_to_index.
468 <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
469 into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
470 (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
471 Don't call try_move_mult_to_index.
472 (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
473 (tree_expr_nonzero_p): Likewise.
474 (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
475 of PLUS_EXPR for the complex expression folding.
476 * tree-chrec.c (chrec_fold_plus_poly_poly): If the
477 first chrec is a pointer type, then the second should
478 be sizetype and not the first's type.
479 For POINTER_PLUS_EXPR, use a different right hand side type.
480 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
481 (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
482 different right hand side type.
483 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
484 (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
485 instead of PLUS_EXPR.
486 When either operand is zero, convert the other operand.
487 (chrec_apply): Use chrec_convert_rhs
488 on the argument x instead of chrec_convert.
489 (reset_evolution_in_loop): For pointer types, the new_evol
491 (convert_affine_scev): For POINTER_PLUS_EXPR, use a
492 different right hand side type.
493 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
494 (chrec_convert_rhs): New function.
495 (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
496 different right hand side type.
497 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
498 * tree-chrec.h (chrec_convert_rhs): New prototype.
499 (build_polynomial_chrec): For pointer types, the right hand
500 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
501 POINTER_PLUS_EXPR instead of PLUS_EXPR's.
502 Remove subtraction case as it is always addition now.
503 Make sure the offset is converted to sizetype.
504 (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
505 Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
506 * tree-ssa-loop-ivopts.c (determine_base_object): Abort for
507 PLUS_EXPR in pointer type.
508 Handle POINTER_PLUS_EXPR.
509 (tree_to_aff_combination): Likewise.
510 (force_expr_to_var_cost): Likewise.
511 (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
512 instead of PLUS_EXPR for pointers.
513 * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
514 instead of PLUS_EXPR of pointer types.
515 * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
517 (check_va_list_escapes): Likewise.
518 (check_all_va_list_escapes): Likewise.
519 * dwarf2out.c (loc_descriptor_from_tree_1):
520 Handle POINT_PLUS_EXPR as a PLUS_EXPR.
521 * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
522 (string_constant): Likewise.
523 * tree-ssa-address.c (tree_mem_ref_addr): When adding
524 the offset to the base, use POINTER_PLUS_EXPR.
525 (add_to_parts): Convert the index to sizetype.
526 (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
527 * matrix-reorg.c (collect_data_for_malloc_call): Stmt
528 will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
529 Offset only holds something for PLUS_EXPR.
530 (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
532 (analyze_transpose): POINTER_PLUS_EXPR will only show up now
534 (analyze_accesses_for_modify_stmt): Likewise.
535 Remove comment about the type being integral type as it is
537 (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
539 (transform_access_sites): POINTER_PLUS_EXPR will only show up now
541 Correct the type which the artimentic is done in (is now
544 * tree-data-ref.c (split_constant_offset): Handle
546 * tree-affine.c (tree_to_aff_combination): Likewise.
547 * c-typeck.c (build_unary_op): For pointers create the increment
548 as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
550 * gimplify.c (gimplify_self_mod_expr): Create a
551 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
552 (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
553 * tree.def (POINTER_PLUS_EXPR): New tree code.
554 * tree-predcom.c (ref_at_iteration): If we have a pointer
555 type do the multiplication in sizetype.
556 * tree-mudflap.c (mf_xform_derefs_1): Create a
557 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
558 * tree-ssa-forwprop.c
559 (forward_propagate_addr_into_variable_array_index):
560 Don't expect there to be a cast for the index as that
561 does not exist anymore.
562 (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
563 instead of PLUS_EXPR.
564 Don't check for the first operand of the POINTER_PLUS_EXPR
565 was the index as it cannot be.
566 Call forward_propagate_addr_into_variable_array_index with
567 the SSA_NAME instead of the statement.
568 * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
569 (compare_constant): Likewise.
570 (copy_constant): Likewise.
571 (compute_reloc_for_constant): Likewise.
572 (output_addressed_constants): Likewise.
573 (initializer_constant_valid_p): Likewise.
574 * tree-ssa.c (tree_ssa_useless_type_conversion_1):
575 Convert the MIN/MAX of the inner type to the outer
576 type before comparing them.
577 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle
578 POINTER_PLUS_EXPR instead of PLUS_EXPR.
579 (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
580 of PLUS_EXPR for pointers.
581 * tree-inline.c (estimate_num_insns_1): Handle
583 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
584 Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
585 (bump_vector_ptr): Create a POINTER_PLUS_EXPR
586 instead of PLUS_EXPR for the pointer increment statement.
587 (vect_update_ivs_after_vectorizer): For pointer types, create
588 POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
589 MULT_EXPR in sizetype.
590 (vect_gen_niters_for_prolog_loop): Add a cast when creating
592 * tree-object-size.c (plus_expr_object_size): Handle
593 POINTER_PLUS_EXPR instead of PLUS_EXPR. Removing all the extra
594 code which is trying to figure out which side is a pointer and
596 (check_for_plus_in_loops_1): Likewise.
597 (check_for_plus_in_loops): Likewise.
598 * c-common.c (pointer_int_sum): Create a
599 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
600 * tree-ssa-structalias.c (handle_ptr_arith): Handle
601 only POINTER_PLUS_EXPR. Removing all the extra
602 code which is trying to figure out which side is a pointer and
604 * tree-cfg.c (verify_expr): Add extra checking for pointers and
605 PLUS_EXPR and MINUS_EXPR.
606 Also add checking to make sure the operands of POINTER_PLUS_EXPR
608 * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
609 with make_tree, instead of a pointer type.
610 * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
611 for pointers instead of PLUS_EXPR.
612 (s390_gimplify_va_arg): Likewise.
613 * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
614 instead of PLUS_EXPR when doing addition on pointer
615 types. Use sizetype for the second operand.
616 (spu_gimplify_va_arg_expr): Likewise.
617 * config/sparc/sparc.c (sparc_gimplify_va_arg): Use
618 POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
619 a pointer. Don't create a BIT_AND_EXPR for pointer types.
620 * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
621 for the pointer addition and also use size_int/sizetype
623 (ix86_gimplify_va_arg): Likewise.
624 Perform BIT_AND_EXPR on sizetype arguments.
625 * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
626 and convert its result to a pointer type. Use POINTER_PLUS_EXPR
627 for the pointer additions and also use size_int for the offsets.
628 (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
629 additions and also use size_int for the offsets. Perform
630 BIT_AND_EXPR on sizetype arguments.
631 * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
632 POINTER_PLUS_EXPR for pointers and create the
633 BIT_AND_EXPR in sizetype.
634 * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
635 instead of PLUS_EXPR for pointer addition.
636 (rs6000_va_start): Likewise.
637 Also use sizetype for the offset.
638 * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
639 as PLUS_EXPR/MINUS_EXPR.
640 (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
641 PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
642 Don't use BIT_AND_EXPR on a pointer type, convert the
643 expression to sizetype first.
644 * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
646 (mips_gimplify_va_arg_expr): Likewise.
647 Don't create BIT_AND_EXPR in a pointer type.
649 2007-06-15 Eric Christopher <echristo@apple.com>
651 * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
652 (x86_64-*-darwin*): Ditto.
653 * config/i386/darwin.h (CRTEND_SPEC): New. Add support
656 2007-06-15 Matthew Wilcox <matthew@wil.cx>
658 * doc/extend.texi: Document behavior of __attribute__((aligned))
661 2007-06-15 Mark Mitchell <mark@codesourcery.com>
663 * rtlanal.c (note_stores): Improve documentation.
665 2007-06-15 Bernd Schmidt <bernd.schmidt@analog.com>
667 * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
668 LOCAL_LABEL_PREFIX): Delete.
669 * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
670 (bfin_internal_label): Delete.
672 2007-06-15 Uros Bizjak <ubizjak@gmail.com>
674 * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
675 define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
676 otherwise define to LIBGCC2_TF_CEXT.
677 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
678 (LIBGCC_TF_CEXT): Ditto.
681 2007-06-14 Seongbae Park <seongbae.park@gmail.com>
683 PR rtl-optimization/32339
684 * df-scan.c (df_uses_record): Don't modify flags but just add to
685 it for df_ref_record.
687 2007-06-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
689 * tree-mudflap.c: Fix whitespace issues.
691 2007-06-15 Kazu Hirata <kazu@codesourcery.com>
693 * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
695 2007-06-14 Eric Christopher <echristo@apple.com>
697 * config/i386/sse.md (movdi_to_sse): Rewrite body.
698 (movv4sf): Use gcc_unreachable instead of abort.
700 2007-06-14 Uros Bizjak <ubizjak@gmail.com>
703 * config/i386/sfp-machine.h (CMPtype): New define.
704 (mach stubs): Use CMPtype instead of int as a return type.
706 2007-06-14 Uros Bizjak <ubizjak@gmail.com>
708 * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
709 config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
710 config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
711 config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
712 config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
713 config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
714 config/soft-fp/soft-fp.h: Update from glibc CVS.
716 2007-06-14 Bernd Schmidt <bernd.schmidt@analog.com>
718 * config/bfin/uclinux.h (MFWRAP_SPEC): New.
720 2007-06-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
723 * config/v850/v850.c: Include dataflow header file.
724 (substitute_ep_register): Fix typo.
726 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
728 * configure.ac: Fix earlier checkin.
729 * configure: Regenerated.
731 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
733 * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
734 * aclocal.m4: Regenerate.
735 * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
736 ACX_PROG_CC_WARNINGS_ARE_ERRORS,
737 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
738 * configure: Regenerate.
739 * Makefile.in (LOOSE_WARN): Subst loose_warn.
741 * Makefile.in (quickstrap): Build libgcc too.
743 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
745 * configure.ac: Add --enable-checking=df. Explicitly mention that
746 the variables are initialized as for "release".
748 * configure: Regenerate.
749 * config.in: Regenerate.
751 2007-06-14 Bob Wilson <bob.wilson@acm.org>
753 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
754 validate_replace_rtx instead of replace_rtx.
755 (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
757 2007-06-14 Danny Smith <dannysmith@users.sourceforge.net>
759 * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
760 (DWARF2_UNWIND_INFO): Override default if configured with
762 * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
763 (ENDFILE_SPEC): Add crtend.o.
764 * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
765 (ENDFILE_SPEC): Add crtend.o.
766 (TARGET_USE_JCR_SECTION): Define.
767 (MD_UNWIND_SUPPORT): Define for 32-bit target.
769 * config/i386/cygming-crtbegin.c: New file.
770 * config/i386/cygming-crtend.c: New file.
772 2007-06-14 Pascal Obry Pascal Obry <obry@adacore.com>
774 * config/i386/w32-unwind.h: New file.
776 2007-06-13 Eric Christopher <echristo@apple.com>
778 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
779 the user set a value below STACK_BOUNDARY.
781 2007-06-13 Thiemo Seufer <ths@networkno.de>
783 * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
784 imply -lpthread for -pthread.
786 2007-06-13 Kazu Hirata <kazu@codesourcery.com>
788 * basic-block.h: Remove the prototype for
789 free_basic_block_vars.
790 * cfglayout.h: Remove the prototype for
791 insn_locators_initialize.
792 * tree.h: Remove the prototype for emit_line_note.
794 * tree-ssa-pre.c (mergephitemp): Remove.
795 (init_pre): Don't use mergephitemp.
797 2007-06-13 Eric Christopher <echristo@apple.com>
799 * config/i386/i386.c (override_options): If we've specified
800 an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
802 2007-06-13 Bob Wilson <bob.wilson@acm.org>
804 * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
807 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
809 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
810 * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
811 (eh_store_handler): New pattern.
812 (eh_return): Emit it instead of a plain move.
814 2007-06-13 Uros Bizjak <ubizjak@gmail.com>
816 * config/i386/i386.c (ix86_init_mmx_sse_builtins)
817 [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
818 [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
821 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
823 * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
824 (find_next_insn_start, find_load): New functions.
825 (bfin_reorg): Use them to deal with the fact that parallel insns are
826 no longer represented as a SEQUENCE.
828 2007-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
830 * config/sparc/sparc.c (sparc_override_options): Initialize
833 2007-06-13 Dave Korn <dave.korn@artimi.com>
835 * config/i386/i386.c (ix86_eax_live_at_start_p): Use
838 2007-06-13 Kazu Hirata <kazu@codesourcery.com>
840 * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
841 config/sh/divcost-analysis, dbgcnt.def, df-core.c,
842 df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
843 tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
844 tree-vect-transform.c: Fix comment typos. Follow spelling
847 2007-06-12 Seongbae Park <seongbae.park@gmail.com>
849 * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
850 to the exit block use set.
851 (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring".
852 * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
853 * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
855 2007-06-12 Seongbae Park <seongbae.park@gmail.com>
857 * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
858 * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
859 to indicate an error.
860 (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters): New functions
861 (dbg_cnt_process_opt): Print an error on a bad argument.
862 * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
863 * common.opt (-fdbg-cnt-list): New.
864 * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
866 2007-06-12 Eric Botcazou <ebotcazou@adacore.com>
868 * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
869 flag on ref-all pointers.
871 2007-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
874 * expr.c (expand_expr_addr_expr_1): Call expand_expr
875 for the offset with the modifier as EXPAND_INITIALIZER
876 if the modifier is EXPAND_INITIALIZER.
877 (expand_expr_real_1 <case INTEGER_CST>): Don't force to
878 a register if we had an overflow.
880 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
882 * real.c (real_isfinite): New.
884 * real.h (real_isfinite): New.
885 * builtins.c: Use it.
887 2007-06-12 Ian Lance Taylor <iant@google.com>
888 Daniel Berlin <dberlin@dberlin.org>
891 * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
892 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
893 (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
894 (DECL_NO_TBAA_P): Define.
895 (struct tree_decl_common): Add no_tbaa_flag field.
896 * tree-ssa-structalias.c (struct variable_info): Add
897 no_tbaa_pruning field.
898 (new_var_info): Initialize no_tbaa_pruning field.
899 (unify_nodes): Copy no_tbaa_pruning field.
900 (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
901 (dump_solution_for_var): Print no_tbaa_pruning flag.
902 (set_uids_in_ptset): Add no_tbaa_pruning parameter. Change all
904 (compute_tbaa_pruning): New static function.
905 (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
906 Call compute_tbaa_pruning.
907 * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
908 * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
909 * gimple-low.c (lower_stmt): Likewise.
910 * tree-gimple.c (is_gimple_stmt): Likewise.
911 * tree-ssa-operands.c (get_expr_operands): Likewise.
912 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
913 * tree-inline.c (estimate_num_insns_1): Likewise.
914 (copy_result_decl_to_var): Likewise.
915 * expr.c (expand_expr_real_1): Likewise.
916 * tree-pretty-print.c (dump_generic_node): Likewise.
917 * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
918 * omp-low.c (omp_copy_decl_2): Likewise.
919 * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
920 * doc/c-tree.texi (Expression trees): Document
921 CHANGE_DYNAMIC_TYPE_EXPR.
923 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
925 * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
926 with !HONOR_NANS and !HONOR_INFINITIES.
927 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
929 2007-06-12 Tristan Gingold <gingold@adacore.com>
931 * gcov.c: Comments updated.
932 (source_info): Add file_time field.
933 (source_index): New variable.
934 (mutiple_files): New variable.
935 (generate_results): New function extracted from process_file.
936 (process_file): Save and restore chain of functions, generate
937 results and free structures only if not merging results.
938 (release_structures): File names are now freed in create_file_names
939 (create_file_names): Free previous file names.
940 (find_source): File date is now read here and modifications in
941 source files is checked here.
942 (read_graph_file): Only reverse order of functions for the current
944 (make_gcov_file_name): Do not generate long names if input_name is
946 (output_lines): If merging results do not display graph, data and
948 Checking source file modification is done in find_source.
950 * doc/gcov.texi: Append an s to sourcefile.
952 2007-06-12 Bernd Schmidt <bernd.schmidt@analog.com>
954 * config/bfin/bfin.md (UNSPEC_NOP): New constant.
955 (forced_nop): New pattern.
956 * config/bfin/bfin.c: Include "df.h".
957 (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
958 (bfin_discover_loop): Use df_get_live_in instead of
959 global_live_at_start.
960 (bfin_reorder_loops): Pass 0 to cfg_layout_initialize. Call
961 df_analyze when done.
962 (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
963 the insns. Use QImode for the final insn in a bundle. Call
964 df_insn_rescan on generated NOPs; use gen_forced_nop instead of
966 (reorder_var_tracking_notes): New function.
967 (bfin_reorg): Pass no argument to split_all_insns. Don't call
968 update_life_info. Call df_analyze after scheduling and bundle
969 generation. Call reorder_var_tracking_notes if generating these notes.
970 Call df_finish_pass at the end.
972 2007-06-12 Dirk Mueller <dmueller@suse.de>
974 * optabs.c (debug_optab_libfuncs): fix gcc_assert to
975 a comparison, not an assignment.
977 2007-06-12 Olivier Hainque <hainque@adacore.com>
979 * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
980 Request walking the subtrees only, leaving the current is_lhs/val_only
982 (convert_non_local_reference): Likewise.
984 2007-06-12 Nathan Sidwell <nathan@codesourcery.com>
986 * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
988 2007-06-12 Richard Guenther <rguenther@suse.de>
990 PR tree-optimization/15353
991 PR tree-optimization/31657
992 * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
993 * timevar.def: Add TV_TREE_IFCOMBINE.
994 * tree-pass.h (pass_tree_ifcombine): Declare.
995 * tree-ssa-ifcombine.c: New file.
996 * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
997 * tree-flow.h (blocks_in_phiopt_order): Declare.
998 * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
999 (tree-ssa-ifcombine.o): New dependencies.
1001 2007-06-12 Uros Bizjak <ubizjak@gmail.com>
1003 PR rtl-optimization/32293
1004 * combine.c (simplify_if_then_else): Truncate return from
1005 nonzero_bits() to correct mode.
1007 2007-06-12 Uros Bizjak <ubizjak@gmail.com>
1009 * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
1010 into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
1012 2007-06-11 Diego Novillo <dnovillo@google.com>
1014 * Makefile.in (reload1.o-warn): Remove.
1016 2007-06-11 Seongbae Park <seongbae.park@gmail.com>
1018 * combine.c (subst): Use reg_overlap_mentioned_p
1019 instead of comparing register numbers directly.
1021 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
1023 * reload1.c (mark_home_live_1): Use the mode parameter.
1025 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
1027 * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
1028 df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
1032 2007-06-11 Daniel Berlin <dberlin@dberlin.org>
1034 * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
1036 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
1038 * config/i386/i386.md ("*movtf_internal): Penalize moves to and
1039 from integer registers.
1040 (FP mode splitters): Handle TFmode.
1042 2007-06-11 Eric Botcazou <ebotcazou@adacore.com>
1044 * tree-ssa-structalias.c (find_what_p_points_to): Return false
1045 for ref-all pointers that point-to anything.
1047 2007-06-11 Joseph Myers <joseph@codesourcery.com>
1049 * config/arm/arm.c (arm_output_dwarf_dtprel,
1050 TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
1052 2007-06-11 Bernd Schmidt <bernd.schmidt@analog.com>
1054 * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
1055 movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
1058 2007-06-11 Rafael Avila de Espindola <espindola@google.com>
1060 * gcc/tree.c (signed_or_unsigned_type_for): New.
1061 (unsigned_type_for): Use signed_or_unsigned_type_for.
1062 (signed_type_for): Use signed_or_unsigned_type_for.
1063 * gcc/tree.h (signed_or_unsigned_type_for): New.
1064 (get_signed_or_unsigned_type): Remove.
1065 * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
1066 lang_hooks.types.signed_type
1067 (size_diffop): Likewise.
1068 (all_ones_mask_p): Likewise.
1069 (build_range_check): Likewise.
1070 (fold_cond_expr_with_comparison): Likewise.
1071 (fold_cond_expr_with_comparison): Likewise.
1072 (unextend): Likewise.
1073 (extract_muldiv_1): Likewise.
1074 (fold_single_bit_test_into_sign_test): Likewise.
1075 (fold_binary): Likewise.
1076 (fold_ternary): Likewise.
1077 (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
1078 instead of get_signed_or_unsigned_type.
1079 * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
1080 (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
1081 * gcc/expr.c (signed_or_unsigned_type_for): Use
1082 signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
1083 * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
1084 (lhd_signed_or_unsigned_type): Remove.
1085 * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
1086 signed_or_unsigned_type.
1087 (lhd_signed_or_unsigned_type): Remove.
1088 * gcc/expmed.c (make_tree): Use signed_type_for instead of
1089 lang_hooks.types.signed_type.
1090 * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
1091 c_common_signed_type instead of lang_hooks.types.signed_type.
1092 (c_common_unsigned_type): New.
1093 (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
1094 (shorten_compare): Use c_common_unsigned_type instead of
1095 c_common_signed_or_unsigned_type.
1096 (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
1098 * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
1099 lang_hooks.types.signed_type.
1100 * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
1101 (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
1102 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
1103 * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
1104 instead of unsigned_type_for.
1105 * gcc/c-decl.c (groakdeclarator): Likewise.
1106 * gcc/c-typeck.c (convert_for_assignment): Likewise.
1107 * gcc/c-common.h (c_common_unsigned_type): New.
1109 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
1112 * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
1113 * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
1115 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
1118 * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
1119 into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
1121 2007-06-10 Jan Sjodin <jan.sjodin@amd.com>
1122 Sebastian Pop <sebpop@gmail.com>
1124 * lambda-code.c (remove_iv): New.
1125 (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
1127 2007-06-10 Zdenek Dvorak <dvorakz@suse.cz>
1129 * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
1130 * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
1131 * tree-ssa-loop-prefetch.c: Include optabs.h.
1132 (FENCE_FOLLOWING_MOVNT): New macro.
1133 (struct mem_ref): Add independent_p and storent_p fields.
1134 (record_ref): Initalize the new fields.
1135 (gather_memory_references_ref): Return true if the reference
1137 (gather_memory_references): Check whether all memory accesses
1138 in loop were recorded.
1139 (should_issue_prefetch_p): Return false for nontemporal stores.
1140 (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
1141 may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
1142 (determine_loop_nest_reuse): Detect independent memory references.
1143 (loop_prefetch_arrays): Call mark_nontemporal_stores.
1144 * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
1145 * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
1146 * config/i386/i386.h (x86_mfence): Declare.
1147 (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
1148 * config/i386/i386.c (x86_mfence): New variable.
1149 (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
1151 * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
1152 * optabs.c (init_optabs): Initialize storent_optab.
1153 * optabs.h (enum optab_index): Add OTI_storent.
1154 (storent_optab): Declare.
1155 * genopinit.c (optabs): Add initialization for storent_optab.
1156 * tree.h (MOVE_NONTEMPORAL): New macro.
1157 * expr.c (expand_assignment, store_expr, store_constructor_field,
1158 store_constructor, store_field, expand_expr_real_1): Propagate
1159 nontemporality of the expanded store.
1160 (emit_storent_insn): New function.
1161 * expr.h (expand_assignment, store_expr): Declaration changed.
1162 * function.c (assign_parm_setup_reg): Pass false as nontemporality
1163 to expand_assignment.
1164 * stmt.c (expand_asm_expr): Ditto.
1165 * calls.c (initialize_argument_information): Pass false as
1166 nontemporality to store_expr.
1167 * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
1170 2007-06-09 Daniel Berlin <dberlin@dberlin.org>
1172 * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
1174 (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
1176 2007-06-09 Daniel Berlin <dberlin@dberlin.org>
1178 * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
1179 and allow DECL_P here.
1181 2007-06-09 Zdenek Dvorak <dvorakz@suse.cz>
1183 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
1184 follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
1185 track of the size of the expression.
1186 * cfghooks.c (merge_blocks): Remove block from loops structure only
1187 after call of the merge_blocks hook.
1189 2007-06-09 Tom Tromey <tromey@redhat.com>
1191 * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
1192 (deprecated_state): Removed.
1193 (start_decl): Update.
1194 (enum deprecated_states): Moved earlier.
1195 (groktypename): Update.
1196 (push_parm_decl): Likewise.
1197 (grokfield): Likewise.
1198 (start_function): Likewise.
1200 2007-06-09 Ian Lance Taylor <iant@google.com>
1202 PR tree-optimization/32169
1203 * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
1204 CONVERT_EXPR, check whether min and max both converted to an
1205 overflow infinity representation.
1207 2007-06-08 Eric Botcazou <ebotcazou@adacore.com>
1209 * reload1.c (fixup_abnormal_edges): Clear bb field for insns
1210 not inserted on the edge.
1212 2007-06-08 Bob Wilson <bob.wilson@acm.org>
1214 * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
1215 instructions if they are supported.
1216 (__divsi3, __umodsi3, __modsi3): Likewise.
1217 (__ashldi3, __ashrdi3, __lshrdi3): New.
1218 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
1220 2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com>
1221 Tony Linthicum <tony.linthicum@amd.com>
1223 * doc/extend.texi: Add fvect-cost-model flag.
1224 * common.opt (fvect-cost-model): New flag.
1225 * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
1226 cost fields in stmt_vec_info struct for STMT.
1227 * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
1228 fields in stmt_vec_info struct and access functions for the same.
1229 (TARG_COND_BRANCH_COST): Define cost of conditional branch.
1230 (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
1231 load, store and vector to scalar operation.
1232 (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
1233 (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
1234 (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
1235 (TARG_VEC_STORE_COST): Define cost of vector store.
1236 (vect_estimate_min_profitable_iters): Define new function.
1237 * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
1238 check to evaluate if loop iterations are less than minimum profitable
1239 iterations determined by cost model or minimum vect loop bound defined
1240 by user, whichever is more conservative.
1241 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
1242 run-time check to evaluate if loop iterations are less than minimum
1243 profitable iterations determined by cost model or minimum vect loop
1244 bound defined by user, whichever is more conservative.
1245 (vect_estimate_min_profitable_iterations): New function to estimate
1246 mimimimum iterartions required for vector version of loop to be
1247 profitable over scalar version.
1248 (vect_model_reduction_cost): New function.
1249 (vect_model_induction_cost): New function.
1250 (vect_model_simple_cost): New function.
1251 (vect_cost_strided_group_size): New function.
1252 (vect_model_store_cost): New function.
1253 (vect_model_load_cost): New function.
1254 (vectorizable_reduction): Call vect_model_reduction_cost during
1256 (vectorizable_induction): Call vect_model_induction_cost during
1258 (vectorizable_load): Call vect_model_load_cost during analysis phase.
1259 (vectorizable_store): Call vect_model_store_cost during analysis phase.
1260 (vectorizable_call, vectorizable_assignment, vectorizable_operation,
1261 vectorizable_promotion, vectorizable_demotion): Call
1262 vect_model_simple_cost during analysis phase.
1264 2007-06-08 Simon Baldwin <simonb@google.com>
1266 * reg-stack.c (get_true_reg): Readability change. Moved default case
1267 label into direct switch statement scope.
1269 2007-06-08 Simon Baldwin <simonb@google.com>
1271 * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
1272 in gcc_assert() with '==' comparison.
1274 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
1276 * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
1277 TARGET_ABM handling of x86_popcnt variable.
1279 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
1281 * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
1282 __builtin_copysignq and __builtin_infq built-in functions.
1284 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
1286 * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
1287 SSE4.2 section. Correct built-in function names in SSE4A section.
1289 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
1291 PR tree-optimization/32243
1292 * tree-vect-transform.c (vectorizable_type_promotion): Move check
1293 for ncopies after ratio check between nunits_out and nunits_in.
1294 (vectorizable_type_demotion): Remove single-use variable "scalar_type".
1296 2007-06-08 Dorit Nuzman <dorit@il.ibm.com>
1298 PR tree-optimization/32224
1299 * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
1300 vectorization upon a non GIMPLE_MODIFY_STMT.
1302 2007-06-08 Christian Bruel <christian.bruel@st.com>
1305 * config/sh/sh.md (doloop_end): New pattern and splitter.
1306 * loop-iv.c (simple_rhs_p): Check for hardware registers.
1308 2007-06-08 Zdenek Dvorak <dvorakz@suse.cz>
1311 * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
1313 (verify_dominators): Do not change dominance tree.
1315 2007-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1317 * config/sh/constraints.md: New file.
1318 * config/sh/sh.c: Include tm-constrs.h.
1319 (reg_class_from_letter): Remove.
1320 (prepare_cbranch_operands): Use satisfies_constraint_*
1321 function instead of macro.
1322 (andcosts, broken_move, sh_secondary_reload): Likewise.
1323 * config/sh/predicates.md (trapping_target_operand): Likewise.
1324 (and_operand, arith_operand, arith_reg_or_0_operand,
1325 cmp_operand, logical_operand, target_operand,
1326 ua_address_operand, ua_offset, xor_operand): Likewise.
1327 * config/sh/sh.md: Include constraints.md.
1328 (*movsicc_t_false): Use satisfies_constraint_* function
1330 (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
1331 lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
1332 movdi_const_16bit+1, beq, bne, *ptb): Likewise.
1333 * config/sh/sh.h (reg_class_from_letter): Remove prototype.
1334 (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
1335 (REG_CLASS_FROM_CONSTRAINT): Remove.
1336 (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
1337 CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
1338 CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
1339 CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
1340 CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
1341 (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
1342 function instead of macro.
1343 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
1344 (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
1345 EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
1346 EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
1347 (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
1348 (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
1349 (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
1350 (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
1351 (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
1352 EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
1353 EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
1354 EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
1355 EXTRA_CONSTRAINT_STR): Likewise.
1356 (GO_IF_LEGITIMATE_INDEX): Fix indentation.
1358 2007-06-07 Geoffrey Keating <geoffk@apple.com>
1360 * config/i386/darwin.h (STACK_BOUNDARY): Define.
1362 2007-06-07 Simon Martin <simartin@users.sourceforge.net>
1365 * c-common.h (flag_cpp0x): Replaced by...
1366 (cxx_dialect): ... this new variable specifying the C++ dialect that
1368 * c-common.c (flag_cpp0x): Removed.
1369 (cxx_dialect): Defined.
1370 * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
1372 * c-opts.c (c_common_post_options): Likewise.
1373 (set_std_cxx98): Set cxx_dialect to cxx98.
1374 (set_std_cxx0x): Set cxx_dialect to cxx0x.
1376 2007-06-07 Geoffrey Keating <geoffk@apple.com>
1377 Hui-May Chang <hm.chang@apple.com>
1379 * doc/invoke.texi (Darwin Options): Update documentation for
1380 -mmacosx-version-min.
1381 * config.gcc (*-*-darwin*): Set extra_gcc_objs.
1382 * config/darwin-driver.c: New file.
1383 * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
1384 * config/t-darwin (darwin-driver.o): New rule.
1386 * config/darwin-c.c (version_as_macro): Ignore low digit.
1388 2007-06-07 Uros Bizjak <ubizjak@gmail.com>
1390 * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
1391 (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
1392 (CSGNMODE): New mode macro.
1393 (CSGNVMODE): New mode attribute.
1394 (copysign<mode>3): Rename from copysingsf3 and copysigndf3. Macroize
1395 expander using CSGNMODE mode macro. Handle TFmode.
1396 (copysign<mode>3_const): Rename from copysignsf3_const and
1397 copysigndf3_const. Macroize pattern using CSGNMODE mode macro.
1399 (copysign<mode>3_var): Rename from copysignsf3_var and
1400 copysigndf3_var. Macroize pattern using CSGNMODE mode macro.
1402 (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
1403 mode macro. Handle TFmode.
1404 * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
1405 (iortf3, *iortf3): Ditto.
1406 (xortf3, *xortf3): Ditto.
1407 * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
1408 TFmode and TImode masks.
1409 (ix86_expand_copysign): Expand TFmode copysign insn.
1410 (IX86_BUILTIN_INFQ): New.
1411 (IX86_BUILTIN_FABSQ): Ditto.
1412 (IX86_BUILTIN_COPYSIGNQ): Ditto.
1413 (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
1414 [__builtin_fabsq]: Ditto.
1415 [__builtin_copysignq]: Ditto.
1416 (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
1417 [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
1418 [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
1419 ix86_expand_binop_builtin().
1421 2007-06-07 Bob Wilson <bob.wilson@acm.org>
1423 * config/xtensa/lib1funcs.asm: Clean up whitespace.
1425 2007-06-07 Steve Ellcey <sje@cup.hp.com>
1428 * rtl.h (push_to_sequence2): New.
1429 * emit-rtl.c (push_to_sequence2): New.
1430 * function.c (assign_parm_data_all): Add new fields.
1431 (assign_parm_setup_block): Call push_to_sequence2 instead of
1433 (assign_parm_setup_reg): Ditto.
1434 (assign_parm_setup_stack): Ditto.
1435 (assign_parms_unsplit_complex): Ditto.
1436 (assign_parms): Change field name.
1438 2007-06-07 Zdenek Dvorak <dvorakz@suse.cz>
1440 PR tree-optimization/32220
1441 * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
1442 phi node is reached before defining statement.
1444 2007-06-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
1447 * tree-vect-transform.c (vectorizable_call): Call update_stmt
1448 after changing the right hand side of the assignment.
1450 2007-06-06 Eric Christopher <echristo@apple.com>
1452 * config.gcc (i?86-*-darwin*): Remove arch parameter.
1453 (x86_64-*-darwin*): Ditto.
1454 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
1455 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
1457 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
1459 * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
1461 (add_key): Likewise.
1462 * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
1463 * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
1465 * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory macros.
1466 (add_cost_one_coalesce): Likewise.
1467 * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
1468 variable names. Rename orig to orig_name for consistency.
1469 * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the coding
1471 (cprop_into_successor_phis): Avoid using C++ keywords as variable names.
1472 (record_equivalences_from_stmt): Likewise.
1473 * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
1474 the coding conventions.
1475 (memory_ssa_name_same): Likewise.
1476 (dse_optimize_stmt): Likewise.
1477 (dse_record_phis): Likewise.
1478 (dse_finalize_block): Likewise.
1479 * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
1480 keywords as variable names.
1481 (may_move_till): Cast according to the coding conventions.
1482 (force_move_till_expr): Avoid using C++ keywords as variable names.
1483 (force_move_till): Cast according to the coding conventions.
1484 (memref_hash): Likewise.
1485 (memref_eq): Likewise.
1486 (gather_mem_refs_stmt): Likewise.
1487 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid using C++
1488 keywords as variable names.
1489 (idx_find_step): Cast according to the coding conventions.
1490 (idx_record_use): Likewise.
1491 (find_depends): Likewise.
1492 (prepare_decl_rtl): Likewise.
1493 (mbc_entry_hash): Likewise.
1494 (mbc_entry_eq): Likewise.
1495 * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
1496 (simplify_replace_tree): Avoid using C++ keywords as variable names.
1497 (idx_infer_loop_bounds): Cast according to the coding conventions.
1498 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
1499 * tree-ssa-math-opts.c (occ_new ): Likwise.
1500 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
1502 * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as variable
1504 (add_use_op): Likewise.
1505 (add_vop): Likewise.
1506 (add_vuse_op): Likewise.
1507 (add_vdef_op): Likewise.
1508 (get_expr_operands): Likewise.
1509 (push_stmt_changes): Use type safe memory macros.
1510 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
1511 keywords as variable names.
1512 (conditional_replacement): Likewise.
1513 (minmax_replacement): Likewise.
1514 (abs_replacement): Likewise.
1515 * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
1517 (insert_fake_stores): Avoid using C++ keywords as variable names.
1518 * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
1520 * tree-ssa-structalias.c (heapvar_lookup): Likewise.
1521 (heapvar_insert): Use type safe memory macros.
1522 (new_var_info): Cast according to the coding conventions.
1523 (new_constraint): Likewise.
1524 (remove_preds_and_fake_succs): Use type safe memory macros.
1525 * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
1527 (thread_single_edge): Likewise.
1528 (thread_through_loop_header): Likewise.
1530 2007-06-06 Eric Christopher <echristo@apple.com>
1532 * config/i386/i386.c (override_options): Move handling
1533 of TARGET_SUBTARGET* earlier.
1535 2007-06-06 Paolo Bonzini <bonzini@gnu.org>
1537 * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
1540 2007-06-06 Zdenek Dvorak <dvorakz@suse.cz>
1542 * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
1543 emited outside of basic block.
1544 * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
1546 * rtl.h (delete_insn_chain): Declaration changed.
1547 * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
1549 (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
1550 (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
1551 rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
1552 to delete_insn_chain.
1553 (rtl_verify_flow_info_1): Verify that the insns in header and footer
1554 do not have bb field set.
1555 (rtl_verify_flow_info): Verify that insns between basic blocks do not
1557 * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
1558 * cfgcleanup.c (try_optimize_cfg): Ditto.
1560 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
1562 * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
1563 (lambda_body_vector_new): Use type safe memory macros.
1564 (lambda_linear_expression_new): Likewise.
1565 (lambda_loopnest_new): Likewise.
1566 (lambda_lattice_new): Likewise.
1567 (replace_uses_equiv_to_x_with_y): Cast according to the coding
1568 conventions. Use type safe memory macros.
1569 * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
1570 (lambda_body_vector_s): Likewise.
1571 * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
1572 * lambda-trans.c (lambda_trans_matrix_new): Likewise.
1574 2007-06-06 Richard Guenther <rguenther@suse.de>
1576 * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
1577 if we need to schedule cfg_cleanup.
1578 (tree_ssa_forward_propagate_single_use_vars): Do so.
1580 2007-06-06 Ian Lance Taylor <iant@google.com>
1582 * fold-const.c (merge_ranges): If range_successor or
1583 range_predecessor fail, just return 0.
1585 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
1587 PR tree-optimization/32216
1588 * tree-vectorizer.c (supportable_widening_operation): Determine
1589 signedness of FIX_TRUNC_EXPR from output operand.
1590 (supportable_narrowing_operation): Ditto.
1591 * tree-vect-generic.c (expand_vector_operations_1): Determine
1592 signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
1595 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
1597 * config/i386/i386.c (enum pta_flags): Move out of struct scope...
1598 (struct pta): ...from here. Change flags to unsigned to avoid
1599 excessive casting (as it is used as a bit mask).
1600 (override_options): Add casts according to the coding convenventions.
1601 (x86_64_elf_unique_section): Likewise.
1602 (examine_argument): Avoid using C++ keywords as variable names.
1603 (construct_container): Likewise.
1604 (legitimize_pic_address): Likewise.
1605 (get_dllimport_decl): Cast according to the coding conventions. Use
1606 type safe memory macros.
1607 (legitimize_address): Cast according to the coding conventions.
1608 (emit_i387_cw_initialization): Corrected the type of slot to enum
1610 (ix86_init_machine_status): Use type safe memory macros.
1611 (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
1612 (bdesc_pcmpistr): Likewise.
1613 (bdesc_crc32): Likewise.
1614 (bdesc_sse_3arg): Likewise.
1615 (bdesc_2arg): Likewise.
1616 (bdesc_1arg): Likewise.
1617 (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
1618 (ix86_expand_sse_pcmpistr): Likewise.
1619 (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
1620 (ix86_builtin_vectorized_function): Change the type of fn to unsigned
1621 int to match the langhook definition.
1622 (ix86_builtin_conversion): Change the type of code to unsigned init to
1623 match the langhook definition.
1624 (ix86_preferred_reload_class): Avoid using C++ keywords as variable
1626 (ix86_preferred_output_reload_class): Likewise.
1627 (ix86_cannot_change_mode_class): Likewise.
1628 (ix86_memory_move_cost): Likewise.
1629 (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
1630 avoid excessive casting later on.
1631 (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
1633 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
1635 * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
1636 as flags setting insn.
1637 (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
1639 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
1641 * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
1642 (UNSPEC_ROUND): New.
1643 ("sse4_1_round<mode>2"): New insn pattern.
1644 ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
1646 ("floor<mode>2"): Rename from floordf2 and floorsf2. Macroize
1647 expander using SSEMODEF mode macro. Expand using
1648 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
1649 ("ceil<mode>2"): Rename from ceildf2 and ceilsf2. Macroize
1650 expander using SSEMODEF mode macro. Expand using
1651 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
1652 ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2. Macroize
1653 expander using SSEMODEF mode macro. Expand using
1654 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
1655 * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
1656 UNSPEC_ROUND instead of UNSPEC_ROUNDP.
1657 ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
1660 2007-06-06 Jan Sjodin <jan.sjodin@amd.com>
1661 Sebastian Pop <sebpop@gmail.com>
1663 * lambda.h (build_linear_expr): New.
1664 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
1665 Use build_linear_expr, call fold and force_gimple_operand.
1666 (lambda_loopnest_to_gcc_loopnest): Check that there is
1667 something to insert.
1668 * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
1670 2007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
1672 PR preprocessor/23479
1673 * doc/extend.texi: Document the 0b-prefixed binary integer
1676 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
1678 PR tree-optimization/32215
1679 * tree-vectorizer.c (supportable_widening_operation): Return false
1680 for unsupported FIX_TRUNC_EXPR tree code.
1681 (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
1683 2007-06-06 Nathan Froyd <froydnj@codesourcery.com>
1685 * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
1686 register on SPE targets. Change documentation to reflect
1688 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
1689 Change FIXED_SCRATCH to 14 and document why we're keeping r14
1690 out of the register allocation pool.
1691 (rs6000_reg_live_or_pic_offset_p): New function.
1692 (rs6000_emit_prologue): Move the actual saving of LR up to free
1693 r0 for holding r11. Split saving of SPE 64-bit registers into
1694 its own case. Ensure that offsets will always be in-range for
1695 'evstdd' by using r11 as a scratch register to point at the start
1696 of the SPE save area. Save r11 if necessary, as it is the static
1698 (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
1699 into its own case. Ensure that offsets will always be in-range
1700 for 'evldd' by using r11 as a scratch register to point at the
1701 start of the SPE save area. Also adjust r11 when restoring
1702 the stack pointer to compensate for pre-loading r11.
1704 2007-06-05 Thomas Neumann <tneumann@users.sourceforge.net>
1706 * cfg.c (init_flow): Use type safe memory macros.
1707 (alloc_block): Likewise.
1708 (unchecked_make_edge): Likewise.
1709 (dump_flow_info): Avoid using C++ keywords as variable names.
1710 (copy_original_table_clear): Cast according to the coding conventions.
1711 (copy_original_table_set): Likewise.
1712 * cfgexpand (label_rtx_for_bb): Likewise.
1713 (expand_gimple_basic_block): Likewise.
1714 * cfghooks.c (dump_bb): Likewise.
1715 (lv_adjust_loop_header_phi): Avoid using C++ keywords as
1717 (lv_add_condition_to_bb): Likewise.
1718 * cfglayout (relink_block_chain): Cast according to the coding
1720 (fixup_reorder_chain): Likewise.
1721 (fixup_fallthru_exit_predecessor): Likewise.
1722 * cfgloop.c (glb_enum_p): Likewise.
1723 (get_exit_description): Likewise.
1724 (dump_recorded_exit): Likewise.
1725 * cfgloop.h (enum loop_estimation): Move out of struct scope...
1726 (struct loop): ... from here.
1727 * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
1729 * cfgrtl.c (rtl_create_basic_block): Likewise.
1730 (rtl_split_block): Likewise.
1731 (rtl_dump_bb): Likewise.
1732 (cfg_layout_split_block): Likewise.
1733 (init_rtl_bb_info): Use typesafe memory macros.
1735 * graphds.h (struct graph_edge): Renamed edge to graph_edge.
1736 * graphds.h: Updated all usages of edge to graph_edge.
1737 * graphds.c: Likewise.
1738 * cfgloopanal.c: Likewise.
1740 2007-06-05 Ian Lance Taylor <iant@google.com>
1742 * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
1743 PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
1744 (extract_range_from_assert): Set TREE_NO_WARNING when creating an
1746 (test_for_singularity): Likewise.
1748 2007-06-05 H.J. Lu <hongjiu.lu@intel.com>
1750 * config/i386/constraints.md ("Y2"): Replaced by ...
1752 * config/i386/i386.md: Likewise.
1753 * config/i386/mmx.md: Likewise.
1754 * config/i386/sse.md: Likewise.
1756 2007-06-05 H.J. Lu <hongjiu.lu@intel.com>
1758 * config/i386/constraints.md ("z"): Replaced by ...
1760 * config/i386/sse.md (sse4_1_blendvpd): Likewise.
1761 (sse4_1_blendvps): Likewise.
1762 (sse4_1_pblendvb): Likewise.
1763 (sse4_2_pcmpestr): Likewise.
1764 (sse4_2_pcmpestrm): Likewise.
1765 (sse4_2_pcmpestr_cconly): Likewise.
1766 (sse4_2_pcmpistr): Likewise.
1767 (sse4_2_pcmpistrm): Likewise.
1768 (sse4_2_pcmpistr_cconly): Likewise.
1770 2007-06-05 Razya Ladelsky <razya@il.ibm.com>
1772 * matrix-reorg.c (transform_access_sites): Fix computation.
1773 (transform_allocation_sites): Same.
1775 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
1777 * config/i386/i386.c (override_options): Use
1778 TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
1780 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
1782 * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
1783 (nonimm_not_xmm0_operand): Ditto.
1784 * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
1785 as operand[0] and operand[1] predicate. Use "nonimm_not_xmm0_operand"
1786 as operand[2] predicate. Require "z" class XMM register for
1787 operand[3]. Adjust asm template.
1788 ("sse4_1_blendvpd"): Ditto.
1789 ("sse4_1_pblendvb"): Ditto.
1790 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
1791 force op2 into xmm0 register for variable blend instructions.
1793 2007-06-04 Tom Tromey <tromey@redhat.com>
1795 * c-tree.h (start_enum): Update.
1796 (build_enumerator): Likewise.
1797 * c-decl.c (enum_next_value): Removed.
1798 (enum_overflow): Likewise.
1799 (start_enum): Add c_enum_contents argument. Don't use globals.
1800 (build_enumerator): Likewise.
1801 * c-tree.h (struct c_enum_contents): New struct.
1803 2007-06-04 Tom Tromey <tromey@redhat.com>
1805 * c-common.c (c_common_get_alias_set): Fix indentation.
1807 2007-06-04 Ian Lance Taylor <iant@google.com>
1809 * tree-vrp.c (adjust_range_with_scev): When loop is not expected
1810 to overflow, reduce overflow infinity to regular infinity.
1811 (vrp_var_may_overflow): New static function.
1812 (vrp_visit_phi_node): Check vrp_var_may_overflow.
1814 2007-06-04 Kazu Hirata <kazu@codesourcery.com>
1816 * stor-layout.c (layout_type): Remove duplicate code.
1818 2007-06-04 Uros Bizjak <ubizjak@gmail.com>
1821 * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins ()
1822 before build_common_builtin_nodes ().
1824 2007-06-04 Steve Ellcey <sje@cup.hp.com>
1827 * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
1829 2007-06-04 Jan Hubicka <jh@suse.cz>
1831 * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
1832 reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
1833 instead of _stat version.
1835 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
1837 PR tree-optimization/32194
1838 * tree-predcom.c (determine_offset): Check that both references have
1841 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
1843 * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
1844 Change dom_bbs to vector. Add argument to iterate_fix_dominators call.
1845 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
1846 * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
1847 Add argument to iterate_fix_dominators call.
1848 (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
1849 * gcse.c (hoist_code): Change domby to vector.
1850 * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
1851 Add argument to iterate_fix_dominators call.
1852 * loop-doloop.c (doloop_modify): Changed recount_dominator to
1853 recompute_dominator.
1854 * lambda-code.c (perfect_nestify): Ditto.
1855 * cfgloopanal.c: Include graphds.h.
1856 (struct edge, struct vertex, struct graph, dump_graph, new_graph,
1857 add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
1858 (mark_irreducible_loops): Use graphds_scc. Remove argument from
1860 * graphds.c: New file.
1861 * graphds.h: New file.
1862 * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
1863 (get_dominated_by, get_dominated_by_region): Change return type to
1865 (verify_dominators): Recompute all dominators and compare the results.
1866 (recount_dominator): Renamed to ...
1867 (recompute_dominator): ... this. Do not check that the block is
1869 (iterate_fix_dominators): Reimplemented.
1870 (prune_bbs_to_update_dominators, root_of_dom_tree,
1871 determine_dominators_for_sons): New functions.
1872 * et-forest.c (et_root): New function.
1873 * et-forest.h (et_root): Declare.
1874 * Makefile.in (graphds.o): Add.
1875 (cfgloopanal.o): Add graphds.h dependency.
1876 (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
1877 * basic-block.h (get_dominated_by, get_dominated_by_region,
1878 iterate_fix_dominators): Declaration changed.
1879 (recount_dominator): Renamed to ...
1880 (recompute_dominator): ... this.
1881 * tree-ssa-threadupdate.c (thread_block): Free dominance info.
1882 (thread_through_all_blocks): Do not free dominance info.
1884 2007-06-03 Andreas Schwab <schwab@suse.de>
1886 * config/m68k/m68k.c (override_options): Don't override
1888 * config/m68k/m68k-modes.def (SF, DF): Define to use
1889 motorola_single_format and motorola_double_format, resp.
1890 * real.c (motorola_single_format): Renamed from
1891 coldfire_single_format.
1892 (motorola_double_format): Renamed from coldfire_double_format.
1893 (encode_ieee_extended): Generate a proper canonical NaN image
1894 respecting canonical_nan_lsbs_set.
1895 (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
1897 * real.h: Adjust declarations.
1899 2007-06-03 Kaz Kojima <kkojima@gcc.gnu.org>
1902 * config/sh/sh.md (symGOT_load): Don't schedule insns when
1903 the symbol is generated with the stack protector.
1905 2007-06-03 Kazu Hirata <kazu@codesourcery.com>
1907 * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
1908 (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
1910 * doc/extend.texi (interrupt): Mention m68k.
1912 2007-06-02 Uros Bizjak <ubizjak@gmail.com>
1914 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
1915 safe_vector_operand() if input operand is VECTOR_MODE_P operand.
1916 (ix86_expand_sse_pcmpestr): Do not check operands for
1917 "register_operand", when insn operand predicate is "register_operand".
1918 (ix86_expand_sse_pcmpistr): Ditto.
1920 2007-06-02 H.J. Lu <hongjiu.lu@intel.com>
1921 Uros Bizjak <ubizjak@gmail.com>
1923 * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
1924 (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
1925 (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
1926 (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
1927 * config/i386/constraints.md ("z"): New register constraint
1928 for members of SSE_FIRST_REG class.
1929 * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
1930 * config/i386/i386.c (regclass_map): Change class of %xmm0 to
1931 SSE_FIRST_REG class.
1932 (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
1933 (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
1934 (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
1935 (IX86_BUILTIN_PCMPESTRM128): Likewise.
1936 (IX86_BUILTIN_PCMPESTRA128): Likewise.
1937 (IX86_BUILTIN_PCMPESTRC128): Likewise.
1938 (IX86_BUILTIN_PCMPESTRO128): Likewise.
1939 (IX86_BUILTIN_PCMPESTRS128): Likewise.
1940 (IX86_BUILTIN_PCMPESTRZ128): Likewise.
1941 (IX86_BUILTIN_PCMPISTRI128): Likewise.
1942 (IX86_BUILTIN_PCMPISTRM128): Likewise.
1943 (IX86_BUILTIN_PCMPISTRA128): Likewise.
1944 (IX86_BUILTIN_PCMPISTRC128): Likewise.
1945 (IX86_BUILTIN_PCMPISTRO128): Likewise.
1946 (IX86_BUILTIN_PCMPISTRS128): Likewise.
1947 (IX86_BUILTIN_PCMPISTRZ128): Likewise.
1948 (struct builtin_description): Change "flag" field to unsigned.
1949 (bdesc_pcmpestr): New builtin description table.
1950 (bdesc_pcmpistr): Likewise.
1951 (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
1952 v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
1953 Initialize pcmp[ei]str[im] insns for SSE4.2.
1954 (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
1955 (ix86_expand_sse_pcmpistr): Likewise.
1956 (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
1957 * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
1958 (UNSPEC_PCMPISTR): Likewise.
1959 * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
1960 (sse4_2_pcmpestri):New isns pattern.
1961 (sse4_2_pcmpestrm): Likewise.
1962 (sse4_2_pcmpestr_cconly): Likewise.
1963 (sse4_2_pcmpistr): New insn patern and splitter.
1964 (sse4_2_pcmpistri):New isns pattern.
1965 (sse4_2_pcmpistrm): Likewise.
1966 (sse4_2_pcmpistr_cconly): Likewise.
1967 * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
1970 2007-06-01 David Daney <ddaney@avtrex.com>
1972 * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
1973 LOADGP_ABSOLUTE and not binds_local_p.
1975 2007-06-01 Geoffrey Keating <geoffk@apple.com>
1977 * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
1979 2007-06-01 Ian Lance Taylor <iant@google.com>
1981 * tree-vrp.c (compare_name_with_value): Always set
1982 used_strict_overflow if we get a result from the variable itself.
1984 2007-06-01 Ian Lance Taylor <iant@google.com>
1986 PR rtl-optimization/31455
1987 * lower-subreg.c (find_decomposable_subregs): Don't decompose
1988 subregs which have a cast between modes which are not tieable.
1990 2007-06-01 Uros Bizjak <ubizjak@gmail.com>
1992 * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
1993 breaks after return statements.
1995 2007-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
1997 * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
1998 only after no_new_pseudos.
2000 2007-05-31 Eric Christopher <echristo@apple.com>
2002 * expr.c (convert_move): Assert that we don't have a BLKmode
2004 (store_expr): Handle BLKmode moves by calling emit_block_move.
2006 2007-05-31 Daniel Berlin <dberlin@dberlin.org>
2008 * c-typeck.c (build_indirect_ref): Include type in error message.
2009 (build_binary_op): Pass types to binary_op_error.
2010 * c-common.c (binary_op_error): Take two type arguments, print out
2012 * c-common.h (binary_op_error): Update prototype.
2014 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
2016 * config/i386/i386.c: Correct coments on -mno-sse4.
2018 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
2020 * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
2021 (x86_64-*-*): Likewise.
2022 * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
2023 (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
2024 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
2025 (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
2026 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
2027 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
2028 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
2029 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
2030 (OPTION_MASK_ISA_SSE4): Likewise.
2031 (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
2032 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
2033 (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET. Handle SSE4.2.
2034 (override_options): Support SSE4.2.
2035 (ix86_build_const_vector): Support SImode and DImode.
2036 (ix86_build_signbit_mask): Likewise.
2037 (ix86_expand_int_vcond): Support V2DImode.
2038 (IX86_BUILTIN_CRC32QI): New for SSE4.2.
2039 (IX86_BUILTIN_CRC32HI): Likewise.
2040 (IX86_BUILTIN_CRC32SI): Likewise.
2041 (IX86_BUILTIN_CRC32DI): Likewise.
2042 (IX86_BUILTIN_PCMPGTQ): Likewise.
2043 (bdesc_crc32): Likewise.
2044 (bdesc_sse_3arg): Likewise.
2045 (ix86_expand_crc32): Likewise.
2046 (ix86_init_mmx_sse_builtins): Support SSE4.2.
2047 (ix86_expand_builtin): Likewise.
2048 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
2049 __SSE4_2__ for -msse4.2.
2050 * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
2051 (CRC32MODE): Likewise.
2052 (crc32modesuffix): Likewise.
2053 (crc32modeconstraint): Likewise.
2054 (sse4_2_crc32<mode>): Likewise.
2055 (sse4_2_crc32di): Likewise.
2056 * config/i386/i386.opt (msse4.2): New for SSE4.2.
2058 * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
2059 * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
2060 * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
2061 (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
2062 (vcondu<mode>): Likewise.
2063 * doc/extend.texi: Document SSE4.2 built-in functions.
2064 * doc/invoke.texi: Document -msse4.2/-msse4.
2066 2007-05-31 Zdenek Dvorak <dvorakz@suse.cz>
2068 PR tree-optimization/32160
2069 * tree-predcom.c (predcom_tmp_var): New function. Mark created
2070 variable as gimple reg.
2071 (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
2073 2007-05-31 Kazu Hirata <kazu@codesourcery.com>
2075 * gcc.c (main): Don't consider linker options when issuing the
2076 warning about a linker input file not being used.
2078 2007-05-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2080 * tree-vrp.c (compare_names): Initialize sop.
2082 2007-05-30 Dirk Mueller <dmueller@suse.de>
2084 * cgraphunit.c (cgraph_analyze_function): Remove
2085 computation of inline parameters.
2087 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
2089 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
2091 2007-05-30 Richard Sandiford <richard@codesourcery.com>
2093 * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
2094 Add vx-common.h. Include vxworks.h between vx-common.h and
2096 * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
2098 * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
2099 (TARGET_ASM_DESTRUCTOR): Likewise.
2100 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
2101 instead of arm_is_xscale. Use VXWORKS_OS_CPP_BUILTINS.
2102 (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
2103 (CC1_SPEC): Add -tstrongarm. Line up backslashes.
2104 (VXWORKS_ENDIAN_SPEC): Define.
2105 (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
2106 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
2107 VXWORKS_* equivalents.
2108 (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
2109 (ASM_FILE_START): Delete.
2110 (TARGET_VERSION): Reformat.
2111 (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
2112 (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
2113 * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
2114 (FPBIT, DPBIT): Define.
2115 (fp-bit.c, dp-bit.c): New rules.
2116 (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
2117 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
2118 * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
2119 * config/arm/arm.h: Include vxworks-dummy.h.
2120 * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
2121 Mark with ATTRIBUTE_UNUSED.
2122 (arm_override_options): Do not allow VxWorks RTP PIC to be used
2123 for Thumb. Force r9 to be the PIC register for VxWorks RTPs and
2124 make it incompatible with -msingle-pic-base.
2125 (arm_function_ok_for_sibcall): Return false for calls that might
2126 go through a VxWorks PIC PLT entry.
2127 (require_pic_register): New function, split out from...
2128 (legitimize_pic_address): ...here. Do not use GOTOFF accesses
2130 (arm_load_pic_register): Handle the VxWorks RTP initialization
2131 sequence. Use pic_reg as a shorthand for cfun->machine->pic_reg.
2132 (arm_emit_call_insn): New function.
2133 (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
2134 * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
2135 (pic_offset_arm): New pattern.
2136 (call, call_value): Use arm_emit_call_insn.
2137 (call_internal, call_value_internal): New expanders.
2138 * config/arm/lib1funcs.asm (__PLT__): Define to empty for
2139 VxWorks unless __PIC__.
2141 2007-05-30 Eric Christopher <echristo@gmail.com>
2143 * genrecog.c: Include regs.h in generated file.
2144 * genemit.c: Ditto. Fix up formatting.
2145 * config/mn10300/constraints.md: New.
2146 * config/mn10300/mn10300.md: Include.
2147 * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
2148 Fix up for removed macro.
2149 * config/mn10300/predicates.md (call_address_operand): Ditto.
2150 * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
2151 (CONST_OK_FOR_I): Ditto.
2152 (CONST_OK_FOR_J): Ditto.
2153 (CONST_OK_FOR_K): Ditto.
2154 (CONST_OK_FOR_L): Ditto.
2155 (CONST_OK_FOR_M): Ditto.
2156 (CONST_OK_FOR_N): Ditto.
2157 (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
2161 (EXTRA_CONSTRAINT): Ditto.
2163 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
2165 * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
2167 * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
2168 OPTION_MASK_ISA_64BIT.
2169 * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
2171 2007-05-30 Richard Guenther <rguenther@suse.de>
2174 * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
2175 types for comparison.
2176 * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
2177 with original typed arguments.
2178 * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
2180 2007-05-30 Jakub Jelinek <jakub@redhat.com>
2182 PR tree-optimization/31769
2183 * except.c (duplicate_eh_regions): Clear prev_try if
2184 ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
2186 2007-05-30 Zdenek Dvorak <dvorakz@suse.cz>
2188 * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
2189 * tree-ssa-sink.c (statement_sink_location): Return basic block and
2190 bsi of the location where statements should be inserted.
2191 (sink_code_in_bb): Take bsi from statement_sink_location.
2192 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
2193 instead of bsi_start.
2194 * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
2196 * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
2197 (bsi_move_before): Document inconsistency with bsi_move_after.
2198 (tree_redirect_edge_and_branch): Do not create labels if not necessary.
2200 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
2202 * config/i386/i386.h (TARGET_ABM): New define.
2203 (TARGET_POPCNT): Ditto.
2204 (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
2205 New temporary defines to redefine from OPTION_ISA_* defines.
2206 (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
2207 New temporary defines to redefine from OPTION_MASK_ISA_* defines.
2208 (ix86_isa_flags): New extern int declaration.
2209 (TARGET_SUBTARGET_DEFAULT): New define.
2210 (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
2211 (TARGET_SUBTARGET32_DEFAULT): Ditto.
2212 (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
2213 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
2214 * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
2215 * config/i386/darwin.h: Change TARGET_64BIT define to
2218 * config/i386/i386.opt (m3dnowa): Define as undocumented option
2219 using existing "ix86_isa_flags" varible.
2220 (m32, m64): Use existing "ix86_isa_flags" variable.
2221 (mmmx, m3dnow): Ditto.
2222 (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
2223 (mabm): Define as non-negative option using "x86_abm" variable.
2224 (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
2226 * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
2227 Rewrite feature test bitmap.
2228 (ix86_isa_flags): New initialized global int varible.
2229 (ix86_isa_flags_explicit): New static int variable.
2230 (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
2231 msse, msse2, msse3, msse4.1 and msse4a option is processed. Change
2232 i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
2233 target_flags_explicit.
2234 (override_options): Remove "target_enable" and "target_disable" fields
2235 from "struct ptt". Update processor_target_table accordingly. Remove
2236 PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
2237 defined and rearrange PTA_* bits. Use "ix86_isa_flags" instead of
2238 "target_flags" and "ix86_isa_flags_explicit" instead of
2239 "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
2240 MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*. Set "x86_abm" to true when
2241 PTA_ABM is set in processor_alias_table flags entry. Set "x86_popcnt"
2242 to true when either of PTA_POPCNT or PTA_ABM is set in
2243 processor_alias_table flags entry. Set "x86_prefetch_sse" to true
2244 when either of PTA_PREFETCH_SSE or PTA_SSE is set in
2245 processor_alias_table flags entry. Remove handling of
2246 "target_enable" and "target_disable" fields of processor_target_table.
2247 Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
2248 targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
2249 Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
2250 targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
2251 (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
2253 (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
2255 2007-05-29 David Daney <ddaney@avtrex.com>
2258 * config/mips/mips.c (mips_output_mi_thunk): Emit
2259 NOTE_INSN_PROLOGUE_END at beginning of the thunk.
2261 2007-05-29 Hui-May Chang <hm.chang@apple.com>
2262 * config/i386/i386.c (ix86_function_regparm): Added checking of
2263 ix86_force_align_arg_pointer to determine the number of
2264 register parameters.
2266 2007-05-29 Zdenek Dvorak <dvorakz@suse.cz>
2268 * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
2269 (SET_DR_MISALIGNMENT): New.
2270 * tree-vect-analyze.c (vect_compute_data_ref_alignment,
2271 vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
2272 Use SET_DR_MISALIGNMENT.
2273 * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
2275 * tree-data-ref.c (create_data_ref, compute_all_dependences,
2276 find_loop_nest): Export.
2277 * tree-data-ref.h (struct data_reference): Change aux field to pointer.
2278 (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
2279 * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
2280 (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
2282 (struct mem_ref): Add field reuse_distance.
2283 (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
2284 Initialize reuse_distance field.
2285 (issue_prefetch_ref): Select temporality of prefetch according to
2287 (volume_of_references, volume_of_dist_vector, add_subscript_strides,
2288 self_reuse_distance, determine_loop_nest_reuse): New functions.
2289 (loop_prefetch_arrays): Call determine_loop_nest_reuse.
2290 (tree_ssa_prefetch_arrays): Dump L2 cache size.
2291 * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
2294 2007-05-29 Daniel Berlin <dberlin@dberlin.org>
2296 * tree-ssa-alias.c: Add aliasing overview.
2298 2007-05-29 Zuxy Meng <zuxy.meng@gmail.com>
2299 Danny Smith <dannysmith@users.sourceforge.net>
2302 * config/i386/t-crtfm: Compile crtfastmath.o with
2303 -minline-all-stringops.
2304 * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
2305 * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
2307 2007-05-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2309 * doc/md.texi: Document constraints on HP PA-RISC.
2311 * pa/constraints.md: New file.
2312 * pa.md: Include constraints.md.
2313 * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
2314 (integer_store_memory_operand, ldil_cint_p): New functions.
2315 * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
2316 * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
2317 IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
2318 * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
2319 * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
2321 2007-05-28 Andrew Pinski <Andrew_pinski@playstation.sony.com>
2324 * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
2325 case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
2326 case POSTDECREMENT_EXPR>): Return the error_mark_node
2327 if either the real or imaginary parts would an
2330 2007-05-28 Daniel Berlin <dberlin@dberlin.org>
2332 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
2333 name when we remove it from a call.
2335 2007-05-28 Kazu Hirata <kazu@codesourcery.com>
2337 * targhooks.c (default_narrow_bitfield): Remove.
2338 * targhooks.h: Remove the prototype for
2339 default_narrow_bitfield.
2341 * langhooks-def.h: Remove the prototype for
2342 hook_get_alias_set_0.
2343 * langhooks.c (hook_get_alias_set_0): Remove.
2345 * global.c (EXECUTE_IF_CONFLICT): Remove.
2347 2007-05-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
2350 * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
2351 return true when truth_value_p is true and the type
2354 2007-05-28 Gerald Pfeifer <gerald@pfeifer.com>
2356 * doc/install.texi (Prerequisites): We no longer require Autoconf
2357 2.13 for the top-level.
2359 2007-05-28 Uros Bizjak <ubizjak@gmail.com>
2361 * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
2362 memory access via x86_expand_vector_move_misalign() only for
2363 TImode values on 32-bit targets.
2365 2007-05-28 Razya Ladelsky <razya@il.ibm.com>
2367 * matrix-reorg.c: New file. Implement matrix flattening and
2368 transposing optimization.
2369 * tree-pass.h: Add matrix reorg pass.
2370 * common.opt: Add fipa-mreorg flag.
2371 * Makefile.in: Add matrix-reorg.c.
2372 * passes.c: Add matrix reorg pass.
2373 * varpool.c (add_new_static_var): New function.
2374 * cgraph.h (add_new_static_var): Declare.
2376 2007-05-27 Eric Christopher <echristo@apple.com>
2378 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
2379 sp_offset depending on stack size. Save r12 depending
2380 on registers we're saving later.
2381 (rs6000_emit_epilogue): Update sp_offset depending only
2384 2007-05-27 Zdenek Dvorak <dvorakz@suse.cz>
2386 * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
2387 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
2388 * ifcvt.c (if_convert): Ditto.
2389 * tree-ssa-threadupdate.c (thread_block): Ditto.
2390 (thread_through_all_blocks): Ditto. Assert that loops were analysed.
2391 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
2392 verify_loop_closed_ssa): Check number_of_loops instead of
2394 * predict.c (tree_estimate_probability): Ditto.
2395 * tree-if-conv.c (main_tree_if_conversion): Ditto.
2396 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2397 * modulo-sched.c (sms_schedule): Ditto.
2398 * tree-scalar-evolution.c (scev_const_prop): Ditto.
2399 (scev_finalize): Do not do anything if scev analysis was not
2401 * cfgloopanal.c (mark_irreducible_loops): Do not check whether
2402 current_loops == NULL.
2403 (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
2404 * loop-init.c (loop_optimizer_init): Do not free current_loops when
2406 (loop_optimizer_finalize): Assert that loops were analyzed.
2407 (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
2408 rtl_doloop): Check number_of_loops instead of current_loops.
2409 * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
2410 current_loops == NULL.
2411 (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
2412 gate_tree_vectorize tree_linear_transform, check_data_deps,
2413 tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
2414 tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
2415 Check number_of_loops instead of current_loops.
2416 (tree_ssa_loop_done): Do not check whether current_loops == NULL.
2417 * tree-ssa-pre.c (fini_pre): Do not take do_fre argument. Always
2418 free loops if available.
2419 (execute_pre): Do not pass do_fre to fini_pre.
2421 2007-05-27 Tobias Burnus <burnus@net-b.de>
2424 * real.c (mpfr_from_real): Fix sign of -Inf.
2426 2007-05-27 H.J. Lu <hongjiu.lu@intel.com>
2428 * tree-vect-transform.c (vectorizable_conversion): Initialize
2429 tree_code variables to ERROR_MARK.
2430 (vectorizable_type_demotion): Likewise.
2431 (vectorizable_type_promotion): Likewise.
2433 2007-05-26 Uros Bizjak <ubizjak@gmail.com>
2436 * config/i386/i386.md (movti): Handle push operands via
2439 2007-05-26 Kazu Hirata <kazu@codesourcery.com>
2441 * basic-block.h: Remove the prototype for merge_seq_blocks.
2442 * cfgcleanup.c (merge_seq_blocks): Remove.
2444 * tree-flow.h: Remove the prototype for is_aliased_with.
2445 * tree-ssa-alias.c (is_aliased_with): Remove.
2447 2007-05-26 H.J. Lu <hongjiu.lu@intel.com>
2449 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
2451 * config/i386/i386.c (ix86_expand_sse4_unpack): New.
2453 * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
2454 ix86_expand_sse4_unpack if SSE4.1 is enabled.
2455 (vec_unpacks_hi_v16qi): Likewise.
2456 (vec_unpacku_lo_v16qi): Likewise.
2457 (vec_unpacks_lo_v16qi): Likewise.
2458 (vec_unpacku_hi_v8hi): Likewise.
2459 (vec_unpacks_hi_v8hi): Likewise.
2460 (vec_unpacku_lo_v8hi): Likewise.
2461 (vec_unpacks_lo_v8hi): Likewise.
2462 (vec_unpacku_hi_v4si): Likewise.
2463 (vec_unpacks_hi_v4si): Likewise.
2464 (vec_unpacku_lo_v4si): Likewise.
2465 (vec_unpacks_lo_v4si): Likewise.
2467 2007-05-26 Kazu Hirata <kazu@codesourcery.com>
2469 * c-typeck.c, config/arm/arm.c, config/darwin.c,
2470 config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
2471 omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
2472 follow spelling conventions in various
2473 warning/error/diagnostic messages.
2475 * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
2476 df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
2477 fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
2478 tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
2479 tree-vrp.c: Fix comment typos. Follow spelling conventions.
2480 * doc/tm.texi: Follow spelling conventions.
2482 2007-05-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
2485 * tree-ssa-forwprop.c
2486 (forward_propagate_addr_into_variable_array_index): Remove
2487 the lhs argument. Use the type of def_rhs instead of lhs.
2488 (forward_propagate_addr_expr_1): Update use of
2489 forward_propagate_addr_into_variable_array_index.
2491 2007-05-25 Sandra Loosemore <sandra@codesourcery.com>
2492 Nigel Stephens <nigel@mips.com>
2494 * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
2495 function attributes, "far" being an alias for "long_call".
2496 (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
2497 (mips_near_type_p, mips_far_type_p): New.
2498 (mips_comp_type_attributes): New function to check that attributes
2499 attached to a function type are compatible.
2500 (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
2501 TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
2502 to the target function of the thunk.
2503 (mips_encode_section_info): Check for "near" and "far" function
2504 attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
2506 * config/mips/predicates.md (const_call_insn_operand): Test only
2507 SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
2509 * doc/extend.texi (Function Attributes): Document MIPS "near" and
2512 * testsuite/gcc.target/mips/near-far-1.c: New test case.
2513 * testsuite/gcc.target/mips/near-far-2.c: New test case.
2514 * testsuite/gcc.target/mips/near-far-3.c: New test case.
2515 * testsuite/gcc.target/mips/near-far-4.c: New test case.
2517 2007-05-25 Eric Christopher <echristo@apple.com>
2519 * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
2520 to x86-darwin configurations.
2521 * config/i386/t-darwin: Add softfp support.
2522 * config/i386/t-darwin64: Ditto.
2523 * config/i386/sfp-machine.h: If mach then don't use
2524 aliasing, emit a stub to call.
2526 2007-05-25 Kazu Hirata <kazu@codesourcery.com>
2528 * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
2529 haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
2530 tree-predcom.c, tree-ssa-alias-warnings.c,
2531 tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
2532 comment typos. Follow spelling conventions.
2533 * doc/cpp.texi, doc/invoke.texi: Fix typos.
2535 2007-05-26 Uros Bizjak <ubizjak@gmail.com>
2538 * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
2539 constants into memory. Expand unaligned memory references for
2540 SSE modes via x86_expand_vector_move_misalign() function.
2542 2007-05-25 Uros Bizjak <ubizjak@gmail.com>
2544 * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
2545 "memory" attribute for "sseishft" type insn without operands[2].
2547 2007-05-25 Dirk Mueller <dmueller@suse.de>
2548 Marcus Meissner <meissner@suse.de>
2550 * doc/extend.texi (alloc_size): New attribute.
2551 * c-common.c (handle_alloc_size_attribute): New.
2552 * tree-object-size.c (alloc_object_size): Use alloc_size
2553 attribute, if available.
2555 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
2557 * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
2559 (__builtin_ia32_vec_ext_v2di): Likewise.
2560 (__builtin_ia32_vec_ext_v4si): Likewise.
2561 (__builtin_ia32_vec_ext_v8hi): Likewise.
2562 (__builtin_ia32_vec_ext_v16qi): Likewise.
2563 (__builtin_ia32_vec_set_v8hi): Likewise.
2565 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
2567 * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
2569 2007-05-25 Richard Sandiford <richard@codesourcery.com>
2571 * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
2572 (arm_is_longcall_p): Rename to...
2573 (arm_is_long_call_p): ...this. Take a single tree argument and
2575 * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
2576 (CUMULATIVE_ARGS): Remove call_cookie.
2577 (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
2578 (ENCODED_LONG_CALL_ATTR_P): Delete.
2579 (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
2580 LONG_CALL_FLAG_CHAR cases.
2581 (ARM_DECLARE_FUNCTION_SIZE): Delete.
2582 * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
2583 ARM_DECLARE_FUNCTION_SIZE.
2584 * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
2585 (arm_function_arg): Return const0_rtx for VOIDmode arguments.
2586 (arm_encode_call_attribute, current_file_function_operand): Delete.
2587 (arm_function_in_section_p): New function.
2588 (arm_is_longcall_p): Rename to...
2589 (arm_is_long_call_p): ...this. Take the target function as a single
2590 argument and return a bool. Do not rely on call cookies. Check
2591 whether the target symbol is in the same section as the current
2592 function, not just the same compilation unit.
2593 (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
2594 (arm_encode_section_info): Don't encode a call type.
2595 * config/arm/arm.md (call, call_value): Update calls to
2596 arm_is_long(_)call_p. Simplify logic.
2597 (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
2598 Update calls to arm_is_long(_)call_p.
2600 2007-05-25 Richard Guenther <rguenther@suse.de>
2602 PR tree-optimization/31982
2603 * tree-ssa-forwprop.c
2604 (forward_propagate_addr_into_variable_array_index): Handle arrays
2605 with element size one.
2607 2007-05-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
2609 * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
2610 (umulsi3_highpart): Likewise.
2612 2007-05-24 Ian Lance Taylor <iant@google.com>
2614 PR rtl-optimization/32069
2615 * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
2618 2007-05-24 Ollie Wild <aaw@google.com>
2620 * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
2623 2007-05-24 Richard Sandiford <rsandifo@nildram.co.uk>
2625 * postreload-gcse.c (reg_changed_after_insn_p): New function.
2626 (oprs_unchanged_p): Use it to check all registers in a REG.
2627 (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
2628 (reg_set_between_after_reload_p): Delete.
2629 (reg_used_between_after_reload_p): Likewise.
2630 (reg_set_or_used_since_bb_start): Likewise.
2631 (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
2632 and reg_used_between_p instead of reg_set_or_used_since_bb_start.
2633 Use reg_set_between_p instead of reg_set_between_after_reload_p.
2634 * rtlanal.c (reg_set_p): Check whether REG overlaps
2635 regs_invalidated_by_call, rather than just checking the
2636 membership of REGNO (REG).
2638 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
2640 * doc/passes.texi: Document predictive commoning.
2641 * doc/invoke.texi (-fpredictive-commoning): Document.
2642 * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
2643 * tree-ssa-loop-im.c (get_lsm_tmp_name): Export. Allow
2644 adding indices to the generated name.
2645 (schedule_sm): Pass 0 to get_lsm_tmp_name.
2646 * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
2647 * tree-pretty-print.c (op_symbol_1): Renamed to ...
2648 (op_symbol_code): ... and exported.
2649 (dump_omp_clause, op_symbol): Use op_symbol_code
2650 instead of op_symbol_1.
2651 * tree-pass.h (pass_predcom): Declare.
2652 * timevar.def (TV_PREDCOM): New timevar.
2653 * tree-ssa-loop.c (run_tree_predictive_commoning,
2654 gate_tree_predictive_commoning, pass_predcom): New.
2655 * tree-data-ref.c (find_data_references_in_loop): Find the
2656 references in dominance order.
2657 (canonicalize_base_object_address): Ensure that the result has
2659 (dr_analyze_innermost): Export.
2660 (create_data_ref): Code to fail for references with invariant
2662 (find_data_references_in_stmt): ... here.
2663 * tree-data-ref.h (dr_analyze_innermost): Declare.
2664 * tree-affine.c: Include tree-gimple.h and hashtab.h.
2665 (aff_combination_find_elt, name_expansion_hash,
2666 name_expansion_eq, tree_to_aff_combination_expand,
2667 double_int_constant_multiple_p, aff_combination_constant_multiple_p):
2669 * tree-affine.h (aff_combination_constant_multiple_p,
2670 tree_to_aff_combination_expand): Declare.
2671 * tree-predcom.c: New file.
2672 * common.opt (fpredictive-commoning): New option.
2673 * tree-flow.h (op_symbol_code, tree_predictive_commoning,
2674 stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
2675 * Makefile.in (tree-predcom.o): Add.
2676 (tree-affine.o): Add TREE_GIMPLE_H dependency.
2677 * passes.c (init_optimization_passes): Add dceloop after
2678 copy propagation in loop optimizer. Add predictive commoning
2679 to loop optimizer passes.
2681 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
2683 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
2686 2007-05-24 Jan Hubicka <jh@suse.cz>
2688 * gengenrtl.c (gendecl, gendef): Output the gens annotated for
2690 (genheader): Include statistics.h.
2692 * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
2694 * print-rtl.c (flag_dump_unnumbered): Update comments.
2695 (print_rtl): Fix my previous change.
2696 * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
2699 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
2702 * tree-ssa-threadupdate.c (thread_through_loop_header): Use
2704 (thread_through_all_blocks): Call initialize_original_copy_tables
2705 and free_original_copy_tables.
2706 * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
2708 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
2709 * cfghooks.c (duplicate_block): Use get_loop_copy.
2710 * cfg.c: Include cfgloop.h.
2711 (loop_copy): New hash table.
2712 (initialize_original_copy_tables): Initialize loop_copy table.
2713 (free_original_copy_tables): Free loop_copy table.
2714 (copy_original_table_clear, copy_original_table_set,
2715 set_loop_copy, get_loop_copy): New functions.
2716 (set_bb_original, set_bb_copy): Use copy_original_table_set.
2717 * cfgloop.h (struct loop): Remove copy field.
2718 * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
2719 * basic-block.h (set_loop_copy, get_loop_copy): Declare.
2721 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
2723 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
2724 -msse/-msse2/-msse3.
2726 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
2728 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
2729 __builtin_ia32_vec_set_v2di with MASK_64BIT.
2731 2007-05-24 Danny Smith <dannysmith@users.sourceforge.net>
2734 * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
2735 * targhooks.h (default_mangle_decl_assembler_name): Declare
2737 * targhooks.c (default_mangle_decl_assembler_name): Define
2739 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
2741 * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
2742 * langhooks.c (lhd_set_decl_assembler_name): Call
2743 targetm.mangle_decl_assembler_name for names with global scope.
2745 * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
2747 (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
2748 * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
2750 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
2751 New. Factored out of i386_pe_encode_section_info.
2752 (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
2753 Move check for prior decoration of stdcall
2754 symbols to i386_pe_encode_section_info.
2755 (i386_pe_encode_section_info): Adjust call to
2756 gen_stdcall_or_fastcall_suffix. Use
2757 i386_pe_maybe_mangle_decl_assembler_name, if needed.
2758 (i386_pe_mangle_decl_assembler_name): New. Wrap
2759 i386_pe_maybe_mangle_decl_assembler_name.
2761 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
2763 * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
2764 INTEGRAL_TYPE_P and TYPE_UNSIGNED.
2765 * langhooks.c (get_signed_or_unsigned_type): Don't check for
2766 INTEGRAL_TYPE_P or TYPE_UNSIGNED.
2767 (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
2770 2007-05-23 Sandra Loosemore <sandra@codesourcery.com>
2771 Nigel Stephens <nigel@mips.com>
2772 Richard Sandiford <richard@codesourcery.com>
2774 Fix up MIPS16 hard float and add support for complex.
2776 * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
2777 (TARGET_SOFT_FLOAT_ABI): New.
2778 (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
2779 __mips_soft_float to reflect the ABI in use, not whether the
2780 FPU is directly accessible (e.g., in MIPS16 mode).
2781 (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
2782 (UNITS_PER_FPVALUE): Likewise.
2784 * config/mips/mips.c (mips_expand_call): Remove redundant
2785 TARGET_MIPS16 check.
2786 (mips_arg_regno): New.
2787 (function_arg_advance): When setting bits in cum->fp_code for
2788 MIPS16, don't subtract 1 from cum->arg_number, since it is now
2790 (function_arg): Use mips_arg_regno.
2791 (mips_return_mode_in_fpr_p): New.
2792 (mips16_call_stub_mode_suffix): New.
2793 (mips16_cfun_returns_in_fpr_p): New.
2794 (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
2795 (mips_output_function_prologue): Test mips16_hard_float, not
2796 !TARGET_SOFT_FLOAT, to decide when a function stub is required.
2797 (mips_expand_epilogue): Call MIPS16 helper routines to copy
2798 return value into a floating-point register.
2799 (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
2800 (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
2801 (mips16_fp_args): Handle MIPS32r2 ISA which supports
2802 TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
2803 word of double arguments from or to the high bits of 64-bit
2804 floating point registers.
2805 (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
2806 (mips16_fpret_double): New helper function.
2807 (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p. Add
2808 support for complex modes. Fill in DECL_RESULT for stubdecl.
2809 (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
2811 * config/mips/mips16.S
2812 (RET, ARG1, ARG2): New.
2813 (MERGE_GPRf, MERGE_GPRt): New.
2814 (DELAYt, DELAYf): New.
2815 (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
2816 (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
2817 (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
2818 (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
2819 (SFOP): Renamed to...
2820 (OPSF3): This, and macro-ified. Updated all uses.
2821 (SFOP2): Renamed to...
2822 (OPSF2): This, and macro-ified. Updated all uses.
2823 (SFCMP): Renamed to...
2824 (CMPSF): This, and macro-ified. Updated all uses.
2825 (SFREVCMP): Renamed to...
2826 (REVCMPSF): This, and macro-ified. Updated all uses.
2827 (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
2828 (LDDBL1, LDDBL2, RETDBL): Deleted.
2829 (DFOP): Renamed to...
2830 (OPDF3): This, and macro-ified. Updated all uses.
2831 (DFOP2): Renamed to...
2832 (OPDF2): This, and macro-ified. Updated all uses.
2833 (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
2834 (DFCMP): Renamed to...
2835 (CMPDF): This, and macro-ified. Updated all uses.
2836 (DFREVCMP): Renamed to...
2837 (REVCMPDF): This, and macro-ified. Updated all uses.
2838 (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
2839 (RET_FUNCTION): New.
2840 (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
2841 (__mips16_ret_sc, __mips16_ret_dc): New.
2842 (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
2843 STUB_ARGS_6, STUB_ARGS_10): New.
2844 (CALL_STUB_NO_RET): New.
2845 (__mips16_call_stub_1): Macro-ified.
2846 (__mips16_call_stub_5): Macro-ified.
2847 (__mips16_call_stub_2): Macro-ified.
2848 (__mips16_call_stub_6): Macro-ified.
2849 (__mips16_call_stub_9): Macro-ified.
2850 (__mips16_call_stub_10): Macro-ified.
2851 (CALL_STUB_RET): New.
2852 (__mips16_call_stub_sf_0): Macro-ified.
2853 (__mips16_call_stub_sf_1): Macro-ified.
2854 (__mips16_call_stub_sf_5): Macro-ified.
2855 (__mips16_call_stub_sf_2): Macro-ified.
2856 (__mips16_call_stub_sf_6): Macro-ified.
2857 (__mips16_call_stub_sf_9): Macro-ified.
2858 (__mips16_call_stub_sf_10): Macro-ified.
2859 (__mips16_call_stub_df_0): Macro-ified.
2860 (__mips16_call_stub_df_1): Macro-ified.
2861 (__mips16_call_stub_df_5): Macro-ified.
2862 (__mips16_call_stub_df_2): Macro-ified.
2863 (__mips16_call_stub_df_6): Macro-ified.
2864 (__mips16_call_stub_df_9): Macro-ified.
2865 (__mips16_call_stub_df_10): Macro-ified.
2866 (__mips16_call_stub_sc_0): New.
2867 (__mips16_call_stub_sc_1): New.
2868 (__mips16_call_stub_sc_5): New.
2869 (__mips16_call_stub_sc_2): New.
2870 (__mips16_call_stub_sc_6): New.
2871 (__mips16_call_stub_sc_9): New.
2872 (__mips16_call_stub_sc_10): New.
2873 (__mips16_call_stub_dc_0): New.
2874 (__mips16_call_stub_dc_1): New.
2875 (__mips16_call_stub_dc_5): New.
2876 (__mips16_call_stub_dc_2): New.
2877 (__mips16_call_stub_dc_6): New.
2878 (__mips16_call_stub_dc_9): New.
2879 (__mips16_call_stub_dc_10): New.
2881 * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
2882 * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
2883 * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
2885 2007-05-23 Ian Lance Taylor <iant@google.com>
2887 * doc/invoke.texi (Invoking GCC): Document that the order of the
2890 2007-05-23 Chen Liqin <liqin@sunnorth.com.cn>
2893 * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
2894 * config/score/predicate.md (const_pow2, const_npow2): Remove.
2895 * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
2899 * config/score/score.c (score_print_operand): Make sure that only
2900 lower bits are used.
2902 2007-05-22 Ian Lance Taylor <iant@google.com>
2904 * tree-vrp.c (avoid_overflow_infinity): New static function,
2905 broken out of set_value_range_to_value.
2906 (set_value_range_to_value): Call avoid_overflow_infinity.
2907 (extract_range_from_assert): Likewise.
2909 2007-05-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
2912 * builtins.c (expand_builtin_memmove_args): Strip nops that don't
2913 change the type before looking for a COMPOUND_EXPR.
2915 2007-05-22 Ian Lance Taylor <iant@google.com>
2917 * lower-subreg.c (decompose_multiword_subregs): If we change an
2918 insn, call remove_retval_note on it.
2920 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
2922 * regs.h (end_hard_regno): New function.
2923 (END_HARD_REGNO, END_REGNO): New macros.
2924 (add_to_hard_reg_set): New function.
2925 (remove_from_hard_reg_set): Likewise.
2926 (in_hard_reg_set_p): Likewise.
2927 (overlaps_hard_reg_set_p): Likewise.
2928 * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
2929 (note_btr_set): Use END_HARD_REGNO.
2930 * caller-save.c (setup_save_areas): Use end_hard_regno.
2931 (mark_set_regs): Use END_HARD_REGNO.
2932 (add_stored_regs): Use end_hard_regno.
2933 (mark_referenced_regs): Use add_to_hard_reg_set.
2934 * combine.c (update_table_tick): Use END_REGNO.
2935 (record_value_for_reg): Likewise.
2936 (record_dead_and_set_regs): Likewise.
2937 (get_last_value_validate): Likewise.
2938 (use_crosses_set_p): Likewise.
2939 (reg_dead_at_p_1): Likewise.
2940 (reg_dead_at_p): Likewise.
2941 (mark_used_regs_combine): Use add_to_hard_reg_set.
2942 (move_deaths): Use END_HARD_REGNO.
2943 (reg_bitfield_target_p): Use end_hard_regno.
2944 (distribute_notes): Use END_HARD_REGNO.
2945 * cse.c (mention_regs): Use END_REGNO.
2946 (insert): Use add_to_hard_reg_set.
2947 (invalidate): Use END_HARD_REGNO.
2948 (invalidate_for_call): Likewise.
2949 (exp_equiv_p): Use END_REGNO.
2950 (cse_insn): Likewise.
2951 * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
2952 * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
2953 * df-scan.c (df_ref_record): Use END_HARD_REGNO.
2954 * function.c (keep_stack_depressed): Use end_hard_regno.
2955 * global.c (global_alloc): Use end_hard_regno.
2956 (global_conflicts): Use add_to_hard_reg_set instead of
2958 (find_reg): Likewise.
2959 (mark_reg_store): Likewise.
2960 (mark_reg_conflicts): Likewise.
2961 (mark_reg_death): Use remove_from_hard_reg_set.
2962 (mark_reg_live_nc): Delete.
2963 (set_preference): Use end_hard_regno.
2964 * local-alloc.c (mark_life): Use add_to_hard_reg_set and
2965 remove_from_hard_reg_set.
2966 (post_mark_life): Use add_to_hard_reg_set.
2967 * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
2968 (reg_becomes_live): Use add_to_hard_reg_set.
2969 * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
2970 (peep2_find_free_register): Use add_to_hard_reg_set.
2971 * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
2972 * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
2973 * regrename.c (note_sets): Use add_to_hard_reg_set.
2974 (clear_dead_regs): Use remove_from_hard_reg_set.
2975 (regrename_optimize): Use add_to_hard_reg_set.
2976 (find_oldest_value_reg): Use in_hard_reg_set_p.
2977 * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
2978 (hard_reg_set_here_p): Use end_hard_regno.
2979 (decompose): Likewise.
2980 (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
2981 (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
2982 * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
2983 (mark_home_live): Use end_hard_regno.
2984 (spill_hard_reg): Likewise.
2985 (clear_reload_reg_in_use): Likewise.
2986 * reorg.c (delete_prior_computation): Use END_REGNO.
2987 * resource.c (update_live_status): Use END_HARD_REGNO.
2988 (mark_referenced_resources): Use add_to_hard_reg_set.
2989 (mark_set_resources): Likewise.
2990 (mark_target_live_regs): Likewise. Use remove_from_hard_reg_set.
2991 * rtlanal.c (refers_to_regno_p): Use END_REGNO.
2992 (reg_overlap_mentioned_p): Likewise.
2993 (dead_or_set_p): Likewise. Use an exclusive upper loop bound.
2994 (covers_regno_no_parallel_p): Use END_REGNO.
2995 (find_regno_note): Likewise.
2996 (find_reg_fusage): Use END_HARD_REGNO.
2997 * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
2998 * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
3000 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
3002 * mode-switching.c (reg_dies): Change type of second argument to
3004 (optimize_mode_switching): Update accordingly.
3006 2007-05-22 Richard Sandiford <richard@codesourcery.com>
3008 * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
3010 (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
3011 (hard_reg_set_empty_p): ...these new functions.
3012 * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
3013 GO_IF_HARD_REG_SUBSET.
3014 * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
3015 instead of GO_IF_HARD_REG_EQUAL.
3016 * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
3017 instead of GO_IF_HARD_REG_EQUAL.
3018 * global.c (find_reg): Use hard_reg_set_empty_p instead of
3019 GO_IF_HARD_REG_SUBSET.
3020 (modify_reg_pav): Use hard_reg_set_empty_p instead of
3021 GO_IF_HARD_REG_EQUAL.
3022 * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
3023 of GO_IF_HARD_REG_SUBSET.
3024 * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
3025 instead of GO_IF_HARD_REG_EQUAL.
3026 * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
3027 hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
3028 (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
3029 of GO_IF_HARD_REG_SUBSET,
3030 * reload1.c (finish_spills): Use hard_reg_subset_p instead of
3031 GO_IF_HARD_REG_SUBSET.
3032 * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
3033 instead of GO_IF_HARD_REG_EQUAL.
3034 * config/sh/sh.c (push_regs, calc_live_regs): Use
3035 hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
3036 (hard_regs_intersect_p): Delete.
3038 2007-05-22 Janis Johnson <janis187@us.ibm.com>
3040 * doc/sourcebuild.texi (Test Directives) Add dg-message.
3042 2007-05-22 H.J. Lu <hongjiu.lu@intel.com>
3043 Richard Henderson <rth@redhat.com>
3045 * config.gcc (i[34567]86-*-*): Add smmintrin.h to
3047 (x86_64-*-*): Likewise.
3049 * i386/i386-modes.def (V2QI): New.
3051 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
3053 (override_options): Support SSE4.1.
3054 (IX86_BUILTIN_BLENDPD): New for SSE4.1.
3055 (IX86_BUILTIN_BLENDPS): Likewise.
3056 (IX86_BUILTIN_BLENDVPD): Likewise.
3057 (IX86_BUILTIN_BLENDVPS): Likewise.
3058 (IX86_BUILTIN_PBLENDVB128): Likewise.
3059 (IX86_BUILTIN_PBLENDW128): Likewise.
3060 (IX86_BUILTIN_DPPD): Likewise.
3061 (IX86_BUILTIN_DPPS): Likewise.
3062 (IX86_BUILTIN_INSERTPS128): Likewise.
3063 (IX86_BUILTIN_MOVNTDQA): Likewise.
3064 (IX86_BUILTIN_MPSADBW128): Likewise.
3065 (IX86_BUILTIN_PACKUSDW128): Likewise.
3066 (IX86_BUILTIN_PCMPEQQ): Likewise.
3067 (IX86_BUILTIN_PHMINPOSUW128): Likewise.
3068 (IX86_BUILTIN_PMAXSB128): Likewise.
3069 (IX86_BUILTIN_PMAXSD128): Likewise.
3070 (IX86_BUILTIN_PMAXUD128): Likewise.
3071 (IX86_BUILTIN_PMAXUW128): Likewise.
3072 (IX86_BUILTIN_PMINSB128): Likewise.
3073 (IX86_BUILTIN_PMINSD128): Likewise.
3074 (IX86_BUILTIN_PMINUD128): Likewise.
3075 (IX86_BUILTIN_PMINUW128): Likewise.
3076 (IX86_BUILTIN_PMOVSXBW128): Likewise.
3077 (IX86_BUILTIN_PMOVSXBD128): Likewise.
3078 (IX86_BUILTIN_PMOVSXBQ128): Likewise.
3079 (IX86_BUILTIN_PMOVSXWD128): Likewise.
3080 (IX86_BUILTIN_PMOVSXWQ128): Likewise.
3081 (IX86_BUILTIN_PMOVSXDQ128): Likewise.
3082 (IX86_BUILTIN_PMOVZXBW128): Likewise.
3083 (IX86_BUILTIN_PMOVZXBD128): Likewise.
3084 (IX86_BUILTIN_PMOVZXBQ128): Likewise.
3085 (IX86_BUILTIN_PMOVZXWD128): Likewise.
3086 (IX86_BUILTIN_PMOVZXWQ128): Likewise.
3087 (IX86_BUILTIN_PMOVZXDQ128): Likewise.
3088 (IX86_BUILTIN_PMULDQ128): Likewise.
3089 (IX86_BUILTIN_PMULLD128): Likewise.
3090 (IX86_BUILTIN_ROUNDPD): Likewise.
3091 (IX86_BUILTIN_ROUNDPS): Likewise.
3092 (IX86_BUILTIN_ROUNDSD): Likewise.
3093 (IX86_BUILTIN_ROUNDSS): Likewise.
3094 (IX86_BUILTIN_PTESTZ): Likewise.
3095 (IX86_BUILTIN_PTESTC): Likewise.
3096 (IX86_BUILTIN_PTESTNZC): Likewise.
3097 (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
3098 (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
3099 (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
3100 (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
3101 (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
3103 (bdesc_sse_3arg): Likewise.
3104 (bdesc_2arg): Likewise.
3105 (bdesc_1arg): Likewise.
3106 (ix86_init_mmx_sse_builtins): Support SSE4.1. Handle SSE builtins
3108 (ix86_expand_sse_4_operands_builtin): New.
3109 (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
3110 smaller than 8 bits as the 2nd arg.
3111 (ix86_expand_sse_ptest): New.
3112 (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
3113 (ix86_expand_vector_set): Support SSE4.1.
3114 (ix86_expand_vector_extract): Likewise.
3116 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
3117 __SSE4_1__ for -msse4.1.
3119 * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
3120 (UNSPEC_INSERTPS): Likewise.
3121 (UNSPEC_DP): Likewise.
3122 (UNSPEC_MOVNTDQA): Likewise.
3123 (UNSPEC_MPSADBW): Likewise.
3124 (UNSPEC_PHMINPOSUW): Likewise.
3125 (UNSPEC_PTEST): Likewise.
3126 (UNSPEC_ROUNDP): Likewise.
3127 (UNSPEC_ROUNDS): Likewise.
3129 * config/i386/i386.opt (msse4.1): New for SSE4.1.
3131 * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
3132 (const_pow2_1_to_32768_operand): Likewise.
3134 * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
3137 * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
3139 (sse4_1_insertps): Likewise.
3140 (*sse4_1_extractps): Likewise.
3141 (sse4_1_ptest): Likewise.
3142 (sse4_1_mulv2siv2di3): Likewise.
3143 (*sse4_1_mulv4si3): Likewise.
3144 (*sse4_1_smax<mode>3): Likewise.
3145 (*sse4_1_umax<mode>3): Likewise.
3146 (*sse4_1_smin<mode>3): Likewise.
3147 (*sse4_1_umin<mode>3): Likewise.
3148 (sse4_1_eqv2di3): Likewise.
3149 (*sse4_1_pinsrb): Likewise.
3150 (*sse4_1_pinsrd): Likewise.
3151 (*sse4_1_pinsrq): Likewise.
3152 (*sse4_1_pextrb): Likewise.
3153 (*sse4_1_pextrb_memory): Likewise.
3154 (*sse4_1_pextrw_memory): Likewise.
3155 (*sse4_1_pextrq): Likewise.
3156 (sse4_1_blendpd): Likewise.
3157 (sse4_1_blendps): Likewise.
3158 (sse4_1_blendvpd): Likewise.
3159 (sse4_1_blendvps): Likewise.
3160 (sse4_1_dppd): Likewise.
3161 (sse4_1_dpps): Likewise.
3162 (sse4_1_movntdqa): Likewise.
3163 (sse4_1_mpsadbw): Likewise.
3164 (sse4_1_packusdw): Likewise.
3165 (sse4_1_pblendvb): Likewise.
3166 (sse4_1_pblendw): Likewise.
3167 (sse4_1_phminposuw): Likewise.
3168 (sse4_1_extendv8qiv8hi2): Likewise.
3169 (*sse4_1_extendv8qiv8hi2): Likewise.
3170 (sse4_1_extendv4qiv4si2): Likewise.
3171 (*sse4_1_extendv4qiv4si2): Likewise.
3172 (sse4_1_extendv2qiv2di2): Likewise.
3173 (*sse4_1_extendv2qiv2di2): Likewise.
3174 (sse4_1_extendv4hiv4si2): Likewise.
3175 (*sse4_1_extendv4hiv4si2): Likewise.
3176 (sse4_1_extendv2hiv2di2): Likewise.
3177 (*sse4_1_extendv2hiv2di2): Likewise.
3178 (sse4_1_extendv2siv2di2): Likewise.
3179 (*sse4_1_extendv2siv2di2): Likewise.
3180 (sse4_1_zero_extendv8qiv8hi2): Likewise.
3181 (*sse4_1_zero_extendv8qiv8hi2): Likewise.
3182 (sse4_1_zero_extendv4qiv4si2): Likewise.
3183 (*sse4_1_zero_extendv4qiv4si2): Likewise.
3184 (sse4_1_zero_extendv2qiv2di2): Likewise.
3185 (*sse4_1_zero_extendv2qiv2di2): Likewise.
3186 (sse4_1_zero_extendv4hiv4si2): Likewise.
3187 (*sse4_1_zero_extendv4hiv4si2): Likewise.
3188 (sse4_1_zero_extendv2hiv2di2): Likewise.
3189 (*sse4_1_zero_extendv2hiv2di2): Likewise.
3190 (sse4_1_zero_extendv2siv2di2): Likewise.
3191 (*sse4_1_zero_extendv2siv2di2): Likewise.
3192 (sse4_1_roundpd): Likewise.
3193 (sse4_1_roundps): Likewise.
3194 (sse4_1_roundsd): Likewise.
3195 (sse4_1_roundss): Likewise.
3196 (mulv4si3): Don't expand for SSE4.1.
3197 (smax<mode>3): Likewise.
3198 (umaxv4si3): Likewise.
3199 (uminv16qi3): Likewise.
3200 (umin<mode>3): Likewise.
3201 (umaxv8hi3): Rewrite. Only enabled for SSE4.1.
3203 * doc/extend.texi: Document SSE4.1 built-in functions.
3205 * doc/invoke.texi: Document -msse4.1.
3207 2007-05-22 Nathan Sidwell <nathan@codesourcery.com>
3209 * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
3210 * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
3211 * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
3212 (ASM_SPEC): Add asm_pcrel_spec.
3213 (EXTRA_SPECS): Add asm_pcrel_spec.
3215 2007-05-21 David Daney <ddaney@avtrex.com>
3217 * doc/install.texi (Building a cross compiler): Add requirements
3218 for Java cross compiler.
3220 2007-05-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
3223 * tree-chrec.c (evolution_function_is_affine_multivariate_p):
3224 Add loopno argument. Use evolution_function_is_invariant_rec_p
3225 instead of evolution_function_is_constant_p.
3226 Update calls to evolution_function_is_affine_multivariate_p.
3227 * tree-chrec.h (evolution_function_is_affine_multivariate_p):
3228 Add loopno argument.
3229 * tree-scalar-evolution.c (gather_chrec_stats): Call
3230 evolution_function_is_affine_multivariate_p with a loop
3232 * tree-data-ref.c (analyze_miv_subscript): Likewise.
3233 (analyze_overlapping_iterations): Likewise.
3234 (access_functions_are_affine_or_constant_p): Likewise.
3235 (build_classic_dist_vector_1): If the access functions
3236 are equal, don't do anything.
3238 2007-05-21 Paolo Bonzini <bonzini@gnu.org>
3239 Paolo Carlini <pcarlini@suse.de>
3240 Uros Bizjak <ubizjak@gmail.com>
3242 * c-cppbuiltin.c (c_cpp_builtins): Define
3243 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
3244 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
3245 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
3246 * doc/cpp.texi ([Standard Predefined Macros]): Document.
3248 2007-05-21 Mike Stump <mrs@apple.com>
3250 * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
3252 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
3254 2007-05-21 Uros Bizjak <ubizjak@gmail.com>
3256 * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
3257 implementation if __OPTIMIZE__ is not defined.
3258 (_mm_alignr_pi8): Ditto.
3259 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
3260 (_mm_inserti_si64): Ditto.
3261 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
3262 (_mm_slli_epi16): Ditto.
3263 (_mm_slli_epi32): Ditto.
3264 (_mm_slli_epi64): Ditto.
3265 (_mm_srai_epi16): Ditto.
3266 (_mm_srai_epi32): Ditto.
3267 (_mm_srli_si128): Ditto.
3268 (_mm_slli_si128): Ditto.
3269 (_mm_srli_epi16): Ditto.
3270 (_mm_srli_epi32): Ditto.
3271 (_mm_srli_epi64): Ditto.
3272 (_mm_extract_epi16): Ditto.
3273 (_mm_insert_epi16): Ditto.
3274 (_mm_shufflehi_epi16): Ditto.
3275 (_mm_shufflelo_epi16): Ditto.
3276 (_mm_shuffle_epi32): Ditto.
3277 * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
3279 (_mm_insert_pi16): Ditto.
3281 (_mm_shuffle_pi16): Ditto.
3283 (_mm_shufle_ps): Ditto.
3284 (_mm_prefetch): Ditto.
3286 2007-05-21 Andreas Krebbel <krebbel1@de.ibm.com>
3288 * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
3289 * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
3290 * real.c (encode_i370_single, decode_i370_single,
3291 encode_i370_double, decode_i370_double): Functions removed.
3292 (i370_single_format, i370_double_format): Initializations removed.
3293 (real_maxval, round_for_format, exact_real_truncate, significand_size):
3294 Consider the log2_b field to always be one.
3295 (ieee_single_format, mips_single_format, coldfire_single_format,
3296 ieee_double_format, mips_double_format, coldfire_double_format,
3297 ieee_extended_motorola_format, ieee_extended_intel_96_format,
3298 ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
3299 ibm_extended_format, mips_extended_format, ieee_quad_format,
3300 mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
3301 decimal_single_format, decimal_double_format, decimal_quad_format,
3302 c4x_single_format, c4x_extended_format, real_internal_format): Remove
3303 initialization of log2_b.
3304 * real.h (i370_single_format, i370_double_format): Declarations removed.
3305 * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
3306 field to always be one.
3308 2007-05-21 Andreas Schwab <schwab@suse.de>
3310 * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
3311 NOTE_INSN_BASIC_BLOCK_P.
3312 (process_for_unwind_directive): Likewise.
3314 2007-05-21 Nathan Sidwell <nathan@codesourcery.com>
3316 * builtins.c (expand_builtin_setjmp_setup): Update comment.
3317 * function.h (struct function): Move va_list_gpr_size,
3318 va_list_fpr_size, function_frequency to front of bitfields. Add
3320 (current_function_calls_unwind_init): New.
3321 * except.c (expand_builtin_unwind_init): Set
3322 current_function_calls_unwind_init not
3323 current_function_has_nonlocal_label.
3324 * reload1.c (has_nonexceptional_receiver): New.
3325 (reload): Use it and current_function_calls_unwind_init to
3326 determine whether call-saved regs must be saved.
3328 2007-05-20 Jan Hubicka <jh@suse.cz>
3330 * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
3331 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
3332 * ddg.c (create_ddg): LIkewise.
3333 * final.c (final): Remove hunk moving line numbernotes around since
3334 they are no longer present at this stage.
3335 (final_scan_insn): Use NOTE_KIND instead of
3336 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
3337 (output_asm_label): Likewise.
3338 * reorg.c (dbr_schedule): Likewise.
3339 * haifa-sched.c (unlink_other_notes): Likewise.
3340 * mode-switching.c (optimize_mode_switching): Likewise.
3341 * graph.c (start_bb): Likewise.
3342 * rtl.def (NOTE): Update description.
3343 * jump.c (squeeze_notes): Delete.
3344 (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
3345 NOTE_INSN_BASIC_BLOCK_P when possible.
3346 * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
3347 * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
3348 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
3349 (dwarf2out_var_location): Likewise.
3350 * cfgbuild.c (make_edges): Likewise.
3351 (find_basic_blocks_1): Likewise.
3352 * function.c (reorder_blocks_1): Likewise.
3353 (epilogue_done): Likewise.
3354 (reposition_prologue_and_epilogue_notes): Likewise.
3355 * print-rtl.c (print_rtx): Likewise; drop code for printing line number
3357 (print_rtl): Likewise.
3358 (print_rtl_single): Likewise.
3359 * gcse.c (insert_insn_start_bb): Likewise.
3360 * alias.c (init_alias_analysis): Likewise.
3361 * calls.c (fixup_tail_calls): Likewise.
3362 * except.c (sjlj_emit_function_enter): Likewise.
3363 * emit-rtl.c (add_insn_after): Likeiwse.
3364 (emit_label_before): Likewise.
3365 (emit_label_after): Likewise.
3366 (emit_note_before, emit_note_after, emit_note): Update
3367 parameter to be enum insn_note; do not deal with source
3369 * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
3370 Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
3372 (merge_blocks_move_successor_nojumps): Simplify now when
3373 we don't have BLOCK notes.
3374 (try_optimize_cfg): Likewise.
3375 * cfglayout.c (skip_insns_after_block): Likewise.
3376 (record_effective_endpoints): Likewise.
3377 (duplicate_insn_chain): Likewise.
3378 * varasm.c (output_constant_pool_1): Likewise.
3379 * sched-deps.c (sched_analyze): Likewise.
3380 * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
3382 (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
3383 * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
3384 (SET_INSN_DELETED): Simplify.
3385 (NOTE_LINE_NUMBER): Exterminate.
3386 (NOTE_LINE_KIND): New.
3387 (NOTE_INSN_BASIC_BLOCK_P): Update.
3388 (enum insn_note): Simplify.
3389 (GET_NOTE_INSN_NAME) Simplify.
3390 (emit_note_before, emit_note_after, emit_note): Update prototype.
3391 (squeeze_notes): Remove.
3392 * sched-int.h (NOTE_NOT_BB_P): Update.
3393 * resource.c (mark_target_live_regs): Update.
3394 * sched-rgn.c (debug_dependencies): Update.
3395 * sched-vis.c (print_insn): Update.
3396 * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
3397 * config/i386/i386.c (ix86_output_function_epilogue): Update.
3398 * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
3399 (TARGET_ADJUST_UNROLL_MAX): Likewise.
3400 (split_branches): Update.
3401 (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
3403 (sh_adjust_unroll_max): Exterminate.
3404 * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
3405 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
3406 (m68hc11_reorg): Likewise.
3407 * config/ia64/ia64.c (emit_insn_group_barriers): Update.
3408 (emit_predicate_relation_info): Update.
3409 (process_for_unwind_directive): Update.
3410 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
3411 (output_call): Update.
3412 * config/pa/pa.c (output_lbranch): Update.
3413 (output_millicode_call): Update.
3414 (output_call): Update.
3415 (pa_combine_instructions): Update.
3416 * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
3417 * config/bfin/bfin.c (gen_one_bundle): Update.
3418 * cfgrtl.c (can_delete_note_p): Update.
3419 (delete_insn): Update.
3420 (rtl_merge_blocks): Update.
3421 (commit_one_edge_insertion): Update.
3422 (rtl_verify_flow_info): Update.
3423 * stmt.c (expand_case): Do not call squeeze_notes.
3425 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3432 * c.opt (Wtype-limits): New.
3433 * doc/invoke.texi (Wtype-limits): Document it.
3434 (Wextra): Enabled by -Wextra.
3435 * c-opts.c (c_common_post_options): Enabled by -Wextra.
3436 * c-common.c (shorten_compare): Warn with Wtype-limits.
3438 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
3440 * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
3441 inlined function, not as a macro.
3442 (_mm_alignr_pi8): Ditto.
3443 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
3444 (_mm_inserti_si64): Ditto.
3445 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
3446 (_mm_extract_epi16): Ditto.
3447 (_mm_insert_epi16): Ditto.
3448 (_mm_shufflehi_epi16): Ditto.
3449 (_mm_shufflelo_epi16): Ditto.
3450 (_mm_shuffle_epi32): Ditto.
3451 * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
3452 * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
3454 (_m_from_float): Add __extension__ to conversion. Use 0.0f for
3456 (_m_to_float): Use C89 compatible assignment.
3458 2007-04-20 Martin Michlmayr <tbm@cyrius.com>
3461 * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
3463 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3466 * doc/invoke.texi (Wreturn-type): Complete description.
3467 (Wextra): Delete item about return-type warning.
3468 * c-decl.c: Delete redundant Wextra warning.
3470 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
3473 * config/i386/pmmintrin.h: Do not include xmmintrin.h
3474 * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
3475 inlined function, not as a macro.
3476 (_mm_prefetch): Ditto.
3478 (_mm_insert_pi16): Ditto.
3480 (_mm_shuffle_pi16): Ditto. Add const to __N argument.
3481 (_m_pshufw): Ditto. Add const to __N argument.
3482 (_mm_shufle_ps): Ditto. Add const to __mask argument.
3483 * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
3484 (_mm_slli_epi32): Ditto.
3485 (_mm_srli_si128): Implement as always inlined function, not as a macro.
3486 Add __inline to function declaration.
3487 (_mm_slli_si128): Ditto.
3489 2007-05-19 Uros Bizjak <ubizjak@gmail.com>
3491 * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
3492 FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
3494 (struct fenv): New structure.
3495 (FP_HANDLE_EXCEPTIONS): New define.
3496 (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
3497 (_FP_DECL_EXP): New define.
3498 (FP_INIT_ROUNDMODE): New define.
3499 (FP_ROUNDMODE): New define.
3501 2007-05-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3503 * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
3504 (Wconversion): Update description.
3505 (Wconversion-sign): New.
3506 * c.opt (Wconversion-sign): New.
3507 * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
3508 means disabled for C++. Otherwise, take the status of Wconversion.
3509 * c-common.c (conversion_warning): Warn with either Wconversion or
3511 (warnings_for_convert_and_check): Conditions are already checked by
3513 (convert_and_check): Don't check warnings if the conversion failed.
3515 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
3516 Anatoly Sokolov <aesok@dol.ru>
3518 * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
3519 avr_epilogue_uses) : Add declaration.
3520 * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
3521 * config/avr/constraints.md (R): New constraint.
3522 config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
3523 UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
3524 (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
3525 (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
3526 (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
3527 call_prologue_saves, epilogue_restores, return_from_epilogue,
3528 return_from_main_epilogue, return_from_interrupt_epilogue,
3529 return_from_naked_epilogue, prologue, epilogue): New patterns.
3530 (jump): Handle symbol reference.
3531 * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
3532 avr_output_function_prologue, avr_output_function_epilogue): Remove
3534 (avr_init_machine_status, expand_prologue, expand_epilogue,
3535 avr_asm_function_end_prologue, avr_epilogue_uses,
3536 avr_asm_function_begin_epilogue): New functions.
3537 (prologue_size, epilogue_size, jump_tables_size): Remove global
3539 (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
3540 (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
3541 (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
3542 (avr_override_options): Initialise init_machine_status.
3543 (output_movhi): Handle all stack pointer loads.
3544 (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
3545 (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
3546 * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
3547 (EPILOGUE_USES) Redefine.
3548 (machine_function) Declare.
3550 2007-05-19 Richard Sandiford <richard@codesourcery.com>
3552 * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
3553 Use a single return statement.
3555 2007-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3558 * builtins.c (do_mpfr_lgamma_r): New.
3559 (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
3560 * tree.h (CASE_FLT_FN_REENT): New.
3562 2007-05-18 Geoffrey Keating <geoffk@apple.com>
3564 * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
3565 (output_die): Use 'unsigned long' with %x.
3566 * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
3567 HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
3568 * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
3570 * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
3572 2007-05-18 H.J. Lu <hongjiu.lu@intel.com>
3577 * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
3578 true if function has no argument.
3580 2007-05-18 DJ Delorie <dj@redhat.com>
3582 * config/mips/mips.c (mips_offset_within_alignment_p): New.
3583 (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
3585 2007-05-18 Uros Bizjak <ubizjak@gmail.com>
3587 * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
3588 sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
3589 count_trailing_zeros.
3590 (__i386__): Implement count_leading_zeros using __builtin_clz().
3591 Implement count_trailing_zeros usign __builtin_ctz().
3593 2007-05-18 Richard Sandiford <richard@codesourcery.com>
3595 * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
3597 2007-05-18 Uros Bizjak <ubizjak@gmail.com>
3600 * expr.c (emit_move_change_mode): Change mode of push operands here.
3602 2007-05-17 Ian Lance Taylor <iant@google.com>
3604 PR tree-optimization/31953
3605 * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
3607 (set_value_range_to_null): Call set_value_range_to_value.
3608 (extract_range_from_comparison): Likewise.
3610 2007-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3612 * toplev.c (print_version): Output GMP/MPFR version info.
3614 * builtins.c (CASE_MATHFN_REENT): New macro.
3615 (mathfn_built_in): Use it.
3616 * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
3617 BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
3618 BUILT_IN_LGAMMAL_R): New.
3619 * doc/extend.texi: Document new builtins.
3622 * builtins.c (do_mpfr_remquo): New.
3623 (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
3624 (fold_builtin_3): Handle BUILT_IN_REMQUO.
3627 * builtins.c (fold_builtin_1): Handle y0, y1.
3628 (fold_builtin_2): Handle yn.
3631 * builtins.c (do_mpfr_bessel_n): New.
3632 (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
3633 (fold_builtin_2): Handle BUILT_IN_JN.
3635 2007-05-17 Danny Smith <dannysmith@users.sourceforge.net>
3638 * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
3639 TYPE_PRECISION (intmax_type_node).
3641 2007-05-17 Steve Ellcey <sje@cup.hp.com>
3644 * reload.c (subst_reloads): Remove checking.
3646 2007-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
3648 PR rtl-optimization/31691
3649 * combine.c (simplify_set): Build a new src pattern instead of
3650 substituting its operands in the COMPARE case.
3652 2007-05-17 Zdenek Dvorak <dvorakz@suse.cz>
3654 * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
3655 (execute_vrp): Preserve loops through jump threading.
3656 * tree-ssa-threadupdate.c (thread_single_edge,
3657 dbds_continue_enumeration_p, determine_bb_domination_status,
3658 thread_through_loop_header): New functions.
3659 (create_edge_and_update_destination_phis,
3660 create_edge_and_update_destination_phis): Set loops for the new blocks.
3661 (prune_undesirable_thread_requests): Removed.
3662 (redirect_edges): Do not pretend that redirect_edge_and_branch can
3664 (thread_block): Do not call prune_undesirable_thread_requests.
3666 (mark_threaded_blocks): Select edges to thread here.
3667 (thread_through_all_blocks): Take may_peel_loop_headers argument.
3668 Thread edges through loop headers independently.
3669 * cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
3670 * tree-pass.h (TODO_mark_first_instance): New.
3671 (first_pass_instance): Declare.
3672 * cfghooks.c (duplicate_block): Put the block to the original loop
3673 if copy is not specified.
3674 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
3675 jump threading. Pass may_peel_loop_headers to
3676 thread_through_all_blocks according to first_pass_instance.
3677 * cfgloop.h (create_preheader): Declare.
3678 * tree-flow.h (thread_through_all_blocks): Declaration changed.
3679 * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
3680 * passes.c (first_pass_instance): New variable.
3681 (next_pass_1): Set TODO_mark_first_instance.
3682 (execute_todo): Set first_pass_instance.
3684 2007-05-17 Uros Bizjak <ubizjak@gmail.com>
3686 PR tree-optimization/24659
3687 * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
3688 OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
3689 OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
3690 OTI_vec_pack_ufix_trunc.
3691 (vec_unpacks_float_hi_optab): Define new macro.
3692 (vec_unpacks_float_lo_optab): Ditto.
3693 (vec_unpacku_float_hi_optab): Ditto.
3694 (vec_unpacku_float_lo_optab): Ditto.
3695 (vec_pack_sfix_trunc_optab): Ditto.
3696 (vec_pack_ufix_trunc_optab): Ditto.
3697 * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
3698 and vec_pack_[s|u]fix_trunc_optab using
3699 vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
3700 * tree-vectorizer.c (supportable_widening_operation): Handle
3701 FLOAT_EXPR and CONVERT_EXPR. Update comment.
3702 (supportable_narrowing_operation): New function.
3703 * tree-vectorizer.h (supportable_narrowing_operation): Prototype.
3704 * tree-vect-transform.c (vectorizable_conversion): Handle
3705 (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
3706 (vect_gen_widened_results_half): Move before vectorizable_conversion.
3707 (vectorizable_type_demotion): Call supportable_narrowing_operation()
3708 to check for target support.
3709 * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
3710 for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
3711 for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
3712 for VEC_PACK_FIX_TRUNC_EXPR.
3713 (expand_binop): Special case mode of the result for
3714 vec_pack_[u|s]fix_trunc_optab.
3715 (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
3716 vec_pack_[u|s]fix_trunc_optab.
3718 * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
3719 VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
3720 * tree-pretty-print.c (dump_generic_node): Handle
3721 VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
3722 VEC_PACK_FIX_TRUNC_EXPR.
3724 * expr.c (expand_expr_real_1): Ditto.
3725 * tree-inline.c (estimate_num_insns_1): Ditto.
3726 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
3728 * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
3729 (vec_unpacks_float_lo_v8hi): Ditto.
3730 (vec_unpacku_float_hi_v8hi): Ditto.
3731 (vec_unpacku_float_lo_v8hi): Ditto.
3732 (vec_unpacks_float_hi_v4si): Ditto.
3733 (vec_unpacks_float_lo_v4si): Ditto.
3734 (vec_pack_sfix_trunc_v2df): Ditto.
3736 * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
3738 [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
3739 [VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
3740 * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
3741 [vec_pack_ufix_trunc]: Ditto.
3742 [vec_unpacks_float_hi]: Ditto.
3743 [vec_unpacks_float_lo]: Ditto.
3744 [vec_unpacku_float_hi]: Ditto.
3745 [vec_unpacku_float_lo]: Ditto.
3747 2007-05-16 Uros Bizjak <ubizjak@gmail.com>
3749 * soft-fp/README: Update for new files.
3750 * soft-fp/floattisf.c: New file.
3751 * soft-fp/floattidf.c: New file.
3752 * soft-fp/floattitf.c: New file.
3753 * soft-fp/floatuntisf.c: New file.
3754 * soft-fp/floatuntidf.c: New file.
3755 * soft-fp/floatuntitf.c: New file.
3756 * soft-fp/fixsfti.c: New file.
3757 * soft-fp/fixdfti.c: New file.
3758 * soft-fp/fixtfti.c: New file.
3759 * soft-fp/fixunssfti.c: New file.
3760 * soft-fp/fixunsdfti.c: New file.
3761 * soft-fp/fixunstfti.c: New file.
3762 * soft-fp/extendxftf.c: New file.
3763 * soft-fp/trunctfxf.c: New file.
3765 * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
3766 (__trunctfxf2): Ditto.
3768 * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
3769 __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
3770 __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
3771 __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
3772 __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
3773 __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.
3775 * config/i386/t-fprules-softfp64: New file.
3776 * config/i386/sfp-machine.h: New file.
3777 * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
3778 x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
3779 and soft-fp/t-softfp to tmake_file.
3780 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3781 i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
3783 * config/i386/t-linux64 (softfp_wrap_start): New.
3784 (softfp_wrap_end): New.
3785 * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
3786 supported for TARGET_64BIT.
3788 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
3790 * c-common.c (c_common_signed_or_unsigned_type): Emulate
3791 c_common_unsigned_type behavior.
3793 2007-05-16 Paolo Bonzini <bonzini@gnu.org>
3795 * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
3798 2007-05-16 Eric Christopher <echristo@apple.com>
3800 * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
3801 saving after stack push. Set sp_offset whenever we push.
3802 (rs6000_emit_epilogue): Move altivec register restore before
3805 2007-05-16 Richard Sandiford <richard@codesourcery.com>
3807 * configure.ac: Allow sysroots to be relocated under $prefix as
3808 well as $exec_prefix.
3809 * configure: Regenerate.
3811 2007-05-16 Richard Sandiford <richard@codesourcery.com>
3815 2007-05-12 Richard Sandiford <richard@codesourcery.com>
3817 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
3818 (gcc_tooldir): Likewise.
3819 * configure: Regenerate.
3820 * Makefile.in (libsubdir_to_prefix): New variable, based on the
3821 old configure.ac gcc_tooldir setting.
3822 (prefix_to_exec_prefix): New variable.
3823 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
3824 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
3826 2007-05-14 Janis Johnson <janis187@us.ibm.com>
3828 * c-typeck.c (build_binary_op): Return early for error.
3830 2007-05-15 Zdenek Dvorak <dvorakz@suse.cz>
3832 * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
3833 struct nb_iter_bound.
3834 (free_numbers_of_iterations_estimates_loop): Use ggc_free.
3835 * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
3836 * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
3837 * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
3838 (struct scev_info_str, scalar_evolution_info): Add GTY markers.
3839 (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
3840 (del_scev_info): Use ggc_free.
3841 (scev_initialize): Allocate scalar_evolution_info in gc memory.
3842 * loop-init.c: Include ggc.h.
3843 (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
3844 (loop_optimizer_finalize): Use ggc_free.
3845 * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
3846 pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
3847 pass_iv_optimize): Add TODO_ggc_collect.
3848 * function.h (struct function): Remove skip marker from x_current_loops.
3849 * cfgloop.c: Include ggc.h.
3850 (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
3852 (establish_preds): Vector superloops is gc allocated.
3853 (alloc_loop): Allocate loop using GGC_CNEW. Allocate head of
3855 (flow_loops_find): Vector larray is gc allocated.
3856 (loop_exit_free): Use ggc_free.
3857 (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit. Reflect
3858 that head of exits list is now not a part of struct loop.
3859 (record_loop_exits): Allocate exits table in gc memory.
3860 (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect that
3861 head of exits list is now not a part of struct loop.
3862 * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
3863 struct loop_exit): Add GTY marker.
3864 (struct loop): Add GTY marker. Make superloops vector gc allocated.
3865 Add skip marker to aux field. Make head of exits list a separate
3867 (struct loops): Add GTY marker. Make larray vector gc allocated.
3868 Add param marker to exits table.
3869 (get_loops): Type changed.
3870 * Makefile.in (tree-scalar-evolution.o): Add gt-tree-scalar-evolution.h
3872 (cfgloop.o, loop-init.o): Add ggc.h dependency.
3873 (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
3874 * basic-block.h (struct basic_block_def): Remove skip marker from
3877 2007-05-14 Uros Bizjak <ubizjak@gmail.com>
3879 * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
3880 of 0 in the call to expand_expr().
3881 (expand_builtin_mathfn_3): Ditto.
3882 (expand_builtin_interclass_mathfn): Ditto.
3883 (expand_builtin_cexpi): Ditto.
3884 (expand_builtin_int_roundingfn): Ditto.
3885 (expand_builtin_int_roundingfn_2): Ditto.
3886 (expand_builtin_pow): Ditto.
3887 (expand_builtin_powi): Ditto.
3888 (expand_builtin_bswap): Ditto.
3889 (expand_builtin_unop): Ditto.
3890 (expand_builtin_fabs): Ditto.
3891 (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
3892 the call to expand_expr().
3893 (expand_builtin_sync_operation): Ditto.
3894 (expand_builtin_compare_and_swap): Ditto.
3895 (expand_builtin_lock_test_and_set): Ditto.
3896 * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
3897 instead of 0 in the call to expand_expr().
3898 (expand_builtin_extract_return_addr): Ditto.
3899 (expand_builtin_eh_return): Ditto.
3900 (expand_eh_return): Ditto.
3901 * explow.c (expr_size): Ditto.
3902 * expr.c (optimize_bitfield_assignment_op): Ditto.
3903 (expand_assignement): Ditto.
3904 (store_expr): Ditto.
3905 (store_field): Ditto.
3906 (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
3907 the call to expand_expr().
3908 (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
3909 in the call to expand_expr().
3910 [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
3911 BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
3912 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
3914 * optabs.c (expand_vec_shift_expr): Ditto.
3915 (expand_vec_cond_expr): Ditto.
3916 (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
3917 call to expand_expr().
3918 * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
3919 in the call to expand_expr().
3921 2007-05-14 Dave Korn <dave.korn@artimi.com>
3923 * genautomata.c (gen_regexp_el): Allocate correct size for regexp.
3925 2007-05-14 Rafael Avila de Espindola <espindola@google.com>
3927 * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
3928 instead of c_common_unsigned_type.
3929 (c_common_unsigned_type): Remove.
3930 (shorten_compare): Use c_common_signed_or_unsigned_type instead of
3931 c_common_unsigned_type.
3932 (c_common_nodes_and_builtins): Use unsigned_type_for instead of
3933 c_common_unsigned_type.
3934 * c-common.h (c_common_unsigned_type): Remove.
3935 * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
3936 c_common_unsigned_type.
3937 * c-format.c (check_format_types): Use unsigned_type_for instead of
3938 c_common_unsigned_type.
3939 * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
3940 * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead of
3941 c_common_unsigned_type.
3942 * convert.c (convert_to_integer): Use unsigned_type_for instead of
3943 lang_hooks.types.unsigned_type.
3944 * expmed.c (make_tree): Use unsigned_type_for instead of
3945 lang_hooks.types.unsigned_type.
3946 * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
3947 lang_hooks.types.unsigned_type.
3948 (build_range_check): Likewise.