OSDN Git Service

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