OSDN Git Service

2007-07-06 Ian Lance Taylor <iant@google.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-07-06  Ian Lance Taylor  <iant@google.com>
2             Zack Weinberg  <zackw@panix.com>
3
4         PR middle-end/32441
5         * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
6
7 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
8
9         * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
10         (prefetch): Likewise if "pref" would be used.
11
12 2007-07-06  Josh Conner  <jconner@apple.com>
13
14         PR middle-end/32602
15         PR middle-end/32603
16         * calls.c (store_one_arg): Handle arguments which are partially
17         on the stack when detecting argument overlap.
18
19 2007-07-06  Bernd Schmidt  <bernd.schmidt@analog.com>
20
21         * reload1.c (choose_reload_regs): Set reload_spill_index for regs
22         chosen during find_reloads.
23
24 2007-07-06  Richard Guenther  <rguenther@suse.de>
25
26         * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
27         TYPE_ARG_TYPES for verification of argument types.  Use
28         DECL_ARG_TYPE instead of the PARM_DECL type.  Take excess
29         parameters as variable arguments.
30
31 2007-07-06  Andreas Krebbel  <krebbel1@de.ibm.com>
32
33         * libgcc2.h (word_type): Type definition removed.
34         (cmp_return_type, shift_count_type): Type definitions added.
35         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
36         replaced with shift_count_type.
37         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
38         cmp_return_type.
39         * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
40         changed from word_type to Wtype.
41         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
42         replaced with shift_count_type.
43         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
44         cmp_return_type.
45         * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return and
46         libgcc_shift_count attribute added.
47         * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
48         TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
49         (TARGET_INITIALIZER): New target hooks added.
50         * targhooks.c (default_libgcc_cmp_return_mode,
51         default_libgcc_shift_count_mode): Default implementations for the new
52         target hooks added.
53         * targhooks.h (default_libgcc_cmp_return_mode,
54         default_libgcc_shift_count_mode): Function prototypes added.
55         * target.h (struct gcc_target): Fields for the new target hooks added.
56         * optabs.c (expand_binop): Use shift_count_mode when expanding shift
57         as library call.
58         (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
59         library call.
60
61         * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
62         TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
63
64         * config/s390/s390.c (s390_libgcc_cmp_return_mode,
65         s390_libgcc_shift_count_mode): Functions added.
66         (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE): Target
67         hooks defined.
68
69 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
70
71         * config/mips/mips.c (compute_frame_size): Restore the original
72         gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
73         fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
74         Document why the difference is needed.
75
76 2007-07-06  Richard Guenther  <rguenther@suse.de>
77
78         * c-common.c (boolean_increment): Use correctly typed
79         constant.
80
81 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
82
83         * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
84         the topmost argument register is not also included in the save mask.
85         (mips16e_collect_argument_save_p): Take a pointer to the argument
86         register, rather than a pointer to the number of arguments.
87         (mips16e_collect_argument_saves): Only include argument saves
88         that aren't in the register mask.
89
90 2007-07-06  Uros Bizjak  <ubizjak@gmail.com>
91
92         PR rtl_optimization/32450
93         * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
94         to ensure that instructions are not moved into the prologue when
95         profiling is on.  Remove unused prologue_end variable.
96         (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
97         as a scheduling barrier.
98
99 2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
100
101         PR debug/23551
102         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
103         Disregard DECL_FROM_INLINE.
104
105 2007-07-05  Adam Nemet  <anemet@caviumnetworks.com>
106
107         * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
108         IORing with a constant.
109
110 2007-07-05  Seongbae Park  <seongbae.park@gmail.com>
111
112         PR rtl-optimization/32475
113         * df-scan.c (df_def_record_1): Add a use of the stack pointer
114         for every definition of the stack pointer.
115
116 2007-07-05  Richard Earnshaw  <rearnsha@arm.com>
117
118         * arm.c (vfp3_const_double_index): Copy signed results of
119         REAL_VALUE_TO_INT into unsigned vars.
120
121 2007-07-05  Richard Guenther  <rguenther@suse.de>
122
123         PR middle-end/32639
124         * alias.c (get_alias_set): Tread METHOD_TYPE the same as
125         FUNCTION_TYPE.
126         * tree-ssa.c (useless_type_conversion_p): Check canonical
127         types early.
128
129 2007-07-05 Anatoly Sokolov <aesok@post.ru>
130
131         * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2, 
132         zero_extendhisi2): Change to define_insn_and_split. 
133         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
134
135 2007-07-05  Paolo Bonzini  <bonzini@gnu.org>
136
137         * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
138         pass_match_asm_constraints): New.
139         * passes.c (init_optimization_passes): Add new pass.
140         * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
141         * function.h (struct function): Add has_asm_statement bit.
142         (current_function_has_asm_statement): New.
143         * tree-pass.h (pass_match_asm_constraints): New.
144
145 2007-07-05  Richard Sandiford  <rsandifo@nildram.co.uk>
146
147         * config/mips/mips.c (mips_file_start): Avoid declaration
148         after code.
149
150 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
151
152         * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
153
154 2007-07-05  Uros Bizjak  <ubizjak@gmail.com>
155
156         * rtl.def (NOTE): Change print format string to print
157         operand 5 as a note insn name.
158
159 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
160             David Ung  <davidu@mips.com>
161
162         * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
163         * doc/invoke.texi: (MIPS Options): Document them.
164
165 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
166             David Ung  <davidu@mips.com>
167
168         Add support for SmartMIPS ASE.
169
170         * optabs.c (expand_binop_directly): New, broken out from...
171         (expand_binop): Here.  Make it try rotating in the other
172         direction even when the second operand isn't constant.
173         * config/mips/mips.md (*lwxs): New.
174         * config/mips/mips.opt (msmartmips): New.
175         * config/mips/mips.c (mips_lwxs_address_p): New.
176         (mips_rtx_costs): Make it recognize scaled indexed addressing.
177         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
178         __mips_smartmips when compiling for TARGET_SMARTMIPS.
179         (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
180         (ISA_HAS_LWXS): New.
181         (ASM_SPEC): Add -msmartmips/-mno-smartmips.
182         * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
183         * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
184         * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
185         * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
186         * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
187         * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
188
189 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
190
191         * tree-vectorizer.c (new_loop_vec_info): Initialize
192         LOOP_VINFO_COST_MODEL_MIN_ITERS.
193         * tree-vectorizer.h (_loop_vec_info): Added new filed
194         min_profitable_iters.
195         (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
196         (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
197         * tree-vect-analyze.c (vect_analyze_operations): Set
198         LOOP_VINFO_COST_MODEL_MIN_ITERS.
199         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
200         VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
201         Fix calculation of peel_iters_prologue. Move consideration of epilogue
202         and prologue cost to after they are computed.
203         (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
204         TARG_VEC_STMT_COST.
205         (vect_model_simple_cost): Takes additional argument dt. Consider cost
206         of creating vectors from scalars according to dt.
207         (vect_model_store_cost): Likewise.
208         (vectorizable_call): Use dt array instead of scalar dt. Call
209         vect_model_simple_cost with additional argument dt.
210         (vectorizable_assignment): Likewise.
211         (vectorizable_operation): Likewise.
212         (vectorizable_type_demotion): Likewise.
213         (vectorizable_type_promotion): Likewise.
214         (vectorizable_store): Use dt array instead of scalar dt. Call
215         vect_model_store_cost with additional argument dt.
216         (vect_do_peeling_for_loop_bound): Don't call
217         vect_estimate_min_profitable_iters. Instead, lookup
218         LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
219         "may not be profitable".
220
221 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
222
223         PR testsuite/32014
224         * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
225         (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
226         (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
227         (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns. 
228
229 2007-07-05  Zdenek Dvorak  <dvorakz@suse.cz>
230
231         * config/i386/i386.c (ix86_address_cost): Do not consider more complex
232         addressing modes cheaper.
233
234 2007-07-05  Alexandre Oliva  <aoliva@redhat.com>
235
236         * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
237         (dw_ranges_struct): Rename block_num to num.  Adjust.
238         (dw_ranges_by_label_struct): New.
239         (ranges_by_label, ranges_by_label_allocated,
240         ranges_by_label_in_use): New variables.
241         (add_ranges_num): Factored most of the code out of...
242         (add_ranges): ... this one.  Rewrite in terms of the former.
243         (add_ranges_by_labels): New.
244         (output_ranges): Output by-label ranges.
245         (dwarf2out_finish): Output range for multiple-section
246         compile_unit.  Output standard DW_AT_low_pc in addition to
247         unexpected DW_AT_entry_pc.
248
249 2007-07-04  Daniel Berlin  <dberlin@dberlin.org>
250
251         PR tree-optimization/32604
252         PR tree-optimization/32606
253
254         * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
255         (compute_antic_safe): Removed.
256         (ANTIC_SAFE_LOADS): Ditto.
257         (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
258         (execute_pre): Don't call compute_antic_safe.
259         (vuse_equiv): New function.
260         (make_values_for_stmt): Use it
261         * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
262         not always true.
263
264 2007-07-04 Anatoly Sokolov <aesok@post.ru>
265
266         PR target/31331
267         * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
268         rather than a decl. 
269         (avr_attribute_table): Make "naked" attribute apply to function types
270         rather than to decls.
271         (avr_handle_fntype_attribute): New function.
272
273 2007-07-04  Joseph Myers  <joseph@codesourcery.com>
274
275         * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
276         after \.
277
278 2007-07-04  David Ung  <davidu@mips.com>
279             Joseph Myers  <joseph@codesourcery.com>
280
281         * config/mips/mips.md (type): Add logical, signext and move.
282         (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
283         *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
284         *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
285         combinations", *zero_extend<SHORT:mode><GPR:mode>2,
286         *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
287         *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
288         *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
289         *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
290         *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
291         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
292         movv2sf_hardfloat_64bit): Use the new types.
293         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
294         *movdf_softfloat, *movdf_mips16): Use "multi".
295         (extendqihi2): Replace with a define_expand.
296         (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
297         Based on extend<SHORT:mode><GPR:mode>2 patterns.
298         * config/mips/74k.md (r74k_int_logical): New reservation and
299         bypasses.
300         (r74k_int_arith): Remove "slt".
301         * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
302         config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
303         config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
304         config/mips/sb1.md, config/mips/sr71k.md: Add new types to
305         reservations for "arith".
306
307 2007-07-04  Richard Guenther  <rguenther@suse.de>
308
309         * tree-ssa.c (useless_type_conversion_p): Add handling for
310         scalar float and vector types.  Only call the types_compatible_p
311         langhook for aggregate types as last resort.  Follow the
312         rules.
313
314 2007-07-04  Richard Guenther  <rguenther@suse.de>
315
316         * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
317         the same as NOP_EXPR.
318
319 2007-07-04  Nick Clifton  <nickc@redhat.com>
320
321         * target.h (struct gcc_target): Add target_help field.
322         * target-def.h (TARGET_HELP): New.
323         (TARGET_INITIALIZER): Use TARGET_HELP.
324         * opts.c (command_handle_option): Invoke target_help function, if
325         defined, when the user has specified --target-help on the command
326         line.
327         * doc/invoke.texi: Mention that --target-help might print
328         additional information.
329         * doc/tm.texi: Document TARGET_HELP hook.
330
331         * arm.c (TARGET_HELP): Override default definition.
332         (arm_target_help): New - display a wrapped list of cores and
333         architectures supported.
334
335 2007-07-04  Rask Ingemann Lambertsen  <rask@sygehus.dk>
336
337         * config/gcc/v850/v850.c (expand_prologue): Make sure
338         GEN_INT() argument is sign extended rather than zero extended.
339         (expand_epilogue): Likewise.
340         (output_move_double): Delete.
341         * config/gcc/v850/v850-protos.h (output_move_double): Delete.
342         * config/gcc/v850/v850.md (movdi): Delete.
343         (*movdi_internal): Delete.
344         (movdf): Delete.
345         (*movdf_internal): Delete.
346
347 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
348
349         * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
350         unless compiling RTP PIC.
351
352 2007-07-04  Richard Guenther  <rguenther@suse.de>
353
354         PR tree-optimization/32482
355         * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
356         original ssa name if we didn't find a shift expression.
357         Fix shift constant for bit zero test.
358
359 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
360
361         * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
362
363 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
364
365         * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
366         * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
367         * config/arm/vxworks.h (ASM_SPEC): Delete.
368         (SUBTARGET_EXTRA_ASM_SPEC): Define.
369
370 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
371
372         * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
373         (DDR_REVERSED_P): New.
374         * tree-data-ref.c (initialize_data_dependence_relation,
375         build_classic_dist_vector): Set DDR_REVERSED_P.
376
377 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
378
379         PR middle-end/32457
380         * tree-data-ref.c (analyze_siv_subscript_cst_affine,
381         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
382         init_omega_for_ddr_1): Use non conservative number of iterations
383         estimations.
384         (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
385         (analyze_siv_subscript): Remove FIXME and reinitialization of 
386         last_conflicts to chrec_dont_know.
387         * testsuite/gfortran.dg/vect/pr32457.f90: New.
388
389 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
390
391         * tree.c (maybe_canonicalize_argtypes): Improve description.
392
393 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
394
395         * tree.c (maybe_canonicalize_argtypes): New.
396         (build_function_type): Set canonical type.
397         (build_method_type_directly): Ditto.
398         (reconstruct_complex_type): Rebuild the METHOD_TYPE node
399         properly.
400
401 2007-07-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
402
403         * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
404         like PLUS_EXPR.
405         (rewrite_use_nonlinear_expr): Likewise.
406
407 2007-07-03  Seongbae Park  <seongbae.park@gmail.com>
408
409         * rtl.def (UNSPEC, USE, CLOBBER): More comments.
410
411 2007-07-04  Ben Elliston  <bje@au.ibm.com>
412
413         * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
414         of this file.
415
416         * c-objc-common.c (c_types_compatible_p): Fix indentation.
417
418         * doc/tm.texi (Run-time Target): Capitalise "CPU".
419         (Exception Handling): Likewise.
420
421 2007-07-03  Jan Hubicka  <jh@suse.cz>
422
423         * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
424
425 2007-07-03  Eric Christopher  <echristo@apple.com>
426
427         * doc/cppopts.texi: Add conflicting option note to -dM.
428         * doc/invoke.texi: Add note about possible conflicts with
429         -E for -dCHARS and note that -dM will not produce
430         any results if there is no machine dependent reorg.
431         
432 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
433
434         * tree.h (DECL_ALIGN): Back out previous change.
435
436 2007-07-03  Joseph Myers  <joseph@codesourcery.com>
437
438         * configure.ac: Test for .dtprelword support on MIPS.
439         * configure, config.in: Regenerate.
440         * config/mips/mips.c (mips_output_dwarf_dtprel): New.
441         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
442
443 2007-07-03  Julian Brown  <julian@codesourcery.com>
444
445         * config.gcc (with_fpu): Allow --with-fpu=vfp3.
446         * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
447         * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
448         * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
449         capability.
450         (all_fpus): Add FPUTYPE_VFP3.
451         (fp_model_for_fpu): Add VFPv3 field.
452         (arm_rtx_costs_1): Give cost to VFPv3 constants.
453         (vfp3_const_double_index): New function. Return integer index of
454         VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
455         isn't suitable.
456         (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
457         and argument represents a valid RTX for a VFPv3 constant.
458         (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
459         two instructions.
460         (vfp_emit_fstmd): Similar, for fstmd.
461         (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
462         constants, represented as integer indices.
463         (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
464         VFP_REGNO_OK_FOR_DOUBLE macros.
465         (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
466         (arm_file_start): Set float-abi attribute for VFPv3, and output
467         correct ".fpu" assembler directive.
468         (arm_dbx_register_numbering): Add FIXME.
469         * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
470         (fputype): Add FPUTYPE_VFP3.
471         (FIXED_REGISTERS): Add 32 registers for D16-D31.
472         (CALL_USED_REGISTERS): Likewise.
473         (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
474         of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
475         (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
476         (D7_VFP_REGNUM): New.
477         (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
478         (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
479         (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
480         (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
481         (REG_ALLOC_ORDER): Adjust for VFPv3.
482         (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
483         (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
484         VFP_LO_REGS, VFP_HI_REGS.
485         (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
486         (IS_VFP_CLASS): Define macro.
487         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
488         IS_VFP_CLASS.
489         (REGISTER_MOVE_COST): Likewise.
490         * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
491         * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
492         (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
493         (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
494         (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
495         (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
496         (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
497         (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
498         (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
499         (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
500         (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
501         where appropriate for single-word registers.
502         (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
503         As above. Fix type attributes.
504         * config/arm/constraints.md (register_contraint "t"): Define.
505         (register_constraint "w"): Change to D0-D15, or D0-D31 for
506         VFPv3/NEON.
507         (register_constraint "x"): Define.
508         (constraint "Dv"): Define.
509
510 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
511
512         * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
513
514 2007-07-03  Tom Tromey  <tromey@redhat.com>
515
516         * c-parser.c (objc_pq_context): Removed.
517         (objc_need_raw_identifier): Likewise.
518         (c_parser) <objc_pq_context>: New field.
519         <objc_need_raw_identifier>: Likewise.
520         (OBJC_NEED_RAW_IDENTIFIER): Removed.
521         (c_lex_one_token): Update.
522         (c_parser_objc_protocol_definition): Update.
523         (c_parser_objc_method_definition): Update.
524         (c_parser_objc_methodproto): Update.
525         (c_parser_declspecs): Update.
526
527 2007-07-03  David Ung  <davidu@mips.com>
528
529         * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
530
531 2007-07-03  David Ung  <davidu@mips.com>
532             Richard Sandiford  <richard@codesourcery.com>
533
534         * doc/invoke.texi: Document -march=74kf3_2.
535         * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
536         (TUNE_74K): Check for it.
537         * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
538         (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
539         * config/mips/mips.md (cpu): Add 74kf3_2.
540         * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
541         (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
542         (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
543         (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
544         74kf3_2 to the CPU list.
545         (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
546         (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
547         (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
548         (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
549         (r74kf3_2_fxfer_from_c1): New insn reservations.
550
551 2007-07-03  Richard Sandiford  <richard@codesourcery.com>
552             David Ung  <davidu@mips.com>
553
554         * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
555         -march=24kx with -march=24kf1_1.  Likewise 24ke[fx], 34k[fx]
556         and 74k[fx].  Document aliases for the new options.
557         * config/mips/mips.h (PROCESSOR_24KF): Rename to...
558         (PROCESSOR_24KF2_1): ...this.
559         (PROCESSOR_24KX): Rename to...
560         (PROCESSOR_24KF1_1): ...this.
561         (PROCESSOR_74KF): Rename to...
562         (PROCESSOR_74KF2_1): ...this.
563         (PROCESSOR_74KX): Rename to...
564         (PROCESSOR_74KF1_1): ...this.
565         (TUNE_74K): Update PROCESSOR_* names.
566         * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
567         for 24kf.  Add 24kf1_1 and 24kfx as synonyms for 24kx.  Likewise
568         the 24ke*, 34k* and 74k* processors.  Update PROCESSOR_* names.
569         (mips_rtx_cost_data): Update processor names in comments.
570         (mips_issue_rate): Update PROCESSOR_* names.
571         * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
572         24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
573         * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
574         to r24kf2_1_*.  Rename r24kx_* insn reservations to r24kf1_1_*.
575         Update cpu attribute names.
576         (r24k_fpu_iss): Rename this reservation to...
577         (r24kf2_1_fpu_iss): ...this and update all uses.
578         (r24kx_fpu_iss): Rename this reservation to...
579         (r24kf1_1_fpu_iss): ...this and update all uses.
580         * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
581         to r74kf2_1_*.  Rename r74kx_* insn reservations to r74kf1_1_*.
582         Update cpu attribute names.
583
584 2007-07-01  Kaz Kojima  <kkojima@gcc.gnu.org>
585
586         * config/m32r/constraints.md: New file.
587         * config/m32r/m32r.c: Include tm-constrs.h.
588         (small_data_operand): Use satisfies_constraint_* instead of macro.
589         (addr24_operand, gen_compare): Likewise.
590         * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
591         (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
592         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
593         EXTRA_CONSTRAINT): Likewise.
594         * config/m32r/m32r.md: Include constraints.md.
595         (*movsi_insn): Use satisfies_constraint_* instead of macro.
596         (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
597         * config/m32r/predicates.md (conditional_move_operand): Likewise.
598         (two_insn_const_operand, int8_operand, uint16_operand,
599         reg_or_int16_operand, reg_or_uint16_operand,
600         reg_or_cmp_int16_operand, cmp_int16_operand,
601         seth_add3_operand): Likewise.
602
603 2007-07-03  Eric Christopher  <echristo@gmail.com>
604
605         * libgcc2.h: Conditionally declare __bswapsi2 and
606         __bswapdi2.
607         
608 2007-07-03  H.J. Lu  <hongjiu.lu@intel.com>
609
610         * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
611         defined.
612
613 2007-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
614
615         PR target/28307
616         * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
617         (__gthrw_pragma): Provide default definition.
618         (__gthrw2): Use it.
619         * gthr-posix.c (__gthrw_pragma): Define.
620
621 2007-07-03  Daniel Berlin  <dberlin@dberlin.org>
622
623         * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
624         before declaring inequality.
625
626 2007-07-03  Rask Ingemann Lambertsen  <rask@sygehus.dk>
627
628         * combine.c (recog_for_combine): Log the success or failure of
629           matching new insn patterns against the machine description in
630           detailed dumps.
631
632 2007-07-03  Revital Eres  <eres@il.ibm.com>
633
634         * ddg.c (print_sccs): New function.
635         (check_sccs): New function.
636         (create_ddg_all_sccs): Use it.
637         * ddg.h (print_sccs): Declare.
638         * modulo-sched.c (sms_order_nodes): Call print_sccs.
639
640 2007-07-03  Uros Bizjak  <ubizjak@gmail.com>
641
642         * targhooks.h (default_mode_for_suffix): New function declaration.
643         * targhooks.c (default_mode_for_suffix): New default target hook.
644         * target.h (struct c): New structure in the targetm struct.
645         (mode_for_suffix): New target hook as part of struct c.
646         target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
647         default_mode_for_suffix.
648         (TARGET_C): New define.
649         * c-lex.c: Include "target.h".
650         (interpret_float): Use targetm.c.mode_for_suffix to determine
651         the mode for a given non-standard suffix.
652         Makefile.in (c-lex.o): Depend on $(TARGET_H).
653
654         * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
655         (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
656
657         * doc/extend.texi (Floating Types): New node.  Document __float80 and
658         __float128 types.  Document 'w', 'W', 'q' and 'Q' suffixes.
659
660 2007-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
661
662         PR target/32506
663         * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
664         predicate instead of target_operand.
665         (divsi3_i1_media, divsi3_media_2): Likewise.
666
667 2007-07-02  Eric Botcazou  <ebotcazou@adacore.com>
668
669         * tree.h (alias_sets_might_conflict_p): Rename into
670         alias_sets_must_conflict_p.
671         * alias.c (alias_sets_might_conflict_p): Likewise.
672         (alias_sets_conflict_p): Use it.
673         (objects_must_conflict_p): Likewise.
674         * c-common.c (strict_aliasing_warning): Adjust.
675
676 2007-07-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
677
678         * rtlhooks.c (gen_lowpart_if_possible): Check for
679         invalid subreg before calling gen_lowpart_SUBREG.
680
681 2007-07-02  Geoffrey Keating  <geoffk@apple.com>
682
683         * config/darwin9.h: Add copyright notice.
684         (LINK_COMMAND_SPEC): Add comment.
685         (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
686         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
687         DARWIN_LIBSYSTEM_HAS_UNWIND.
688
689 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
690
691         PR libgomp/32468
692         * omp-low.c (check_combined_parallel): New function.
693         (lower_omp_parallel): Call it via walk_stmts, set
694         OMP_PARALLEL_COMBINED if appropriate.
695         (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
696         isn't the only statement in WS_ENTRY_BB or OMP_RETURN
697         the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
698         don't consider it as combined parallel.
699
700 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
701
702         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
703         (gcc_tooldir): Likewise.
704         * configure: Regenerate.
705         * Makefile.in (libsubdir_to_prefix): New variable, based on the
706         old configure.ac gcc_tooldir setting.
707         (prefix_to_exec_prefix): New variable.
708         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
709         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
710
711 2007-07-02  Daniel Berlin  <dberlin@dberlin.org>
712
713         Fix PR tree-optimization/32583
714         Fix PR tree-optimization/32584
715         * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
716         (phi_translate_set): Use phi_translate directly now.
717         (make_values_for_stmt): Don't value number RHS if we already know
718         it is constant.
719
720 2007-07-02  Steve Ellcey  <sje@cup.hp.com>
721             Jim Wilson <wilson@specifix.com>
722
723         PR target/31684
724         * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
725         copy_insn.
726
727 2007-07-02  Sandra Loosemore  <sandra@codesourcery.com>
728             Richard Sandiford  <richard@codesourcery.com>
729             Nigel Stephens  <nigel@mips.com>
730
731         * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
732         (mips16e_output_save_restore): Declare.
733         (mips16e_save_restore_pattern_p): Likewise.
734         * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
735         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
736         for GENERATE_MIPS16E_SAVE_RESTORE.  Return 0x400 for TARGET_MIPS16
737         && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
738         (BITSET_P): New global macro, extracted from...
739         (mips_for_each_saved_reg): ...here.
740         (mips16e_save_restore_info): New struct.
741         (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
742         (mips16e_save_restore_regs): New variable.
743         (mips_split_plus, mips16e_find_first_register): New functions.
744         (mips16e_mask_registers): New function.
745         (compute_frame_size): Expand the commentary before the function.
746         Enforce the MIPS16e save and restore register range restrictions.
747         Pad the general register save area at the low end.
748         (mips16e_save_restore_reg, mips16e_build_save_restore)
749         (mips16e_save_restore_pattern_p, mips16e_add_register_range)
750         (mips16e_output_save_restore, mips16e_collect_propagate_value)
751         (mips16e_collect_argument_save, mips16e_collect_argument_saves):
752         New functions.
753         (mips_expand_prologue, mips_expand_epilogue): Handle
754         GENERATE_MIPS16E_SAVE_RESTORE.
755         * config/mips/mips.md (*mips16e_save_restore): New pattern.
756
757 2007-07-02  Uros Bizjak  <ubizjak@gmail.com>
758
759         PR tree-optimization/31966
760         PR tree-optimization/32533
761         * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
762         "basic_block" description as its third argument.  Update function
763         calls to get destination bb from "edge" argument.  Save "cond" into
764         aux field of the edge.  Update prototype for changed arguments.
765         (if_convertible_loop_p): Clear aux field of incoming edges if bb
766         contains phi node.
767         (find_phi_replacement_condition): Operate on incoming edges, not
768         on predecessor blocks.  If there is a condition saved in the
769         incoming edge aux field, AND it with incoming bb predicate.
770         Return source bb of the first edge.
771         (clean_predicate_lists): Clean aux field of outgoing node edges.
772         (tree_if_conversion): Do not initialize cond variable. Move
773         variable declaration into the loop.
774         (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
775         initializations of new_stmt, arg0 and arg1 variables.
776
777 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
778
779         * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
780         SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
781
782 2007-07-02  Richard Guenther  <rguenther@suse.de>
783
784         * tree-ssa.c (useless_type_conversion_p): Document
785         future intent as defining the middle-end type system.
786         Re-structure to call langhook last, group by type class,
787         mark questionable parts.
788
789 2007-07-02  Richard Guenther  <rguenther@suse.de>
790
791         * tree-flow.h (types_compatible_p): Declare.
792         * tree-ssa.c (types_compatible_p): New function.
793         * ipa-type-escape.c (discover_unique_type): Use
794         types_compatible_p instead of lang_hooks.types_compatible_p.
795         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
796         * tree-vn.c (expressions_equal_p): Likewise.
797         * tree.c (fields_compatible_p): Likewise.
798         * tree-ssa-dom.c (avail_expr_eq): Likewise.
799         (cprop_operand): Use useless_type_conversion_p instead of
800         lang_hooks.types_compatible_p.
801         * tree-inline.c (setup_one_parameter): Likewise.
802         (declare_return_variable): Likewise.
803         * tree-nrv.c (tree_nrv): Likewise.
804         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
805         (maybe_fold_offset_to_component_ref): Likewise.
806         (maybe_fold_offset_to_reference): Likewise.
807         * tree-ssa-copy.c (may_propagate_copy): Likewise.
808         (merge_alias_info): Likewise.
809         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
810         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
811         * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
812         * tree-tailcall.c (find_tail_calls): Likewise.
813         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
814         * gimplify.c (canonicalize_addr_expr): Likewise.
815         (fold_indirect_ref_rhs): Likewise.
816         (gimplify_addr_expr): Likewise.  Swap parameters to cpt_same_type.
817         (cpt_same_type): Likewise.
818         (check_pointer_types_r): Swap parameters to cpt_same_type
819         where appropriate.
820         * fold-const.c (fold_convert): Revert fix for PR15988.
821         * tree-inline.c (setup_one_parameter): Instead fix it here by
822         using fold_build1 instead of fold_convert and checking for
823         error_mark_node.  Convert only if the conversion is necessary.
824
825 2007-07-02  Joseph Myers  <joseph@codesourcery.com>
826
827         * configure.ac: Check for .gnu_attribute on Power.
828         * configure: Regenerate.
829         * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
830         attribute for floating-point ABI.
831
832 2007-07-02  Ira Rosen  <irar@il.ibm.com>
833
834         PR tree-optimization/32230
835         PR tree-optimization/32477
836         * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base 
837         address is a constant.
838
839 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
840
841         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
842         (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
843         (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
844         stanzas.  Use the first part of the triplet to set MIPS_ISA_DEFAULT.
845         Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
846         64-bit targets.  Add support for *-elfoabi*.
847         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
848         different settings if $(tm_defines) does not select the EABI.
849         (MULTILIB_EXCLUSIONS): Define in those circumstances.
850         * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
851         (MIPS_ARCH_OPTION_SPEC): Likewise.
852         (MIPS_ISA_LEVEL_SPEC): Likewise.
853         (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
854         * config/mips/elfoabi.h: New file.
855
856 2007-07-02  Richard Guenther  <rguenther@suse.de>
857
858         * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
859         (useless_type_conversion_p): ... this.
860         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
861         (useless_type_conversion_p): ... this.
862         * builtins.c (fold_builtin_memory_op): Rename
863         tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
864         * tree-cfg.c (verify_expr): Likewise.
865         * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
866         * tree-ssa-ccp.c (ccp_fold): Likewise.
867         * tree-ssa-copy.c (may_propagate_copy): Likewise.
868         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
869         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
870         * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
871         * tree-ssa-pre.c (eliminate): Likewise.
872         * tree-ssa.c (delete_tree_ssa): Likewise.
873         (tree_ssa_useless_type_conversion): Likewise.
874         * tree.c (build2_stat): Likewise.
875
876 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
877
878         Fix PR tree-optimization/32571
879         * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
880         simplifying them.
881
882 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
883
884         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
885         and other expected operations explicitly, change default to
886         gcc_unreachable. 
887
888 2007-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
889
890         * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
891         PARALLEL.
892         * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
893         (tls_load_dot_plus_eight): Move the label number into the unspec.
894         * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
895
896 2007-07-01  Andreas Schwab  <schwab@suse.de>
897
898         * dwarf2out.c (initial_return_save): Define only if used.
899
900 2007-07-01  Kenneth Zadeck <zadeck@naturalbridge.com>
901
902         Unreverting Richard's Revert of:
903
904         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
905
906         * dce.c (deletable_insn_p_1): New function, split out from...
907         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
908         specially, not those inside PARALLELs.  Remove BODY argument
909         and adjust recursive call accordingly.
910         (prescan_insns_for_dce): Update call to delete_insn_p.
911
912 2007-07-01  Vladimir Yanovsky  <yanov@il.ibm.com>
913             Revital Eres  <eres@il.ibm.com>
914
915         * ddg.c (create_ddg_all_sccs): Fix missed
916         initialization of scc_nodes.
917
918 2007-07-01  Uros Bizjak  <ubizjak@gmail.com>
919
920         PR middle-end/32559
921         * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
922         X + ~X to 1 only for INTEGRAL_TYPE_P type.
923
924 2007-06-30  Joseph Myers  <joseph@codesourcery.com>
925
926         * configure.ac: Check for .gnu_attribute on MIPS.
927         * configure, config.in: Regenerate.
928         * config/mips/mips.c (mips_file_start): If supported, output
929         attribute for floating-point ABI.
930
931 2007-06-30  Uros Bizjak  <ubizjak@gmail.com>
932
933         PR target/32433
934         * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
935         (ffs_cmove): New expander to expand using ctz pattern.
936         (*ffs_cmove): Remove pattern.
937         (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
938         (ffsdi2): Expand using ctz pattern.
939         (*ffs_rex64): Remove pattern.
940
941 2007-06-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
942
943         PR rtl-optimization/32296
944         * pa.md (return): Delete pattern.
945         (return_internal): Remove "(const_int 1)" from pattern.
946         (epilogue): Use return_internal pattern for trivial returns.
947         * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
948         * pa.c (hppa_can_use_return_insn_p): Delete function.  Include "df.h".
949
950 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
951
952         * tree-ssa-pre.c (is_exception_related): New function
953         (can_value_number_operation): Use it.
954
955 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
956         
957         Fix PR tree-optimization/32540
958         Fix PR tree-optimization/31651
959
960         * tree-ssa-sccvn.c: New file.
961
962         * tree-ssa-sccvn.h: Ditto.
963         
964         * tree-vn.c: Include tree-ssa-sccvn.h
965         (val_expr_paid_d): Removed.
966         (value_table): Ditto.
967         (vn_compute): Ditto.
968         (val_expr_pair_hash): Ditto.
969         (val_expr_pair_expr_eq): Ditto.
970         (copy_vuses_from_stmt): Ditto.
971         (vn_delete): Ditto.
972         (vn_init): Ditto.
973         (shared_vuses_from_stmt): Ditto.
974         (print_creation_to_file): Moved up.
975         (sort_vuses): Ditto.
976         (sort_vuses_heap): Ditto.
977         (set_value_handle): Make non-static.
978         (make_value_handle): Ditto.
979         (vn_add): Rewritten to use sccvn lookups.
980         (vn_add_with_vuses): Ditto.
981         (vn_lookup): Ditto (and second argument removed).
982         (vn_lookup_with_vuses): Ditto.
983         (vn_lookup_or_add): Ditto (and second argument removed);
984         (vn_lookup_or_add_with_vuses): Ditto.
985         (vn_lookup_with_stmt): New.
986         (vn_lookup_or_add_with_stmt): Ditto.
987         (create_value_handle_for_expr): Ditto.
988
989         * tree-ssa-pre.c: Include tree-ssa-sccvn.h.
990         (seen_during_translate): New function.
991         (phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
992         (phi_trans_add): Ditto.
993         (constant_expr_p): FIELD_DECL is always constant.
994         (phi_translate_1): Renamed from phi_translate, add seen bitmap.
995         Use constant_expr_p.
996         Avoid infinite recursion on mutually valued expressions.
997         Change callers of vn_lookup_or_add.
998         (phi_translate): New function.
999         (compute_antic_safe): Allow phi nodes.
1000         (create_component_ref_by_pieces): Update for FIELD_DECL change.
1001         (find_or_generate_expression): Rewrite slightly.
1002         (create_expression_by_pieces): Updated for vn_lookup_or_add
1003         change.
1004         Update VN_INFO for new names.
1005         (insert_into_preds_of_block): Update for new names.
1006         (add_to_exp_gen): New function.
1007         (add_to_sets): Use vn_lookup_or_add_with_stmt.
1008         (find_existing_value_expr): Rewrite to changed vn_lookup.
1009         (create_value_expr_from): Ditto, and use add_to_exp_gen.
1010         (try_look_through_load): Removed.
1011         (try_combine_conversion): Ditto.
1012         (get_sccvn_value): New function.
1013         (make_values_for_phi): Ditto.
1014         (make_values_for_stmt): Ditto.
1015         (compute_avail): Rewritten for vn_lookup_or_add changes and to use
1016         SCCVN.
1017         (init_pre): Update for SCCVN changes.
1018         (fini_pre): Ditto.
1019         (execute_pre): Ditto.
1020
1021         * tree-flow.h (make_value_handle): Declare.
1022         (set_value_handle): Ditto.
1023         (sort_vuses_heap): Ditto.
1024         (vn_lookup_or_add_with_stmt): Ditto.
1025         (vn_lookup_with_stmt): Ditto.
1026         (vn_compute): Remove.
1027         (vn_init): Ditto.
1028         (vn_delete): Ditto.
1029         (vn_lookup): Update arguments.
1030
1031         * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
1032         (tree-vn.o): Ditto.
1033         (tree-ssa-sccvn.o): New.
1034         (OBJS-common): Add tree-ssa-sccvn.o
1035         
1036 2007-06-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1037
1038         PR c/4076
1039         * c-typeck.c (build_external_ref): Don't mark as used if called
1040         from itself.
1041         * calls.c (rtx_for_function_call): Likewise.
1042         
1043 2007-06-30  Richard Sandiford  <richard@codesourcery.com>
1044
1045         Revert:
1046
1047         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
1048
1049         * dce.c (deletable_insn_p_1): New function, split out from...
1050         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
1051         specially, not those inside PARALLELs.  Remove BODY argument
1052         and adjust recursive call accordingly.
1053         (prescan_insns_for_dce): Update call to delete_insn_p.
1054
1055 2007-06-30  Rask Ingemann Lambertsen <rask@sygehus.dk>
1056
1057         * combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
1058         (try_combine): Move potential calls to undo_all() so they happen
1059         before we commit to using the combined insns.
1060
1061 2006-06-30  Jan Hubicka  <jh@suse.cz>
1062
1063         * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
1064         code.
1065
1066 2006-06-30  Thomas Neumann  <tneumann@users.sourceforge.net>
1067
1068         * ipa.c (cgraph_postorder): Cast according to the coding conventions.
1069         (cgraph_remove_unreachable_nodes): Likewise.
1070         * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
1071         * ipa-inline.c (update_caller_keys): Cast according to the coding
1072         conventions.
1073         (cgraph_decide_recursive_inlining): Likewise.
1074         (cgraph_decide_inlining_of_small_function): Likewise.
1075         (try_inline): Likewise.
1076         (cgraph_decide_inlining_incrementally): Likewise.
1077         * ipa-pure-const.c (get_function_state): Likewise.
1078         (scan_function): Likewise.
1079         (analyze_function): Likewise.
1080         (static_execute): Likewise.
1081         * gcc/ipa-reference.c (scan_for_static_refs): Likewise.
1082         (merge_callee_local_info): Likewise.
1083         (analyze_function): Use type safe memory macros.
1084         (static_execute): Likewise. Cast according to the coding conventions.
1085         * ipa-type-escape.c (scan_for_regs): Cast according to the coding
1086         conventions.
1087         * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
1088         names.
1089         (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
1090         * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
1091         variable names.
1092
1093 2007-06-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1094
1095         PR middle-end/30024
1096         * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
1097         for complex modes (both int and real).
1098
1099 2007-06-29  Jan Hubicka  <jh@suse.cz>
1100
1101         * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
1102
1103 2007-06-29  Jan Hubicka  <jh@suse.cz>
1104
1105         PR middle-end/32372
1106         * cse.c (cse_insn): Avoid invalid sharing in between register note and
1107         the insn pattern.
1108
1109 2007-06-29  Anatoly Sokolov <aesok@post.ru>
1110
1111         PR target/32335
1112         * config/avr/avr.c: Include dataflow header file.
1113         (expand_prologue): Adjust for prologue insn change.
1114         * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
1115         inside a insn.
1116
1117 2007-06-29  Richard Guenther  <rguenther@suse.de>
1118
1119         PR middle-end/32493
1120         * gimplify.c (gimplify_call_expr): Ignore variable argument parts
1121         during type verification.
1122
1123 2007-06-29  Jan Hubicka  <jh@suse.cz>
1124
1125         * recog.c (validate_change_rtx_1): Unshare TO argument.
1126
1127 2007-06-29  Uros Bizjak  <ubizjak@gmail.com>
1128
1129         PR tree-optimization/24659
1130         * tree-vect-transform.c (vectorizable_call): Handle
1131         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
1132
1133         * config/i386/sse.md (vec_pack_sfix_v2df): New expander.
1134         * config/i386/i386.c (enum ix86_builtins)
1135         [IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
1136         (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
1137         description.
1138         (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
1139         const using def_builtin_const.
1140         (ix86_expand_binop_builtin): Remove bogus assert() that insn wants
1141         input operands in the same modes as the result.
1142         (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.
1143
1144 2007-06-29  Richard Sandiford  <rsandifo@nildram.co.uk>
1145
1146         * df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
1147         (df_set_dead_notes_for_mw): Likewise.
1148
1149 2007-06-29  Eric Botcazou  <ebotcazou@adacore.com>
1150
1151         * c-common.c (pointer_int_sum): Do the negation in sizetype.
1152
1153 2007-06-28  DJ Delorie  <dj@redhat.com>
1154
1155         * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.
1156
1157 2007-06-28  Geoffrey Keating  <geoffk@apple.com>
1158
1159         * doc/invoke.texi (C++ Dialect Options): Document
1160         fvisibility-ms-compat.
1161         * c.opt (fvisibility-ms-compat): New.
1162
1163 2007-06-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1164
1165         PR tree-opt/32417
1166         * tree-affine.c (aff_combination_add_elt): Handle
1167         pointer addition specially.
1168
1169 2007-06-28  Jakub Jelinek  <jakub@redhat.com>
1170
1171         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
1172         decl is non-external for AIX ABI.
1173
1174 2007-06-28  David Edelsohn  <edelsohn@gnu.org>
1175
1176         * config/rs6000/predicates.md (current_file_function_operand):
1177         Ensure the symbol is non-external for AIX ABI.
1178
1179 2007-06-28  Nick Clifton  <nickc@redhat.com>
1180
1181         * common.opt (fipa-matrix-reorg): Add Optimization attribute.
1182         (fdce, fdse, fpredictive-commoning): Likewise.
1183
1184 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1185
1186         PR other/31400
1187         * gcc.c (process_command): Recognize the new -static-libgfortran
1188         option.
1189
1190 2007-06-27  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1191
1192         PR target/32418
1193         * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix:
1194         Use a call clobbered hard reg instead of a pseudo reg.
1195
1196 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1197
1198         * config/sh/sh.md (load_gbr): Use correct operand constraint.
1199
1200 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1201
1202         PR target/32479
1203         * config/sh/sh.md (udivsi3): Don't wrap the sequence with
1204         REG_LIBCALL and REG_RETVAL notes.
1205         (divsi3, mulsi3): Likewise.
1206         (mulhisi3): Likewise.  Use emit_libcall_block.
1207         (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.
1208
1209 2007-06-27  Seongbae Park  <seongbae.park@gmail.com>
1210
1211         PR rtl-optimization/32481
1212         * combine.c (adjust_for_new_dest): Rescan the changed insn.
1213
1214 2007-06-27  Richard Sandiford  <richard@codesourcery.com>
1215
1216         * dce.c (deletable_insn_p_1): New function, split out from...
1217         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
1218         specially, not those inside PARALLELs.  Remove BODY argument
1219         and adjust recursive call accordingly.
1220         (prescan_insns_for_dce): Update call to delete_insn_p.
1221
1222 2007-06-27  Richard Guenther  <rguenther@suse.de>
1223
1224         PR middle-end/32492
1225         * tree.h (fold_convertible_p): Declare.
1226         * fold-const.c (fold_convertible_p): New function.
1227         * gimplify.c (gimplify_call_expr): Use fold_convertible_p
1228         instead of lang_hooks.types_compatible_p.
1229
1230 2007-06-26  Jan Hubicka  <jh@suse.cz>
1231
1232         * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
1233         * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
1234         early use validate_unshare_change.
1235         (reload_combine): Likewise.
1236         * recog.c (change_t): New field unshare.
1237         (validate_change_1): Rename from validate_change; add argument unshare.
1238         (validate_change): Turn into wrapper of validate_change_1; update
1239         prototype for bools.
1240         (validate_unshare_change): New.
1241         (confirm_change_group): Unshare changes if asked for; avoid unnecesary
1242         calls of df_insn_rescan.
1243         * recog.h (validate_change): Replace ints by bools.
1244         (validate_unshare_change): Declare.
1245
1246 2007-06-26  Kenneth Zadeck <zadeck@naturalbridge.com>
1247
1248         * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
1249         
1250 2007-06-26  Steve Ellcey  <sje@cup.hp.com>
1251
1252         * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
1253
1254 2007-06-25  Jan Hubicka  <jh@suse.cz>
1255
1256         * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
1257         uninlinable call.
1258         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
1259         cgraph_decide_inlining_incrementally): Move uninlinability checks to
1260         places other call site specific checks are performed.
1261
1262 2007-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1263
1264         PR tree-opt/32421
1265         * tree-vect-transform.c (vectorizable_operation): Convert
1266         POINTER_PLUS_EXPR over to PLUS_EXPR.
1267
1268 2007-06-25  Chao-ying Fu  <fu@mips.com>
1269
1270         * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
1271         UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
1272         Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
1273         Document GET_MODE_IBIT, and GET_MODE_FBIT.
1274
1275         * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
1276         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1277         (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
1278         SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
1279         SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
1280         ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
1281         ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
1282         SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
1283         ALL_FIXED_POINT_MODE_P): New define.
1284         (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1285         MODE_UACCUM.
1286         (GET_MODE_IBIT, GET_MODE_FBIT): New define.
1287
1288         * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
1289         MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
1290         MODE_VECTOR_UACCUM): New mode classes.
1291
1292         * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
1293         UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
1294         Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
1295         USA, UDA, and UTA.
1296
1297         * genmodes.c (struct mode_data): Add ibit and fbit fields.
1298         (blank_mode): Initialize ibit and fbit.
1299         (adj_ibit, adj_fbit): New to adjust ibit and fbit.
1300         (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1301         MODE_UACCUM.
1302         (new_adjust): Change required_class to required_class_from and
1303         required_class_to for testing within a range.
1304         (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1305         MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
1306         MODE_VECTOR_UACCUM.
1307         (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
1308         (make_fixed_point_mode): New.
1309         (_ADD_ADJUST): Change C to C1 and C2.
1310         (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
1311         use a range for machine classes.
1312         (ADJUST_IBIT, ADJUST_FBIT): New.
1313         (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
1314         CONST_MODE_FBIT.
1315         (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
1316         MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1317         Emit adjustment for ibit and fbit.
1318         (emit_mode_ibit, emit_mode_fbit): New.
1319         (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
1320
1321 2007-06-25  Nathan Froyd  <froydnj@codesourcery.com>
1322
1323         * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
1324         as the source of the set.
1325
1326 2007-06-25  Roman Zippel <zippel@linux-m68k.org>
1327
1328         * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
1329         FP_REGNO_P): Use IN_RANGE.
1330         (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
1331         (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
1332         (DATA_REG_P): Use DATA_REGNO_P.
1333         (FP_REG_P): Use FP_REGNO_P.
1334         (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
1335         * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
1336         REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
1337
1338 2007-06-24  Jan Hubicka  <jh@suse.cz>
1339
1340         PR middle-end/30563
1341         * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
1342
1343 2007-06-24  Sebastian Pop  <sebpop@gmail.com>
1344
1345         PR middle-end/32461
1346         * fold-const.c (fold_binary): Strip nops of operand 0
1347         of BIT_NOT_EXPR before calling operand_equal_p.
1348         * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
1349         * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
1350
1351 2007-06-23  Mark Mitchell  <mark@codesourcery.com>
1352
1353         * doc/extend.texi: Document that dllimport and dllexport imply
1354         default visibility.
1355         * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
1356         imported or exported declaration, including type declarations.
1357         * c-common.c (handle_visibility_attribute): Check for conflicts
1358         with dllimport/dllexport.
1359         (c_determine_visibility): Handle dllimport/dllexport as an
1360         explicit visibility atttribute.
1361
1362 2007-06-23  Richard Guenther  <rguenther@suse.de>
1363
1364         PR tree-optimization/16876
1365         PR middle-end/29478
1366         * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
1367         for CALL_EXPRs.
1368         * tree-inline.c (initialize_inlined_parameters): Do not call
1369         lang_hooks.tree_inlining.convert_parm_for_inlining.
1370         * cgraphbuild.c (initialize_inline_failed): Set inline failed
1371         reason for mismatched types.
1372         * gimplify.c (gimplify_call_expr): Verify the call expression
1373         arguments match the called function type signature.  Otherwise
1374         mark the call expression to be not considered for inlining
1375         using CALL_CANNOT_INLINE_P flag.
1376         * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
1377         edges call expression.
1378         (cgraph_decide_inlining_of_small_function): Likewise.
1379         (cgraph_decide_inlining): Likewise.
1380         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
1381         Remove define.
1382         * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
1383         * c-typeck.c (c_convert_parm_for_inlining): Remove.
1384         * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
1385         Remove declaration.
1386         (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
1387         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
1388         Remove.
1389         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
1390         convert_parm_for_inlining member.
1391
1392 2007-06-23  Richard Earnshaw  <rearnsha@arm.com>
1393
1394         PR target/31152
1395         * arm.md (negscc): Match the correct operand for optimized LT0 test.
1396         Remove optimization for GT.
1397
1398 2007-06-23  Kenneth Zadeck <zadeck@naturalbridge.com>
1399
1400         PR middle-end/32437
1401         * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
1402         is a PARALLEL.
1403         (prescan_insns_for_dce): Add extra parameter.
1404         
1405 2007-06-23  Jan Hubicka  <jh@suse.cz>
1406
1407         PR middle-end/31541
1408         * gimplify.c (mark_addressable): New function.
1409         (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
1410
1411 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
1412
1413         PR middle-end/32374
1414         * expr.c (store_constructor): Do not clobber non-zeroed memory. 
1415
1416 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
1417
1418         PR target/32413
1419         * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
1420         moves between MMX/SSE registers to at least 8 units to prevent
1421         ICE caused by non-tieable SI/HI/QImodes in SSE registers. 
1422
1423 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
1424
1425         * config/i386/i386.c (override_options): Correct x86_sahf
1426         setting condition.
1427
1428 2007-06-21  David Daney  <ddaney@avtrex.com>
1429
1430         PR target/32406
1431         * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
1432         to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
1433         (exception_receiver): Renamed to ...
1434         (nonlocal_goto_receiver): ... this.
1435
1436 2007-06-22  Roman Zippel <zippel@linux-m68k.org>
1437
1438         * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
1439         (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
1440         partial register accesses.
1441
1442 2007-06-21  Adam Nemet  <anemet@caviumnetworks.com>
1443
1444         * fold-const.c (debug_fold_checksum): Move it under
1445         ENABLE_FOLD_CHECKING.
1446
1447 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
1448
1449         PR middle-end/20623
1450         * tree.h (debug_fold_checksum): Declared.
1451         * fold-const.c (build_fold_addr_expr_with_type_1): New.
1452         (build_fold_addr_expr_with_type, build_fold_addr_expr): Use 
1453         build_fold_addr_expr_with_type_1.
1454         (fold_addr_expr, debug_fold_checksum): New.
1455         (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
1456         (fold_unary, fold_comparison, split_address_to_core_and_offset):
1457         Use fold_addr_expr.
1458         
1459 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
1460
1461         PR tree-optimization/19590
1462         * tree-vrp.c (adjust_range_with_scev): Set the range when the result
1463         of scev is a constant.
1464         * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
1465
1466 2007-06-21  Kenneth Zadeck <zadeck@naturalbridge.com>
1467
1468         * df-problems.c (df_note_bb_compute): Made computation of live
1469         info consistent with df_lr.
1470
1471 2007-06-21  Richard Guenther  <rguenther@suse.de>
1472
1473         PR tree-optimization/32453
1474         * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
1475         for pointer anti-range.
1476
1477 2007-06-21  H.J. Lu  <hongjiu.lu@intel.com>
1478
1479         * config/i386/i386.c (processor_target_table): Increase maximum
1480         skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
1481         default 64bit.
1482
1483         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
1484         byte alignment if > 8 byte alignment is preferred.
1485         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1486
1487 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
1488
1489         PR tree-optimization/31866
1490         * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
1491         if ASM_EXPR's input is not a SSA_NAME.
1492
1493         PR middle-end/32362
1494         * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
1495         but decl is a global var, instead return decl.
1496         * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
1497         even for is_global_var decls, if they are private in some outer
1498         context.
1499
1500 2007-06-21  Richard Guenther  <rguenther@suse.de>
1501
1502         PR tree-optimization/32451
1503         * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
1504
1505 2007-06-21  Christian Bruel  <christian.bruel@st.com>
1506
1507         * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
1508         * config/sh/sh.c (sh_loads_bankedreg_p): New function.
1509         (push_regs): Changed saving order or banked registers.
1510         (sh_expand_epilogue): Likewise.
1511         * config/sh/sh.h (BANKED_REGISTER_P): New macro.
1512         (FIRST_BANKED_REG): Likewise.
1513         (LAST_BANKED_REG): Likewise.
1514         * config/sh/sh.md (banked) New attribute.
1515         (in_delay_slot): Check banked attribute.
1516         
1517 2007-06-20  Sebastian Pop  <sebpop@gmail.com>
1518
1519         PR tree-optimization/32075
1520         * tree-data-ref.c (subscript_dependence_tester_1, 
1521         analyze_miv_subscript, analyze_overlapping_iterations,
1522         add_distance_for_zero_overlaps, build_classic_dist_vector,
1523         subscript_dependence_tester_1, analyze_overlapping_iterations,
1524         subscript_dependence_tester, access_functions_are_affine_or_constant_p,
1525         compute_affine_dependence, compute_all_dependences): Pass loop_nest 
1526         to evolution_function_is_affine_multivariate_p.
1527
1528 2007-06-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
1529
1530         * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
1531
1532 2007-06-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1533
1534         PR target/32335
1535         * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
1536         for TARGET_A16.
1537         * config/m32c/prologue.md (epilogue_exitd_16): New.
1538         (epilogue_reit_16): New.
1539         (epilogue_exitd): Rename to epilogue_exitd_24.
1540         (epilogue_reit): Rename to epilogue_reit_24.
1541
1542 2007-06-20  Seongbae Park  <seongbae.park@gmail.com>
1543             Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1544
1545         * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
1546         New counters.
1547         * haifa-sched.c (queue_to_ready): Don't requeue next insn
1548         if dbg_cnt (sched_insn) reaches the limit.
1549         (choose_ready): New parameter INSN_PTR and new return value.
1550         (schedule_block): Handle dbg_cnt (sched_insn). Handle
1551         the new return value from choose_ready.
1552         * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
1553         (rest_of_handle_global_alloc): New global_alloc_at_func.
1554
1555 2007-06-20  Adam Nemet  <anemet@caviumnetworks.com>
1556
1557         PR tree-optimization/25737
1558         * tree.h (struct tree_struct_field_tag): Add new field alias_set.
1559         (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
1560         * tree-flow.h (struct fieldoff): Add new field alias_set.
1561         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
1562         argument addressable_type.  Set alias_set of fieldoff.
1563         * tree-ssa-alias.c (create_sft): Add new argument alias_set.
1564         (create_overlap_variables_for): Pass alias_set from fieldoff to
1565         create_sft.
1566         * alias.c (get_alias_set): Use alias_set from SFT if set.
1567
1568 2007-06-20  Hui-May Chang  <hm.chang@apple.com>
1569
1570         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
1571         of a variable as an unsigned HOST_WIDE_INT integer.
1572
1573 2007-06-20  Zdenek Dvorak  <dvorakz@suse.cz>
1574
1575         PR rtl-optimization/32405
1576         * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
1577
1578 2007-06-20  Jakub Jelinek  <jakub@redhat.com>
1579
1580         * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
1581
1582         PR middle-end/31959
1583         * builtins.c: Include diagnostic.h.
1584         (expand_builtin_expect): Make gcc_assert more permissive.
1585         * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
1586
1587         PR inline-asm/32109
1588         * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
1589         and !allows_mem.
1590
1591         PR middle-end/32285
1592         * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
1593         if ACCUMULATE_OUTGOING_ARGS.
1594
1595 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1596
1597         * config/m68hc11/m68hc11.c: Include dataflow header file.
1598         (m68hc11_reorg): Port to dataflow.
1599
1600 2007-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
1601
1602         * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
1603         (struct df_problem.free_blocks_on_set_blocks): New field.
1604         (struct dataflow.optional_p): New field.
1605         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
1606         (df_live_set_all_dirty): New function.
1607         * df-scan.c (df_scan_alloc): Initialize optional_p.
1608         (problem_SCAN): Initialize free_blocks_on_set_blocks.
1609         * df-core.c (df_set_blocks): Removed use of
1610         DF_FIRST_OPTIONAL_PROBLEM.  Now uses
1611         df_problem.free_blocks_on_set_blocks to determine which blocks are
1612         recycled.
1613         (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
1614         (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM.  Now
1615         uses dataflow.optional_p to determine if problem should be
1616         deleted.
1617         (rest_of_handle_df_initialize): Only start live problem if 
1618         -02 or above.
1619         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
1620         * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
1621         df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
1622         (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
1623         problem_NOTE):  Initialize free_blocks_on_set_blocks.
1624         (df_lr_bb_local_compute): Recompute luids if df_live problem is
1625         not active.
1626         (df_live_set_all_dirty, df_note_alloc): New function.
1627         * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
1628         df_get_live_*.
1629         * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
1630         * postreload.c (reload_combine): Ditto.
1631         * cse.c (cse_extended_basic_block): Ditto.
1632         * regmove.c (mark_flags_life_zones): Ditto.
1633         * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
1634         erase_matching_seqs): Ditto.
1635         * bt-load.c (compute_defs_uses_and_gen): Ditto.
1636         * integrate (allocate_initial_values): Ditto.
1637         * combine.c (reg_dead_at_p): Ditto.
1638         * resource.c (mark_target_live_regs): Ditto.
1639         * sched-rgn.c (check_live_1, update_live_1): Ditto.
1640         * config/sh/sh.c (find_r0_life_regions): Ditto.
1641         * global.c (rest_of_handle_global_alloc): Only add back df_live
1642         for -O > 1.
1643         * local-alloc.c (rest_of_handle_local_alloc): Only remove
1644         df_live for -O > 1.
1645         * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
1646         df_get_live_*.
1647         (if_convert): Make sure df_live is there at -O == 1.
1648         (pass_if_after_combine): Cleanup flags.
1649         * init-regs.c (initialize_uninitialized_regs): Make sure df_live
1650         is there at -O == 1.
1651         
1652 2007-06-19  Seongbae Park  <seongbae.park@gmail.com>
1653
1654         * config/arm/arm.c (arm_get_frame_offsets): Set
1655         offsets->locals_base to avoid negative stack size.
1656         (thumb1_expand_prologue): Assert on negative stack size.
1657
1658 2007-04-19  Sebastian Pop  <sebpop@gmail.com>
1659
1660         PR tree-optimization/32367
1661         * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side 
1662         of the chrec has no evolution in that loop.
1663         * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
1664
1665 2007-06-19  Bob Wilson  <bob.wilson@acm.org>
1666
1667         * config/xtensa/xtensa.c: Include "df.h".
1668         (xtensa_builtin_saveregs): Use adjust_address instead of
1669         change_address.
1670         (xtensa_va_start): Invoke make_tree with sizetype for
1671         expand_builtin_saveregs and then convert the result to a pointer.
1672         Use POINTER_PLUS_EXPR.  Use size_int instead of build_int_cst.
1673         (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
1674         Subtract argument size from index value as integers and then use
1675         POINTER_PLUS_EXPR to add the result to the array address.
1676         
1677 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1678
1679         PR target/32335
1680         * config/m32c/m32c.c: Include dataflow header file.
1681         (m32c_emit_prologue): Adjust for prologue insn change.
1682         * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
1683         once inside a PARALLEL. Assume frame size passed in operand 0
1684         includes space to save the fb register.
1685         (prologue_enter_24): Likewise.
1686         (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
1687
1688 2007-06-19  David Daney  <ddaney@avtrex.com
1689
1690         PR target/32313
1691         * config/mips/mips.md (cprestore): Mark $gp as used.
1692
1693 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1694
1695         PR target/32369
1696         * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
1697         (frv_ifcvt_modify_insn): Likewise.
1698
1699 2007-06-19  Richard Guenther  <rguenther@suse.de>
1700
1701         * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
1702         only handle positive offsets that fit in a HOST_WIDE_INT.
1703
1704 2007-06-19  Uros Bizjak  <ubizjak@gmail.com>
1705
1706         * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
1707         result of rsqrt insn for zero input argument to avoid NaN.
1708
1709 2007-06-19  Richard Guenther  <rguenther@suse.de>
1710
1711         PR middle-end/31950
1712         * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
1713
1714 2007-06-19  Jakub Jelinek  <jakub@redhat.com>
1715
1716         PR tree-optimization/32353
1717         * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
1718
1719 2007-06-19  Nick Clifton  <nickc@redhat.com>
1720
1721         * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
1722
1723 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
1724
1725         PR target/32389
1726         * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
1727         * config/i386/i386.c (assign_386_stack_local): Assert that
1728         SLOT_VIRTUAL is valid only before virtual regs are instantiated.
1729         (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
1730         Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
1731         * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
1732
1733 2007-06-18  Steve Ellcey  <sje@cup.hp.com>
1734
1735         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
1736
1737 2007-06-18  Seongbae Park  <seongbae.park@gmail.com>
1738
1739         PR rtl-optimization/32321
1740         * gcse.c (replace_store_insn): Update the note before
1741         calling emit_insn_after.
1742
1743 2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>
1744
1745         PR middle-end/32355
1746         * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
1747         cse_main.
1748         * df-problems.c (df_note_bb_compute): Fix dumping info.
1749         
1750 2007-06-18  Kazu Hirata  <kazu@codesourcery.com>
1751
1752         * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
1753         insn with emit_jump_insn.
1754
1755 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
1756
1757         PR tree-optimization/32383
1758         * targhooks.c (default_builtin_reciprocal): Add new bool argument.
1759         * targhooks.h (default_builtin_reciprocal): Update prototype.
1760         * target.h (struct gcc_target): Update builtin_reciprocal.
1761         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
1762         * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
1763         where arg1 is not SSA_NAME.  Pass true to targetm.builtin_reciprocal
1764         when fndecl is in BUILT_IN_MD class.
1765         (execute_convert_to_rsqrt): Ditto.
1766
1767         * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
1768         argument.  Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
1769         Convert BUILT_IN_SQRTF code only  when md_fn is false.
1770
1771 2007-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1772
1773         * bt-load.c (move_btr_def): Fix the order of arguments
1774         to validate_replace_rtx.
1775
1776 2007-06-18  Nathan Sidwell  <nathan@codesourcery.com>
1777
1778         * config/m68k/m68k-devices.def: Add 54450..54455.
1779
1780 2007-06-17  Uros Bizjak  <ubizjak@gmail.com>
1781
1782         PR rtl-optimization/32366
1783         * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
1784         FLOAT_EXTEND]: Prevent non-scalar modes from entering
1785         significand_size.
1786
1787 2007-06-17  Kenneth Zadeck <zadeck@naturalbridge.com>
1788
1789         PR middle-end/32349
1790         * modulo-sched (generate_reg_moves): Added rescan parameter and if
1791         this is true, rescan insn being modified.
1792         (sms_schedule): Added rescan parameter.
1793         (rest_of_handle_sms): Moved freeing of dominance info to before
1794         getting out of cfg_layout.
1795         
1796 2007-06-17  Nathan Sidwell  <nathan@codesourcery.com>
1797
1798         * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
1799         * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
1800         appropriate.
1801
1802         * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
1803         FL_CF_EMAC from the entry for isac.
1804
1805         * config/m68k/predicates.md (const_call_operand): Adjust comment.
1806         (const_sibcall_operand): New.
1807         (sibcall_operand): Use it.
1808         * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
1809         (m68k_isas): ISAC does not imply FPU or EMAC.
1810         (override_options): Add ISA_C logic for symbolic jump & call.
1811
1812 2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
1813
1814         * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
1815         return mode from the builtin itself.
1816         (sparc_fold_builtin): Fix cast of zero constant.
1817
1818 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
1819
1820         * targhooks.c (default_builtin_reciprocal): New default target hook.
1821         * targhooks.h (default_builtin_reciprocal): Add prototype.
1822         * hooks.c (hook_tree_tree_bool_null): Remove hook.
1823         * hooks.h (hook_tree_tree_bool_null): Remove prototype.
1824         * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
1825         default_builtin_reciprocal.
1826
1827 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
1828
1829         PR middle-end/31723
1830         * hooks.c (hook_tree_tree_bool_null): New hook.
1831         * hooks.h (hook_tree_tree_bool_null): Add prototype.
1832         * tree-pass.h (pass_convert_to_rsqrt): Declare.
1833         * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
1834         * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
1835         and convert it to reciprocal a*rfunc(b).
1836         (execute_convert_to_rsqrt): New function.
1837         (gate_convert_to_rsqrt): New function.
1838         (pass_convert_to_rsqrt): New pass definition.
1839         * target.h (struct gcc_target): Add builtin_reciprocal.
1840         * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
1841         (TARGET_INITIALIZER): Initialize builtin_reciprocal with
1842         TARGET_BUILTIN_RECIPROCAL.
1843         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
1844
1845         * config/i386/i386.h (TARGET_RECIP): New define.
1846         * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
1847         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1848         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1849         and not optimizing for size.
1850         (*rcpsf2_sse): New insn pattern.
1851         (*rsqrtsf2_sse): Ditto.
1852         (rsqrtsf2): New expander.  Expand by calling ix86_emit_swsqrtsf
1853         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1854         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1855         and not optimizing for size.
1856         (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
1857         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1858         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1859         and not optimizing for size.
1860         * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
1861         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1862         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1863         and not optimizing for size.
1864         (*sse_rsqrtv4sf2): Do not export.
1865         (sqrtv4sf2): Ditto.
1866         (sse_rsqrtv4sf2): New expander.  Expand by calling ix86_emit_swsqrtsf
1867         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1868         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1869         and not optimizing for size.
1870         (sqrtv4sf2): Ditto.
1871         * config/i386/i386.opt (mrecip): New option.
1872         * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
1873         (ix86_emit_swsqrtsf): Ditto.
1874         * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
1875         (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
1876         builtin definition.
1877         (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
1878         ix86_expand_unop1_builtin.
1879         (ix86_emit_swdivsf): New function.
1880         (ix86_emit_swsqrtsf): Ditto.
1881         (ix86_builtin_reciprocal): New function.
1882         (TARGET_BUILTIN_RECIPROCAL): Use it.
1883         (ix86_vectorize_builtin_conversion): Rename from
1884         ix86_builtin_conversion.
1885         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
1886         * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
1887         "i386 and x86_64 Options" section.
1888         (Intel 386 and AMD x86_64 Options): Document -mrecip.
1889
1890 2007-06-15  Andrew Pinski <andrew_pinski@playstation.sony.com>
1891             Zdenek Dvorak <dvorakz@suse.cz>
1892             Richard Guenther  <rguenther@suse.de>
1893             Kaz Kojima  <kkojima@gcc.gnu.org>
1894
1895         * tree-vrp.c (compare_values_warnv): Convert val2 to
1896         the type of val1.
1897         (extract_range_from_assert): Create
1898         POINTER_PLUS_EXPR for pointer types.
1899         (extract_range_from_binary_expr): Handle
1900         only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
1901         for pointer types.
1902         * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
1903         * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
1904         POINTER_PLUS_EXPR as PLUS_EXPR.
1905         (number_of_iterations_lt_to_ne):
1906         For pointer types, use sizetype when
1907         creating MINUS_EXPR/PLUS_EXPRs.
1908         (assert_loop_rolls_lt): For pointer types, use sizetype when
1909         creating MINUS_EXPR/PLUS_EXPRs.
1910         (number_of_iterations_le): Likewise.
1911         (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
1912         (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
1913         like PLUS_EXPR and MINUS_EXPR.
1914         * tree-pretty-print.c (dump_generic_node): Handle
1915         POINTER_PLUS_EXPR.
1916         (op_prio): Likewise.
1917         (op_symbol_1): Likewise.
1918         * optabs.c (optab_for_tree_code): Likewise.
1919         * tree-ssa-loop-manip.c (create_iv): Handle pointer base
1920         specially.
1921         * tree-tailcall.c (process_assignment): Mention
1922         POINTER_PLUS_EXPR in a TODO comment.
1923         * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or 
1924         MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
1925         not used with a pointer and an integer type.
1926         * tree-scalar-evolution.c (add_to_evolution_1): Convert the
1927         increment using chrec_convert_rhs instead of chrec_convert.
1928         (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
1929         PLUS_EXPR except for the right hand side's type will be
1930         sizetype.
1931         (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
1932         (fold_used_pointer_cast): Kill.
1933         (pointer_offset_p): Kill.
1934         (fold_used_pointer): Kill.
1935         (pointer_used_p): Kill.
1936         (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
1937         call fold_used_pointer.
1938         (instantiate_parameters_1): Convert the increment
1939         using chrec_convert_rhs instead of chrec_convert.
1940         Handle POINTER_PLUS_EXPR as PLUS_EXPR.
1941         * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
1942         instead of PLUS_EXPR.
1943         (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
1944         PLUS_EXPR for pointers.
1945         (std_gimplify_va_arg_expr): Likewise.
1946         (fold_builtin_memory_op): Likewise.
1947         (fold_builtin_strstr): Likewise.
1948         (fold_builtin_strchr): Likewise.
1949         (fold_builtin_strrchr): Likewise.
1950         (fold_builtin_strpbrk): Likewise.
1951         (expand_builtin_memory_chk): Likewise.
1952         (fold_builtin_memory_chk): Likewise.
1953         (std_expand_builtin_va_start): Use
1954         sizetype for the call to make_tree and then convert
1955         to the pointer type.
1956         (fold_builtin_memchr): Use POINTER_PLUS_EXPR
1957         instead of PLUS_EXPR for adding to a pointer.
1958         (std_gimplify_va_arg_expr): Use fold_build2 for
1959         the creating of POINTER_PLUS_EXPR.  For the BIT_AND_EXPR, cast
1960         the operands to sizetype first and then cast the BIT_AND_EXPR
1961         back to the pointer type.
1962         * fold-const.c (build_range_check): Handle pointer types
1963         specially.
1964         (extract_array_ref): Look for POINTER_PLUS_EXPR instead
1965         of PLUS_EXPR's. Make sure the offset is converted to
1966         sizetype.
1967         (try_move_mult_to_index): Strip the NOPs from the offset.
1968         Remove code argument and replace all uses with PLUS_EXPR.
1969         (fold_to_nonsharp_ineq_using_bound): Handle pointer types
1970         specially. Don't use a pointer type for MINUS_EXPR.
1971         (fold_unary): Handle for (T1)(X op Y),
1972         only p+ as that is the only as that can be handled for
1973         binary operators now.
1974         (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
1975         POINTER_PLUS_EXPR.
1976         <case PLUS_EXPR>: Add folding of PTR+INT into
1977         PTR p+ INT.
1978         Don't call try_move_mult_to_index.
1979         <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
1980         into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
1981         (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
1982         Don't call try_move_mult_to_index.
1983         (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
1984         (tree_expr_nonzero_p): Likewise.
1985         (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
1986         of PLUS_EXPR for the complex expression folding.
1987         * tree-chrec.c (chrec_fold_plus_poly_poly): If the
1988         first chrec is a pointer type, then the second should
1989         be sizetype and not the first's type.
1990         For POINTER_PLUS_EXPR, use a different right hand side type.
1991         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
1992         (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
1993         different right hand side type.
1994         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
1995         (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
1996         instead of PLUS_EXPR.
1997         When either operand is zero, convert the other operand.
1998         (chrec_apply): Use chrec_convert_rhs
1999         on the argument x instead of chrec_convert.
2000         (reset_evolution_in_loop): For pointer types, the new_evol
2001         should be sizetype.
2002         (convert_affine_scev): For POINTER_PLUS_EXPR, use a
2003         different right hand side type.
2004         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
2005         (chrec_convert_rhs): New function.
2006         (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
2007         different right hand side type.
2008         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
2009         * tree-chrec.h (chrec_convert_rhs): New prototype.
2010         (build_polynomial_chrec): For pointer types, the right hand
2011         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
2012         POINTER_PLUS_EXPR instead of PLUS_EXPR's.
2013         Remove subtraction case as it is always addition now.
2014         Make sure the offset is converted to sizetype.
2015         (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
2016         Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
2017         * tree-ssa-loop-ivopts.c (determine_base_object): Abort for 
2018         PLUS_EXPR in pointer type.
2019         Handle POINTER_PLUS_EXPR.
2020         (tree_to_aff_combination): Likewise.
2021         (force_expr_to_var_cost): Likewise.
2022         (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
2023         instead of PLUS_EXPR for pointers.
2024         * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
2025         instead of PLUS_EXPR of pointer types.
2026         * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
2027         as PLUS_EXPR.
2028         (check_va_list_escapes): Likewise.
2029         (check_all_va_list_escapes): Likewise.
2030         * dwarf2out.c (loc_descriptor_from_tree_1):
2031         Handle POINT_PLUS_EXPR as a PLUS_EXPR.
2032         * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
2033         (string_constant): Likewise.
2034         * tree-ssa-address.c (tree_mem_ref_addr): When adding
2035         the offset to the base, use POINTER_PLUS_EXPR.
2036         (add_to_parts): Convert the index to sizetype.
2037         (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
2038         * matrix-reorg.c (collect_data_for_malloc_call): Stmt
2039         will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
2040         Offset only holds something for PLUS_EXPR.
2041         (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
2042         a PLUS_EXPR.
2043         (analyze_transpose): POINTER_PLUS_EXPR will only show up now
2044         and not PLUS_EXPR.
2045         (analyze_accesses_for_modify_stmt): Likewise.
2046         Remove comment about the type being integral type as it is
2047         wrong now.
2048         (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
2049         PLUS_EXPR.
2050         (transform_access_sites): POINTER_PLUS_EXPR will only show up now
2051         and not PLUS_EXPR.
2052         Correct the type which the artimentic is done in (is now
2053         sizetype).
2054         Reindent one loop.
2055         * tree-data-ref.c (split_constant_offset): Handle
2056         POINTER_PLUS_EXPR
2057         * tree-affine.c (tree_to_aff_combination): Likewise.
2058         * c-typeck.c (build_unary_op): For pointers create the increment
2059         as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
2060         for pointers.
2061         * gimplify.c (gimplify_self_mod_expr): Create a
2062         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
2063         (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
2064         * tree.def (POINTER_PLUS_EXPR): New tree code.
2065         * tree-predcom.c (ref_at_iteration): If we have a pointer
2066         type do the multiplication in sizetype.
2067         * tree-mudflap.c (mf_xform_derefs_1): Create a
2068         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
2069         * tree-ssa-forwprop.c 
2070         (forward_propagate_addr_into_variable_array_index):
2071         Don't expect there to be a cast for the index as that
2072         does not exist anymore.
2073         (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
2074         instead of PLUS_EXPR.
2075         Don't check for the first operand of the POINTER_PLUS_EXPR
2076         was the index as it cannot be.
2077         Call forward_propagate_addr_into_variable_array_index with
2078         the SSA_NAME instead of the statement.
2079         * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
2080         (compare_constant): Likewise.
2081         (copy_constant): Likewise.
2082         (compute_reloc_for_constant): Likewise.
2083         (output_addressed_constants): Likewise.
2084         (initializer_constant_valid_p): Likewise.
2085         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2086         Convert the MIN/MAX of the inner type to the outer
2087         type before comparing them.
2088         * tree-ssa-loop-prefetch.c (idx_analyze_ref):  Handle
2089         POINTER_PLUS_EXPR instead of PLUS_EXPR.
2090         (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
2091         of PLUS_EXPR for pointers.
2092         * tree-inline.c (estimate_num_insns_1): Handle
2093         POINTER_PLUS_EXPR.
2094         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): 
2095         Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
2096         (bump_vector_ptr): Create a POINTER_PLUS_EXPR
2097         instead of PLUS_EXPR for the pointer increment statement.
2098         (vect_update_ivs_after_vectorizer): For pointer types, create
2099         POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
2100         MULT_EXPR in sizetype.
2101         (vect_gen_niters_for_prolog_loop): Add a cast when creating
2102         byte_misalign.
2103         * tree-object-size.c (plus_expr_object_size): Handle
2104         POINTER_PLUS_EXPR instead of PLUS_EXPR.  Removing all the extra
2105         code which is trying to figure out which side is a pointer and 
2106         is the index.
2107         (check_for_plus_in_loops_1): Likewise.
2108         (check_for_plus_in_loops): Likewise.
2109         * c-common.c (pointer_int_sum): Create a
2110         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
2111         * tree-ssa-structalias.c (handle_ptr_arith): Handle
2112         only POINTER_PLUS_EXPR.  Removing all the extra
2113         code which is trying to figure out which side is a pointer and 
2114         is the index.
2115         * tree-cfg.c (verify_expr): Add extra checking for pointers and
2116         PLUS_EXPR and MINUS_EXPR.
2117         Also add checking to make sure the operands of POINTER_PLUS_EXPR
2118         are correct.
2119         * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
2120         with make_tree, instead of a pointer type.
2121         * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
2122         for pointers instead of PLUS_EXPR.
2123         (s390_gimplify_va_arg): Likewise.
2124         * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
2125         instead of PLUS_EXPR when doing addition on pointer
2126         types.  Use sizetype for the second operand.
2127         (spu_gimplify_va_arg_expr): Likewise.
2128         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use 
2129         POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
2130         a pointer.  Don't create a BIT_AND_EXPR for pointer types.
2131         * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
2132         for the pointer addition and also use size_int/sizetype
2133         for the offset.
2134         (ix86_gimplify_va_arg): Likewise.
2135         Perform BIT_AND_EXPR on sizetype arguments.
2136         * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
2137         and convert its result to a pointer type.  Use POINTER_PLUS_EXPR
2138         for the pointer additions and also use size_int for the offsets.
2139         (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
2140         additions and also use size_int for the offsets.  Perform
2141         BIT_AND_EXPR on sizetype arguments.
2142         * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
2143         POINTER_PLUS_EXPR for pointers and create the
2144         BIT_AND_EXPR in sizetype.
2145         * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
2146         instead of PLUS_EXPR for pointer addition.
2147         (rs6000_va_start): Likewise.
2148         Also use sizetype for the offset.
2149         * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
2150         as PLUS_EXPR/MINUS_EXPR.
2151         (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
2152         PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
2153         Don't use BIT_AND_EXPR on a pointer type, convert the
2154         expression to sizetype first.
2155         * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
2156         for pointers.
2157         (mips_gimplify_va_arg_expr): Likewise.
2158         Don't create BIT_AND_EXPR in a pointer type.
2159
2160 2007-06-15  Eric Christopher  <echristo@apple.com>
2161
2162         * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
2163         (x86_64-*-darwin*): Ditto.
2164         * config/i386/darwin.h (CRTEND_SPEC): New. Add support
2165         for above.
2166
2167 2007-06-15  Matthew Wilcox <matthew@wil.cx>
2168
2169         * doc/extend.texi: Document behavior of __attribute__((aligned))
2170         on typedefs.
2171
2172 2007-06-15  Mark Mitchell  <mark@codesourcery.com>
2173
2174         * rtlanal.c (note_stores): Improve documentation.
2175
2176 2007-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2177
2178         * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
2179         LOCAL_LABEL_PREFIX): Delete.
2180         * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
2181         (bfin_internal_label): Delete.
2182
2183 2007-06-15  Uros Bizjak  <ubizjak@gmail.com>
2184
2185         * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
2186         define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
2187         otherwise define to LIBGCC2_TF_CEXT.
2188         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
2189         (LIBGCC_TF_CEXT): Ditto.
2190         (TF_SIZE): Ditto.
2191
2192 2007-06-14  Seongbae Park  <seongbae.park@gmail.com>
2193
2194         PR rtl-optimization/32339
2195         * df-scan.c (df_uses_record): Don't modify flags but just add to
2196         it for df_ref_record.
2197
2198 2007-06-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2199
2200         * tree-mudflap.c: Fix whitespace issues.
2201
2202 2007-06-15  Kazu Hirata  <kazu@codesourcery.com>
2203
2204         * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
2205
2206 2007-06-14  Eric Christopher  <echristo@apple.com>
2207
2208         * config/i386/sse.md (movdi_to_sse): Rewrite body.
2209         (movv4sf): Use gcc_unreachable instead of abort.
2210
2211 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
2212
2213         PR target/32268
2214         * config/i386/sfp-machine.h (CMPtype): New define.
2215         (mach stubs): Use CMPtype instead of int as a return type.
2216
2217 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
2218
2219         * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
2220         config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
2221         config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
2222         config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
2223         config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
2224         config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
2225         config/soft-fp/soft-fp.h: Update from glibc CVS.
2226
2227 2007-06-14  Bernd Schmidt  <bernd.schmidt@analog.com>
2228
2229         * config/bfin/uclinux.h (MFWRAP_SPEC): New.
2230
2231 2007-06-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2232
2233         PR target/32341
2234         * config/v850/v850.c: Include dataflow header file.
2235         (substitute_ep_register): Fix typo.
2236
2237 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
2238
2239         * configure.ac: Fix earlier checkin.
2240         * configure: Regenerated.
2241
2242 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
2243
2244         * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
2245         * aclocal.m4: Regenerate.
2246         * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
2247         ACX_PROG_CC_WARNINGS_ARE_ERRORS,
2248         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
2249         * configure: Regenerate.
2250         * Makefile.in (LOOSE_WARN): Subst loose_warn.
2251
2252         * Makefile.in (quickstrap): Build libgcc too.
2253
2254 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
2255
2256         * configure.ac: Add --enable-checking=df.  Explicitly mention that
2257         the variables are initialized as for "release".
2258         * df-core.c: Use it.
2259         * configure: Regenerate.
2260         * config.in: Regenerate.
2261
2262 2007-06-14  Bob Wilson  <bob.wilson@acm.org>
2263
2264         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
2265         validate_replace_rtx instead of replace_rtx.
2266         (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
2267
2268 2007-06-14  Danny Smith  <dannysmith@users.sourceforge.net>
2269
2270         * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
2271         (DWARF2_UNWIND_INFO): Override default if configured with
2272         SJLJ EH disabled.
2273         * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
2274         (ENDFILE_SPEC): Add crtend.o.
2275         * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
2276         (ENDFILE_SPEC): Add crtend.o.
2277         (TARGET_USE_JCR_SECTION): Define.
2278         (MD_UNWIND_SUPPORT): Define for 32-bit target.
2279
2280         * config/i386/cygming-crtbegin.c: New file.
2281         * config/i386/cygming-crtend.c: New file.
2282
2283 2007-06-14  Pascal Obry Pascal Obry  <obry@adacore.com>
2284
2285         * config/i386/w32-unwind.h: New file.
2286
2287 2007-06-13  Eric Christopher  <echristo@apple.com>
2288
2289         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
2290         the user set a value below STACK_BOUNDARY.
2291
2292 2007-06-13  Thiemo Seufer  <ths@networkno.de>
2293
2294         * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
2295         imply -lpthread for -pthread.
2296
2297 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
2298
2299         * basic-block.h: Remove the prototype for
2300         free_basic_block_vars.
2301         * cfglayout.h: Remove the prototype for
2302         insn_locators_initialize.
2303         * tree.h: Remove the prototype for emit_line_note.
2304
2305         * tree-ssa-pre.c (mergephitemp): Remove.
2306         (init_pre): Don't use mergephitemp.
2307
2308 2007-06-13  Eric Christopher  <echristo@apple.com>
2309
2310         * config/i386/i386.c (override_options): If we've specified
2311         an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
2312
2313 2007-06-13  Bob Wilson  <bob.wilson@acm.org>
2314
2315         * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
2316         is defined.
2317
2318 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2319
2320         * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
2321         * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
2322         (eh_store_handler): New pattern.
2323         (eh_return): Emit it instead of a plain move.
2324
2325 2007-06-13  Uros Bizjak  <ubizjak@gmail.com>
2326
2327         * config/i386/i386.c (ix86_init_mmx_sse_builtins)
2328         [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
2329         [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
2330         def_builtin_const.
2331
2332 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2333
2334         * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
2335         (find_next_insn_start, find_load): New functions.
2336         (bfin_reorg): Use them to deal with the fact that parallel insns are
2337         no longer represented as a SEQUENCE.
2338
2339 2007-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2340
2341         * config/sparc/sparc.c (sparc_override_options): Initialize
2342         fpu mask correctly.
2343
2344 2007-06-13  Dave Korn  <dave.korn@artimi.com>
2345
2346         * config/i386/i386.c (ix86_eax_live_at_start_p): Use
2347         df_get_live_out.
2348
2349 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
2350
2351         * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
2352         config/sh/divcost-analysis, dbgcnt.def, df-core.c,
2353         df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
2354         tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
2355         tree-vect-transform.c: Fix comment typos.  Follow spelling
2356         conventions.
2357
2358 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
2359
2360        * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
2361        to the exit block use set.
2362        (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring". 
2363        * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
2364        * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
2365
2366 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
2367
2368         * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
2369         * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
2370         to indicate an error.
2371         (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters):
2372         New functions.
2373         (dbg_cnt_process_opt): Print an error on a bad argument.
2374         * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
2375         * common.opt (-fdbg-cnt-list): New.
2376         * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
2377
2378 2007-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2379
2380         * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
2381         flag on ref-all pointers.
2382
2383 2007-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2384
2385         PR middle-end/31579
2386         * expr.c (expand_expr_addr_expr_1): Call expand_expr
2387         for the offset with the modifier as EXPAND_INITIALIZER
2388         if the modifier is EXPAND_INITIALIZER.
2389         (expand_expr_real_1 <case INTEGER_CST>): Don't force to
2390         a register if we had an overflow.
2391
2392 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2393
2394         * real.c (real_isfinite): New.
2395         (real_sqrt): Use it.
2396         * real.h (real_isfinite): New.
2397         * builtins.c: Use it.
2398
2399 2007-06-12  Ian Lance Taylor  <iant@google.com>
2400             Daniel Berlin  <dberlin@dberlin.org>
2401
2402         PR libstdc++/29286
2403         * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
2404         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
2405         (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
2406         (DECL_NO_TBAA_P): Define.
2407         (struct tree_decl_common): Add no_tbaa_flag field.
2408         * tree-ssa-structalias.c (struct variable_info): Add
2409         no_tbaa_pruning field.
2410         (new_var_info): Initialize no_tbaa_pruning field.
2411         (unify_nodes): Copy no_tbaa_pruning field.
2412         (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
2413         (dump_solution_for_var): Print no_tbaa_pruning flag.
2414         (set_uids_in_ptset): Add no_tbaa_pruning parameter.  Change all
2415         callers.
2416         (compute_tbaa_pruning): New static function.
2417         (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
2418         Call compute_tbaa_pruning.
2419         * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
2420         * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
2421         * gimple-low.c (lower_stmt): Likewise.
2422         * tree-gimple.c (is_gimple_stmt): Likewise.
2423         * tree-ssa-operands.c (get_expr_operands): Likewise.
2424         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2425         * tree-inline.c (estimate_num_insns_1): Likewise.
2426         (copy_result_decl_to_var): Likewise.
2427         * expr.c (expand_expr_real_1): Likewise.
2428         * tree-pretty-print.c (dump_generic_node): Likewise.
2429         * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
2430         * omp-low.c (omp_copy_decl_2): Likewise.
2431         * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
2432         * doc/c-tree.texi (Expression trees): Document
2433         CHANGE_DYNAMIC_TYPE_EXPR.
2434
2435 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2436
2437         * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
2438         with !HONOR_NANS and !HONOR_INFINITIES.
2439         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2440
2441 2007-06-12  Tristan Gingold  <gingold@adacore.com>
2442
2443         * gcov.c: Comments updated.
2444         (source_info): Add file_time field.
2445         (source_index): New variable.
2446         (mutiple_files): New variable.
2447         (generate_results): New function extracted from process_file.
2448         (process_file): Save and restore chain of functions, generate
2449         results and free structures only if not merging results.
2450         (release_structures): File names are now freed in create_file_names
2451         (create_file_names): Free previous file names.
2452         (find_source): File date is now read here and modifications in
2453         source files is checked here.
2454         (read_graph_file): Only reverse order of functions for the current
2455         object file.
2456         (make_gcov_file_name): Do not generate long names if input_name is
2457         NULL.
2458         (output_lines): If merging results do not display graph, data and
2459         runs informations.
2460         Checking source file modification is done in find_source.
2461
2462         * doc/gcov.texi: Append an s to sourcefile.
2463
2464 2007-06-12  Bernd Schmidt  <bernd.schmidt@analog.com>
2465
2466         * config/bfin/bfin.md (UNSPEC_NOP): New constant.
2467         (forced_nop): New pattern.
2468         * config/bfin/bfin.c: Include "df.h".
2469         (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
2470         (bfin_discover_loop): Use df_get_live_in instead of
2471         global_live_at_start.
2472         (bfin_reorder_loops): Pass 0 to cfg_layout_initialize.  Call
2473         df_analyze when done.
2474         (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
2475         the insns.  Use QImode for the final insn in a bundle.  Call
2476         df_insn_rescan on generated NOPs; use gen_forced_nop instead of
2477         gen_nop.
2478         (reorder_var_tracking_notes): New function.
2479         (bfin_reorg): Pass no argument to split_all_insns.  Don't call
2480         update_life_info.  Call df_analyze after scheduling and bundle
2481         generation.  Call reorder_var_tracking_notes if generating these
2482         notes.  Call df_finish_pass at the end.
2483
2484 2007-06-12  Dirk Mueller  <dmueller@suse.de>
2485
2486         * optabs.c (debug_optab_libfuncs): fix gcc_assert to
2487         a comparison, not an assignment.
2488
2489 2007-06-12  Olivier Hainque  <hainque@adacore.com>
2490
2491         * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
2492         Request walking the subtrees only, leaving the current is_lhs/val_only
2493         untouched.
2494         (convert_non_local_reference): Likewise.
2495
2496 2007-06-12  Nathan Sidwell  <nathan@codesourcery.com>
2497
2498         * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
2499
2500 2007-06-12  Richard Guenther  <rguenther@suse.de>
2501
2502         PR tree-optimization/15353
2503         PR tree-optimization/31657
2504         * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
2505         * timevar.def: Add TV_TREE_IFCOMBINE.
2506         * tree-pass.h (pass_tree_ifcombine): Declare.
2507         * tree-ssa-ifcombine.c: New file.
2508         * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
2509         * tree-flow.h (blocks_in_phiopt_order): Declare.
2510         * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
2511         (tree-ssa-ifcombine.o): New dependencies.
2512
2513 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
2514
2515         PR rtl-optimization/32293
2516         * combine.c (simplify_if_then_else): Truncate return from
2517         nonzero_bits() to correct mode.
2518
2519 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
2520
2521         * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
2522         into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
2523
2524 2007-06-11  Diego Novillo  <dnovillo@google.com>
2525
2526         * Makefile.in (reload1.o-warn): Remove.
2527
2528 2007-06-11  Seongbae Park <seongbae.park@gmail.com>
2529
2530         * combine.c (subst): Use reg_overlap_mentioned_p
2531         instead of comparing register numbers directly.
2532
2533 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2534
2535         * reload1.c (mark_home_live_1): Use the mode parameter.
2536
2537 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2538
2539         * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
2540         df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
2541         word "deferred".
2542         * df-core.c: Ditto.
2543
2544 2007-06-11  Daniel Berlin  <dberlin@dberlin.org>
2545
2546         * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
2547
2548 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
2549
2550         * config/i386/i386.md ("*movtf_internal): Penalize moves to and
2551         from integer registers.
2552         (FP mode splitters): Handle TFmode.
2553
2554 2007-06-11  Eric Botcazou  <ebotcazou@adacore.com>
2555
2556         * tree-ssa-structalias.c (find_what_p_points_to): Return false
2557         for ref-all pointers that point-to anything.
2558
2559 2007-06-11  Joseph Myers  <joseph@codesourcery.com>
2560
2561         * config/arm/arm.c (arm_output_dwarf_dtprel,
2562         TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
2563
2564 2007-06-11  Bernd Schmidt  <bernd.schmidt@analog.com>
2565
2566         * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
2567         movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
2568         to memory moves.
2569
2570 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
2571
2572         * gcc/tree.c (signed_or_unsigned_type_for): New.
2573         (unsigned_type_for): Use signed_or_unsigned_type_for.
2574         (signed_type_for): Use signed_or_unsigned_type_for.
2575         * gcc/tree.h (signed_or_unsigned_type_for): New.
2576         (get_signed_or_unsigned_type): Remove.
2577         * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
2578         lang_hooks.types.signed_type
2579         (size_diffop): Likewise.
2580         (all_ones_mask_p): Likewise.
2581         (build_range_check): Likewise.
2582         (fold_cond_expr_with_comparison): Likewise.
2583         (fold_cond_expr_with_comparison): Likewise.
2584         (unextend): Likewise.
2585         (extract_muldiv_1): Likewise.
2586         (fold_single_bit_test_into_sign_test): Likewise.
2587         (fold_binary): Likewise.
2588         (fold_ternary): Likewise.
2589         (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
2590         instead of get_signed_or_unsigned_type.
2591         * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
2592         (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
2593         * gcc/expr.c (signed_or_unsigned_type_for): Use
2594         signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
2595         * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
2596         (lhd_signed_or_unsigned_type): Remove.
2597         * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
2598         signed_or_unsigned_type.
2599         (lhd_signed_or_unsigned_type): Remove.
2600         * gcc/expmed.c (make_tree): Use signed_type_for instead of
2601         lang_hooks.types.signed_type.
2602         * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
2603         c_common_signed_type instead of lang_hooks.types.signed_type.
2604         (c_common_unsigned_type): New.
2605         (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
2606         (shorten_compare): Use c_common_unsigned_type instead of
2607         c_common_signed_or_unsigned_type.
2608         (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
2609         unsigned_type_for.
2610         * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
2611         lang_hooks.types.signed_type.
2612         * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
2613         (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
2614         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
2615         * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
2616         instead of unsigned_type_for.
2617         * gcc/c-decl.c (groakdeclarator): Likewise.
2618         * gcc/c-typeck.c (convert_for_assignment): Likewise.
2619         * gcc/c-common.h (c_common_unsigned_type): New.
2620
2621 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
2622
2623         PR target/32280
2624         * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
2625         * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
2626
2627 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
2628
2629         PR middle-end/32279
2630         * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
2631         into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
2632
2633 2007-06-10  Jan Sjodin  <jan.sjodin@amd.com>
2634             Sebastian Pop  <sebpop@gmail.com>
2635
2636         * lambda-code.c (remove_iv): New.
2637         (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
2638
2639 2007-06-10  Zdenek Dvorak  <dvorakz@suse.cz>
2640
2641         * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
2642         * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
2643         * tree-ssa-loop-prefetch.c: Include optabs.h.
2644         (FENCE_FOLLOWING_MOVNT): New macro.
2645         (struct mem_ref): Add independent_p and storent_p fields.
2646         (record_ref): Initalize the new fields.
2647         (gather_memory_references_ref): Return true if the reference
2648         could be analysed.
2649         (gather_memory_references): Check whether all memory accesses
2650         in loop were recorded.
2651         (should_issue_prefetch_p): Return false for nontemporal stores.
2652         (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
2653         may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
2654         (determine_loop_nest_reuse): Detect independent memory references.
2655         (loop_prefetch_arrays): Call mark_nontemporal_stores.
2656         * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
2657         * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
2658         * config/i386/i386.h (x86_mfence): Declare.
2659         (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
2660         * config/i386/i386.c (x86_mfence): New variable.
2661         (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
2662
2663         * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
2664         * optabs.c (init_optabs): Initialize storent_optab.
2665         * optabs.h (enum optab_index): Add OTI_storent.
2666         (storent_optab): Declare.
2667         * genopinit.c (optabs): Add initialization for storent_optab.
2668         * tree.h (MOVE_NONTEMPORAL): New macro.
2669         * expr.c (expand_assignment, store_expr, store_constructor_field,
2670         store_constructor, store_field, expand_expr_real_1): Propagate
2671         nontemporality of the expanded store.
2672         (emit_storent_insn): New function.
2673         * expr.h (expand_assignment, store_expr): Declaration changed.
2674         * function.c (assign_parm_setup_reg): Pass false as nontemporality
2675         to expand_assignment.
2676         * stmt.c (expand_asm_expr): Ditto.
2677         * calls.c (initialize_argument_information): Pass false as
2678         nontemporality to store_expr.
2679         * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
2680         storentsi): New.
2681
2682 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
2683
2684         * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
2685         parameter, use it.
2686         (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
2687
2688 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
2689
2690         * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
2691         and allow DECL_P here.
2692
2693 2007-06-09  Zdenek Dvorak  <dvorakz@suse.cz>
2694
2695         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
2696         follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
2697         track of the size of the expression.
2698         * cfghooks.c (merge_blocks): Remove block from loops structure only
2699         after call of the merge_blocks hook.
2700
2701 2007-06-09  Tom Tromey  <tromey@redhat.com>
2702
2703         * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
2704         (deprecated_state): Removed.
2705         (start_decl): Update.
2706         (enum deprecated_states): Moved earlier.
2707         (groktypename): Update.
2708         (push_parm_decl): Likewise.
2709         (grokfield): Likewise.
2710         (start_function): Likewise.
2711
2712 2007-06-09  Ian Lance Taylor  <iant@google.com>
2713
2714         PR tree-optimization/32169
2715         * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
2716         CONVERT_EXPR, check whether min and max both converted to an
2717         overflow infinity representation.
2718
2719 2007-06-08  Eric Botcazou  <ebotcazou@adacore.com>
2720
2721         * reload1.c (fixup_abnormal_edges): Clear bb field for insns
2722         not inserted on the edge.
2723
2724 2007-06-08  Bob Wilson  <bob.wilson@acm.org>
2725
2726         * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
2727         instructions if they are supported.
2728         (__divsi3, __umodsi3, __modsi3): Likewise.
2729         (__ashldi3, __ashrdi3, __lshrdi3): New.
2730         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
2731
2732 2007-06-08  Harsha Jagasia <harsha.jagasia@amd.com>
2733             Tony Linthicum <tony.linthicum@amd.com>
2734
2735         * doc/extend.texi: Add fvect-cost-model flag.
2736         * common.opt (fvect-cost-model): New flag.
2737         * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
2738         cost fields in stmt_vec_info struct for STMT.
2739         * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
2740         fields in stmt_vec_info struct and access functions for the same.
2741         (TARG_COND_BRANCH_COST): Define cost of conditional branch.
2742         (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
2743         load, store and vector to scalar operation.
2744         (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
2745         (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
2746         (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
2747         (TARG_VEC_STORE_COST): Define cost of vector store.
2748         (vect_estimate_min_profitable_iters): Define new function.
2749         * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
2750         check to evaluate if loop iterations are less than minimum profitable
2751         iterations determined by cost model or minimum vect loop bound defined
2752         by user, whichever is more conservative.
2753         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
2754         run-time check to evaluate if loop iterations are less than minimum
2755         profitable iterations determined by cost model or minimum vect loop
2756         bound defined by user, whichever is more conservative.
2757         (vect_estimate_min_profitable_iterations): New function to estimate
2758         mimimimum iterartions required for vector version of loop to be
2759         profitable over scalar version.
2760         (vect_model_reduction_cost): New function.
2761         (vect_model_induction_cost): New function.
2762         (vect_model_simple_cost): New function.
2763         (vect_cost_strided_group_size): New function.
2764         (vect_model_store_cost): New function.
2765         (vect_model_load_cost): New function.
2766         (vectorizable_reduction): Call vect_model_reduction_cost during
2767         analysis phase.
2768         (vectorizable_induction): Call vect_model_induction_cost during
2769         analysis phase.
2770         (vectorizable_load): Call vect_model_load_cost during analysis phase.
2771         (vectorizable_store): Call vect_model_store_cost during analysis phase.
2772         (vectorizable_call, vectorizable_assignment, vectorizable_operation,
2773         vectorizable_promotion, vectorizable_demotion): Call
2774         vect_model_simple_cost during analysis phase.
2775
2776 2007-06-08  Simon Baldwin  <simonb@google.com>
2777
2778         * reg-stack.c (get_true_reg): Readability change.  Moved default case
2779         label into direct switch statement scope.
2780
2781 2007-06-08  Simon Baldwin  <simonb@google.com>
2782
2783         * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
2784         in gcc_assert() with '==' comparison.
2785
2786 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2787
2788         * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
2789         TARGET_ABM handling of x86_popcnt variable.
2790
2791 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2792
2793         * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
2794         __builtin_copysignq and __builtin_infq built-in functions.
2795
2796 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2797
2798         * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
2799         SSE4.2 section.  Correct built-in function names in SSE4A section.
2800
2801 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2802
2803         PR tree-optimization/32243
2804         * tree-vect-transform.c (vectorizable_type_promotion): Move check
2805         for ncopies after ratio check between nunits_out and nunits_in.
2806         (vectorizable_type_demotion): Remove single-use variable "scalar_type".
2807
2808 2007-06-08  Dorit Nuzman  <dorit@il.ibm.com>
2809
2810         PR tree-optimization/32224
2811         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
2812         vectorization upon a non GIMPLE_MODIFY_STMT.
2813
2814 2007-06-08  Christian Bruel  <christian.bruel@st.com>
2815
2816         PR target/29953
2817         * config/sh/sh.md (doloop_end): New pattern and splitter.
2818         * loop-iv.c (simple_rhs_p): Check for hardware registers.
2819
2820 2007-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
2821
2822         PR middle-end/32209
2823         * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
2824         functions.
2825         (verify_dominators): Do not change dominance tree.
2826
2827 2007-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2828
2829         * config/sh/constraints.md: New file.
2830         * config/sh/sh.c: Include tm-constrs.h.
2831         (reg_class_from_letter): Remove.
2832         (prepare_cbranch_operands): Use satisfies_constraint_*
2833         function instead of macro.
2834         (andcosts, broken_move, sh_secondary_reload): Likewise.
2835         * config/sh/predicates.md (trapping_target_operand): Likewise.
2836         (and_operand, arith_operand, arith_reg_or_0_operand,
2837         cmp_operand, logical_operand, target_operand,
2838         ua_address_operand, ua_offset, xor_operand): Likewise.
2839         * config/sh/sh.md: Include constraints.md.
2840         (*movsicc_t_false): Use satisfies_constraint_* function
2841         instead of macro.
2842         (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
2843         lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
2844         movdi_const_16bit+1, beq, bne, *ptb): Likewise.
2845         * config/sh/sh.h (reg_class_from_letter): Remove prototype.
2846         (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
2847         (REG_CLASS_FROM_CONSTRAINT): Remove.
2848         (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
2849         CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
2850         CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
2851         CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
2852         CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2853         (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
2854         function instead of macro.
2855         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
2856         (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
2857         EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
2858         EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
2859         (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
2860         (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
2861         (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
2862         (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
2863         (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
2864         EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
2865         EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
2866         EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
2867         EXTRA_CONSTRAINT_STR): Likewise.
2868         (GO_IF_LEGITIMATE_INDEX): Fix indentation.
2869
2870 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
2871
2872         * config/i386/darwin.h (STACK_BOUNDARY): Define.
2873
2874 2007-06-07  Simon Martin  <simartin@users.sourceforge.net>
2875
2876         PR c++/30759
2877         * c-common.h (flag_cpp0x): Replaced by...
2878         (cxx_dialect): ... this new variable specifying the C++ dialect that
2879         is used.
2880         * c-common.c (flag_cpp0x): Removed.
2881         (cxx_dialect): Defined.
2882         * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
2883         cxx_dialect.
2884         * c-opts.c (c_common_post_options): Likewise.
2885         (set_std_cxx98): Set cxx_dialect to cxx98.
2886         (set_std_cxx0x): Set cxx_dialect to cxx0x.
2887
2888 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
2889             Hui-May Chang <hm.chang@apple.com>
2890
2891         * doc/invoke.texi (Darwin Options): Update documentation for
2892         -mmacosx-version-min.
2893         * config.gcc (*-*-darwin*): Set extra_gcc_objs.
2894         * config/darwin-driver.c: New file.
2895         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
2896         * config/t-darwin (darwin-driver.o): New rule.
2897
2898         * config/darwin-c.c (version_as_macro): Ignore low digit.
2899
2900 2007-06-07  Uros Bizjak  <ubizjak@gmail.com>
2901
2902         * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
2903         (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
2904         (CSGNMODE): New mode macro.
2905         (CSGNVMODE): New mode attribute.
2906         (copysign<mode>3): Rename from copysingsf3 and copysigndf3.  Macroize
2907         expander using CSGNMODE mode macro.  Handle TFmode.
2908         (copysign<mode>3_const): Rename from copysignsf3_const and
2909         copysigndf3_const.  Macroize pattern using CSGNMODE mode macro.
2910         Handle TFmode.
2911         (copysign<mode>3_var): Rename from copysignsf3_var and
2912         copysigndf3_var.  Macroize pattern using CSGNMODE mode macro.
2913         Handle TFmode.
2914         (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
2915         mode macro.  Handle TFmode.
2916         * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
2917         (iortf3, *iortf3): Ditto.
2918         (xortf3, *xortf3): Ditto.
2919         * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
2920         TFmode and TImode masks.
2921         (ix86_expand_copysign): Expand TFmode copysign insn.
2922         (IX86_BUILTIN_INFQ): New.
2923         (IX86_BUILTIN_FABSQ): Ditto.
2924         (IX86_BUILTIN_COPYSIGNQ): Ditto.
2925         (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
2926         [__builtin_fabsq]: Ditto.
2927         [__builtin_copysignq]: Ditto.
2928         (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
2929         [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
2930         [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
2931         ix86_expand_binop_builtin().
2932
2933 2007-06-07  Bob Wilson  <bob.wilson@acm.org>
2934
2935         * config/xtensa/lib1funcs.asm: Clean up whitespace.
2936
2937 2007-06-07  Steve Ellcey  <sje@cup.hp.com>
2938
2939         PR target/31850
2940         * rtl.h (push_to_sequence2): New.
2941         * emit-rtl.c (push_to_sequence2): New.
2942         * function.c (assign_parm_data_all): Add new fields.
2943         (assign_parm_setup_block): Call push_to_sequence2 instead of
2944         push_to_sequence.
2945         (assign_parm_setup_reg): Ditto.
2946         (assign_parm_setup_stack): Ditto.
2947         (assign_parms_unsplit_complex): Ditto.
2948         (assign_parms): Change field name.
2949
2950 2007-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
2951
2952         PR tree-optimization/32220
2953         * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
2954         phi node is reached before defining statement.
2955
2956 2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2957
2958         PR tree-opt/32231
2959         * tree-vect-transform.c (vectorizable_call): Call update_stmt
2960         after changing the right hand side of the assignment.
2961
2962 2007-06-06  Eric Christopher  <echristo@apple.com>
2963
2964         * config.gcc (i?86-*-darwin*): Remove arch parameter.
2965         (x86_64-*-darwin*): Ditto.
2966         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
2967         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
2968
2969 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
2970
2971         * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
2972         coding conventions.
2973         (add_key): Likewise.
2974         * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
2975         * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
2976         variable names.
2977         * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory
2978         macros.
2979         (add_cost_one_coalesce): Likewise.
2980         * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
2981         variable names. Rename orig to orig_name for consistency.
2982         * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the
2983         coding conventions.
2984         (cprop_into_successor_phis): Avoid using C++ keywords as variable
2985         names.
2986         (record_equivalences_from_stmt): Likewise.
2987         * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
2988         the coding conventions.
2989         (memory_ssa_name_same): Likewise.
2990         (dse_optimize_stmt): Likewise.
2991         (dse_record_phis): Likewise.
2992         (dse_finalize_block): Likewise.
2993         * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
2994         keywords as variable names.
2995         (may_move_till): Cast according to the coding conventions.
2996         (force_move_till_expr): Avoid using C++ keywords as variable names.
2997         (force_move_till): Cast according to the coding conventions.
2998         (memref_hash): Likewise.
2999         (memref_eq): Likewise.
3000         (gather_mem_refs_stmt): Likewise.
3001         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid
3002         using C++ keywords as variable names.
3003         (idx_find_step): Cast according to the coding conventions.
3004         (idx_record_use): Likewise.
3005         (find_depends): Likewise.
3006         (prepare_decl_rtl): Likewise.
3007         (mbc_entry_hash): Likewise.
3008         (mbc_entry_eq): Likewise.
3009         * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
3010         (simplify_replace_tree): Avoid using C++ keywords as variable names.
3011         (idx_infer_loop_bounds): Cast according to the coding conventions.
3012         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
3013         * tree-ssa-math-opts.c (occ_new ): Likwise.
3014         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
3015         macros.
3016         * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as
3017         variable names.
3018         (add_use_op): Likewise.
3019         (add_vop): Likewise.
3020         (add_vuse_op): Likewise.
3021         (add_vdef_op): Likewise.
3022         (get_expr_operands): Likewise.
3023         (push_stmt_changes): Use type safe memory macros.
3024         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
3025         keywords as variable names.
3026         (conditional_replacement): Likewise.
3027         (minmax_replacement): Likewise.
3028         (abs_replacement): Likewise.
3029         * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
3030         coding conventions.
3031         (insert_fake_stores): Avoid using C++ keywords as variable names.
3032         * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
3033         conventions.
3034         * tree-ssa-structalias.c (heapvar_lookup): Likewise.
3035         (heapvar_insert): Use type safe memory macros.
3036         (new_var_info): Cast according to the coding conventions.
3037         (new_constraint): Likewise.
3038         (remove_preds_and_fake_succs): Use type safe memory macros.
3039         * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
3040         conventions.
3041         (thread_single_edge): Likewise.
3042         (thread_through_loop_header): Likewise.
3043
3044 2007-06-06  Eric Christopher  <echristo@apple.com>
3045
3046         * config/i386/i386.c (override_options): Move handling
3047         of TARGET_SUBTARGET* earlier.
3048
3049 2007-06-06  Paolo Bonzini  <bonzini@gnu.org>
3050
3051         * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
3052         use %n on printf.
3053
3054 2007-06-06  Zdenek Dvorak  <dvorakz@suse.cz>
3055
3056         * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
3057         emited outside of basic block.
3058         * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
3059         the created blocks.
3060         * rtl.h (delete_insn_chain): Declaration changed.
3061         * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
3062         non-removed insns.
3063         (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
3064         (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
3065         rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
3066         to delete_insn_chain.
3067         (rtl_verify_flow_info_1): Verify that the insns in header and footer
3068         do not have bb field set.
3069         (rtl_verify_flow_info): Verify that insns between basic blocks do not
3070         have bb field set.
3071         * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
3072         * cfgcleanup.c (try_optimize_cfg): Ditto.
3073
3074 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
3075
3076         * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
3077         (lambda_body_vector_new): Use type safe memory macros.
3078         (lambda_linear_expression_new): Likewise.
3079         (lambda_loopnest_new): Likewise.
3080         (lambda_lattice_new): Likewise.
3081         (replace_uses_equiv_to_x_with_y): Cast according to the coding
3082         conventions. Use type safe memory macros.
3083         * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
3084         (lambda_body_vector_s): Likewise.
3085         * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
3086         * lambda-trans.c (lambda_trans_matrix_new): Likewise.
3087
3088 2007-06-06  Richard Guenther  <rguenther@suse.de>
3089
3090         * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
3091         if we need to schedule cfg_cleanup.
3092         (tree_ssa_forward_propagate_single_use_vars): Do so.
3093
3094 2007-06-06  Ian Lance Taylor  <iant@google.com>
3095
3096         * fold-const.c (merge_ranges): If range_successor or
3097         range_predecessor fail, just return 0.
3098
3099 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
3100
3101         PR tree-optimization/32216
3102         * tree-vectorizer.c (supportable_widening_operation): Determine
3103         signedness of FIX_TRUNC_EXPR from output operand.
3104         (supportable_narrowing_operation): Ditto.
3105         * tree-vect-generic.c (expand_vector_operations_1): Determine
3106         signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
3107         from input operand.
3108
3109 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
3110
3111         * config/i386/i386.c (enum pta_flags): Move out of struct scope...
3112         (struct pta): ...from here. Change flags to unsigned to avoid
3113         excessive casting (as it is used as a bit mask).
3114         (override_options): Add casts according to the coding convenventions.
3115         (x86_64_elf_unique_section): Likewise.
3116         (examine_argument): Avoid using C++ keywords as variable names.
3117         (construct_container): Likewise.
3118         (legitimize_pic_address): Likewise.
3119         (get_dllimport_decl): Cast according to the coding conventions. Use
3120         type safe memory macros.
3121         (legitimize_address): Cast according to the coding conventions.
3122         (emit_i387_cw_initialization): Corrected the type of slot to enum
3123         ix86_stack_slot.
3124         (ix86_init_machine_status): Use type safe memory macros.
3125         (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
3126         (bdesc_pcmpistr): Likewise.
3127         (bdesc_crc32): Likewise.
3128         (bdesc_sse_3arg): Likewise.
3129         (bdesc_2arg): Likewise.
3130         (bdesc_1arg): Likewise.
3131         (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
3132         (ix86_expand_sse_pcmpistr): Likewise.
3133         (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
3134         (ix86_builtin_vectorized_function): Change the type of fn to unsigned
3135         int to match the langhook definition.
3136         (ix86_builtin_conversion): Change the type of code to unsigned init to
3137         match the langhook definition.
3138         (ix86_preferred_reload_class): Avoid using C++ keywords as variable
3139         names.
3140         (ix86_preferred_output_reload_class): Likewise.
3141         (ix86_cannot_change_mode_class): Likewise.
3142         (ix86_memory_move_cost): Likewise.
3143         (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
3144         avoid excessive casting later on.
3145         (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
3146
3147 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
3148
3149         * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
3150         as flags setting insn.
3151         (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
3152
3153 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
3154
3155         * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
3156         (UNSPEC_ROUND): New.
3157         ("sse4_1_round<mode>2"): New insn pattern.
3158         ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
3159         SSE4.1 targets.
3160         ("floor<mode>2"): Rename from floordf2 and floorsf2.  Macroize
3161         expander using SSEMODEF mode macro.  Expand using
3162         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
3163         ("ceil<mode>2"): Rename from ceildf2 and ceilsf2.  Macroize
3164         expander using SSEMODEF mode macro.  Expand using
3165         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
3166         ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2.  Macroize
3167         expander using SSEMODEF mode macro.  Expand using
3168         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
3169         * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
3170         UNSPEC_ROUND instead of UNSPEC_ROUNDP.
3171         ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
3172         UNSPEC_ROUNDS.
3173
3174 2007-06-06  Jan Sjodin  <jan.sjodin@amd.com>
3175             Sebastian Pop  <sebpop@gmail.com>
3176
3177         * lambda.h (build_linear_expr): New.
3178         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
3179         Use build_linear_expr, call fold and force_gimple_operand.
3180         (lambda_loopnest_to_gcc_loopnest): Check that there is
3181         something to insert.
3182         * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
3183
3184 2007-06-05  Joerg Wunsch  <j.gnu@uriah.heep.sax.de>
3185
3186         PR preprocessor/23479
3187         * doc/extend.texi: Document the 0b-prefixed binary integer
3188         constant extension.
3189
3190 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
3191
3192         PR tree-optimization/32215
3193         * tree-vectorizer.c (supportable_widening_operation): Return false
3194         for unsupported FIX_TRUNC_EXPR tree code.
3195         (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
3196
3197 2007-06-06  Nathan Froyd  <froydnj@codesourcery.com>
3198
3199         * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
3200         register on SPE targets.  Change documentation to reflect
3201         reality.
3202         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
3203         Change FIXED_SCRATCH to 14 and document why we're keeping r14
3204         out of the register allocation pool.
3205         (rs6000_reg_live_or_pic_offset_p): New function.
3206         (rs6000_emit_prologue): Move the actual saving of LR up to free
3207         r0 for holding r11.  Split saving of SPE 64-bit registers into
3208         its own case.  Ensure that offsets will always be in-range for
3209         'evstdd' by using r11 as a scratch register to point at the start
3210         of the SPE save area.  Save r11 if necessary, as it is the static
3211         chain register.
3212         (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
3213         into its own case.  Ensure that offsets will always be in-range
3214         for 'evldd' by using r11 as a scratch register to point at the
3215         start of the SPE save area.  Also adjust r11 when restoring
3216         the stack pointer to compensate for pre-loading r11.
3217
3218 2007-06-05  Thomas Neumann  <tneumann@users.sourceforge.net>
3219
3220         * cfg.c (init_flow): Use type safe memory macros.
3221         (alloc_block): Likewise.
3222         (unchecked_make_edge): Likewise.
3223         (dump_flow_info): Avoid using C++ keywords as variable names.
3224         (copy_original_table_clear): Cast according to the coding conventions.
3225         (copy_original_table_set): Likewise.
3226         * cfgexpand (label_rtx_for_bb): Likewise.
3227         (expand_gimple_basic_block): Likewise.
3228         * cfghooks.c (dump_bb): Likewise.
3229         (lv_adjust_loop_header_phi): Avoid using C++ keywords as
3230         variable names.
3231         (lv_add_condition_to_bb): Likewise.
3232         * cfglayout (relink_block_chain): Cast according to the coding
3233         conventions.
3234         (fixup_reorder_chain): Likewise.
3235         (fixup_fallthru_exit_predecessor): Likewise.
3236         * cfgloop.c (glb_enum_p): Likewise.
3237         (get_exit_description): Likewise.
3238         (dump_recorded_exit): Likewise.
3239         * cfgloop.h (enum loop_estimation): Move out of struct scope...
3240         (struct loop): ... from here.
3241         * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
3242         conventions.
3243         * cfgrtl.c (rtl_create_basic_block): Likewise.
3244         (rtl_split_block): Likewise.
3245         (rtl_dump_bb): Likewise.
3246         (cfg_layout_split_block): Likewise.
3247         (init_rtl_bb_info): Use typesafe memory macros.
3248
3249         * graphds.h (struct graph_edge): Renamed edge to graph_edge.
3250         * graphds.h: Updated all usages of edge to graph_edge.
3251         * graphds.c: Likewise.
3252         * cfgloopanal.c: Likewise.
3253
3254 2007-06-05  Ian Lance Taylor  <iant@google.com>
3255
3256         * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
3257         PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
3258         (extract_range_from_assert): Set TREE_NO_WARNING when creating an
3259         expression.
3260         (test_for_singularity): Likewise.
3261
3262 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
3263
3264         * config/i386/constraints.md ("Y2"): Replaced by ...
3265         ("Yt"): This.
3266         * config/i386/i386.md: Likewise.
3267         * config/i386/mmx.md: Likewise.
3268         * config/i386/sse.md: Likewise.
3269
3270 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
3271
3272         * config/i386/constraints.md ("z"): Replaced by ...
3273         ("Y0"): This.
3274         * config/i386/sse.md (sse4_1_blendvpd): Likewise.
3275         (sse4_1_blendvps): Likewise.
3276         (sse4_1_pblendvb): Likewise.
3277         (sse4_2_pcmpestr): Likewise.
3278         (sse4_2_pcmpestrm): Likewise.
3279         (sse4_2_pcmpestr_cconly): Likewise.
3280         (sse4_2_pcmpistr): Likewise.
3281         (sse4_2_pcmpistrm): Likewise.
3282         (sse4_2_pcmpistr_cconly): Likewise.
3283
3284 2007-06-05  Razya Ladelsky  <razya@il.ibm.com>
3285
3286         * matrix-reorg.c (transform_access_sites): Fix computation.
3287         (transform_allocation_sites): Same.
3288
3289 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
3290
3291         * config/i386/i386.c (override_options): Use
3292         TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
3293
3294 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
3295
3296         * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
3297         (nonimm_not_xmm0_operand): Ditto.
3298         * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
3299         as operand[0] and operand[1] predicate.  Use "nonimm_not_xmm0_operand"
3300         as operand[2] predicate.  Require "z" class XMM register for
3301         operand[3].  Adjust asm template.
3302         ("sse4_1_blendvpd"): Ditto.
3303         ("sse4_1_pblendvb"): Ditto.
3304         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
3305         force op2 into xmm0 register for variable blend instructions.
3306
3307 2007-06-04  Tom Tromey  <tromey@redhat.com>
3308
3309         * c-tree.h (start_enum): Update.
3310         (build_enumerator): Likewise.
3311         * c-decl.c (enum_next_value): Removed.
3312         (enum_overflow): Likewise.
3313         (start_enum): Add c_enum_contents argument.  Don't use globals.
3314         (build_enumerator): Likewise.
3315         * c-tree.h (struct c_enum_contents): New struct.
3316
3317 2007-06-04  Tom Tromey  <tromey@redhat.com>
3318
3319         * c-common.c (c_common_get_alias_set): Fix indentation.
3320
3321 2007-06-04  Ian Lance Taylor  <iant@google.com>
3322
3323         * tree-vrp.c (adjust_range_with_scev): When loop is not expected
3324         to overflow, reduce overflow infinity to regular infinity.
3325         (vrp_var_may_overflow): New static function.
3326         (vrp_visit_phi_node): Check vrp_var_may_overflow.
3327
3328 2007-06-04  Kazu Hirata  <kazu@codesourcery.com>
3329
3330         * stor-layout.c (layout_type): Remove duplicate code.
3331
3332 2007-06-04  Uros Bizjak  <ubizjak@gmail.com>
3333
3334         PR c/32191
3335         * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins ()
3336         before build_common_builtin_nodes ().
3337
3338 2007-06-04  Steve Ellcey  <sje@cup.hp.com>
3339
3340         PR target/31733
3341         * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
3342
3343 2007-06-04  Jan Hubicka  <jh@suse.cz>
3344
3345         * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
3346         reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
3347         instead of _stat version.
3348
3349 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
3350
3351         PR tree-optimization/32194
3352         * tree-predcom.c (determine_offset): Check that both references have
3353         the same type.
3354
3355 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
3356
3357         * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
3358         Change dom_bbs to vector.  Add argument to iterate_fix_dominators call.
3359         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
3360         * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
3361         Add argument to iterate_fix_dominators call.
3362         (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
3363         * gcse.c (hoist_code): Change domby to vector.
3364         * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
3365         Add argument to iterate_fix_dominators call.
3366         * loop-doloop.c (doloop_modify): Changed recount_dominator to
3367         recompute_dominator.
3368         * lambda-code.c (perfect_nestify): Ditto.
3369         * cfgloopanal.c: Include graphds.h.
3370         (struct edge, struct vertex, struct graph, dump_graph, new_graph,
3371         add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
3372         (mark_irreducible_loops): Use graphds_scc.  Remove argument from
3373         add_edge call.
3374         * graphds.c: New file.
3375         * graphds.h: New file.
3376         * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
3377         (get_dominated_by, get_dominated_by_region): Change return type to
3378         vector.
3379         (verify_dominators): Recompute all dominators and compare the results.
3380         (recount_dominator): Renamed to ...
3381         (recompute_dominator): ... this.  Do not check that the block is
3382         dominated by entry.
3383         (iterate_fix_dominators): Reimplemented.
3384         (prune_bbs_to_update_dominators, root_of_dom_tree,
3385         determine_dominators_for_sons): New functions.
3386         * et-forest.c (et_root): New function.
3387         * et-forest.h (et_root): Declare.
3388         * Makefile.in (graphds.o): Add.
3389         (cfgloopanal.o): Add graphds.h dependency.
3390         (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
3391         * basic-block.h (get_dominated_by, get_dominated_by_region,
3392         iterate_fix_dominators): Declaration changed.
3393         (recount_dominator): Renamed to ...
3394         (recompute_dominator): ... this.
3395         * tree-ssa-threadupdate.c (thread_block): Free dominance info.
3396         (thread_through_all_blocks): Do not free dominance info.
3397
3398 2007-06-03  Andreas Schwab  <schwab@suse.de>
3399
3400         * config/m68k/m68k.c (override_options): Don't override
3401         REAL_MODE_FORMAT.
3402         * config/m68k/m68k-modes.def (SF, DF): Define to use
3403         motorola_single_format and motorola_double_format, resp.
3404         * real.c (motorola_single_format): Renamed from
3405