OSDN Git Service

578f014fd133adad85665b69f7075c7c39adb15c
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
2
3         * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
4         (DDR_REVERSED_P): New.
5         * tree-data-ref.c (initialize_data_dependence_relation,
6         build_classic_dist_vector): Set DDR_REVERSED_P.
7
8 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
9
10         PR middle-end/32457
11         * tree-data-ref.c (analyze_siv_subscript_cst_affine,
12         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
13         init_omega_for_ddr_1): Use non conservative number of iterations
14         estimations.
15         (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
16         (analyze_siv_subscript): Remove FIXME and reinitialization of 
17         last_conflicts to chrec_dont_know.
18         * testsuite/gfortran.dg/vect/pr32457.f90: New.
19
20 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
21
22         * tree.c (maybe_canonicalize_argtypes): Improve description.
23
24 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
25
26         * tree.c (maybe_canonicalize_argtypes): New.
27         (build_function_type): Set canonical type.
28         (build_method_type_directly): Ditto.
29         (reconstruct_complex_type): Rebuild the METHOD_TYPE node
30         properly.
31
32 2007-07-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
33
34         * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
35         like PLUS_EXPR.
36         (rewrite_use_nonlinear_expr): Likewise.
37
38 2007-07-03  Seongbae Park  <seongbae.park@gmail.com>
39
40         * rtl.def (UNSPEC, USE, CLOBBER): More comments.
41
42 2007-07-04  Ben Elliston  <bje@au.ibm.com>
43
44         * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
45         of this file.
46
47         * c-objc-common.c (c_types_compatible_p): Fix indentation.
48
49         * doc/tm.texi (Run-time Target): Capitalise "CPU".
50         (Exception Handling): Likewise.
51
52 2007-07-03  Jan Hubicka  <jh@suse.cz>
53
54         * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
55
56 2007-07-03  Eric Christopher  <echristo@apple.com>
57
58         * doc/cppopts.texi: Add conflicting option note to -dM.
59         * doc/invoke.texi: Add note about possible conflicts with
60         -E for -dCHARS and note that -dM will not produce
61         any results if there is no machine dependent reorg.
62         
63 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
64
65         * tree.h (DECL_ALIGN): Back out previous change.
66
67 2007-07-03  Joseph Myers  <joseph@codesourcery.com>
68
69         * configure.ac: Test for .dtprelword support on MIPS.
70         * configure, config.in: Regenerate.
71         * config/mips/mips.c (mips_output_dwarf_dtprel): New.
72         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
73
74 2007-07-03  Julian Brown  <julian@codesourcery.com>
75
76         * config.gcc (with_fpu): Allow --with-fpu=vfp3.
77         * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
78         * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
79         * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
80         capability.
81         (all_fpus): Add FPUTYPE_VFP3.
82         (fp_model_for_fpu): Add VFPv3 field.
83         (arm_rtx_costs_1): Give cost to VFPv3 constants.
84         (vfp3_const_double_index): New function. Return integer index of
85         VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
86         isn't suitable.
87         (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
88         and argument represents a valid RTX for a VFPv3 constant.
89         (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
90         two instructions.
91         (vfp_emit_fstmd): Similar, for fstmd.
92         (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
93         constants, represented as integer indices.
94         (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
95         VFP_REGNO_OK_FOR_DOUBLE macros.
96         (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
97         (arm_file_start): Set float-abi attribute for VFPv3, and output
98         correct ".fpu" assembler directive.
99         (arm_dbx_register_numbering): Add FIXME.
100         * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
101         (fputype): Add FPUTYPE_VFP3.
102         (FIXED_REGISTERS): Add 32 registers for D16-D31.
103         (CALL_USED_REGISTERS): Likewise.
104         (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
105         of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
106         (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
107         (D7_VFP_REGNUM): New.
108         (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
109         (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
110         (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
111         (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
112         (REG_ALLOC_ORDER): Adjust for VFPv3.
113         (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
114         (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
115         VFP_LO_REGS, VFP_HI_REGS.
116         (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
117         (IS_VFP_CLASS): Define macro.
118         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
119         IS_VFP_CLASS.
120         (REGISTER_MOVE_COST): Likewise.
121         * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
122         * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
123         (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
124         (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
125         (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
126         (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
127         (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
128         (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
129         (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
130         (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
131         (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
132         where appropriate for single-word registers.
133         (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
134         As above. Fix type attributes.
135         * config/arm/constraints.md (register_contraint "t"): Define.
136         (register_constraint "w"): Change to D0-D15, or D0-D31 for
137         VFPv3/NEON.
138         (register_constraint "x"): Define.
139         (constraint "Dv"): Define.
140
141 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
142
143         * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
144
145 2007-07-03  Tom Tromey  <tromey@redhat.com>
146
147         * c-parser.c (objc_pq_context): Removed.
148         (objc_need_raw_identifier): Likewise.
149         (c_parser) <objc_pq_context>: New field.
150         <objc_need_raw_identifier>: Likewise.
151         (OBJC_NEED_RAW_IDENTIFIER): Removed.
152         (c_lex_one_token): Update.
153         (c_parser_objc_protocol_definition): Update.
154         (c_parser_objc_method_definition): Update.
155         (c_parser_objc_methodproto): Update.
156         (c_parser_declspecs): Update.
157
158 2007-07-03  David Ung  <davidu@mips.com>
159
160         * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
161
162 2007-07-03  David Ung  <davidu@mips.com>
163             Richard Sandiford  <richard@codesourcery.com>
164
165         * doc/invoke.texi: Document -march=74kf3_2.
166         * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
167         (TUNE_74K): Check for it.
168         * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
169         (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
170         * config/mips/mips.md (cpu): Add 74kf3_2.
171         * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
172         (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
173         (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
174         (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
175         74kf3_2 to the CPU list.
176         (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
177         (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
178         (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
179         (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
180         (r74kf3_2_fxfer_from_c1): New insn reservations.
181
182 2007-07-03  Richard Sandiford  <richard@codesourcery.com>
183             David Ung  <davidu@mips.com>
184
185         * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
186         -march=24kx with -march=24kf1_1.  Likewise 24ke[fx], 34k[fx]
187         and 74k[fx].  Document aliases for the new options.
188         * config/mips/mips.h (PROCESSOR_24KF): Rename to...
189         (PROCESSOR_24KF2_1): ...this.
190         (PROCESSOR_24KX): Rename to...
191         (PROCESSOR_24KF1_1): ...this.
192         (PROCESSOR_74KF): Rename to...
193         (PROCESSOR_74KF2_1): ...this.
194         (PROCESSOR_74KX): Rename to...
195         (PROCESSOR_74KF1_1): ...this.
196         (TUNE_74K): Update PROCESSOR_* names.
197         * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
198         for 24kf.  Add 24kf1_1 and 24kfx as synonyms for 24kx.  Likewise
199         the 24ke*, 34k* and 74k* processors.  Update PROCESSOR_* names.
200         (mips_rtx_cost_data): Update processor names in comments.
201         (mips_issue_rate): Update PROCESSOR_* names.
202         * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
203         24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
204         * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
205         to r24kf2_1_*.  Rename r24kx_* insn reservations to r24kf1_1_*.
206         Update cpu attribute names.
207         (r24k_fpu_iss): Rename this reservation to...
208         (r24kf2_1_fpu_iss): ...this and update all uses.
209         (r24kx_fpu_iss): Rename this reservation to...
210         (r24kf1_1_fpu_iss): ...this and update all uses.
211         * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
212         to r74kf2_1_*.  Rename r74kx_* insn reservations to r74kf1_1_*.
213         Update cpu attribute names.
214
215 2007-07-01  Kaz Kojima  <kkojima@gcc.gnu.org>
216
217         * config/m32r/constraints.md: New file.
218         * config/m32r/m32r.c: Include tm-constrs.h.
219         (small_data_operand): Use satisfies_constraint_* instead of macro.
220         (addr24_operand, gen_compare): Likewise.
221         * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
222         (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
223         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
224         EXTRA_CONSTRAINT): Likewise.
225         * config/m32r/m32r.md: Include constraints.md.
226         (*movsi_insn): Use satisfies_constraint_* instead of macro.
227         (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
228         * config/m32r/predicates.md (conditional_move_operand): Likewise.
229         (two_insn_const_operand, int8_operand, uint16_operand,
230         reg_or_int16_operand, reg_or_uint16_operand,
231         reg_or_cmp_int16_operand, cmp_int16_operand,
232         seth_add3_operand): Likewise.
233
234 2007-07-03  Eric Christopher  <echristo@gmail.com>
235
236         * libgcc2.h: Conditionally declare __bswapsi2 and
237         __bswapdi2.
238         
239 2007-07-03  H.J. Lu  <hongjiu.lu@intel.com>
240
241         * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
242         defined.
243
244 2007-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
245
246         PR target/28307
247         * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
248         (__gthrw_pragma): Provide default definition.
249         (__gthrw2): Use it.
250         * gthr-posix.c (__gthrw_pragma): Define.
251
252 2007-07-03  Daniel Berlin  <dberlin@dberlin.org>
253
254         * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
255         before declaring inequality.
256
257 2007-07-03  Rask Ingemann Lambertsen  <rask@sygehus.dk>
258
259         * combine.c (recog_for_combine): Log the success or failure of
260           matching new insn patterns against the machine description in
261           detailed dumps.
262
263 2007-07-03  Revital Eres  <eres@il.ibm.com>
264
265         * ddg.c (print_sccs): New function.
266         (check_sccs): New function.
267         (create_ddg_all_sccs): Use it.
268         * ddg.h (print_sccs): Declare.
269         * modulo-sched.c (sms_order_nodes): Call print_sccs.
270
271 2007-07-03  Uros Bizjak  <ubizjak@gmail.com>
272
273         * targhooks.h (default_mode_for_suffix): New function declaration.
274         * targhooks.c (default_mode_for_suffix): New default target hook.
275         * target.h (struct c): New structure in the targetm struct.
276         (mode_for_suffix): New target hook as part of struct c.
277         target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
278         default_mode_for_suffix.
279         (TARGET_C): New define.
280         * c-lex.c: Include "target.h".
281         (interpret_float): Use targetm.c.mode_for_suffix to determine
282         the mode for a given non-standard suffix.
283         Makefile.in (c-lex.o): Depend on $(TARGET_H).
284
285         * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
286         (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
287
288         * doc/extend.texi (Floating Types): New node.  Document __float80 and
289         __float128 types.  Document 'w', 'W', 'q' and 'Q' suffixes.
290
291 2007-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
292
293         PR target/32506
294         * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
295         predicate instead of target_operand.
296         (divsi3_i1_media, divsi3_media_2): Likewise.
297
298 2007-07-02  Eric Botcazou  <ebotcazou@adacore.com>
299
300         * tree.h (alias_sets_might_conflict_p): Rename into
301         alias_sets_must_conflict_p.
302         * alias.c (alias_sets_might_conflict_p): Likewise.
303         (alias_sets_conflict_p): Use it.
304         (objects_must_conflict_p): Likewise.
305         * c-common.c (strict_aliasing_warning): Adjust.
306
307 2007-07-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
308
309         * rtlhooks.c (gen_lowpart_if_possible): Check for
310         invalid subreg before calling gen_lowpart_SUBREG.
311
312 2007-07-02  Geoffrey Keating  <geoffk@apple.com>
313
314         * config/darwin9.h: Add copyright notice.
315         (LINK_COMMAND_SPEC): Add comment.
316         (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
317         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
318         DARWIN_LIBSYSTEM_HAS_UNWIND.
319
320 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
321
322         PR libgomp/32468
323         * omp-low.c (check_combined_parallel): New function.
324         (lower_omp_parallel): Call it via walk_stmts, set
325         OMP_PARALLEL_COMBINED if appropriate.
326         (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
327         isn't the only statement in WS_ENTRY_BB or OMP_RETURN
328         the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
329         don't consider it as combined parallel.
330
331 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
332
333         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
334         (gcc_tooldir): Likewise.
335         * configure: Regenerate.
336         * Makefile.in (libsubdir_to_prefix): New variable, based on the
337         old configure.ac gcc_tooldir setting.
338         (prefix_to_exec_prefix): New variable.
339         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
340         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
341
342 2007-07-02  Daniel Berlin  <dberlin@dberlin.org>
343
344         Fix PR tree-optimization/32583
345         Fix PR tree-optimization/32584
346         * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
347         (phi_translate_set): Use phi_translate directly now.
348         (make_values_for_stmt): Don't value number RHS if we already know
349         it is constant.
350
351 2007-07-02  Steve Ellcey  <sje@cup.hp.com>
352             Jim Wilson <wilson@specifix.com>
353
354         PR target/31684
355         * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
356         copy_insn.
357
358 2007-07-02  Sandra Loosemore  <sandra@codesourcery.com>
359             Richard Sandiford  <richard@codesourcery.com>
360             Nigel Stephens  <nigel@mips.com>
361
362         * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
363         (mips16e_output_save_restore): Declare.
364         (mips16e_save_restore_pattern_p): Likewise.
365         * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
366         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
367         for GENERATE_MIPS16E_SAVE_RESTORE.  Return 0x400 for TARGET_MIPS16
368         && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
369         (BITSET_P): New global macro, extracted from...
370         (mips_for_each_saved_reg): ...here.
371         (mips16e_save_restore_info): New struct.
372         (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
373         (mips16e_save_restore_regs): New variable.
374         (mips_split_plus, mips16e_find_first_register): New functions.
375         (mips16e_mask_registers): New function.
376         (compute_frame_size): Expand the commentary before the function.
377         Enforce the MIPS16e save and restore register range restrictions.
378         Pad the general register save area at the low end.
379         (mips16e_save_restore_reg, mips16e_build_save_restore)
380         (mips16e_save_restore_pattern_p, mips16e_add_register_range)
381         (mips16e_output_save_restore, mips16e_collect_propagate_value)
382         (mips16e_collect_argument_save, mips16e_collect_argument_saves):
383         New functions.
384         (mips_expand_prologue, mips_expand_epilogue): Handle
385         GENERATE_MIPS16E_SAVE_RESTORE.
386         * config/mips/mips.md (*mips16e_save_restore): New pattern.
387
388 2007-07-02  Uros Bizjak  <ubizjak@gmail.com>
389
390         PR tree-optimization/31966
391         PR tree-optimization/32533
392         * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
393         "basic_block" description as its third argument.  Update function
394         calls to get destination bb from "edge" argument.  Save "cond" into
395         aux field of the edge.  Update prototype for changed arguments.
396         (if_convertible_loop_p): Clear aux field of incoming edges if bb
397         contains phi node.
398         (find_phi_replacement_condition): Operate on incoming edges, not
399         on predecessor blocks.  If there is a condition saved in the
400         incoming edge aux field, AND it with incoming bb predicate.
401         Return source bb of the first edge.
402         (clean_predicate_lists): Clean aux field of outgoing node edges.
403         (tree_if_conversion): Do not initialize cond variable. Move
404         variable declaration into the loop.
405         (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
406         initializations of new_stmt, arg0 and arg1 variables.
407
408 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
409
410         * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
411         SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
412
413 2007-07-02  Richard Guenther  <rguenther@suse.de>
414
415         * tree-ssa.c (useless_type_conversion_p): Document
416         future intent as defining the middle-end type system.
417         Re-structure to call langhook last, group by type class,
418         mark questionable parts.
419
420 2007-07-02  Richard Guenther  <rguenther@suse.de>
421
422         * tree-flow.h (types_compatible_p): Declare.
423         * tree-ssa.c (types_compatible_p): New function.
424         * ipa-type-escape.c (discover_unique_type): Use
425         types_compatible_p instead of lang_hooks.types_compatible_p.
426         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
427         * tree-vn.c (expressions_equal_p): Likewise.
428         * tree.c (fields_compatible_p): Likewise.
429         * tree-ssa-dom.c (avail_expr_eq): Likewise.
430         (cprop_operand): Use useless_type_conversion_p instead of
431         lang_hooks.types_compatible_p.
432         * tree-inline.c (setup_one_parameter): Likewise.
433         (declare_return_variable): Likewise.
434         * tree-nrv.c (tree_nrv): Likewise.
435         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
436         (maybe_fold_offset_to_component_ref): Likewise.
437         (maybe_fold_offset_to_reference): Likewise.
438         * tree-ssa-copy.c (may_propagate_copy): Likewise.
439         (merge_alias_info): Likewise.
440         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
441         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
442         * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
443         * tree-tailcall.c (find_tail_calls): Likewise.
444         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
445         * gimplify.c (canonicalize_addr_expr): Likewise.
446         (fold_indirect_ref_rhs): Likewise.
447         (gimplify_addr_expr): Likewise.  Swap parameters to cpt_same_type.
448         (cpt_same_type): Likewise.
449         (check_pointer_types_r): Swap parameters to cpt_same_type
450         where appropriate.
451         * fold-const.c (fold_convert): Revert fix for PR15988.
452         * tree-inline.c (setup_one_parameter): Instead fix it here by
453         using fold_build1 instead of fold_convert and checking for
454         error_mark_node.  Convert only if the conversion is necessary.
455
456 2007-07-02  Joseph Myers  <joseph@codesourcery.com>
457
458         * configure.ac: Check for .gnu_attribute on Power.
459         * configure: Regenerate.
460         * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
461         attribute for floating-point ABI.
462
463 2007-07-02  Ira Rosen  <irar@il.ibm.com>
464
465         PR tree-optimization/32230
466         PR tree-optimization/32477
467         * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base 
468         address is a constant.
469
470 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
471
472         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
473         (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
474         (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
475         stanzas.  Use the first part of the triplet to set MIPS_ISA_DEFAULT.
476         Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
477         64-bit targets.  Add support for *-elfoabi*.
478         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
479         different settings if $(tm_defines) does not select the EABI.
480         (MULTILIB_EXCLUSIONS): Define in those circumstances.
481         * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
482         (MIPS_ARCH_OPTION_SPEC): Likewise.
483         (MIPS_ISA_LEVEL_SPEC): Likewise.
484         (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
485         * config/mips/elfoabi.h: New file.
486
487 2007-07-02  Richard Guenther  <rguenther@suse.de>
488
489         * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
490         (useless_type_conversion_p): ... this.
491         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
492         (useless_type_conversion_p): ... this.
493         * builtins.c (fold_builtin_memory_op): Rename
494         tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
495         * tree-cfg.c (verify_expr): Likewise.
496         * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
497         * tree-ssa-ccp.c (ccp_fold): Likewise.
498         * tree-ssa-copy.c (may_propagate_copy): Likewise.
499         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
500         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
501         * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
502         * tree-ssa-pre.c (eliminate): Likewise.
503         * tree-ssa.c (delete_tree_ssa): Likewise.
504         (tree_ssa_useless_type_conversion): Likewise.
505         * tree.c (build2_stat): Likewise.
506
507 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
508
509         Fix PR tree-optimization/32571
510         * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
511         simplifying them.
512
513 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
514
515         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
516         and other expected operations explicitly, change default to
517         gcc_unreachable. 
518
519 2007-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
520
521         * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
522         PARALLEL.
523         * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
524         (tls_load_dot_plus_eight): Move the label number into the unspec.
525         * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
526
527 2007-07-01  Andreas Schwab  <schwab@suse.de>
528
529         * dwarf2out.c (initial_return_save): Define only if used.
530
531 2007-07-01  Kenneth Zadeck <zadeck@naturalbridge.com>
532
533         Unreverting Richard's Revert of:
534
535         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
536
537         * dce.c (deletable_insn_p_1): New function, split out from...
538         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
539         specially, not those inside PARALLELs.  Remove BODY argument
540         and adjust recursive call accordingly.
541         (prescan_insns_for_dce): Update call to delete_insn_p.
542
543 2007-07-01  Vladimir Yanovsky  <yanov@il.ibm.com>
544             Revital Eres  <eres@il.ibm.com>
545
546         * ddg.c (create_ddg_all_sccs): Fix missed
547         initialization of scc_nodes.
548
549 2007-07-01  Uros Bizjak  <ubizjak@gmail.com>
550
551         PR middle-end/32559
552         * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
553         X + ~X to 1 only for INTEGRAL_TYPE_P type.
554
555 2007-06-30  Joseph Myers  <joseph@codesourcery.com>
556
557         * configure.ac: Check for .gnu_attribute on MIPS.
558         * configure, config.in: Regenerate.
559         * config/mips/mips.c (mips_file_start): If supported, output
560         attribute for floating-point ABI.
561
562 2007-06-30  Uros Bizjak  <ubizjak@gmail.com>
563
564         PR target/32433
565         * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
566         (ffs_cmove): New expander to expand using ctz pattern.
567         (*ffs_cmove): Remove pattern.
568         (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
569         (ffsdi2): Expand using ctz pattern.
570         (*ffs_rex64): Remove pattern.
571
572 2007-06-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
573
574         PR rtl-optimization/32296
575         * pa.md (return): Delete pattern.
576         (return_internal): Remove "(const_int 1)" from pattern.
577         (epilogue): Use return_internal pattern for trivial returns.
578         * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
579         * pa.c (hppa_can_use_return_insn_p): Delete function.  Include "df.h".
580
581 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
582
583         * tree-ssa-pre.c (is_exception_related): New function
584         (can_value_number_operation): Use it.
585
586 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
587         
588         Fix PR tree-optimization/32540
589         Fix PR tree-optimization/31651
590
591         * tree-ssa-sccvn.c: New file.
592
593         * tree-ssa-sccvn.h: Ditto.
594         
595         * tree-vn.c: Include tree-ssa-sccvn.h
596         (val_expr_paid_d): Removed.
597         (value_table): Ditto.
598         (vn_compute): Ditto.
599         (val_expr_pair_hash): Ditto.
600         (val_expr_pair_expr_eq): Ditto.
601         (copy_vuses_from_stmt): Ditto.
602         (vn_delete): Ditto.
603         (vn_init): Ditto.
604         (shared_vuses_from_stmt): Ditto.
605         (print_creation_to_file): Moved up.
606         (sort_vuses): Ditto.
607         (sort_vuses_heap): Ditto.
608         (set_value_handle): Make non-static.
609         (make_value_handle): Ditto.
610         (vn_add): Rewritten to use sccvn lookups.
611         (vn_add_with_vuses): Ditto.
612         (vn_lookup): Ditto (and second argument removed).
613         (vn_lookup_with_vuses): Ditto.
614         (vn_lookup_or_add): Ditto (and second argument removed);
615         (vn_lookup_or_add_with_vuses): Ditto.
616         (vn_lookup_with_stmt): New.
617         (vn_lookup_or_add_with_stmt): Ditto.
618         (create_value_handle_for_expr): Ditto.
619
620         * tree-ssa-pre.c: Include tree-ssa-sccvn.h.
621         (seen_during_translate): New function.
622         (phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
623         (phi_trans_add): Ditto.
624         (constant_expr_p): FIELD_DECL is always constant.
625         (phi_translate_1): Renamed from phi_translate, add seen bitmap.
626         Use constant_expr_p.
627         Avoid infinite recursion on mutually valued expressions.
628         Change callers of vn_lookup_or_add.
629         (phi_translate): New function.
630         (compute_antic_safe): Allow phi nodes.
631         (create_component_ref_by_pieces): Update for FIELD_DECL change.
632         (find_or_generate_expression): Rewrite slightly.
633         (create_expression_by_pieces): Updated for vn_lookup_or_add
634         change.
635         Update VN_INFO for new names.
636         (insert_into_preds_of_block): Update for new names.
637         (add_to_exp_gen): New function.
638         (add_to_sets): Use vn_lookup_or_add_with_stmt.
639         (find_existing_value_expr): Rewrite to changed vn_lookup.
640         (create_value_expr_from): Ditto, and use add_to_exp_gen.
641         (try_look_through_load): Removed.
642         (try_combine_conversion): Ditto.
643         (get_sccvn_value): New function.
644         (make_values_for_phi): Ditto.
645         (make_values_for_stmt): Ditto.
646         (compute_avail): Rewritten for vn_lookup_or_add changes and to use
647         SCCVN.
648         (init_pre): Update for SCCVN changes.
649         (fini_pre): Ditto.
650         (execute_pre): Ditto.
651
652         * tree-flow.h (make_value_handle): Declare.
653         (set_value_handle): Ditto.
654         (sort_vuses_heap): Ditto.
655         (vn_lookup_or_add_with_stmt): Ditto.
656         (vn_lookup_with_stmt): Ditto.
657         (vn_compute): Remove.
658         (vn_init): Ditto.
659         (vn_delete): Ditto.
660         (vn_lookup): Update arguments.
661
662         * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
663         (tree-vn.o): Ditto.
664         (tree-ssa-sccvn.o): New.
665         (OBJS-common): Add tree-ssa-sccvn.o
666         
667 2007-06-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
668
669         PR c/4076
670         * c-typeck.c (build_external_ref): Don't mark as used if called
671         from itself.
672         * calls.c (rtx_for_function_call): Likewise.
673         
674 2007-06-30  Richard Sandiford  <richard@codesourcery.com>
675
676         Revert:
677
678         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
679
680         * dce.c (deletable_insn_p_1): New function, split out from...
681         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
682         specially, not those inside PARALLELs.  Remove BODY argument
683         and adjust recursive call accordingly.
684         (prescan_insns_for_dce): Update call to delete_insn_p.
685
686 2007-06-30  Rask Ingemann Lambertsen <rask@sygehus.dk>
687
688         * combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
689         (try_combine): Move potential calls to undo_all() so they happen
690         before we commit to using the combined insns.
691
692 2006-06-30  Jan Hubicka  <jh@suse.cz>
693
694         * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
695         code.
696
697 2006-06-30  Thomas Neumann  <tneumann@users.sourceforge.net>
698
699         * ipa.c (cgraph_postorder): Cast according to the coding conventions.
700         (cgraph_remove_unreachable_nodes): Likewise.
701         * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
702         * ipa-inline.c (update_caller_keys): Cast according to the coding
703         conventions.
704         (cgraph_decide_recursive_inlining): Likewise.
705         (cgraph_decide_inlining_of_small_function): Likewise.
706         (try_inline): Likewise.
707         (cgraph_decide_inlining_incrementally): Likewise.
708         * ipa-pure-const.c (get_function_state): Likewise.
709         (scan_function): Likewise.
710         (analyze_function): Likewise.
711         (static_execute): Likewise.
712         * gcc/ipa-reference.c (scan_for_static_refs): Likewise.
713         (merge_callee_local_info): Likewise.
714         (analyze_function): Use type safe memory macros.
715         (static_execute): Likewise. Cast according to the coding conventions.
716         * ipa-type-escape.c (scan_for_regs): Cast according to the coding
717         conventions.
718         * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
719         names.
720         (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
721         * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
722         variable names.
723
724 2007-06-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
725
726         PR middle-end/30024
727         * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
728         for complex modes (both int and real).
729
730 2007-06-29  Jan Hubicka  <jh@suse.cz>
731
732         * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
733
734 2007-06-29  Jan Hubicka  <jh@suse.cz>
735
736         PR middle-end/32372
737         * cse.c (cse_insn): Avoid invalid sharing in between register note and
738         the insn pattern.
739
740 2007-06-29  Anatoly Sokolov <aesok@post.ru>
741
742         PR target/32335
743         * config/avr/avr.c: Include dataflow header file.
744         (expand_prologue): Adjust for prologue insn change.
745         * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
746         inside a insn.
747
748 2007-06-29  Richard Guenther  <rguenther@suse.de>
749
750         PR middle-end/32493
751         * gimplify.c (gimplify_call_expr): Ignore variable argument parts
752         during type verification.
753
754 2007-06-29  Jan Hubicka  <jh@suse.cz>
755
756         * recog.c (validate_change_rtx_1): Unshare TO argument.
757
758 2007-06-29  Uros Bizjak  <ubizjak@gmail.com>
759
760         PR tree-optimization/24659
761         * tree-vect-transform.c (vectorizable_call): Handle
762         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
763
764         * config/i386/sse.md (vec_pack_sfix_v2df): New expander.
765         * config/i386/i386.c (enum ix86_builtins)
766         [IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
767         (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
768         description.
769         (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
770         const using def_builtin_const.
771         (ix86_expand_binop_builtin): Remove bogus assert() that insn wants
772         input operands in the same modes as the result.
773         (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.
774
775 2007-06-29  Richard Sandiford  <rsandifo@nildram.co.uk>
776
777         * df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
778         (df_set_dead_notes_for_mw): Likewise.
779
780 2007-06-29  Eric Botcazou  <ebotcazou@adacore.com>
781
782         * c-common.c (pointer_int_sum): Do the negation in sizetype.
783
784 2007-06-28  DJ Delorie  <dj@redhat.com>
785
786         * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.
787
788 2007-06-28  Geoffrey Keating  <geoffk@apple.com>
789
790         * doc/invoke.texi (C++ Dialect Options): Document
791         fvisibility-ms-compat.
792         * c.opt (fvisibility-ms-compat): New.
793
794 2007-06-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
795
796         PR tree-opt/32417
797         * tree-affine.c (aff_combination_add_elt): Handle
798         pointer addition specially.
799
800 2007-06-28  Jakub Jelinek  <jakub@redhat.com>
801
802         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
803         decl is non-external for AIX ABI.
804
805 2007-06-28  David Edelsohn  <edelsohn@gnu.org>
806
807         * config/rs6000/predicates.md (current_file_function_operand):
808         Ensure the symbol is non-external for AIX ABI.
809
810 2007-06-28  Nick Clifton  <nickc@redhat.com>
811
812         * common.opt (fipa-matrix-reorg): Add Optimization attribute.
813         (fdce, fdse, fpredictive-commoning): Likewise.
814
815 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
816
817         PR other/31400
818         * gcc.c (process_command): Recognize the new -static-libgfortran
819         option.
820
821 2007-06-27  Rask Ingemann Lambertsen  <rask@sygehus.dk>
822
823         PR target/32418
824         * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix:
825         Use a call clobbered hard reg instead of a pseudo reg.
826
827 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
828
829         * config/sh/sh.md (load_gbr): Use correct operand constraint.
830
831 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
832
833         PR target/32479
834         * config/sh/sh.md (udivsi3): Don't wrap the sequence with
835         REG_LIBCALL and REG_RETVAL notes.
836         (divsi3, mulsi3): Likewise.
837         (mulhisi3): Likewise.  Use emit_libcall_block.
838         (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.
839
840 2007-06-27  Seongbae Park  <seongbae.park@gmail.com>
841
842         PR rtl-optimization/32481
843         * combine.c (adjust_for_new_dest): Rescan the changed insn.
844
845 2007-06-27  Richard Sandiford  <richard@codesourcery.com>
846
847         * dce.c (deletable_insn_p_1): New function, split out from...
848         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
849         specially, not those inside PARALLELs.  Remove BODY argument
850         and adjust recursive call accordingly.
851         (prescan_insns_for_dce): Update call to delete_insn_p.
852
853 2007-06-27  Richard Guenther  <rguenther@suse.de>
854
855         PR middle-end/32492
856         * tree.h (fold_convertible_p): Declare.
857         * fold-const.c (fold_convertible_p): New function.
858         * gimplify.c (gimplify_call_expr): Use fold_convertible_p
859         instead of lang_hooks.types_compatible_p.
860
861 2007-06-26  Jan Hubicka  <jh@suse.cz>
862
863         * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
864         * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
865         early use validate_unshare_change.
866         (reload_combine): Likewise.
867         * recog.c (change_t): New field unshare.
868         (validate_change_1): Rename from validate_change; add argument unshare.
869         (validate_change): Turn into wrapper of validate_change_1; update
870         prototype for bools.
871         (validate_unshare_change): New.
872         (confirm_change_group): Unshare changes if asked for; avoid unnecesary
873         calls of df_insn_rescan.
874         * recog.h (validate_change): Replace ints by bools.
875         (validate_unshare_change): Declare.
876
877 2007-06-26  Kenneth Zadeck <zadeck@naturalbridge.com>
878
879         * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
880         
881 2007-06-26  Steve Ellcey  <sje@cup.hp.com>
882
883         * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
884
885 2007-06-25  Jan Hubicka  <jh@suse.cz>
886
887         * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
888         uninlinable call.
889         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
890         cgraph_decide_inlining_incrementally): Move uninlinability checks to
891         places other call site specific checks are performed.
892
893 2007-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
894
895         PR tree-opt/32421
896         * tree-vect-transform.c (vectorizable_operation): Convert
897         POINTER_PLUS_EXPR over to PLUS_EXPR.
898
899 2007-06-25  Chao-ying Fu  <fu@mips.com>
900
901         * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
902         UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
903         Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
904         Document GET_MODE_IBIT, and GET_MODE_FBIT.
905
906         * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
907         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
908         (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
909         SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
910         SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
911         ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
912         ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
913         SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
914         ALL_FIXED_POINT_MODE_P): New define.
915         (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
916         MODE_UACCUM.
917         (GET_MODE_IBIT, GET_MODE_FBIT): New define.
918
919         * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
920         MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
921         MODE_VECTOR_UACCUM): New mode classes.
922
923         * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
924         UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
925         Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
926         USA, UDA, and UTA.
927
928         * genmodes.c (struct mode_data): Add ibit and fbit fields.
929         (blank_mode): Initialize ibit and fbit.
930         (adj_ibit, adj_fbit): New to adjust ibit and fbit.
931         (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
932         (new_adjust): Change required_class to required_class_from and
933         required_class_to for testing within a range.
934         (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
935         MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
936         MODE_VECTOR_UACCUM.
937         (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
938         (make_fixed_point_mode): New.
939         (_ADD_ADJUST): Change C to C1 and C2.
940         (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
941         use a range for machine classes.
942         (ADJUST_IBIT, ADJUST_FBIT): New.
943         (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
944         CONST_MODE_FBIT.
945         (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
946         MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
947         Emit adjustment for ibit and fbit.
948         (emit_mode_ibit, emit_mode_fbit): New.
949         (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
950
951 2007-06-25  Nathan Froyd  <froydnj@codesourcery.com>
952
953         * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
954         as the source of the set.
955
956 2007-06-25  Roman Zippel <zippel@linux-m68k.org>
957
958         * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
959         FP_REGNO_P): Use IN_RANGE.
960         (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
961         (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
962         (DATA_REG_P): Use DATA_REGNO_P.
963         (FP_REG_P): Use FP_REGNO_P.
964         (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
965         * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
966         REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
967
968 2007-06-24  Jan Hubicka  <jh@suse.cz>
969
970         PR middle-end/30563
971         * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
972
973 2007-06-24  Sebastian Pop  <sebpop@gmail.com>
974
975         PR middle-end/32461
976         * fold-const.c (fold_binary): Strip nops of operand 0
977         of BIT_NOT_EXPR before calling operand_equal_p.
978         * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
979         * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
980
981 2007-06-23  Mark Mitchell  <mark@codesourcery.com>
982
983         * doc/extend.texi: Document that dllimport and dllexport imply
984         default visibility.
985         * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
986         imported or exported declaration, including type declarations.
987         * c-common.c (handle_visibility_attribute): Check for conflicts
988         with dllimport/dllexport.
989         (c_determine_visibility): Handle dllimport/dllexport as an
990         explicit visibility atttribute.
991
992 2007-06-23  Richard Guenther  <rguenther@suse.de>
993
994         PR tree-optimization/16876
995         PR middle-end/29478
996         * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
997         for CALL_EXPRs.
998         * tree-inline.c (initialize_inlined_parameters): Do not call
999         lang_hooks.tree_inlining.convert_parm_for_inlining.
1000         * cgraphbuild.c (initialize_inline_failed): Set inline failed
1001         reason for mismatched types.
1002         * gimplify.c (gimplify_call_expr): Verify the call expression
1003         arguments match the called function type signature.  Otherwise
1004         mark the call expression to be not considered for inlining
1005         using CALL_CANNOT_INLINE_P flag.
1006         * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
1007         edges call expression.
1008         (cgraph_decide_inlining_of_small_function): Likewise.
1009         (cgraph_decide_inlining): Likewise.
1010         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
1011         Remove define.
1012         * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
1013         * c-typeck.c (c_convert_parm_for_inlining): Remove.
1014         * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
1015         Remove declaration.
1016         (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
1017         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
1018         Remove.
1019         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
1020         convert_parm_for_inlining member.
1021
1022 2007-06-23  Richard Earnshaw  <rearnsha@arm.com>
1023
1024         PR target/31152
1025         * arm.md (negscc): Match the correct operand for optimized LT0 test.
1026         Remove optimization for GT.
1027
1028 2007-06-23  Kenneth Zadeck <zadeck@naturalbridge.com>
1029
1030         PR middle-end/32437
1031         * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
1032         is a PARALLEL.
1033         (prescan_insns_for_dce): Add extra parameter.
1034         
1035 2007-06-23  Jan Hubicka  <jh@suse.cz>
1036
1037         PR middle-end/31541
1038         * gimplify.c (mark_addressable): New function.
1039         (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
1040
1041 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
1042
1043         PR middle-end/32374
1044         * expr.c (store_constructor): Do not clobber non-zeroed memory. 
1045
1046 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
1047
1048         PR target/32413
1049         * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
1050         moves between MMX/SSE registers to at least 8 units to prevent
1051         ICE caused by non-tieable SI/HI/QImodes in SSE registers. 
1052
1053 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
1054
1055         * config/i386/i386.c (override_options): Correct x86_sahf
1056         setting condition.
1057
1058 2007-06-21  David Daney  <ddaney@avtrex.com>
1059
1060         PR target/32406
1061         * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
1062         to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
1063         (exception_receiver): Renamed to ...
1064         (nonlocal_goto_receiver): ... this.
1065
1066 2007-06-22  Roman Zippel <zippel@linux-m68k.org>
1067
1068         * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
1069         (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
1070         partial register accesses.
1071
1072 2007-06-21  Adam Nemet  <anemet@caviumnetworks.com>
1073
1074         * fold-const.c (debug_fold_checksum): Move it under
1075         ENABLE_FOLD_CHECKING.
1076
1077 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
1078
1079         PR middle-end/20623
1080         * tree.h (debug_fold_checksum): Declared.
1081         * fold-const.c (build_fold_addr_expr_with_type_1): New.
1082         (build_fold_addr_expr_with_type, build_fold_addr_expr): Use 
1083         build_fold_addr_expr_with_type_1.
1084         (fold_addr_expr, debug_fold_checksum): New.
1085         (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
1086         (fold_unary, fold_comparison, split_address_to_core_and_offset):
1087         Use fold_addr_expr.
1088         
1089 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
1090
1091         PR tree-optimization/19590
1092         * tree-vrp.c (adjust_range_with_scev): Set the range when the result
1093         of scev is a constant.
1094         * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
1095
1096 2007-06-21  Kenneth Zadeck <zadeck@naturalbridge.com>
1097
1098         * df-problems.c (df_note_bb_compute): Made computation of live
1099         info consistent with df_lr.
1100
1101 2007-06-21  Richard Guenther  <rguenther@suse.de>
1102
1103         PR tree-optimization/32453
1104         * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
1105         for pointer anti-range.
1106
1107 2007-06-21  H.J. Lu  <hongjiu.lu@intel.com>
1108
1109         * config/i386/i386.c (processor_target_table): Increase maximum
1110         skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
1111         default 64bit.
1112
1113         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
1114         byte alignment if > 8 byte alignment is preferred.
1115         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1116
1117 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
1118
1119         PR tree-optimization/31866
1120         * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
1121         if ASM_EXPR's input is not a SSA_NAME.
1122
1123         PR middle-end/32362
1124         * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
1125         but decl is a global var, instead return decl.
1126         * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
1127         even for is_global_var decls, if they are private in some outer
1128         context.
1129
1130 2007-06-21  Richard Guenther  <rguenther@suse.de>
1131
1132         PR tree-optimization/32451
1133         * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
1134
1135 2007-06-21  Christian Bruel  <christian.bruel@st.com>
1136
1137         * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
1138         * config/sh/sh.c (sh_loads_bankedreg_p): New function.
1139         (push_regs): Changed saving order or banked registers.
1140         (sh_expand_epilogue): Likewise.
1141         * config/sh/sh.h (BANKED_REGISTER_P): New macro.
1142         (FIRST_BANKED_REG): Likewise.
1143         (LAST_BANKED_REG): Likewise.
1144         * config/sh/sh.md (banked) New attribute.
1145         (in_delay_slot): Check banked attribute.
1146         
1147 2007-06-20  Sebastian Pop  <sebpop@gmail.com>
1148
1149         PR tree-optimization/32075
1150         * tree-data-ref.c (subscript_dependence_tester_1, 
1151         analyze_miv_subscript, analyze_overlapping_iterations,
1152         add_distance_for_zero_overlaps, build_classic_dist_vector,
1153         subscript_dependence_tester_1, analyze_overlapping_iterations,
1154         subscript_dependence_tester, access_functions_are_affine_or_constant_p,
1155         compute_affine_dependence, compute_all_dependences): Pass loop_nest 
1156         to evolution_function_is_affine_multivariate_p.
1157
1158 2007-06-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
1159
1160         * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
1161
1162 2007-06-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1163
1164         PR target/32335
1165         * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
1166         for TARGET_A16.
1167         * config/m32c/prologue.md (epilogue_exitd_16): New.
1168         (epilogue_reit_16): New.
1169         (epilogue_exitd): Rename to epilogue_exitd_24.
1170         (epilogue_reit): Rename to epilogue_reit_24.
1171
1172 2007-06-20  Seongbae Park  <seongbae.park@gmail.com>
1173             Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1174
1175         * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
1176         New counters.
1177         * haifa-sched.c (queue_to_ready): Don't requeue next insn
1178         if dbg_cnt (sched_insn) reaches the limit.
1179         (choose_ready): New parameter INSN_PTR and new return value.
1180         (schedule_block): Handle dbg_cnt (sched_insn). Handle
1181         the new return value from choose_ready.
1182         * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
1183         (rest_of_handle_global_alloc): New global_alloc_at_func.
1184
1185 2007-06-20  Adam Nemet  <anemet@caviumnetworks.com>
1186
1187         PR tree-optimization/25737
1188         * tree.h (struct tree_struct_field_tag): Add new field alias_set.
1189         (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
1190         * tree-flow.h (struct fieldoff): Add new field alias_set.
1191         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
1192         argument addressable_type.  Set alias_set of fieldoff.
1193         * tree-ssa-alias.c (create_sft): Add new argument alias_set.
1194         (create_overlap_variables_for): Pass alias_set from fieldoff to
1195         create_sft.
1196         * alias.c (get_alias_set): Use alias_set from SFT if set.
1197
1198 2007-06-20  Hui-May Chang  <hm.chang@apple.com>
1199
1200         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
1201         of a variable as an unsigned HOST_WIDE_INT integer.
1202
1203 2007-06-20  Zdenek Dvorak  <dvorakz@suse.cz>
1204
1205         PR rtl-optimization/32405
1206         * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
1207
1208 2007-06-20  Jakub Jelinek  <jakub@redhat.com>
1209
1210         * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
1211
1212         PR middle-end/31959
1213         * builtins.c: Include diagnostic.h.
1214         (expand_builtin_expect): Make gcc_assert more permissive.
1215         * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
1216
1217         PR inline-asm/32109
1218         * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
1219         and !allows_mem.
1220
1221         PR middle-end/32285
1222         * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
1223         if ACCUMULATE_OUTGOING_ARGS.
1224
1225 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1226
1227         * config/m68hc11/m68hc11.c: Include dataflow header file.
1228         (m68hc11_reorg): Port to dataflow.
1229
1230 2007-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
1231
1232         * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
1233         (struct df_problem.free_blocks_on_set_blocks): New field.
1234         (struct dataflow.optional_p): New field.
1235         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
1236         (df_live_set_all_dirty): New function.
1237         * df-scan.c (df_scan_alloc): Initialize optional_p.
1238         (problem_SCAN): Initialize free_blocks_on_set_blocks.
1239         * df-core.c (df_set_blocks): Removed use of
1240         DF_FIRST_OPTIONAL_PROBLEM.  Now uses
1241         df_problem.free_blocks_on_set_blocks to determine which blocks are
1242         recycled.
1243         (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
1244         (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM.  Now
1245         uses dataflow.optional_p to determine if problem should be
1246         deleted.
1247         (rest_of_handle_df_initialize): Only start live problem if 
1248         -02 or above.
1249         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
1250         * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
1251         df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
1252         (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
1253         problem_NOTE):  Initialize free_blocks_on_set_blocks.
1254         (df_lr_bb_local_compute): Recompute luids if df_live problem is
1255         not active.
1256         (df_live_set_all_dirty, df_note_alloc): New function.
1257         * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
1258         df_get_live_*.
1259         * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
1260         * postreload.c (reload_combine): Ditto.
1261         * cse.c (cse_extended_basic_block): Ditto.
1262         * regmove.c (mark_flags_life_zones): Ditto.
1263         * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
1264         erase_matching_seqs): Ditto.
1265         * bt-load.c (compute_defs_uses_and_gen): Ditto.
1266         * integrate (allocate_initial_values): Ditto.
1267         * combine.c (reg_dead_at_p): Ditto.
1268         * resource.c (mark_target_live_regs): Ditto.
1269         * sched-rgn.c (check_live_1, update_live_1): Ditto.
1270         * config/sh/sh.c (find_r0_life_regions): Ditto.
1271         * global.c (rest_of_handle_global_alloc): Only add back df_live
1272         for -O > 1.
1273         * local-alloc.c (rest_of_handle_local_alloc): Only remove
1274         df_live for -O > 1.
1275         * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
1276         df_get_live_*.
1277         (if_convert): Make sure df_live is there at -O == 1.
1278         (pass_if_after_combine): Cleanup flags.
1279         * init-regs.c (initialize_uninitialized_regs): Make sure df_live
1280         is there at -O == 1.
1281         
1282 2007-06-19  Seongbae Park  <seongbae.park@gmail.com>
1283
1284         * config/arm/arm.c (arm_get_frame_offsets): Set
1285         offsets->locals_base to avoid negative stack size.
1286         (thumb1_expand_prologue): Assert on negative stack size.
1287
1288 2007-04-19  Sebastian Pop  <sebpop@gmail.com>
1289
1290         PR tree-optimization/32367
1291         * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side 
1292         of the chrec has no evolution in that loop.
1293         * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
1294
1295 2007-06-19  Bob Wilson  <bob.wilson@acm.org>
1296
1297         * config/xtensa/xtensa.c: Include "df.h".
1298         (xtensa_builtin_saveregs): Use adjust_address instead of change_address.
1299         (xtensa_va_start): Invoke make_tree with sizetype for
1300         expand_builtin_saveregs and then convert the result to a pointer.
1301         Use POINTER_PLUS_EXPR.  Use size_int instead of build_int_cst.
1302         (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
1303         Subtract argument size from index value as integers and then use
1304         POINTER_PLUS_EXPR to add the result to the array address.
1305         
1306 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1307
1308         PR target/32335
1309         * config/m32c/m32c.c: Include dataflow header file.
1310         (m32c_emit_prologue): Adjust for prologue insn change.
1311         * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
1312         once inside a PARALLEL. Assume frame size passed in operand 0
1313         includes space to save the fb register.
1314         (prologue_enter_24): Likewise.
1315         (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
1316
1317 2007-06-19  David Daney  <ddaney@avtrex.com
1318
1319         PR target/32313
1320         * config/mips/mips.md (cprestore): Mark $gp as used.
1321
1322 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1323
1324         PR target/32369
1325         * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
1326         (frv_ifcvt_modify_insn): Likewise.
1327
1328 2007-06-19  Richard Guenther  <rguenther@suse.de>
1329
1330         * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
1331         only handle positive offsets that fit in a HOST_WIDE_INT.
1332
1333 2007-06-19  Uros Bizjak  <ubizjak@gmail.com>
1334
1335         * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
1336         result of rsqrt insn for zero input argument to avoid NaN.
1337
1338 2007-06-19  Richard Guenther  <rguenther@suse.de>
1339
1340         PR middle-end/31950
1341         * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
1342
1343 2007-06-19  Jakub Jelinek  <jakub@redhat.com>
1344
1345         PR tree-optimization/32353
1346         * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
1347
1348 2007-06-19  Nick Clifton  <nickc@redhat.com>
1349
1350         * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
1351
1352 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
1353
1354         PR target/32389
1355         * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
1356         * config/i386/i386.c (assign_386_stack_local): Assert that
1357         SLOT_VIRTUAL is valid only before virtual regs are instantiated.
1358         (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
1359         Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
1360         * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
1361
1362 2007-06-18  Steve Ellcey  <sje@cup.hp.com>
1363
1364         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
1365
1366 2007-06-18  Seongbae Park  <seongbae.park@gmail.com>
1367
1368         PR rtl-optimization/32321
1369         * gcse.c (replace_store_insn): Update the note before
1370         calling emit_insn_after.
1371
1372 2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>
1373
1374         PR middle-end/32355
1375         * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
1376         cse_main.
1377         * df-problems.c (df_note_bb_compute): Fix dumping info.
1378         
1379 2007-06-18  Kazu Hirata  <kazu@codesourcery.com>
1380
1381         * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
1382         insn with emit_jump_insn.
1383
1384 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
1385
1386         PR tree-optimization/32383
1387         * targhooks.c (default_builtin_reciprocal): Add new bool argument.
1388         * targhooks.h (default_builtin_reciprocal): Update prototype.
1389         * target.h (struct gcc_target): Update builtin_reciprocal.
1390         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
1391         * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
1392         where arg1 is not SSA_NAME.  Pass true to targetm.builtin_reciprocal
1393         when fndecl is in BUILT_IN_MD class.
1394         (execute_convert_to_rsqrt): Ditto.
1395
1396         * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
1397         argument.  Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
1398         Convert BUILT_IN_SQRTF code only  when md_fn is false.
1399
1400 2007-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1401
1402         * bt-load.c (move_btr_def): Fix the order of arguments
1403         to validate_replace_rtx.
1404
1405 2007-06-18  Nathan Sidwell  <nathan@codesourcery.com>
1406
1407         * config/m68k/m68k-devices.def: Add 54450..54455.
1408
1409 2007-06-17  Uros Bizjak  <ubizjak@gmail.com>
1410
1411         PR rtl-optimization/32366
1412         * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
1413         FLOAT_EXTEND]: Prevent non-scalar modes from entering
1414         significand_size.
1415
1416 2007-06-17  Kenneth Zadeck <zadeck@naturalbridge.com>
1417
1418         PR middle-end/32349
1419         * modulo-sched (generate_reg_moves): Added rescan parameter and if
1420         this is true, rescan insn being modified.
1421         (sms_schedule): Added rescan parameter.
1422         (rest_of_handle_sms): Moved freeing of dominance info to before
1423         getting out of cfg_layout.
1424         
1425 2007-06-17  Nathan Sidwell  <nathan@codesourcery.com>
1426
1427         * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
1428         * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
1429         appropriate.
1430
1431         * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
1432         FL_CF_EMAC from the entry for isac.
1433
1434         * config/m68k/predicates.md (const_call_operand): Adjust comment.
1435         (const_sibcall_operand): New.
1436         (sibcall_operand): Use it.
1437         * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
1438         (m68k_isas): ISAC does not imply FPU or EMAC.
1439         (override_options): Add ISA_C logic for symbolic jump & call.
1440
1441 2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
1442
1443         * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
1444         return mode from the builtin itself.
1445         (sparc_fold_builtin): Fix cast of zero constant.
1446
1447 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
1448
1449         * targhooks.c (default_builtin_reciprocal): New default target hook.
1450         * targhooks.h (default_builtin_reciprocal): Add prototype.
1451         * hooks.c (hook_tree_tree_bool_null): Remove hook.
1452         * hooks.h (hook_tree_tree_bool_null): Remove prototype.
1453         * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
1454         default_builtin_reciprocal.
1455
1456 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
1457
1458         PR middle-end/31723
1459         * hooks.c (hook_tree_tree_bool_null): New hook.
1460         * hooks.h (hook_tree_tree_bool_null): Add prototype.
1461         * tree-pass.h (pass_convert_to_rsqrt): Declare.
1462         * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
1463         * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
1464         and convert it to reciprocal a*rfunc(b).
1465         (execute_convert_to_rsqrt): New function.
1466         (gate_convert_to_rsqrt): New function.
1467         (pass_convert_to_rsqrt): New pass definition.
1468         * target.h (struct gcc_target): Add builtin_reciprocal.
1469         * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
1470         (TARGET_INITIALIZER): Initialize builtin_reciprocal with
1471         TARGET_BUILTIN_RECIPROCAL.
1472         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
1473
1474         * config/i386/i386.h (TARGET_RECIP): New define.
1475         * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
1476         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1477         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1478         and not optimizing for size.
1479         (*rcpsf2_sse): New insn pattern.
1480         (*rsqrtsf2_sse): Ditto.
1481         (rsqrtsf2): New expander.  Expand by calling ix86_emit_swsqrtsf
1482         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1483         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1484         and not optimizing for size.
1485         (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
1486         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1487         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1488         and not optimizing for size.
1489         * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
1490         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1491         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1492         and not optimizing for size.
1493         (*sse_rsqrtv4sf2): Do not export.
1494         (sqrtv4sf2): Ditto.
1495         (sse_rsqrtv4sf2): New expander.  Expand by calling ix86_emit_swsqrtsf
1496         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1497         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1498         and not optimizing for size.
1499         (sqrtv4sf2): Ditto.
1500         * config/i386/i386.opt (mrecip): New option.
1501         * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
1502         (ix86_emit_swsqrtsf): Ditto.
1503         * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
1504         (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
1505         builtin definition.
1506         (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
1507         ix86_expand_unop1_builtin.
1508         (ix86_emit_swdivsf): New function.
1509         (ix86_emit_swsqrtsf): Ditto.
1510         (ix86_builtin_reciprocal): New function.
1511         (TARGET_BUILTIN_RECIPROCAL): Use it.
1512         (ix86_vectorize_builtin_conversion): Rename from
1513         ix86_builtin_conversion.
1514         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
1515         * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
1516         "i386 and x86_64 Options" section.
1517         (Intel 386 and AMD x86_64 Options): Document -mrecip.
1518
1519 2007-06-15  Andrew Pinski <andrew_pinski@playstation.sony.com>
1520             Zdenek Dvorak <dvorakz@suse.cz>
1521             Richard Guenther  <rguenther@suse.de>
1522             Kaz Kojima  <kkojima@gcc.gnu.org>
1523
1524         * tree-vrp.c (compare_values_warnv): Convert val2 to
1525         the type of val1.
1526         (extract_range_from_assert): Create
1527         POINTER_PLUS_EXPR for pointer types.
1528         (extract_range_from_binary_expr): Handle
1529         only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
1530         for pointer types.
1531         * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
1532         * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
1533         POINTER_PLUS_EXPR as PLUS_EXPR.
1534         (number_of_iterations_lt_to_ne):
1535         For pointer types, use sizetype when
1536         creating MINUS_EXPR/PLUS_EXPRs.
1537         (assert_loop_rolls_lt): For pointer types, use sizetype when
1538         creating MINUS_EXPR/PLUS_EXPRs.
1539         (number_of_iterations_le): Likewise.
1540         (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
1541         (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
1542         like PLUS_EXPR and MINUS_EXPR.
1543         * tree-pretty-print.c (dump_generic_node): Handle
1544         POINTER_PLUS_EXPR.
1545         (op_prio): Likewise.
1546         (op_symbol_1): Likewise.
1547         * optabs.c (optab_for_tree_code): Likewise.
1548         * tree-ssa-loop-manip.c (create_iv): Handle pointer base
1549         specially.
1550         * tree-tailcall.c (process_assignment): Mention
1551         POINTER_PLUS_EXPR in a TODO comment.
1552         * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or 
1553         MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
1554         not used with a pointer and an integer type.
1555         * tree-scalar-evolution.c (add_to_evolution_1): Convert the
1556         increment using chrec_convert_rhs instead of chrec_convert.
1557         (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
1558         PLUS_EXPR except for the right hand side's type will be
1559         sizetype.
1560         (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
1561         (fold_used_pointer_cast): Kill.
1562         (pointer_offset_p): Kill.
1563         (fold_used_pointer): Kill.
1564         (pointer_used_p): Kill.
1565         (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
1566         call fold_used_pointer.
1567         (instantiate_parameters_1): Convert the increment
1568         using chrec_convert_rhs instead of chrec_convert.
1569         Handle POINTER_PLUS_EXPR as PLUS_EXPR.
1570         * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
1571         instead of PLUS_EXPR.
1572         (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
1573         PLUS_EXPR for pointers.
1574         (std_gimplify_va_arg_expr): Likewise.
1575         (fold_builtin_memory_op): Likewise.
1576         (fold_builtin_strstr): Likewise.
1577         (fold_builtin_strchr): Likewise.
1578         (fold_builtin_strrchr): Likewise.
1579         (fold_builtin_strpbrk): Likewise.
1580         (expand_builtin_memory_chk): Likewise.
1581         (fold_builtin_memory_chk): Likewise.
1582         (std_expand_builtin_va_start): Use
1583         sizetype for the call to make_tree and then convert
1584         to the pointer type.
1585         (fold_builtin_memchr): Use POINTER_PLUS_EXPR
1586         instead of PLUS_EXPR for adding to a pointer.
1587         (std_gimplify_va_arg_expr): Use fold_build2 for
1588         the creating of POINTER_PLUS_EXPR.  For the BIT_AND_EXPR, cast
1589         the operands to sizetype first and then cast the BIT_AND_EXPR
1590         back to the pointer type.
1591         * fold-const.c (build_range_check): Handle pointer types
1592         specially.
1593         (extract_array_ref): Look for POINTER_PLUS_EXPR instead
1594         of PLUS_EXPR's. Make sure the offset is converted to
1595         sizetype.
1596         (try_move_mult_to_index): Strip the NOPs from the offset.
1597         Remove code argument and replace all uses with PLUS_EXPR.
1598         (fold_to_nonsharp_ineq_using_bound): Handle pointer types
1599         specially. Don't use a pointer type for MINUS_EXPR.
1600         (fold_unary): Handle for (T1)(X op Y),
1601         only p+ as that is the only as that can be handled for
1602         binary operators now.
1603         (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
1604         POINTER_PLUS_EXPR.
1605         <case PLUS_EXPR>: Add folding of PTR+INT into
1606         PTR p+ INT.
1607         Don't call try_move_mult_to_index.
1608         <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
1609         into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
1610         (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
1611         Don't call try_move_mult_to_index.
1612         (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
1613         (tree_expr_nonzero_p): Likewise.
1614         (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
1615         of PLUS_EXPR for the complex expression folding.
1616         * tree-chrec.c (chrec_fold_plus_poly_poly): If the
1617         first chrec is a pointer type, then the second should
1618         be sizetype and not the first's type.
1619         For POINTER_PLUS_EXPR, use a different right hand side type.
1620         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
1621         (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
1622         different right hand side type.
1623         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
1624         (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
1625         instead of PLUS_EXPR.
1626         When either operand is zero, convert the other operand.
1627         (chrec_apply): Use chrec_convert_rhs
1628         on the argument x instead of chrec_convert.
1629         (reset_evolution_in_loop): For pointer types, the new_evol
1630         should be sizetype.
1631         (convert_affine_scev): For POINTER_PLUS_EXPR, use a
1632         different right hand side type.
1633         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
1634         (chrec_convert_rhs): New function.
1635         (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
1636         different right hand side type.
1637         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
1638         * tree-chrec.h (chrec_convert_rhs): New prototype.
1639         (build_polynomial_chrec): For pointer types, the right hand
1640         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
1641         POINTER_PLUS_EXPR instead of PLUS_EXPR's.
1642         Remove subtraction case as it is always addition now.
1643         Make sure the offset is converted to sizetype.
1644         (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
1645         Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
1646         * tree-ssa-loop-ivopts.c (determine_base_object): Abort for 
1647         PLUS_EXPR in pointer type.
1648         Handle POINTER_PLUS_EXPR.
1649         (tree_to_aff_combination): Likewise.
1650         (force_expr_to_var_cost): Likewise.
1651         (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
1652         instead of PLUS_EXPR for pointers.
1653         * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
1654         instead of PLUS_EXPR of pointer types.
1655         * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
1656         as PLUS_EXPR.
1657         (check_va_list_escapes): Likewise.
1658         (check_all_va_list_escapes): Likewise.
1659         * dwarf2out.c (loc_descriptor_from_tree_1):
1660         Handle POINT_PLUS_EXPR as a PLUS_EXPR.
1661         * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
1662         (string_constant): Likewise.
1663         * tree-ssa-address.c (tree_mem_ref_addr): When adding
1664         the offset to the base, use POINTER_PLUS_EXPR.
1665         (add_to_parts): Convert the index to sizetype.
1666         (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
1667         * matrix-reorg.c (collect_data_for_malloc_call): Stmt
1668         will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
1669         Offset only holds something for PLUS_EXPR.
1670         (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
1671         a PLUS_EXPR.
1672         (analyze_transpose): POINTER_PLUS_EXPR will only show up now
1673         and not PLUS_EXPR.
1674         (analyze_accesses_for_modify_stmt): Likewise.
1675         Remove comment about the type being integral type as it is
1676         wrong now.
1677         (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
1678         PLUS_EXPR.
1679         (transform_access_sites): POINTER_PLUS_EXPR will only show up now
1680         and not PLUS_EXPR.
1681         Correct the type which the artimentic is done in (is now
1682         sizetype).
1683         Reindent one loop.
1684         * tree-data-ref.c (split_constant_offset): Handle
1685         POINTER_PLUS_EXPR
1686         * tree-affine.c (tree_to_aff_combination): Likewise.
1687         * c-typeck.c (build_unary_op): For pointers create the increment
1688         as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
1689         for pointers.
1690         * gimplify.c (gimplify_self_mod_expr): Create a
1691         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
1692         (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
1693         * tree.def (POINTER_PLUS_EXPR): New tree code.
1694         * tree-predcom.c (ref_at_iteration): If we have a pointer
1695         type do the multiplication in sizetype.
1696         * tree-mudflap.c (mf_xform_derefs_1): Create a
1697         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
1698         * tree-ssa-forwprop.c 
1699         (forward_propagate_addr_into_variable_array_index):
1700         Don't expect there to be a cast for the index as that
1701         does not exist anymore.
1702         (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
1703         instead of PLUS_EXPR.
1704         Don't check for the first operand of the POINTER_PLUS_EXPR
1705         was the index as it cannot be.
1706         Call forward_propagate_addr_into_variable_array_index with
1707         the SSA_NAME instead of the statement.
1708         * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
1709         (compare_constant): Likewise.
1710         (copy_constant): Likewise.
1711         (compute_reloc_for_constant): Likewise.
1712         (output_addressed_constants): Likewise.
1713         (initializer_constant_valid_p): Likewise.
1714         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1715         Convert the MIN/MAX of the inner type to the outer
1716         type before comparing them.
1717         * tree-ssa-loop-prefetch.c (idx_analyze_ref):  Handle
1718         POINTER_PLUS_EXPR instead of PLUS_EXPR.
1719         (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
1720         of PLUS_EXPR for pointers.
1721         * tree-inline.c (estimate_num_insns_1): Handle
1722         POINTER_PLUS_EXPR.
1723         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): 
1724         Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
1725         (bump_vector_ptr): Create a POINTER_PLUS_EXPR
1726         instead of PLUS_EXPR for the pointer increment statement.
1727         (vect_update_ivs_after_vectorizer): For pointer types, create
1728         POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
1729         MULT_EXPR in sizetype.
1730         (vect_gen_niters_for_prolog_loop): Add a cast when creating
1731         byte_misalign.
1732         * tree-object-size.c (plus_expr_object_size): Handle
1733         POINTER_PLUS_EXPR instead of PLUS_EXPR.  Removing all the extra
1734         code which is trying to figure out which side is a pointer and 
1735         is the index.
1736         (check_for_plus_in_loops_1): Likewise.
1737         (check_for_plus_in_loops): Likewise.
1738         * c-common.c (pointer_int_sum): Create a
1739         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
1740         * tree-ssa-structalias.c (handle_ptr_arith): Handle
1741         only POINTER_PLUS_EXPR.  Removing all the extra
1742         code which is trying to figure out which side is a pointer and 
1743         is the index.
1744         * tree-cfg.c (verify_expr): Add extra checking for pointers and
1745         PLUS_EXPR and MINUS_EXPR.
1746         Also add checking to make sure the operands of POINTER_PLUS_EXPR
1747         are correct.
1748         * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
1749         with make_tree, instead of a pointer type.
1750         * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
1751         for pointers instead of PLUS_EXPR.
1752         (s390_gimplify_va_arg): Likewise.
1753         * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
1754         instead of PLUS_EXPR when doing addition on pointer
1755         types.  Use sizetype for the second operand.
1756         (spu_gimplify_va_arg_expr): Likewise.
1757         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use 
1758         POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
1759         a pointer.  Don't create a BIT_AND_EXPR for pointer types.
1760         * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
1761         for the pointer addition and also use size_int/sizetype
1762         for the offset.
1763         (ix86_gimplify_va_arg): Likewise.
1764         Perform BIT_AND_EXPR on sizetype arguments.
1765         * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
1766         and convert its result to a pointer type.  Use POINTER_PLUS_EXPR
1767         for the pointer additions and also use size_int for the offsets.
1768         (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
1769         additions and also use size_int for the offsets.  Perform
1770         BIT_AND_EXPR on sizetype arguments.
1771         * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
1772         POINTER_PLUS_EXPR for pointers and create the
1773         BIT_AND_EXPR in sizetype.
1774         * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
1775         instead of PLUS_EXPR for pointer addition.
1776         (rs6000_va_start): Likewise.
1777         Also use sizetype for the offset.
1778         * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
1779         as PLUS_EXPR/MINUS_EXPR.
1780         (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
1781         PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
1782         Don't use BIT_AND_EXPR on a pointer type, convert the
1783         expression to sizetype first.
1784         * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
1785         for pointers.
1786         (mips_gimplify_va_arg_expr): Likewise.
1787         Don't create BIT_AND_EXPR in a pointer type.
1788
1789 2007-06-15  Eric Christopher  <echristo@apple.com>
1790
1791         * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
1792         (x86_64-*-darwin*): Ditto.
1793         * config/i386/darwin.h (CRTEND_SPEC): New. Add support
1794         for above.
1795
1796 2007-06-15  Matthew Wilcox <matthew@wil.cx>
1797
1798         * doc/extend.texi: Document behavior of __attribute__((aligned))
1799         on typedefs.
1800
1801 2007-06-15  Mark Mitchell  <mark@codesourcery.com>
1802
1803         * rtlanal.c (note_stores): Improve documentation.
1804
1805 2007-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1806
1807         * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
1808         LOCAL_LABEL_PREFIX): Delete.
1809         * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
1810         (bfin_internal_label): Delete.
1811
1812 2007-06-15  Uros Bizjak  <ubizjak@gmail.com>
1813
1814         * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
1815         define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
1816         otherwise define to LIBGCC2_TF_CEXT.
1817         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
1818         (LIBGCC_TF_CEXT): Ditto.
1819         (TF_SIZE): Ditto.
1820
1821 2007-06-14  Seongbae Park  <seongbae.park@gmail.com>
1822
1823         PR rtl-optimization/32339
1824         * df-scan.c (df_uses_record): Don't modify flags but just add to
1825         it for df_ref_record.
1826
1827 2007-06-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1828
1829         * tree-mudflap.c: Fix whitespace issues.
1830
1831 2007-06-15  Kazu Hirata  <kazu@codesourcery.com>
1832
1833         * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
1834
1835 2007-06-14  Eric Christopher  <echristo@apple.com>
1836
1837         * config/i386/sse.md (movdi_to_sse): Rewrite body.
1838         (movv4sf): Use gcc_unreachable instead of abort.
1839
1840 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
1841
1842         PR target/32268
1843         * config/i386/sfp-machine.h (CMPtype): New define.
1844         (mach stubs): Use CMPtype instead of int as a return type.
1845
1846 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
1847
1848         * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
1849         config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
1850         config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
1851         config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
1852         config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
1853         config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
1854         config/soft-fp/soft-fp.h: Update from glibc CVS.
1855
1856 2007-06-14  Bernd Schmidt  <bernd.schmidt@analog.com>
1857
1858         * config/bfin/uclinux.h (MFWRAP_SPEC): New.
1859
1860 2007-06-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1861
1862         PR target/32341
1863         * config/v850/v850.c: Include dataflow header file.
1864         (substitute_ep_register): Fix typo.
1865
1866 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
1867
1868         * configure.ac: Fix earlier checkin.
1869         * configure: Regenerated.
1870
1871 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
1872
1873         * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
1874         * aclocal.m4: Regenerate.
1875         * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
1876         ACX_PROG_CC_WARNINGS_ARE_ERRORS,
1877         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
1878         * configure: Regenerate.
1879         * Makefile.in (LOOSE_WARN): Subst loose_warn.
1880
1881         * Makefile.in (quickstrap): Build libgcc too.
1882
1883 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
1884
1885         * configure.ac: Add --enable-checking=df.  Explicitly mention that
1886         the variables are initialized as for "release".
1887         * df-core.c: Use it.
1888         * configure: Regenerate.
1889         * config.in: Regenerate.
1890
1891 2007-06-14  Bob Wilson  <bob.wilson@acm.org>
1892
1893         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
1894         validate_replace_rtx instead of replace_rtx.
1895         (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
1896
1897 2007-06-14  Danny Smith  <dannysmith@users.sourceforge.net>
1898
1899         * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
1900         (DWARF2_UNWIND_INFO): Override default if configured with
1901         SJLJ EH disabled.
1902         * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
1903         (ENDFILE_SPEC): Add crtend.o.
1904         * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
1905         (ENDFILE_SPEC): Add crtend.o.
1906         (TARGET_USE_JCR_SECTION): Define.
1907         (MD_UNWIND_SUPPORT): Define for 32-bit target.
1908
1909         * config/i386/cygming-crtbegin.c: New file.
1910         * config/i386/cygming-crtend.c: New file.
1911
1912 2007-06-14  Pascal Obry Pascal Obry  <obry@adacore.com>
1913
1914         * config/i386/w32-unwind.h: New file.
1915
1916 2007-06-13  Eric Christopher  <echristo@apple.com>
1917
1918         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
1919         the user set a value below STACK_BOUNDARY.
1920
1921 2007-06-13  Thiemo Seufer  <ths@networkno.de>
1922
1923         * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
1924         imply -lpthread for -pthread.
1925
1926 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
1927
1928         * basic-block.h: Remove the prototype for
1929         free_basic_block_vars.
1930         * cfglayout.h: Remove the prototype for
1931         insn_locators_initialize.
1932         * tree.h: Remove the prototype for emit_line_note.
1933
1934         * tree-ssa-pre.c (mergephitemp): Remove.
1935         (init_pre): Don't use mergephitemp.
1936
1937 2007-06-13  Eric Christopher  <echristo@apple.com>
1938
1939         * config/i386/i386.c (override_options): If we've specified
1940         an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
1941
1942 2007-06-13  Bob Wilson  <bob.wilson@acm.org>
1943
1944         * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
1945         is defined.
1946
1947 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
1948
1949         * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
1950         * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
1951         (eh_store_handler): New pattern.
1952         (eh_return): Emit it instead of a plain move.
1953
1954 2007-06-13  Uros Bizjak  <ubizjak@gmail.com>
1955
1956         * config/i386/i386.c (ix86_init_mmx_sse_builtins)
1957         [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
1958         [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
1959         def_builtin_const.
1960
1961 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
1962
1963         * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
1964         (find_next_insn_start, find_load): New functions.
1965         (bfin_reorg): Use them to deal with the fact that parallel insns are
1966         no longer represented as a SEQUENCE.
1967
1968 2007-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
1969
1970         * config/sparc/sparc.c (sparc_override_options): Initialize
1971         fpu mask correctly.
1972
1973 2007-06-13  Dave Korn  <dave.korn@artimi.com>
1974
1975         * config/i386/i386.c (ix86_eax_live_at_start_p): Use
1976         df_get_live_out.
1977
1978 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
1979
1980         * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
1981         config/sh/divcost-analysis, dbgcnt.def, df-core.c,
1982         df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
1983         tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
1984         tree-vect-transform.c: Fix comment typos.  Follow spelling
1985         conventions.
1986
1987 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
1988
1989        * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
1990        to the exit block use set.
1991        (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring". 
1992        * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
1993        * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
1994
1995 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
1996
1997         * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
1998         * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
1999         to indicate an error.
2000         (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters): New functions
2001         (dbg_cnt_process_opt): Print an error on a bad argument.
2002         * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
2003         * common.opt (-fdbg-cnt-list): New.
2004         * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
2005
2006 2007-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2007
2008         * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
2009         flag on ref-all pointers.
2010
2011 2007-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2012
2013         PR middle-end/31579
2014         * expr.c (expand_expr_addr_expr_1): Call expand_expr
2015         for the offset with the modifier as EXPAND_INITIALIZER
2016         if the modifier is EXPAND_INITIALIZER.
2017         (expand_expr_real_1 <case INTEGER_CST>): Don't force to
2018         a register if we had an overflow.
2019
2020 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2021
2022         * real.c (real_isfinite): New.
2023         (real_sqrt): Use it.
2024         * real.h (real_isfinite): New.
2025         * builtins.c: Use it.
2026
2027 2007-06-12  Ian Lance Taylor  <iant@google.com>
2028             Daniel Berlin  <dberlin@dberlin.org>
2029
2030         PR libstdc++/29286
2031         * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
2032         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
2033         (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
2034         (DECL_NO_TBAA_P): Define.
2035         (struct tree_decl_common): Add no_tbaa_flag field.
2036         * tree-ssa-structalias.c (struct variable_info): Add
2037         no_tbaa_pruning field.
2038         (new_var_info): Initialize no_tbaa_pruning field.
2039         (unify_nodes): Copy no_tbaa_pruning field.
2040         (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
2041         (dump_solution_for_var): Print no_tbaa_pruning flag.
2042         (set_uids_in_ptset): Add no_tbaa_pruning parameter.  Change all
2043         callers.
2044         (compute_tbaa_pruning): New static function.
2045         (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
2046         Call compute_tbaa_pruning.
2047         * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
2048         * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
2049         * gimple-low.c (lower_stmt): Likewise.
2050         * tree-gimple.c (is_gimple_stmt): Likewise.
2051         * tree-ssa-operands.c (get_expr_operands): Likewise.
2052         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2053         * tree-inline.c (estimate_num_insns_1): Likewise.
2054         (copy_result_decl_to_var): Likewise.
2055         * expr.c (expand_expr_real_1): Likewise.
2056         * tree-pretty-print.c (dump_generic_node): Likewise.
2057         * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
2058         * omp-low.c (omp_copy_decl_2): Likewise.
2059         * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
2060         * doc/c-tree.texi (Expression trees): Document
2061         CHANGE_DYNAMIC_TYPE_EXPR.
2062
2063 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2064
2065         * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
2066         with !HONOR_NANS and !HONOR_INFINITIES.
2067         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2068
2069 2007-06-12  Tristan Gingold  <gingold@adacore.com>
2070
2071         * gcov.c: Comments updated.
2072         (source_info): Add file_time field.
2073         (source_index): New variable.
2074         (mutiple_files): New variable.
2075         (generate_results): New function extracted from process_file.
2076         (process_file): Save and restore chain of functions, generate
2077         results and free structures only if not merging results.
2078         (release_structures): File names are now freed in create_file_names
2079         (create_file_names): Free previous file names.
2080         (find_source): File date is now read here and modifications in
2081         source files is checked here.
2082         (read_graph_file): Only reverse order of functions for the current
2083         object file.
2084         (make_gcov_file_name): Do not generate long names if input_name is
2085         NULL.
2086         (output_lines): If merging results do not display graph, data and
2087         runs informations.
2088         Checking source file modification is done in find_source.
2089
2090         * doc/gcov.texi: Append an s to sourcefile.
2091
2092 2007-06-12  Bernd Schmidt  <bernd.schmidt@analog.com>
2093
2094         * config/bfin/bfin.md (UNSPEC_NOP): New constant.
2095         (forced_nop): New pattern.
2096         * config/bfin/bfin.c: Include "df.h".
2097         (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
2098         (bfin_discover_loop): Use df_get_live_in instead of
2099         global_live_at_start.
2100         (bfin_reorder_loops): Pass 0 to cfg_layout_initialize.  Call
2101         df_analyze when done.
2102         (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
2103         the insns.  Use QImode for the final insn in a bundle.  Call
2104         df_insn_rescan on generated NOPs; use gen_forced_nop instead of
2105         gen_nop.
2106         (reorder_var_tracking_notes): New function.
2107         (bfin_reorg): Pass no argument to split_all_insns.  Don't call
2108         update_life_info.  Call df_analyze after scheduling and bundle
2109         generation.  Call reorder_var_tracking_notes if generating these notes.
2110         Call df_finish_pass at the end.
2111
2112 2007-06-12  Dirk Mueller  <dmueller@suse.de>
2113
2114         * optabs.c (debug_optab_libfuncs): fix gcc_assert to
2115         a comparison, not an assignment.
2116
2117 2007-06-12  Olivier Hainque  <hainque@adacore.com>
2118
2119         * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
2120         Request walking the subtrees only, leaving the current is_lhs/val_only
2121         untouched.
2122         (convert_non_local_reference): Likewise.
2123
2124 2007-06-12  Nathan Sidwell  <nathan@codesourcery.com>
2125
2126         * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
2127
2128 2007-06-12  Richard Guenther  <rguenther@suse.de>
2129
2130         PR tree-optimization/15353
2131         PR tree-optimization/31657
2132         * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
2133         * timevar.def: Add TV_TREE_IFCOMBINE.
2134         * tree-pass.h (pass_tree_ifcombine): Declare.
2135         * tree-ssa-ifcombine.c: New file.
2136         * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
2137         * tree-flow.h (blocks_in_phiopt_order): Declare.
2138         * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
2139         (tree-ssa-ifcombine.o): New dependencies.
2140
2141 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
2142
2143         PR rtl-optimization/32293
2144         * combine.c (simplify_if_then_else): Truncate return from
2145         nonzero_bits() to correct mode.
2146
2147 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
2148
2149         * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
2150         into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
2151
2152 2007-06-11  Diego Novillo  <dnovillo@google.com>
2153
2154         * Makefile.in (reload1.o-warn): Remove.
2155
2156 2007-06-11  Seongbae Park <seongbae.park@gmail.com>
2157
2158         * combine.c (subst): Use reg_overlap_mentioned_p
2159         instead of comparing register numbers directly.
2160
2161 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2162
2163         * reload1.c (mark_home_live_1): Use the mode parameter.
2164
2165 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2166
2167         * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
2168         df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
2169         word "deferred".
2170         * df-core.c: Ditto.
2171
2172 2007-06-11  Daniel Berlin  <dberlin@dberlin.org>
2173
2174         * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
2175
2176 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
2177
2178         * config/i386/i386.md ("*movtf_internal): Penalize moves to and
2179         from integer registers.
2180         (FP mode splitters): Handle TFmode.
2181
2182 2007-06-11  Eric Botcazou  <ebotcazou@adacore.com>
2183
2184         * tree-ssa-structalias.c (find_what_p_points_to): Return false
2185         for ref-all pointers that point-to anything.
2186
2187 2007-06-11  Joseph Myers  <joseph@codesourcery.com>
2188
2189         * config/arm/arm.c (arm_output_dwarf_dtprel,
2190         TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
2191
2192 2007-06-11  Bernd Schmidt  <bernd.schmidt@analog.com>
2193
2194         * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
2195         movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
2196         to memory moves.
2197
2198 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
2199
2200         * gcc/tree.c (signed_or_unsigned_type_for): New.
2201         (unsigned_type_for): Use signed_or_unsigned_type_for.
2202         (signed_type_for): Use signed_or_unsigned_type_for.
2203         * gcc/tree.h (signed_or_unsigned_type_for): New.
2204         (get_signed_or_unsigned_type): Remove.
2205         * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
2206         lang_hooks.types.signed_type
2207         (size_diffop): Likewise.
2208         (all_ones_mask_p): Likewise.
2209         (build_range_check): Likewise.
2210         (fold_cond_expr_with_comparison): Likewise.
2211         (fold_cond_expr_with_comparison): Likewise.
2212         (unextend): Likewise.
2213         (extract_muldiv_1): Likewise.
2214         (fold_single_bit_test_into_sign_test): Likewise.
2215         (fold_binary): Likewise.
2216         (fold_ternary): Likewise.
2217         (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
2218         instead of get_signed_or_unsigned_type.
2219         * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
2220         (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
2221         * gcc/expr.c (signed_or_unsigned_type_for): Use
2222         signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
2223         * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
2224         (lhd_signed_or_unsigned_type): Remove.
2225         * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
2226         signed_or_unsigned_type.
2227         (lhd_signed_or_unsigned_type): Remove.
2228         * gcc/expmed.c (make_tree): Use signed_type_for instead of
2229         lang_hooks.types.signed_type.
2230         * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
2231         c_common_signed_type instead of lang_hooks.types.signed_type.
2232         (c_common_unsigned_type): New.
2233         (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
2234         (shorten_compare): Use c_common_unsigned_type instead of
2235         c_common_signed_or_unsigned_type.
2236         (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
2237         unsigned_type_for.
2238         * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
2239         lang_hooks.types.signed_type.
2240         * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
2241         (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
2242         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
2243         * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
2244         instead of unsigned_type_for.
2245         * gcc/c-decl.c (groakdeclarator): Likewise.
2246         * gcc/c-typeck.c (convert_for_assignment): Likewise.
2247         * gcc/c-common.h (c_common_unsigned_type): New.
2248
2249 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
2250
2251         PR target/32280
2252         * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
2253         * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
2254
2255 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
2256
2257         PR middle-end/32279
2258         * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
2259         into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
2260
2261 2007-06-10  Jan Sjodin  <jan.sjodin@amd.com>
2262             Sebastian Pop  <sebpop@gmail.com>
2263
2264         * lambda-code.c (remove_iv): New.
2265         (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
2266
2267 2007-06-10  Zdenek Dvorak  <dvorakz@suse.cz>
2268
2269         * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
2270         * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
2271         * tree-ssa-loop-prefetch.c: Include optabs.h.
2272         (FENCE_FOLLOWING_MOVNT): New macro.
2273         (struct mem_ref): Add independent_p and storent_p fields.
2274         (record_ref): Initalize the new fields.
2275         (gather_memory_references_ref): Return true if the reference
2276         could be analysed.
2277         (gather_memory_references): Check whether all memory accesses
2278         in loop were recorded.
2279         (should_issue_prefetch_p): Return false for nontemporal stores.
2280         (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
2281         may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
2282         (determine_loop_nest_reuse): Detect independent memory references.
2283         (loop_prefetch_arrays): Call mark_nontemporal_stores.
2284         * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
2285         * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
2286         * config/i386/i386.h (x86_mfence): Declare.
2287         (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
2288         * config/i386/i386.c (x86_mfence): New variable.
2289         (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
2290
2291         * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
2292         * optabs.c (init_optabs): Initialize storent_optab.
2293         * optabs.h (enum optab_index): Add OTI_storent.
2294         (storent_optab): Declare.
2295         * genopinit.c (optabs): Add initialization for storent_optab.
2296         * tree.h (MOVE_NONTEMPORAL): New macro.
2297         * expr.c (expand_assignment, store_expr, store_constructor_field,
2298         store_constructor, store_field, expand_expr_real_1): Propagate
2299         nontemporality of the expanded store.
2300         (emit_storent_insn): New function.
2301         * expr.h (expand_assignment, store_expr): Declaration changed.
2302         * function.c (assign_parm_setup_reg): Pass false as nontemporality
2303         to expand_assignment.
2304         * stmt.c (expand_asm_expr): Ditto.
2305         * calls.c (initialize_argument_information): Pass false as
2306         nontemporality to store_expr.
2307         * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
2308         storentsi): New.
2309
2310 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
2311
2312         * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
2313         parameter, use it.
2314         (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
2315
2316 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
2317
2318         * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
2319         and allow DECL_P here.
2320
2321 2007-06-09  Zdenek Dvorak  <dvorakz@suse.cz>
2322
2323         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
2324         follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
2325         track of the size of the expression.
2326         * cfghooks.c (merge_blocks): Remove block from loops structure only
2327         after call of the merge_blocks hook.
2328
2329 2007-06-09  Tom Tromey  <tromey@redhat.com>
2330
2331         * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
2332         (deprecated_state): Removed.
2333         (start_decl): Update.
2334         (enum deprecated_states): Moved earlier.
2335         (groktypename): Update.
2336         (push_parm_decl): Likewise.
2337         (grokfield): Likewise.
2338         (start_function): Likewise.
2339
2340 2007-06-09  Ian Lance Taylor  <iant@google.com>
2341
2342         PR tree-optimization/32169
2343         * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
2344         CONVERT_EXPR, check whether min and max both converted to an
2345         overflow infinity representation.
2346
2347 2007-06-08  Eric Botcazou  <ebotcazou@adacore.com>
2348
2349         * reload1.c (fixup_abnormal_edges): Clear bb field for insns
2350         not inserted on the edge.
2351
2352 2007-06-08  Bob Wilson  <bob.wilson@acm.org>
2353
2354         * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
2355         instructions if they are supported.
2356         (__divsi3, __umodsi3, __modsi3): Likewise.
2357         (__ashldi3, __ashrdi3, __lshrdi3): New.
2358         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
2359
2360 2007-06-08  Harsha Jagasia <harsha.jagasia@amd.com>
2361             Tony Linthicum <tony.linthicum@amd.com>
2362
2363         * doc/extend.texi: Add fvect-cost-model flag.
2364         * common.opt (fvect-cost-model): New flag.
2365         * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
2366         cost fields in stmt_vec_info struct for STMT.
2367         * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
2368         fields in stmt_vec_info struct and access functions for the same.
2369         (TARG_COND_BRANCH_COST): Define cost of conditional branch.
2370         (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
2371         load, store and vector to scalar operation.
2372         (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
2373         (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
2374         (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
2375         (TARG_VEC_STORE_COST): Define cost of vector store.
2376         (vect_estimate_min_profitable_iters): Define new function.
2377         * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
2378         check to evaluate if loop iterations are less than minimum profitable
2379         iterations determined by cost model or minimum vect loop bound defined
2380         by user, whichever is more conservative.
2381         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
2382         run-time check to evaluate if loop iterations are less than minimum
2383         profitable iterations determined by cost model or minimum vect loop
2384         bound defined by user, whichever is more conservative.
2385         (vect_estimate_min_profitable_iterations): New function to estimate
2386         mimimimum iterartions required for vector version of loop to be
2387         profitable over scalar version.
2388         (vect_model_reduction_cost): New function.
2389         (vect_model_induction_cost): New function.
2390         (vect_model_simple_cost): New function.
2391         (vect_cost_strided_group_size): New function.
2392         (vect_model_store_cost): New function.
2393         (vect_model_load_cost): New function.
2394         (vectorizable_reduction): Call vect_model_reduction_cost during
2395         analysis phase.
2396         (vectorizable_induction): Call vect_model_induction_cost during
2397         analysis phase.
2398         (vectorizable_load): Call vect_model_load_cost during analysis phase.
2399         (vectorizable_store): Call vect_model_store_cost during analysis phase.
2400         (vectorizable_call, vectorizable_assignment, vectorizable_operation,
2401         vectorizable_promotion, vectorizable_demotion): Call
2402         vect_model_simple_cost during analysis phase.
2403
2404 2007-06-08  Simon Baldwin  <simonb@google.com>
2405
2406         * reg-stack.c (get_true_reg): Readability change.  Moved default case
2407         label into direct switch statement scope.
2408
2409 2007-06-08  Simon Baldwin  <simonb@google.com>
2410
2411         * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
2412         in gcc_assert() with '==' comparison.
2413
2414 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2415
2416         * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
2417         TARGET_ABM handling of x86_popcnt variable.
2418
2419 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2420
2421         * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
2422         __builtin_copysignq and __builtin_infq built-in functions.
2423
2424 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2425
2426         * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
2427         SSE4.2 section.  Correct built-in function names in SSE4A section.
2428
2429 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2430
2431         PR tree-optimization/32243
2432         * tree-vect-transform.c (vectorizable_type_promotion): Move check
2433         for ncopies after ratio check between nunits_out and nunits_in.
2434         (vectorizable_type_demotion): Remove single-use variable "scalar_type".
2435
2436 2007-06-08  Dorit Nuzman  <dorit@il.ibm.com>
2437
2438         PR tree-optimization/32224
2439         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
2440         vectorization upon a non GIMPLE_MODIFY_STMT.
2441
2442 2007-06-08  Christian Bruel  <christian.bruel@st.com>
2443
2444         PR target/29953
2445         * config/sh/sh.md (doloop_end): New pattern and splitter.
2446         * loop-iv.c (simple_rhs_p): Check for hardware registers.
2447
2448 2007-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
2449
2450         PR middle-end/32209
2451         * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
2452         functions.
2453         (verify_dominators): Do not change dominance tree.
2454
2455 2007-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2456
2457         * config/sh/constraints.md: New file.
2458         * config/sh/sh.c: Include tm-constrs.h.
2459         (reg_class_from_letter): Remove.
2460         (prepare_cbranch_operands): Use satisfies_constraint_*
2461         function instead of macro.
2462         (andcosts, broken_move, sh_secondary_reload): Likewise.
2463         * config/sh/predicates.md (trapping_target_operand): Likewise.
2464         (and_operand, arith_operand, arith_reg_or_0_operand,
2465         cmp_operand, logical_operand, target_operand,
2466         ua_address_operand, ua_offset, xor_operand): Likewise.
2467         * config/sh/sh.md: Include constraints.md.
2468         (*movsicc_t_false): Use satisfies_constraint_* function
2469         instead of macro.
2470         (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
2471         lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
2472         movdi_const_16bit+1, beq, bne, *ptb): Likewise.
2473         * config/sh/sh.h (reg_class_from_letter): Remove prototype.
2474         (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
2475         (REG_CLASS_FROM_CONSTRAINT): Remove.
2476         (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
2477         CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
2478         CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
2479         CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
2480         CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2481         (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
2482         function instead of macro.
2483         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
2484         (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
2485         EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
2486         EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
2487         (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
2488         (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
2489         (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
2490         (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
2491         (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
2492         EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
2493         EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
2494         EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
2495         EXTRA_CONSTRAINT_STR): Likewise.
2496         (GO_IF_LEGITIMATE_INDEX): Fix indentation.
2497
2498 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
2499
2500         * config/i386/darwin.h (STACK_BOUNDARY): Define.
2501
2502 2007-06-07  Simon Martin  <simartin@users.sourceforge.net>
2503
2504         PR c++/30759
2505         * c-common.h (flag_cpp0x): Replaced by...
2506         (cxx_dialect): ... this new variable specifying the C++ dialect that
2507         is used.
2508         * c-common.c (flag_cpp0x): Removed.
2509         (cxx_dialect): Defined.
2510         * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
2511         cxx_dialect.
2512         * c-opts.c (c_common_post_options): Likewise.
2513         (set_std_cxx98): Set cxx_dialect to cxx98.
2514         (set_std_cxx0x): Set cxx_dialect to cxx0x.
2515
2516 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
2517             Hui-May Chang <hm.chang@apple.com>
2518
2519         * doc/invoke.texi (Darwin Options): Update documentation for
2520         -mmacosx-version-min.
2521         * config.gcc (*-*-darwin*): Set extra_gcc_objs.
2522         * config/darwin-driver.c: New file.
2523         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
2524         * config/t-darwin (darwin-driver.o): New rule.
2525
2526         * config/darwin-c.c (version_as_macro): Ignore low digit.
2527
2528 2007-06-07  Uros Bizjak  <ubizjak@gmail.com>
2529
2530         * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
2531         (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
2532         (CSGNMODE): New mode macro.
2533         (CSGNVMODE): New mode attribute.
2534         (copysign<mode>3): Rename from copysingsf3 and copysigndf3.  Macroize
2535         expander using CSGNMODE mode macro.  Handle TFmode.
2536         (copysign<mode>3_const): Rename from copysignsf3_const and
2537         copysigndf3_const.  Macroize pattern using CSGNMODE mode macro.
2538         Handle TFmode.
2539         (copysign<mode>3_var): Rename from copysignsf3_var and
2540         copysigndf3_var.  Macroize pattern using CSGNMODE mode macro.
2541         Handle TFmode.
2542         (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
2543         mode macro.  Handle TFmode.
2544         * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
2545         (iortf3, *iortf3): Ditto.
2546         (xortf3, *xortf3): Ditto.
2547         * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
2548         TFmode and TImode masks.
2549         (ix86_expand_copysign): Expand TFmode copysign insn.
2550         (IX86_BUILTIN_INFQ): New.
2551         (IX86_BUILTIN_FABSQ): Ditto.
2552         (IX86_BUILTIN_COPYSIGNQ): Ditto.
2553         (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
2554         [__builtin_fabsq]: Ditto.
2555         [__builtin_copysignq]: Ditto.
2556         (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
2557         [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
2558         [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
2559         ix86_expand_binop_builtin().
2560
2561 2007-06-07  Bob Wilson  <bob.wilson@acm.org>
2562
2563         * config/xtensa/lib1funcs.asm: Clean up whitespace.
2564
2565 2007-06-07  Steve Ellcey  <sje@cup.hp.com>
2566
2567         PR target/31850
2568         * rtl.h (push_to_sequence2): New.
2569         * emit-rtl.c (push_to_sequence2): New.
2570         * function.c (assign_parm_data_all): Add new fields.
2571         (assign_parm_setup_block): Call push_to_sequence2 instead of
2572         push_to_sequence.
2573         (assign_parm_setup_reg): Ditto.
2574         (assign_parm_setup_stack): Ditto.
2575         (assign_parms_unsplit_complex): Ditto.
2576         (assign_parms): Change field name.
2577
2578 2007-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
2579
2580         PR tree-optimization/32220
2581         * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
2582         phi node is reached before defining statement.
2583
2584 2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2585
2586         PR tree-opt/32231
2587         * tree-vect-transform.c (vectorizable_call): Call update_stmt
2588         after changing the right hand side of the assignment.
2589
2590 2007-06-06  Eric Christopher  <echristo@apple.com>
2591
2592         * config.gcc (i?86-*-darwin*): Remove arch parameter.
2593         (x86_64-*-darwin*): Ditto.
2594         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
2595         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
2596
2597 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
2598
2599         * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
2600         coding conventions.
2601         (add_key): Likewise.
2602         * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
2603         * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
2604         variable names.
2605         * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory macros.
2606         (add_cost_one_coalesce): Likewise.
2607         * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
2608         variable names. Rename orig to orig_name for consistency.
2609         * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the coding
2610         conventions.
2611         (cprop_into_successor_phis): Avoid using C++ keywords as variable names.
2612         (record_equivalences_from_stmt): Likewise.
2613         * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
2614         the coding conventions.
2615         (memory_ssa_name_same): Likewise.
2616         (dse_optimize_stmt): Likewise.
2617         (dse_record_phis): Likewise.
2618         (dse_finalize_block): Likewise.
2619         * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
2620         keywords as variable names.
2621         (may_move_till): Cast according to the coding conventions.
2622         (force_move_till_expr): Avoid using C++ keywords as variable names.
2623         (force_move_till): Cast according to the coding conventions.
2624         (memref_hash): Likewise.
2625         (memref_eq): Likewise.
2626         (gather_mem_refs_stmt): Likewise.
2627         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid using C++
2628         keywords as variable names.
2629         (idx_find_step): Cast according to the coding conventions.
2630         (idx_record_use): Likewise.
2631         (find_depends): Likewise.
2632         (prepare_decl_rtl): Likewise.
2633         (mbc_entry_hash): Likewise.
2634         (mbc_entry_eq): Likewise.
2635         * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
2636         (simplify_replace_tree): Avoid using C++ keywords as variable names.
2637         (idx_infer_loop_bounds): Cast according to the coding conventions.
2638         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
2639         * tree-ssa-math-opts.c (occ_new ): Likwise.
2640         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
2641         macros.
2642         * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as variable
2643         names.
2644         (add_use_op): Likewise.
2645         (add_vop): Likewise.
2646         (add_vuse_op): Likewise.
2647         (add_vdef_op): Likewise.
2648         (get_expr_operands): Likewise.
2649         (push_stmt_changes): Use type safe memory macros.
2650         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
2651         keywords as variable names.
2652         (conditional_replacement): Likewise.
2653         (minmax_replacement): Likewise.
2654         (abs_replacement): Likewise.
2655         * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
2656         coding conventions.
2657         (insert_fake_stores): Avoid using C++ keywords as variable names.
2658         * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
2659         conventions.
2660         * tree-ssa-structalias.c (heapvar_lookup): Likewise.
2661         (heapvar_insert): Use type safe memory macros.
2662         (new_var_info): Cast according to the coding conventions.
2663         (new_constraint): Likewise.
2664         (remove_preds_and_fake_succs): Use type safe memory macros.
2665         * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
2666         conventions.
2667         (thread_single_edge): Likewise.
2668         (thread_through_loop_header): Likewise.
2669
2670 2007-06-06  Eric Christopher  <echristo@apple.com>
2671
2672         * config/i386/i386.c (override_options): Move handling
2673         of TARGET_SUBTARGET* earlier.
2674
2675 2007-06-06  Paolo Bonzini  <bonzini@gnu.org>
2676
2677         * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
2678         use %n on printf.
2679
2680 2007-06-06  Zdenek Dvorak  <dvorakz@suse.cz>
2681
2682         * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
2683         emited outside of basic block.
2684         * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
2685         the created blocks.
2686         * rtl.h (delete_insn_chain): Declaration changed.
2687         * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
2688         non-removed insns.
2689         (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
2690         (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
2691         rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
2692         to delete_insn_chain.
2693         (rtl_verify_flow_info_1): Verify that the insns in header and footer
2694         do not have bb field set.
2695         (rtl_verify_flow_info): Verify that insns between basic blocks do not
2696         have bb field set.
2697         * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
2698         * cfgcleanup.c (try_optimize_cfg): Ditto.
2699
2700 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
2701
2702         * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
2703         (lambda_body_vector_new): Use type safe memory macros.
2704         (lambda_linear_expression_new): Likewise.
2705         (lambda_loopnest_new): Likewise.
2706         (lambda_lattice_new): Likewise.
2707         (replace_uses_equiv_to_x_with_y): Cast according to the coding
2708         conventions. Use type safe memory macros.
2709         * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
2710         (lambda_body_vector_s): Likewise.
2711         * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
2712         * lambda-trans.c (lambda_trans_matrix_new): Likewise.
2713
2714 2007-06-06  Richard Guenther  <rguenther@suse.de>
2715
2716         * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
2717         if we need to schedule cfg_cleanup.
2718         (tree_ssa_forward_propagate_single_use_vars): Do so.
2719
2720 2007-06-06  Ian Lance Taylor  <iant@google.com>
2721
2722         * fold-const.c (merge_ranges): If range_successor or
2723         range_predecessor fail, just return 0.
2724
2725 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
2726
2727         PR tree-optimization/32216
2728         * tree-vectorizer.c (supportable_widening_operation): Determine
2729         signedness of FIX_TRUNC_EXPR from output operand.
2730         (supportable_narrowing_operation): Ditto.
2731         * tree-vect-generic.c (expand_vector_operations_1): Determine
2732         signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
2733         from input operand.
2734
2735 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
2736
2737         * config/i386/i386.c (enum pta_flags): Move out of struct scope...
2738         (struct pta): ...from here. Change flags to unsigned to avoid
2739         excessive casting (as it is used as a bit mask).
2740         (override_options): Add casts according to the coding convenventions.
2741         (x86_64_elf_unique_section): Likewise.
2742         (examine_argument): Avoid using C++ keywords as variable names.
2743         (construct_container): Likewise.
2744         (legitimize_pic_address): Likewise.
2745         (get_dllimport_decl): Cast according to the coding conventions. Use
2746         type safe memory macros.
2747         (legitimize_address): Cast according to the coding conventions.
2748         (emit_i387_cw_initialization): Corrected the type of slot to enum
2749         ix86_stack_slot.
2750         (ix86_init_machine_status): Use type safe memory macros.
2751         (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
2752         (bdesc_pcmpistr): Likewise.
2753         (bdesc_crc32): Likewise.
2754         (bdesc_sse_3arg): Likewise.
2755         (bdesc_2arg): Likewise.
2756         (bdesc_1arg): Likewise.
2757         (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
2758         (ix86_expand_sse_pcmpistr): Likewise.
2759         (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
2760         (ix86_builtin_vectorized_function): Change the type of fn to unsigned
2761         int to match the langhook definition.
2762         (ix86_builtin_conversion): Change the type of code to unsigned init to
2763         match the langhook definition.
2764         (ix86_preferred_reload_class): Avoid using C++ keywords as variable
2765         names.
2766         (ix86_preferred_output_reload_class): Likewise.
2767         (ix86_cannot_change_mode_class): Likewise.
2768         (ix86_memory_move_cost): Likewise.
2769         (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
2770         avoid excessive casting later on.
2771         (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
2772
2773 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
2774
2775         * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
2776         as flags setting insn.
2777         (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
2778
2779 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
2780
2781         * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
2782         (UNSPEC_ROUND): New.
2783         ("sse4_1_round<mode>2"): New insn pattern.
2784         ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
2785         SSE4.1 targets.
2786         ("floor<mode>2"): Rename from floordf2 and floorsf2.  Macroize
2787         expander using SSEMODEF mode macro.  Expand using
2788         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
2789         ("ceil<mode>2"): Rename from ceildf2 and ceilsf2.  Macroize
2790         expander using SSEMODEF mode macro.  Expand using
2791         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
2792         ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2.  Macroize
2793         expander using SSEMODEF mode macro.  Expand using
2794         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
2795         * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
2796         UNSPEC_ROUND instead of UNSPEC_ROUNDP.
2797         ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
2798         UNSPEC_ROUNDS.
2799
2800 2007-06-06  Jan Sjodin  <jan.sjodin@amd.com>
2801             Sebastian Pop  <sebpop@gmail.com>
2802
2803         * lambda.h (build_linear_expr): New.
2804         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
2805         Use build_linear_expr, call fold and force_gimple_operand.
2806         (lambda_loopnest_to_gcc_loopnest): Check that there is
2807         something to insert.
2808         * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
2809
2810 2007-06-05  Joerg Wunsch  <j.gnu@uriah.heep.sax.de>
2811
2812         PR preprocessor/23479
2813         * doc/extend.texi: Document the 0b-prefixed binary integer
2814         constant extension.
2815
2816 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
2817
2818         PR tree-optimization/32215
2819         * tree-vectorizer.c (supportable_widening_operation): Return false
2820         for unsupported FIX_TRUNC_EXPR tree code.
2821         (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
2822
2823 2007-06-06  Nathan Froyd  <froydnj@codesourcery.com>
2824
2825         * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
2826         register on SPE targets.  Change documentation to reflect
2827         reality.
2828         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
2829         Change FIXED_SCRATCH to 14 and document why we're keeping r14
2830         out of the register allocation pool.
2831         (rs6000_reg_live_or_pic_offset_p): New function.
2832         (rs6000_emit_prologue): Move the actual saving of LR up to free
2833         r0 for holding r11.  Split saving of SPE 64-bit registers into
2834         its own case.  Ensure that offsets will always be in-range for
2835         'evstdd' by using r11 as a scratch register to point at the start
2836         of the SPE save area.  Save r11 if necessary, as it is the static
2837         chain register.
2838         (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
2839         into its own case.  Ensure that offsets will always be in-range
2840         for 'evldd' by using r11 as a scratch register to point at the
2841         start of the SPE save area.  Also adjust r11 when restoring
2842         the stack pointer to compensate for pre-loading r11.
2843
2844 2007-06-05  Thomas Neumann  <tneumann@users.sourceforge.net>
2845
2846         * cfg.c (init_flow): Use type safe memory macros.
2847         (alloc_block): Likewise.
2848         (unchecked_make_edge): Likewise.
2849         (dump_flow_info): Avoid using C++ keywords as variable names.
2850         (copy_original_table_clear): Cast according to the coding conventions.
2851         (copy_original_table_set): Likewise.
2852         * cfgexpand (label_rtx_for_bb): Likewise.
2853         (expand_gimple_basic_block): Likewise.
2854         * cfghooks.c (dump_bb): Likewise.
2855         (lv_adjust_loop_header_phi): Avoid using C++ keywords as
2856         variable names.
2857         (lv_add_condition_to_bb): Likewise.
2858         * cfglayout (relink_block_chain): Cast according to the coding
2859         conventions.
2860         (fixup_reorder_chain): Likewise.
2861         (fixup_fallthru_exit_predecessor): Likewise.
2862         * cfgloop.c (glb_enum_p): Likewise.
2863         (get_exit_description): Likewise.
2864         (dump_recorded_exit): Likewise.
2865         * cfgloop.h (enum loop_estimation): Move out of struct scope...
2866         (struct loop): ... from here.
2867         * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
2868         conventions.
2869         * cfgrtl.c (rtl_create_basic_block): Likewise.
2870         (rtl_split_block): Likewise.
2871         (rtl_dump_bb): Likewise.
2872         (cfg_layout_split_block): Likewise.
2873         (init_rtl_bb_info): Use typesafe memory macros.
2874
2875         * graphds.h (struct graph_edge): Renamed edge to graph_edge.
2876         * graphds.h: Updated all usages of edge to graph_edge.
2877         * graphds.c: Likewise.
2878         * cfgloopanal.c: Likewise.
2879
2880 2007-06-05  Ian Lance Taylor  <iant@google.com>
2881
2882         * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
2883         PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
2884         (extract_range_from_assert): Set TREE_NO_WARNING when creating an
2885         expression.
2886         (test_for_singularity): Likewise.
2887
2888 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
2889
2890         * config/i386/constraints.md ("Y2"): Replaced by ...
2891         ("Yt"): This.
2892         * config/i386/i386.md: Likewise.
2893         * config/i386/mmx.md: Likewise.
2894         * config/i386/sse.md: Likewise.
2895
2896 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
2897
2898         * config/i386/constraints.md ("z"): Replaced by ...
2899         ("Y0"): This.
2900         * config/i386/sse.md (sse4_1_blendvpd): Likewise.
2901         (sse4_1_blendvps): Likewise.
2902         (sse4_1_pblendvb): Likewise.
2903         (sse4_2_pcmpestr): Likewise.
2904         (sse4_2_pcmpestrm): Likewise.
2905         (sse4_2_pcmpestr_cconly): Likewise.
2906         (sse4_2_pcmpistr): Likewise.
2907         (sse4_2_pcmpistrm): Likewise.
2908         (sse4_2_pcmpistr_cconly): Likewise.
2909
2910 2007-06-05  Razya Ladelsky  <razya@il.ibm.com>
2911
2912         * matrix-reorg.c (transform_access_sites): Fix computation.
2913         (transform_allocation_sites): Same.
2914
2915 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
2916
2917         * config/i386/i386.c (override_options): Use
2918         TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
2919
2920 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
2921
2922         * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
2923         (nonimm_not_xmm0_operand): Ditto.
2924         * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
2925         as operand[0] and operand[1] predicate.  Use "nonimm_not_xmm0_operand"
2926         as operand[2] predicate.  Require "z" class XMM register for
2927         operand[3].  Adjust asm template.
2928         ("sse4_1_blendvpd"): Ditto.
2929         ("sse4_1_pblendvb"): Ditto.
2930         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
2931         force op2 into xmm0 register for variable blend instructions.
2932
2933 2007-06-04  Tom Tromey  <tromey@redhat.com>
2934
2935         * c-tree.h (start_enum): Update.
2936         (build_enumerator): Likewise.
2937         * c-decl.c (enum_next_value): Removed.
2938         (enum_overflow): Likewise.
2939         (start_enum): Add c_enum_contents argument.  Don't use globals.
2940         (build_enumerator): Likewise.
2941         * c-tree.h (struct c_enum_contents): New struct.
2942
2943 2007-06-04  Tom Tromey  <tromey@redhat.com>
2944
2945         * c-common.c (c_common_get_alias_set): Fix indentation.
2946
2947 2007-06-04  Ian Lance Taylor  <iant@google.com>
2948
2949         * tree-vrp.c (adjust_range_with_scev): When loop is not expected
2950         to overflow, reduce overflow infinity to regular infinity.
2951         (vrp_var_may_overflow): New static function.
2952         (vrp_visit_phi_node): Check vrp_var_may_overflow.
2953
2954 2007-06-04  Kazu Hirata  <kazu@codesourcery.com>
2955
2956         * stor-layout.c (layout_type): Remove duplicate code.
2957
2958 2007-06-04  Uros Bizjak  <ubizjak@gmail.com>
2959
2960         PR c/32191
2961         * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins ()
2962         before build_common_builtin_nodes ().
2963
2964 2007-06-04  Steve Ellcey  <sje@cup.hp.com>
2965
2966         PR target/31733
2967         * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
2968
2969 2007-06-04  Jan Hubicka  <jh@suse.cz>
2970
2971         * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
2972         reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
2973         instead of _stat version.
2974
2975 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
2976
2977         PR tree-optimization/32194
2978         * tree-predcom.c (determine_offset): Check that both references have
2979         the same type.
2980
2981 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
2982
2983         * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
2984         Change dom_bbs to vector.  Add argument to iterate_fix_dominators call.
2985         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
2986         * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
2987         Add argument to iterate_fix_dominators call.
2988         (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
2989         * gcse.c (hoist_code): Change domby to vector.
2990         * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
2991         Add argument to iterate_fix_dominators call.
2992         * loop-doloop.c (doloop_modify): Changed recount_dominator to
2993         recompute_dominator.
2994         * lambda-code.c (perfect_nestify): Ditto.
2995         * cfgloopanal.c: Include graphds.h.
2996         (struct edge, struct vertex, struct graph, dump_graph, new_graph,
2997         add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
2998         (mark_irreducible_loops): Use graphds_scc.  Remove argument from
2999         add_edge call.
3000         * graphds.c: New file.
3001         * graphds.h: New file.
3002         * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
3003         (get_dominated_by, get_dominated_by_region): Change return type to
3004         vector.
3005         (verify_dominators): Recompute all dominators and compare the results.
3006         (recount_dominator): Renamed to ...
3007         (recompute_dominator): ... this.  Do not check that the block is
3008         dominated by entry.
3009         (iterate_fix_dominators): Reimplemented.
3010         (prune_bbs_to_update_dominators, root_of_dom_tree,
3011         determine_dominators_for_sons): New functions.
3012         * et-forest.c (et_root): New function.
3013         * et-forest.h (et_root): Declare.
3014         * Makefile.in (graphds.o): Add.
3015         (cfgloopanal.o): Add graphds.h dependency.
3016         (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
3017         * basic-block.h (get_dominated_by, get_dominated_by_region,
3018         iterate_fix_dominators): Declaration changed.
3019         (recount_dominator): Renamed to ...
3020         (recompute_dominator): ... this.
3021         * tree-ssa-threadupdate.c (thread_block): Free dominance info.
3022         (thread_through_all_blocks): Do not free dominance info.
3023
3024 2007-06-03  Andreas Schwab  <schwab@suse.de>
3025
3026         * config/m68k/m68k.c (override_options): Don't override
3027         REAL_MODE_FORMAT.
3028         * config/m68k/m68k-modes.def (SF, DF): Define to use
3029         motorola_single_format and motorola_double_format, resp.
3030         * real.c (motorola_single_format): Renamed from
3031         coldfire_single_format.
3032         (motorola_double_format): Renamed from coldfire_double_format.
3033         (encode_ieee_extended): Generate a proper canonical NaN image
3034         respecting canonical_nan_lsbs_set.
3035         (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
3036         true.
3037         * real.h: Adjust declarations.
3038
3039 2007-06-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3040
3041         PR target/32163
3042         * config/sh/sh.md (symGOT_load): Don't schedule insns when
3043         the symbol is generated with the stack protector.
3044
3045 2007-06-03  Kazu Hirata  <kazu@codesourcery.com>
3046
3047         * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
3048         (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
3049         "interrupt".
3050         * doc/extend.texi (interrupt): Mention m68k.
3051
3052 2007-06-02  Uros Bizjak  <ubizjak@gmail.com>
3053
3054         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
3055         safe_vector_operand() if input operand is VECTOR_MODE_P operand.
3056         (ix86_expand_sse_pcmpestr): Do not check operands for
3057         "register_operand", when insn operand predicate is "register_operand".
3058         (ix86_expand_sse_pcmpistr): Ditto.
3059
3060 2007-06-02  H.J. Lu  <hongjiu.lu@intel.com>
3061             Uros Bizjak  <ubizjak@gmail.com>
3062
3063         * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
3064         (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
3065         (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
3066         (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
3067         * config/i386/constraints.md ("z"): New register constraint
3068         for members of SSE_FIRST_REG class.
3069         * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
3070         * config/i386/i386.c (regclass_map): Change class of %xmm0 to
3071         SSE_FIRST_REG class.
3072         (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
3073         (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
3074         (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
3075         (IX86_BUILTIN_PCMPESTRM128): Likewise.
3076         (IX86_BUILTIN_PCMPESTRA128): Likewise.
3077         (IX86_BUILTIN_PCMPESTRC128): Likewise.
3078         (IX86_BUILTIN_PCMPESTRO128): Likewise.
3079         (IX86_BUILTIN_PCMPESTRS128): Likewise.
3080         (IX86_BUILTIN_PCMPESTRZ128): Likewise.
3081         (IX86_BUILTIN_PCMPISTRI128): Likewise.
3082         (IX86_BUILTIN_PCMPISTRM128): Likewise.
3083         (IX86_BUILTIN_PCMPISTRA128): Likewise.
3084         (IX86_BUILTIN_PCMPISTRC128): Likewise.
3085         (IX86_BUILTIN_PCMPISTRO128): Likewise.
3086         (IX86_BUILTIN_PCMPISTRS128): Likewise.
3087         (IX86_BUILTIN_PCMPISTRZ128): Likewise.
3088         (struct builtin_description): Change "flag" field to unsigned.
3089         (bdesc_pcmpestr): New builtin description table.
3090         (bdesc_pcmpistr): Likewise.
3091         (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
3092         v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
3093         Initialize pcmp[ei]str[im] insns for SSE4.2.
3094         (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
3095         (ix86_expand_sse_pcmpistr): Likewise.
3096         (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
3097         * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
3098         (UNSPEC_PCMPISTR): Likewise.
3099         * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
3100         (sse4_2_pcmpestri):New isns pattern.
3101         (sse4_2_pcmpestrm): Likewise.
3102         (sse4_2_pcmpestr_cconly): Likewise.
3103         (sse4_2_pcmpistr): New insn patern and splitter.
3104         (sse4_2_pcmpistri):New isns pattern.
3105         (sse4_2_pcmpistrm): Likewise.
3106         (sse4_2_pcmpistr_cconly): Likewise.
3107         * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
3108         in SSE4.2.
3109
3110 2007-06-01  David Daney  <ddaney@avtrex.com>
3111
3112         * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
3113         LOADGP_ABSOLUTE and not binds_local_p.
3114
3115 2007-06-01  Geoffrey Keating  <geoffk@apple.com>
3116
3117         * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
3118
3119 2007-06-01  Ian Lance Taylor  <iant@google.com>
3120
3121         * tree-vrp.c (compare_name_with_value): Always set
3122         used_strict_overflow if we get a result from the variable itself.
3123
3124 2007-06-01  Ian Lance Taylor  <iant@google.com>
3125
3126         PR rtl-optimization/31455
3127         * lower-subreg.c (find_decomposable_subregs): Don't decompose
3128         subregs which have a cast between modes which are not tieable.
3129
3130 2007-06-01  Uros Bizjak  <ubizjak@gmail.com>
3131
3132         * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
3133         breaks after return statements.
3134
3135 2007-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
3136
3137         * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
3138         only after no_new_pseudos.
3139
3140 2007-05-31  Eric Christopher  <echristo@apple.com>
3141
3142         * expr.c (convert_move): Assert that we don't have a BLKmode
3143         operand.
3144         (store_expr): Handle BLKmode moves by calling emit_block_move.
3145
3146 2007-05-31  Daniel Berlin  <dberlin@dberlin.org>
3147
3148         * c-typeck.c (build_indirect_ref): Include type in error message.
3149         (build_binary_op): Pass types to binary_op_error.
3150         * c-common.c (binary_op_error): Take two type arguments, print out
3151         types with error.
3152         * c-common.h (binary_op_error): Update prototype.
3153
3154 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
3155
3156         * config/i386/i386.c: Correct coments on -mno-sse4.
3157
3158 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
3159
3160         * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
3161         (x86_64-*-*): Likewise.
3162         * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
3163         (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
3164         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
3165         (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
3166         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
3167         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
3168         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
3169         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
3170         (OPTION_MASK_ISA_SSE4): Likewise.
3171         (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
3172         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
3173         (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET.  Handle SSE4.2.
3174         (override_options): Support SSE4.2.
3175         (ix86_build_const_vector): Support SImode and DImode.
3176         (ix86_build_signbit_mask): Likewise.
3177         (ix86_expand_int_vcond): Support V2DImode.
3178         (IX86_BUILTIN_CRC32QI): New for SSE4.2.
3179         (IX86_BUILTIN_CRC32HI): Likewise.
3180         (IX86_BUILTIN_CRC32SI): Likewise.
3181         (IX86_BUILTIN_CRC32DI): Likewise.
3182         (IX86_BUILTIN_PCMPGTQ): Likewise.
3183         (bdesc_crc32): Likewise.
3184         (bdesc_sse_3arg): Likewise.
3185         (ix86_expand_crc32): Likewise.
3186         (ix86_init_mmx_sse_builtins): Support SSE4.2.
3187         (ix86_expand_builtin): Likewise.
3188         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
3189         __SSE4_2__ for -msse4.2.
3190         * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
3191         (CRC32MODE): Likewise.
3192         (crc32modesuffix): Likewise.
3193         (crc32modeconstraint): Likewise.
3194         (sse4_2_crc32<mode>): Likewise.
3195         (sse4_2_crc32di): Likewise.
3196         * config/i386/i386.opt (msse4.2): New for SSE4.2.
3197         (msse4): Likewise.
3198         * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
3199         * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
3200         * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
3201         (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
3202         (vcondu<mode>): Likewise.
3203         * doc/extend.texi: Document SSE4.2 built-in functions.
3204         * doc/invoke.texi: Document -msse4.2/-msse4.
3205
3206 2007-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
3207
3208         PR tree-optimization/32160
3209         * tree-predcom.c (predcom_tmp_var): New function.  Mark created
3210         variable as gimple reg.
3211         (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
3212
3213 2007-05-31  Kazu Hirata  <kazu@codesourcery.com>
3214
3215         * gcc.c (main): Don't consider linker options when issuing the
3216         warning about a linker input file not being used.
3217
3218 2007-05-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3219
3220         * tree-vrp.c (compare_names): Initialize sop.
3221
3222 2007-05-30  Dirk Mueller  <dmueller@suse.de>
3223
3224         * cgraphunit.c (cgraph_analyze_function): Remove
3225         computation of inline parameters.
3226
3227 2007-05-30  Uros Bizjak  <ubizjak@gmail.com>
3228
3229         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
3230
3231 2007-05-30  Richard Sandiford  <richard@codesourcery.com>
3232
3233         * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
3234         Add vx-common.h.  Include vxworks.h between vx-common.h and
3235         arm/vxworks.h.
3236         * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
3237         redefining.
3238         * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
3239         (TARGET_ASM_DESTRUCTOR): Likewise.
3240         * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
3241         instead of arm_is_xscale.  Use VXWORKS_OS_CPP_BUILTINS.
3242         (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
3243         (CC1_SPEC): Add -tstrongarm.  Line up backslashes.
3244         (VXWORKS_ENDIAN_SPEC): Define.
3245         (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
3246         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
3247         VXWORKS_* equivalents.
3248         (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
3249         (ASM_FILE_START): Delete.
3250         (TARGET_VERSION): Reformat.
3251         (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
3252         (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
3253         * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
3254         (FPBIT, DPBIT): Define.
3255         (fp-bit.c, dp-bit.c): New rules.
3256         (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
3257         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
3258         * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
3259         * config/arm/arm.h: Include vxworks-dummy.h.
3260         * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
3261         Mark with ATTRIBUTE_UNUSED.
3262         (arm_override_options): Do not allow VxWorks RTP PIC to be used
3263         for Thumb.  Force r9 to be the PIC register for VxWorks RTPs and
3264         make it incompatible with -msingle-pic-base.
3265         (arm_function_ok_for_sibcall): Return false for calls that might
3266         go through a VxWorks PIC PLT entry.
3267         (require_pic_register): New function, split out from...
3268         (legitimize_pic_address): ...here.  Do not use GOTOFF accesses
3269         for VxWorks RTPs.
3270         (arm_load_pic_register): Handle the VxWorks RTP initialization
3271         sequence.  Use pic_reg as a shorthand for cfun->machine->pic_reg.
3272         (arm_emit_call_insn): New function.
3273         (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
3274         * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
3275         (pic_offset_arm): New pattern.
3276         (call, call_value): Use arm_emit_call_insn.
3277         (call_internal, call_value_internal): New expanders.
3278         * config/arm/lib1funcs.asm (__PLT__): Define to empty for
3279         VxWorks unless __PIC__.
3280
3281 2007-05-30  Eric Christopher  <echristo@gmail.com>
3282
3283         * genrecog.c: Include regs.h in generated file.
3284         * genemit.c: Ditto. Fix up formatting.
3285         * config/mn10300/constraints.md: New.
3286         * config/mn10300/mn10300.md: Include.
3287         * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
3288         Fix up for removed macro.
3289         * config/mn10300/predicates.md (call_address_operand):  Ditto.
3290         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
3291         (CONST_OK_FOR_I): Ditto.
3292         (CONST_OK_FOR_J): Ditto.
3293         (CONST_OK_FOR_K): Ditto.
3294         (CONST_OK_FOR_L): Ditto.
3295         (CONST_OK_FOR_M): Ditto.
3296         (CONST_OK_FOR_N): Ditto.
3297         (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
3298         (OK_FOR_Q): Ditto.
3299         (OK_FOR_R): Ditto.
3300         (OK_FOR_T): Ditto.
3301         (EXTRA_CONSTRAINT): Ditto.
3302
3303 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
3304
3305         * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
3306         Remove defines.
3307         * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
3308         OPTION_MASK_ISA_64BIT.
3309         * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
3310
3311 2007-05-30  Richard Guenther  <rguenther@suse.de>
3312
3313         PR middle-end/32152
3314         * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
3315         types for comparison.
3316         * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
3317         with original typed arguments.
3318         * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
3319
3320 2007-05-30  Jakub Jelinek  <jakub@redhat.com>
3321
3322         PR tree-optimization/31769
3323         * except.c (duplicate_eh_regions): Clear prev_try if
3324         ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
3325
3326 2007-05-30  Zdenek Dvorak  <dvorakz@suse.cz>
3327
3328         * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
3329         * tree-ssa-sink.c (statement_sink_location): Return basic block and
3330         bsi of the location where statements should be inserted.
3331         (sink_code_in_bb): Take bsi from statement_sink_location.
3332         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
3333         instead of bsi_start.
3334         * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
3335         bsi_insert_after.
3336         * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
3337         (bsi_move_before): Document inconsistency with bsi_move_after.
3338         (tree_redirect_edge_and_branch): Do not create labels if not necessary.
3339
3340 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
3341
3342         * config/i386/i386.h (TARGET_ABM): New define.
3343         (TARGET_POPCNT): Ditto.
3344         (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
3345         New temporary defines to redefine from OPTION_ISA_* defines.
3346         (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
3347         New temporary defines to redefine from OPTION_MASK_ISA_* defines.
3348         (ix86_isa_flags): New extern int declaration.
3349         (TARGET_SUBTARGET_DEFAULT): New define.
3350         (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
3351         (TARGET_SUBTARGET32_DEFAULT): Ditto.
3352         (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
3353         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
3354         * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
3355         * config/i386/darwin.h: Change TARGET_64BIT define to
3356         OPTION_ISA_64BIT.
3357
3358         * config/i386/i386.opt (m3dnowa): Define as undocumented option
3359         using existing "ix86_isa_flags" varible.
3360         (m32, m64): Use existing "ix86_isa_flags" variable.
3361         (mmmx, m3dnow): Ditto.
3362         (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
3363         (mabm): Define as non-negative option using "x86_abm" variable.
3364         (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
3365
3366         * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
3367         Rewrite feature test bitmap.
3368         (ix86_isa_flags): New initialized global int varible.
3369         (ix86_isa_flags_explicit): New static int variable.
3370         (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
3371         msse, msse2, msse3, msse4.1 and msse4a option is processed.  Change
3372         i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
3373         target_flags_explicit.
3374         (override_options): Remove "target_enable" and "target_disable" fields
3375         from "struct ptt". Update processor_target_table accordingly. Remove
3376         PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
3377         defined and rearrange PTA_* bits.  Use "ix86_isa_flags" instead of
3378         "target_flags" and "ix86_isa_flags_explicit" instead of
3379         "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
3380         MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*.  Set "x86_abm" to true when
3381         PTA_ABM is set in processor_alias_table flags entry.  Set "x86_popcnt"
3382         to true when either of PTA_POPCNT or PTA_ABM is set in
3383         processor_alias_table flags entry.  Set "x86_prefetch_sse" to true
3384         when either of PTA_PREFETCH_SSE or PTA_SSE is set in
3385         processor_alias_table flags entry.  Remove handling of
3386         "target_enable" and "target_disable" fields of processor_target_table.
3387         Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
3388         targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
3389         Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
3390         targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
3391         (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
3392         "target_flags".
3393         (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
3394
3395 2007-05-29  David Daney  <ddaney@avtrex.com>
3396
3397         PR gcc/31975
3398         * config/mips/mips.c (mips_output_mi_thunk): Emit
3399         NOTE_INSN_PROLOGUE_END at beginning of the thunk.
3400
3401 2007-05-29  Hui-May Chang  <hm.chang@apple.com>
3402         * config/i386/i386.c (ix86_function_regparm): Added checking of
3403         ix86_force_align_arg_pointer to determine the number of
3404         register parameters.
3405
3406 2007-05-29  Zdenek Dvorak  <dvorakz@suse.cz>
3407
3408         * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
3409         (SET_DR_MISALIGNMENT): New.
3410         * tree-vect-analyze.c (vect_compute_data_ref_alignment,
3411         vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
3412         Use SET_DR_MISALIGNMENT.
3413         * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
3414         pointer.
3415         * tree-data-ref.c (create_data_ref, compute_all_dependences,
3416         find_loop_nest): Export.
3417         * tree-data-ref.h (struct data_reference): Change aux field to pointer.
3418         (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
3419         * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
3420         (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
3421         New macros.
3422         (struct mem_ref): Add field reuse_distance.
3423         (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
3424         Initialize reuse_distance field.
3425         (issue_prefetch_ref): Select temporality of prefetch according to
3426         reuse_distance.
3427         (volume_of_references, volume_of_dist_vector, add_subscript_strides,
3428         self_reuse_distance, determine_loop_nest_reuse): New functions.
3429         (loop_prefetch_arrays): Call determine_loop_nest_reuse.
3430         (tree_ssa_prefetch_arrays): Dump L2 cache size.
3431         * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
3432         dependency.
3433
3434 2007-05-29  Daniel Berlin  <dberlin@dberlin.org>
3435
3436         * tree-ssa-alias.c: Add aliasing overview.
3437
3438 2007-05-29  Zuxy Meng  <zuxy.meng@gmail.com>
3439             Danny Smith  <dannysmith@users.sourceforge.net>
3440
3441         PR target/29498
3442         * config/i386/t-crtfm: Compile crtfastmath.o with
3443         -minline-all-stringops.
3444         * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
3445         * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
3446
3447 2007-05-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3448
3449         * doc/md.texi: Document constraints on HP PA-RISC.
3450
3451         * pa/constraints.md: New file.
3452         * pa.md: Include constraints.md.
3453         * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
3454         (integer_store_memory_operand, ldil_cint_p): New functions.
3455         * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
3456         * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
3457         IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
3458         * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
3459         * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
3460
3461 2007-05-28  Andrew Pinski  <Andrew_pinski@playstation.sony.com>
3462
3463         PR c/31339
3464         * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
3465         case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
3466         case POSTDECREMENT_EXPR>): Return the error_mark_node
3467         if either the real or imaginary parts would an
3468         error_mark_node.
3469
3470 2007-05-28  Daniel Berlin  <dberlin@dberlin.org>
3471
3472         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
3473         name when we remove it from a call.
3474
3475 2007-05-28  Kazu Hirata  <kazu@codesourcery.com>
3476
3477         * targhooks.c (default_narrow_bitfield): Remove.
3478         * targhooks.h: Remove the prototype for
3479         default_narrow_bitfield.
3480
3481         * langhooks-def.h: Remove the prototype for
3482         hook_get_alias_set_0.
3483         * langhooks.c (hook_get_alias_set_0): Remove.
3484
3485         * global.c (EXECUTE_IF_CONFLICT): Remove.
3486
3487 2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3488
3489         PR tree-opt/32100
3490         * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
3491         return true when truth_value_p is true and the type
3492         is of signed:1.
3493
3494 2007-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
3495
3496         * doc/install.texi (Prerequisites): We no longer require Autoconf
3497         2.13 for the top-level.
3498
3499 2007-05-28  Uros Bizjak  <ubizjak@gmail.com>
3500
3501         * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
3502         memory access via x86_expand_vector_move_misalign() only for
3503         TImode values on 32-bit targets.
3504
3505 2007-05-28  Razya Ladelsky  <razya@il.ibm.com>
3506
3507         * matrix-reorg.c: New file. Implement matrix flattening and
3508         transposing optimization.
3509         * tree-pass.h: Add matrix reorg pass.
3510         * common.opt: Add fipa-mreorg flag.
3511         * Makefile.in: Add matrix-reorg.c.
3512         * passes.c: Add matrix reorg pass.
3513         * varpool.c (add_new_static_var): New function.
3514         * cgraph.h (add_new_static_var): Declare.
3515
3516 2007-05-27  Eric Christopher  <echristo@apple.com>
3517
3518         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
3519         sp_offset depending on stack size. Save r12 depending
3520         on registers we're saving later.
3521         (rs6000_emit_epilogue): Update sp_offset depending only
3522         on stack size.
3523
3524 2007-05-27  Zdenek Dvorak  <dvorakz@suse.cz>
3525
3526         * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
3527         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
3528         * ifcvt.c (if_convert): Ditto.
3529         * tree-ssa-threadupdate.c (thread_block): Ditto.
3530         (thread_through_all_blocks): Ditto.  Assert that loops were analysed.
3531         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
3532         verify_loop_closed_ssa): Check number_of_loops instead of
3533         current_loops.
3534         * predict.c (tree_estimate_probability): Ditto.
3535         * tree-if-conv.c (main_tree_if_conversion): Ditto.
3536         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
3537         * modulo-sched.c (sms_schedule): Ditto.
3538         * tree-scalar-evolution.c (scev_const_prop): Ditto.
3539         (scev_finalize): Do not do anything if scev analysis was not
3540         initialized.
3541         * cfgloopanal.c (mark_irreducible_loops): Do not check whether
3542         current_loops == NULL.
3543         (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
3544         * loop-init.c (loop_optimizer_init): Do not free current_loops when
3545         there are no loops.
3546         (loop_optimizer_finalize): Assert that loops were analyzed.
3547         (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
3548         rtl_doloop): Check number_of_loops instead of current_loops.
3549         * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
3550         current_loops == NULL.
3551         (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
3552         gate_tree_vectorize tree_linear_transform, check_data_deps,
3553         tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
3554         tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
3555         Check number_of_loops instead of current_loops.
3556         (tree_ssa_loop_done): Do not check whether current_loops == NULL.
3557         * tree-ssa-pre.c (fini_pre): Do not take do_fre argument.  Always
3558         free loops if available.
3559         (execute_pre): Do not pass do_fre to fini_pre.
3560
3561 2007-05-27  Tobias Burnus  <burnus@net-b.de>
3562
3563         PR middle-end/32083
3564         * real.c (mpfr_from_real): Fix sign of -Inf.
3565
3566 2007-05-27  H.J. Lu  <hongjiu.lu@intel.com>
3567
3568         * tree-vect-transform.c (vectorizable_conversion): Initialize
3569         tree_code variables to ERROR_MARK.
3570         (vectorizable_type_demotion): Likewise.
3571         (vectorizable_type_promotion): Likewise.
3572
3573 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
3574
3575         PR target/32065
3576         * config/i386/i386.md (movti): Handle push operands via
3577         ix86_expand_push().
3578
3579 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
3580
3581         * basic-block.h: Remove the prototype for merge_seq_blocks.
3582         * cfgcleanup.c (merge_seq_blocks): Remove.
3583
3584         * tree-flow.h: Remove the prototype for is_aliased_with.
3585         * tree-ssa-alias.c (is_aliased_with): Remove.
3586
3587 2007-05-26  H.J. Lu  <hongjiu.lu@intel.com>
3588
3589         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
3590
3591         * config/i386/i386.c (ix86_expand_sse4_unpack): New.
3592
3593         * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
3594         ix86_expand_sse4_unpack if SSE4.1 is enabled.
3595         (vec_unpacks_hi_v16qi): Likewise.
3596         (vec_unpacku_lo_v16qi): Likewise.
3597         (vec_unpacks_lo_v16qi): Likewise.
3598         (vec_unpacku_hi_v8hi): Likewise.
3599         (vec_unpacks_hi_v8hi): Likewise.
3600         (vec_unpacku_lo_v8hi): Likewise.
3601         (vec_unpacks_lo_v8hi): Likewise.
3602         (vec_unpacku_hi_v4si): Likewise.
3603         (vec_unpacks_hi_v4si): Likewise.
3604         (vec_unpacku_lo_v4si): Likewise.
3605         (vec_unpacks_lo_v4si): Likewise.
3606
3607 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
3608
3609         * c-typeck.c, config/arm/arm.c, config/darwin.c,
3610         config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
3611         omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
3612         follow spelling conventions in various
3613         warning/error/diagnostic messages.
3614
3615         * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
3616         df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
3617         fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
3618         tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
3619         tree-vrp.c: Fix comment typos.  Follow spelling conventions.
3620         * doc/tm.texi: Follow spelling conventions.
3621
3622 2007-05-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3623
3624         PR tree-opt/32090
3625         * tree-ssa-forwprop.c
3626         (forward_propagate_addr_into_variable_array_index): Remove
3627         the lhs argument.  Use the type of def_rhs instead of lhs.
3628         (forward_propagate_addr_expr_1): Update use of
3629         forward_propagate_addr_into_variable_array_index.
3630
3631 2007-05-25  Sandra Loosemore  <sandra@codesourcery.com>
3632             Nigel Stephens  <nigel@mips.com>
3633
3634         * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
3635         function attributes, "far" being an alias for "long_call".
3636         (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
3637         (mips_near_type_p, mips_far_type_p): New.
3638         (mips_comp_type_attributes): New function to check that attributes
3639         attached to a function type are compatible.
3640         (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
3641         TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
3642         to the target function of the thunk.
3643         (mips_encode_section_info): Check for "near" and "far" function
3644         attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
3645
3646         * config/mips/predicates.md (const_call_insn_operand): Test only
3647         SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
3648
3649         * doc/extend.texi (Function Attributes): Document MIPS "near" and
3650         "far" attributes.
3651
3652         * testsuite/gcc.target/mips/near-far-1.c:  New test case.
3653         * testsuite/gcc.target/mips/near-far-2.c:  New test case.
3654         * testsuite/gcc.target/mips/near-far-3.c:  New test case.
3655         * testsuite/gcc.target/mips/near-far-4.c:  New test case.
3656
3657 2007-05-25  Eric Christopher  <echristo@apple.com>
3658
3659         * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
3660         to x86-darwin configurations.
3661         * config/i386/t-darwin: Add softfp support.
3662         * config/i386/t-darwin64: Ditto.
3663         * config/i386/sfp-machine.h: If mach then don't use
3664         aliasing, emit a stub to call.
3665
3666 2007-05-25  Kazu Hirata  <kazu@codesourcery.com>
3667
3668         * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
3669         haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
3670         tree-predcom.c, tree-ssa-alias-warnings.c,
3671         tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
3672         comment typos.  Follow spelling conventions.
3673         * doc/cpp.texi, doc/invoke.texi: Fix typos.
3674
3675 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
3676
3677         PR target/32065
3678         * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
3679         constants into memory.  Expand unaligned memory references for
3680         SSE modes via x86_expand_vector_move_misalign() function.
3681
3682 2007-05-25  Uros Bizjak  <ubizjak@gmail.com>
3683
3684         * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
3685         "memory" attribute for "sseishft" type insn without operands[2].
3686
3687 2007-05-25  Dirk Mueller  <dmueller@suse.de>
3688             Marcus Meissner <meissner@suse.de>
3689
3690         * doc/extend.texi (alloc_size): New attribute.
3691         * c-common.c (handle_alloc_size_attribute): New.
3692         * tree-object-size.c (alloc_object_size): Use alloc_size
3693         attribute, if available.
3694
3695 2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
3696
3697         * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
3698         with MASK_SSE2.
3699         (__builtin_ia32_vec_ext_v2di): Likewise.
3700         (__builtin_ia32_vec_ext_v4si): Likewise.
3701         (__builtin_ia32_vec_ext_v8hi): Likewise.
3702         (__builtin_ia32_vec_ext_v16qi): Likewise.
3703         (__builtin_ia32_vec_set_v8hi): Likewise.
3704
3705 2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
3706
3707         * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
3708
3709 2007-05-25  Richard Sandiford  <richard@codesourcery.com>
3710
3711         * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
3712         (arm_is_longcall_p): Rename to...
3713         (arm_is_long_call_p): ...this.  Take a single tree argument and
3714         return a bool.
3715         * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
3716         (CUMULATIVE_ARGS): Remove call_cookie.
3717         (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
3718         (ENCODED_LONG_CALL_ATTR_P): Delete.
3719         (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
3720         LONG_CALL_FLAG_CHAR cases.
3721         (ARM_DECLARE_FUNCTION_SIZE): Delete.
3722         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
3723         ARM_DECLARE_FUNCTION_SIZE.
3724         * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
3725         (arm_function_arg): Return const0_rtx for VOIDmode arguments.
3726         (arm_encode_call_attribute, current_file_function_operand): Delete.
3727         (arm_function_in_section_p): New function.
3728         (arm_is_longcall_p): Rename to...
3729         (arm_is_long_call_p): ...this.  Take the target function as a single
3730         argument and return a bool.  Do not rely on call cookies.  Check
3731         whether the target symbol is in the same section as the current
3732         function, not just the same compilation unit.
3733         (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
3734         (arm_encode_section_info): Don't encode a call type.
3735         * config/arm/arm.md (call, call_value): Update calls to
3736         arm_is_long(_)call_p.  Simplify logic.
3737         (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
3738         Update calls to arm_is_long(_)call_p.
3739
3740 2007-05-25  Richard Guenther  <rguenther@suse.de>
3741
3742         PR tree-optimization/31982
3743         * tree-ssa-forwprop.c
3744         (forward_propagate_addr_into_variable_array_index): Handle arrays
3745         with element size one.
3746
3747 2007-05-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3748
3749         * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
3750         (umulsi3_highpart): Likewise.
3751
3752 2007-05-24  Ian Lance Taylor  <iant@google.com>
3753
3754         PR rtl-optimization/32069
3755         * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
3756         is NULL.
3757
3758 2007-05-24  Ollie Wild  <aaw@google.com>
3759
3760         * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
3761         description.
3762
3763 2007-05-24  Richard Sandiford  <rsandifo@nildram.co.uk>
3764
3765         * postreload-gcse.c (reg_changed_after_insn_p): New function.
3766         (oprs_unchanged_p): Use it to check all registers in a REG.
3767         (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
3768         (reg_set_between_after_reload_p): Delete.
3769         (reg_used_between_after_reload_p): Likewise.
3770         (reg_set_or_used_since_bb_start): Likewise.
3771         (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
3772         and reg_used_between_p instead of reg_set_or_used_since_bb_start.
3773         Use reg_set_between_p instead of reg_set_between_after_reload_p.
3774         * rtlanal.c (reg_set_p): Check whether REG overlaps
3775         regs_invalidated_by_call, rather than just checking the
3776         membership of REGNO (REG).
3777
3778 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
3779
3780         * doc/passes.texi: Document predictive commoning.
3781         * doc/invoke.texi (-fpredictive-commoning): Document.
3782         * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
3783         * tree-ssa-loop-im.c (get_lsm_tmp_name): Export.  Allow
3784         adding indices to the generated name.
3785         (schedule_sm): Pass 0 to get_lsm_tmp_name.
3786         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
3787         * tree-pretty-print.c (op_symbol_1): Renamed to ...
3788         (op_symbol_code): ... and exported.
3789         (dump_omp_clause, op_symbol): Use op_symbol_code
3790         instead of op_symbol_1.
3791         * tree-pass.h (pass_predcom): Declare.
3792         * timevar.def (TV_PREDCOM): New timevar.
3793         * tree-ssa-loop.c (run_tree_predictive_commoning,
3794         gate_tree_predictive_commoning, pass_predcom): New.
3795         * tree-data-ref.c (find_data_references_in_loop): Find the
3796         references in dominance order.
3797         (canonicalize_base_object_address): Ensure that the result has
3798         pointer type.
3799         (dr_analyze_innermost): Export.
3800         (create_data_ref): Code to fail for references with invariant
3801         address moved ...
3802         (find_data_references_in_stmt): ... here.
3803         * tree-data-ref.h (dr_analyze_innermost): Declare.
3804         * tree-affine.c: Include tree-gimple.h and hashtab.h.
3805         (aff_combination_find_elt, name_expansion_hash,
3806         name_expansion_eq, tree_to_aff_combination_expand,
3807         double_int_constant_multiple_p, aff_combination_constant_multiple_p):
3808         New functions.
3809         * tree-affine.h (aff_combination_constant_multiple_p,
3810         tree_to_aff_combination_expand): Declare.
3811         * tree-predcom.c: New file.
3812         * common.opt (fpredictive-commoning): New option.
3813         * tree-flow.h (op_symbol_code, tree_predictive_commoning,
3814         stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
3815         * Makefile.in (tree-predcom.o): Add.
3816         (tree-affine.o): Add TREE_GIMPLE_H dependency.
3817         * passes.c (init_optimization_passes):  Add dceloop after
3818         copy propagation in loop optimizer.  Add predictive commoning
3819         to loop optimizer passes.
3820
3821 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
3822
3823         * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
3824         default hook.
3825
3826 2007-05-24  Jan Hubicka  <jh@suse.cz>
3827
3828         * gengenrtl.c (gendecl, gendef): Output the gens annotated for
3829         statistics.
3830         (genheader): Include statistics.h.
3831
3832         * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
3833         notes are gone.
3834         * print-rtl.c (flag_dump_unnumbered): Update comments.
3835         (print_rtl): Fix my previous change.
3836         * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
3837         specific data.
3838
3839 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
3840
3841         PR middle-end/32018
3842         * tree-ssa-threadupdate.c (thread_through_loop_header): Use
3843         set_loop_copy.
3844         (thread_through_all_blocks): Call initialize_original_copy_tables
3845         and free_original_copy_tables.
3846         * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
3847         Use set_loop_copy.
3848         * tree-cfg.c (tree_duplicate_sese_region): Ditto.
3849         * cfghooks.c (duplicate_block): Use get_loop_copy.
3850         * cfg.c: Include cfgloop.h.
3851         (loop_copy): New hash table.
3852         (initialize_original_copy_tables): Initialize loop_copy table.
3853         (free_original_copy_tables): Free loop_copy table.
3854         (copy_original_table_clear, copy_original_table_set,
3855         set_loop_copy, get_loop_copy): New functions.
3856         (set_bb_original, set_bb_copy): Use copy_original_table_set.
3857         * cfgloop.h (struct loop): Remove copy field.
3858         * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
3859         * basic-block.h (set_loop_copy, get_loop_copy): Declare.
3860
3861 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
3862
3863         * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
3864         -msse/-msse2/-msse3.
3865
3866 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
3867
3868         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
3869         __builtin_ia32_vec_set_v2di with MASK_64BIT.
3870
3871 2007-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
3872
3873         PR target/27067
3874         * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
3875         * targhooks.h (default_mangle_decl_assembler_name): Declare
3876         default hook.
3877         * targhooks.c (default_mangle_decl_assembler_name): Define
3878         default hook.
3879         * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
3880         default hook.
3881         * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
3882         * langhooks.c (lhd_set_decl_assembler_name): Call
3883         targetm.mangle_decl_assembler_name for names with global scope.
3884
3885         * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
3886         default.
3887         (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
3888         * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
3889         Declare.
3890         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
3891         New. Factored out of i386_pe_encode_section_info.
3892         (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
3893         Move check for prior decoration of stdcall
3894         symbols to i386_pe_encode_section_info.
3895         (i386_pe_encode_section_info): Adjust call to
3896         gen_stdcall_or_fastcall_suffix.  Use
3897         i386_pe_maybe_mangle_decl_assembler_name, if needed.
3898         (i386_pe_mangle_decl_assembler_name): New. Wrap
3899         i386_pe_maybe_mangle_decl_assembler_name.
3900
3901 2007-05-16  Rafael Avila de Espindola  <espindola@google.com>
3902
3903         * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
3904         INTEGRAL_TYPE_P and TYPE_UNSIGNED.
3905         * langhooks.c (get_signed_or_unsigned_type): Don't check for
3906         INTEGRAL_TYPE_P or TYPE_UNSIGNED.
3907         (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
3908         TYPE_UNSIGNED.
3909
3910 2007-05-23  Sandra Loosemore  <sandra@codesourcery.com>
3911             Nigel Stephens  <nigel@mips.com>
3912             Richard Sandiford  <richard@codesourcery.com>
3913
3914         Fix up MIPS16 hard float and add support for complex.
3915
3916         * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
3917         (TARGET_SOFT_FLOAT_ABI): New.
3918         (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
3919         __mips_soft_float to reflect the ABI in use, not whether the
3920         FPU is directly accessible (e.g., in MIPS16 mode).
3921         (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
3922         (UNITS_PER_FPVALUE): Likewise.
3923
3924         * config/mips/mips.c (mips_expand_call): Remove redundant
3925         TARGET_MIPS16 check.
3926         (mips_arg_regno): New.
3927         (function_arg_advance): When setting bits in cum->fp_code for
3928         MIPS16, don't subtract 1 from cum->arg_number, since it is now
3929         zero-based.
3930         (function_arg): Use mips_arg_regno.
3931         (mips_return_mode_in_fpr_p): New.
3932         (mips16_call_stub_mode_suffix): New.
3933         (mips16_cfun_returns_in_fpr_p): New.
3934         (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
3935         (mips_output_function_prologue): Test mips16_hard_float, not
3936         !TARGET_SOFT_FLOAT, to decide when a function stub is required.
3937         (mips_expand_epilogue): Call MIPS16 helper routines to copy
3938         return value into a floating-point register.
3939         (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
3940         (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
3941         (mips16_fp_args): Handle MIPS32r2 ISA which supports
3942         TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
3943         word of double arguments from or to the high bits of 64-bit
3944         floating point registers.
3945         (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
3946         (mips16_fpret_double): New helper function.
3947         (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p.  Add
3948         support for complex modes.  Fill in DECL_RESULT for stubdecl.
3949         (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
3950
3951         * config/mips/mips16.S
3952         (RET, ARG1, ARG2): New.
3953         (MERGE_GPRf, MERGE_GPRt): New.
3954         (DELAYt, DELAYf): New.
3955         (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
3956         (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
3957         (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
3958         (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
3959         (SFOP): Renamed to...
3960         (OPSF3): This, and macro-ified.  Updated all uses.
3961         (SFOP2): Renamed to...
3962         (OPSF2): This, and macro-ified.  Updated all uses.
3963         (SFCMP): Renamed to...
3964         (CMPSF): This, and macro-ified.  Updated all uses.
3965         (SFREVCMP): Renamed to...
3966         (REVCMPSF): This, and macro-ified.  Updated all uses.
3967         (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
3968         (LDDBL1, LDDBL2, RETDBL): Deleted.
3969         (DFOP): Renamed to...
3970         (OPDF3): This, and macro-ified.  Updated all uses.
3971         (DFOP2): Renamed to...
3972         (OPDF2): This, and macro-ified.  Updated all uses.
3973         (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
3974         (DFCMP): Renamed to...
3975         (CMPDF): This, and macro-ified.  Updated all uses.
3976         (DFREVCMP): Renamed to...
3977         (REVCMPDF): This, and macro-ified.  Updated all uses.
3978         (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
3979         (RET_FUNCTION): New.
3980         (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
3981         (__mips16_ret_sc, __mips16_ret_dc): New.
3982         (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
3983         STUB_ARGS_6, STUB_ARGS_10): New.
3984         (CALL_STUB_NO_RET): New.
3985         (__mips16_call_stub_1): Macro-ified.
3986         (__mips16_call_stub_5): Macro-ified.
3987         (__mips16_call_stub_2): Macro-ified.
3988         (__mips16_call_stub_6): Macro-ified.
3989         (__mips16_call_stub_9): Macro-ified.
3990         (__mips16_call_stub_10): Macro-ified.
3991         (CALL_STUB_RET): New.
3992         (__mips16_call_stub_sf_0): Macro-ified.
3993         (__mips16_call_stub_sf_1): Macro-ified.
3994         (__mips16_call_stub_sf_5): Macro-ified.
3995         (__mips16_call_stub_sf_2): Macro-ified.
3996         (__mips16_call_stub_sf_6): Macro-ified.
3997         (__mips16_call_stub_sf_9): Macro-ified.
3998         (__mips16_call_stub_sf_10): Macro-ified.
3999         (__mips16_call_stub_df_0): Macro-ified.
4000         (__mips16_call_stub_df_1): Macro-ified.
4001         (__mips16_call_stub_df_5): Macro-ified.
4002         (__mips16_call_stub_df_2): Macro-ified.
4003         (__mips16_call_stub_df_6): Macro-ified.
4004         (__mips16_call_stub_df_9): Macro-ified.
4005         (__mips16_call_stub_df_10): Macro-ified.
4006         (__mips16_call_stub_sc_0): New.
4007         (__mips16_call_stub_sc_1): New.
4008         (__mips16_call_stub_sc_5): New.
4009         (__mips16_call_stub_sc_2): New.
4010         (__mips16_call_stub_sc_6): New.
4011         (__mips16_call_stub_sc_9): New.
4012         (__mips16_call_stub_sc_10): New.
4013         (__mips16_call_stub_dc_0): New.
4014         (__mips16_call_stub_dc_1): New.
4015         (__mips16_call_stub_dc_5): New.
4016         (__mips16_call_stub_dc_2): New.
4017         (__mips16_call_stub_dc_6): New.
4018         (__mips16_call_stub_dc_9): New.
4019         (__mips16_call_stub_dc_10): New.
4020
4021         * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
4022         * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
4023         * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
4024
4025 2007-05-23  Ian Lance Taylor  <iant@google.com>
4026
4027         * doc/invoke.texi (Invoking GCC): Document that the order of the
4028         -l option matters.
4029
4030 2007-05-23  Chen Liqin  <liqin@sunnorth.com.cn>
4031
4032         PR target/30987
4033         * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
4034         * config/score/predicate.md (const_pow2, const_npow2): Remove.
4035         * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
4036         undef.
4037
4038         PR target/30474
4039         * config/score/score.c (score_print_operand): Make sure that only
4040         lower bits are used.
4041
4042 2007-05-22  Ian Lance Taylor  <iant@google.com>
4043
4044         * tree-vrp.c (avoid_overflow_infinity): New static function,
4045         broken out of set_value_range_to_value.
4046         (set_value_range_to_value): Call avoid_overflow_infinity.
4047         (extract_range_from_assert): Likewise.
4048
4049 2007-05-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4050
4051         PR middle-end/31095
4052          * builtins.c (expand_builtin_memmove_args): Strip nops that don't
4053         change the type before looking for a COMPOUND_EXPR.
4054
4055 2007-05-22  Ian Lance Taylor  <iant@google.com>
4056
4057         * lower-subreg.c (decompose_multiword_subregs): If we change an
4058         insn, call remove_retval_note on it.
4059
4060 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
4061
4062         * regs.h (end_hard_regno): New function.
4063         (END_HARD_REGNO, END_REGNO): New macros.
4064         (add_to_hard_reg_set): New function.
4065         (remove_from_hard_reg_set): Likewise.
4066         (in_hard_reg_set_p): Likewise.
4067         (overlaps_hard_reg_set_p): Likewise.
4068         * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
4069         (note_btr_set): Use END_HARD_REGNO.
4070         * caller-save.c (setup_save_areas): Use end_hard_regno.
4071         (mark_set_regs): Use END_HARD_REGNO.
4072         (add_stored_regs): Use end_hard_regno.
4073         (mark_referenced_regs): Use add_to_hard_reg_set.
4074         * combine.c (update_table_tick): Use END_REGNO.
4075         (record_value_for_reg): Likewise.
4076         (record_dead_and_set_regs): Likewise.
4077         (get_last_value_validate): Likewise.
4078         (use_crosses_set_p): Likewise.
4079         (reg_dead_at_p_1): Likewise.
4080         (reg_dead_at_p): Likewise.
4081         (mark_used_regs_combine): Use add_to_hard_reg_set.
4082         (move_deaths): Use END_HARD_REGNO.
4083         (reg_bitfield_target_p): Use end_hard_regno.
4084         (distribute_notes): Use END_HARD_REGNO.
4085         * cse.c (mention_regs): Use END_REGNO.
4086         (insert): Use add_to_hard_reg_set.
4087         (invalidate): Use END_HARD_REGNO.
4088         (invalidate_for_call): Likewise.
4089         (exp_equiv_p): Use END_REGNO.
4090         (cse_insn): Likewise.
4091         * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
4092         * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
4093         * df-scan.c (df_ref_record): Use END_HARD_REGNO.
4094         * function.c (keep_stack_depressed): Use end_hard_regno.
4095         * global.c (global_alloc): Use end_hard_regno.
4096         (global_conflicts): Use add_to_hard_reg_set instead of
4097         mark_reg_live_nc.
4098         (find_reg): Likewise.
4099         (mark_reg_store): Likewise.
4100         (mark_reg_conflicts): Likewise.
4101         (mark_reg_death): Use remove_from_hard_reg_set.
4102         (mark_reg_live_nc): Delete.
4103         (set_preference): Use end_hard_regno.
4104         * local-alloc.c (mark_life): Use add_to_hard_reg_set and
4105         remove_from_hard_reg_set.
4106         (post_mark_life): Use add_to_hard_reg_set.
4107         * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
4108         (reg_becomes_live): Use add_to_hard_reg_set.
4109         * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
4110         (peep2_find_free_register): Use add_to_hard_reg_set.
4111         * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
4112         * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
4113         * regrename.c (note_sets): Use add_to_hard_reg_set.
4114         (clear_dead_regs): Use remove_from_hard_reg_set.
4115         (regrename_optimize): Use add_to_hard_reg_set.
4116         (find_oldest_value_reg): Use in_hard_reg_set_p.
4117         * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
4118         (hard_reg_set_here_p): Use end_hard_regno.
4119         (decompose): Likewise.
4120         (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
4121         (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
4122         * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
4123         (mark_home_live): Use end_hard_regno.
4124         (spill_hard_reg): Likewise.
4125         (clear_reload_reg_in_use): Likewise.
4126         * reorg.c (delete_prior_computation): Use END_REGNO.
4127         * resource.c (update_live_status): Use END_HARD_REGNO.
4128         (mark_referenced_resources): Use add_to_hard_reg_set.
4129         (mark_set_resources): Likewise.
4130         (mark_target_live_regs): Likewise.  Use remove_from_hard_reg_set.
4131         * rtlanal.c (refers_to_regno_p): Use END_REGNO.
4132         (reg_overlap_mentioned_p): Likewise.
4133         (dead_or_set_p): Likewise.  Use an exclusive upper loop bound.
4134         (covers_regno_no_parallel_p): Use END_REGNO.
4135         (find_regno_note): Likewise.
4136         (find_reg_fusage): Use END_HARD_REGNO.
4137         * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
4138         * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
4139
4140 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
4141
4142         * mode-switching.c (reg_dies): Change type of second argument to
4143         "HARD_REG_SET *".
4144         (optimize_mode_switching): Update accordingly.
4145
4146 2007-05-22  Richard Sandiford  <richard@codesourcery.com>
4147
4148         * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
4149         in favor of...
4150         (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
4151         (hard_reg_set_empty_p): ...these new functions.
4152         * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
4153         GO_IF_HARD_REG_SUBSET.
4154         * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
4155         instead of GO_IF_HARD_REG_EQUAL.
4156         * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
4157         instead of GO_IF_HARD_REG_EQUAL.
4158         * global.c (find_reg): Use hard_reg_set_empty_p instead of
4159         GO_IF_HARD_REG_SUBSET.
4160         (modify_reg_pav): Use hard_reg_set_empty_p instead of
4161         GO_IF_HARD_REG_EQUAL.
4162         * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
4163         of GO_IF_HARD_REG_SUBSET.
4164         * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
4165         instead of GO_IF_HARD_REG_EQUAL.
4166         * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
4167         hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
4168         (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
4169         of GO_IF_HARD_REG_SUBSET,
4170         * reload1.c (finish_spills): Use hard_reg_subset_p instead of
4171         GO_IF_HARD_REG_SUBSET.
4172         * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
4173         instead of GO_IF_HARD_REG_EQUAL.
4174         * config/sh/sh.c (push_regs, calc_live_regs): Use
4175         hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
4176         (hard_regs_intersect_p): Delete.
4177
4178 2007-05-22  Janis Johnson  <janis187@us.ibm.com>
4179
4180         * doc/sourcebuild.texi (Test Directives) Add dg-message.
4181
4182 2007-05-22  H.J. Lu  <hongjiu.lu@intel.com>
4183             Richard Henderson  <rth@redhat.com>
4184
4185         * config.gcc (i[34567]86-*-*): Add smmintrin.h to
4186         extra_headers.
4187         (x86_64-*-*): Likewise.
4188
4189         * i386/i386-modes.def (V2QI): New.
4190
4191         * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
4192         SSE4A.
4193         (override_options): Support SSE4.1.
4194         (IX86_BUILTIN_BLENDPD): New for SSE4.1.
4195         (IX86_BUILTIN_BLENDPS): Likewise.
4196         (IX86_BUILTIN_BLENDVPD): Likewise.
4197         (IX86_BUILTIN_BLENDVPS): Likewise.
4198         (IX86_BUILTIN_PBLENDVB128): Likewise.
4199         (IX86_BUILTIN_PBLENDW128): Likewise.
4200         (IX86_BUILTIN_DPPD): Likewise.
4201         (IX86_BUILTIN_DPPS): Likewise.
4202         (IX86_BUILTIN_INSERTPS128): Likewise.
4203         (IX86_BUILTIN_MOVNTDQA): Likewise.
4204         (IX86_BUILTIN_MPSADBW128): Likewise.
4205         (IX86_BUILTIN_PACKUSDW128): Likewise.
4206         (IX86_BUILTIN_PCMPEQQ): Likewise.
4207         (IX86_BUILTIN_PHMINPOSUW128): Likewise.
4208         (IX86_BUILTIN_PMAXSB128): Likewise.
4209         (IX86_BUILTIN_PMAXSD128): Likewise.
4210         (IX86_BUILTIN_PMAXUD128): Likewise.
4211         (IX86_BUILTIN_PMAXUW128): Likewise.
4212         (IX86_BUILTIN_PMINSB128): Likewise.
4213         (IX86_BUILTIN_PMINSD128): Likewise.
4214         (IX86_BUILTIN_PMINUD128): Likewise.
4215         (IX86_BUILTIN_PMINUW128): Likewise.
4216         (IX86_BUILTIN_PMOVSXBW128): Likewise.
4217         (IX86_BUILTIN_PMOVSXBD128): Likewise.
4218         (IX86_BUILTIN_PMOVSXBQ128): Likewise.
4219         (IX86_BUILTIN_PMOVSXWD128): Likewise.
4220         (IX86_BUILTIN_PMOVSXWQ128): Likewise.
4221         (IX86_BUILTIN_PMOVSXDQ128): Likewise.
4222         (IX86_BUILTIN_PMOVZXBW128): Likewise.
4223         (IX86_BUILTIN_PMOVZXBD128): Likewise.
4224         (IX86_BUILTIN_PMOVZXBQ128): Likewise.
4225         (IX86_BUILTIN_PMOVZXWD128): Likewise.
4226         (IX86_BUILTIN_PMOVZXWQ128): Likewise.
4227         (IX86_BUILTIN_PMOVZXDQ128): Likewise.
4228         (IX86_BUILTIN_PMULDQ128): Likewise.
4229         (IX86_BUILTIN_PMULLD128): Likewise.
4230         (IX86_BUILTIN_ROUNDPD): Likewise.
4231         (IX86_BUILTIN_ROUNDPS): Likewise.
4232         (IX86_BUILTIN_ROUNDSD): Likewise.
4233         (IX86_BUILTIN_ROUNDSS): Likewise.
4234         (IX86_BUILTIN_PTESTZ): Likewise.
4235         (IX86_BUILTIN_PTESTC): Likewise.
4236         (IX86_BUILTIN_PTESTNZC): Likewise.
4237         (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
4238         (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
4239         (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
4240         (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
4241         (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
4242         (bdesc_ptest): New.
4243         (bdesc_sse_3arg): Likewise.
4244         (bdesc_2arg): Likewise.
4245         (bdesc_1arg): Likewise.
4246         (ix86_init_mmx_sse_builtins): Support SSE4.1.  Handle SSE builtins
4247         with 3 args.
4248         (ix86_expand_sse_4_operands_builtin): New.
4249         (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
4250         smaller than 8 bits as the 2nd arg.
4251         (ix86_expand_sse_ptest): New.
4252         (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
4253         (ix86_expand_vector_set): Support SSE4.1.
4254         (ix86_expand_vector_extract): Likewise.
4255
4256         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
4257         __SSE4_1__ for -msse4.1.
4258
4259         * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
4260         (UNSPEC_INSERTPS): Likewise.
4261         (UNSPEC_DP): Likewise.
4262         (UNSPEC_MOVNTDQA): Likewise.
4263         (UNSPEC_MPSADBW): Likewise.
4264         (UNSPEC_PHMINPOSUW): Likewise.
4265         (UNSPEC_PTEST): Likewise.
4266         (UNSPEC_ROUNDP): Likewise.
4267         (UNSPEC_ROUNDS): Likewise.
4268
4269         * config/i386/i386.opt (msse4.1): New for SSE4.1.
4270
4271         * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
4272         (const_pow2_1_to_32768_operand): Likewise.
4273
4274         * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
4275         file.
4276
4277         * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
4278         SSE4.1.
4279         (sse4_1_insertps): Likewise.
4280         (*sse4_1_extractps): Likewise.
4281         (sse4_1_ptest): Likewise.
4282         (sse4_1_mulv2siv2di3): Likewise.
4283         (*sse4_1_mulv4si3): Likewise.
4284         (*sse4_1_smax<mode>3): Likewise.
4285         (*sse4_1_umax<mode>3): Likewise.
4286         (*sse4_1_smin<mode>3): Likewise.
4287         (*sse4_1_umin<mode>3): Likewise.
4288         (sse4_1_eqv2di3): Likewise.
4289         (*sse4_1_pinsrb): Likewise.
4290         (*sse4_1_pinsrd): Likewise.
4291         (*sse4_1_pinsrq): Likewise.
4292         (*sse4_1_pextrb): Likewise.
4293         (*sse4_1_pextrb_memory): Likewise.
4294         (*sse4_1_pextrw_memory): Likewise.
4295         (*sse4_1_pextrq): Likewise.
4296         (sse4_1_blendpd): Likewise.
4297         (sse4_1_blendps): Likewise.
4298         (sse4_1_blendvpd): Likewise.
4299         (sse4_1_blendvps): Likewise.
4300         (sse4_1_dppd): Likewise.
4301         (sse4_1_dpps): Likewise.
4302         (sse4_1_movntdqa): Likewise.
4303         (sse4_1_mpsadbw): Likewise.
4304         (sse4_1_packusdw): Likewise.
4305         (sse4_1_pblendvb): Likewise.
4306         (sse4_1_pblendw): Likewise.
4307         (sse4_1_phminposuw): Likewise.
4308         (sse4_1_extendv8qiv8hi2): Likewise.
4309         (*sse4_1_extendv8qiv8hi2): Likewise.
4310         (sse4_1_extendv4qiv4si2): Likewise.
4311         (*sse4_1_extendv4qiv4si2): Likewise.
4312         (sse4_1_extendv2qiv2di2): Likewise.
4313         (*sse4_1_extendv2qiv2di2): Likewise.
4314         (sse4_1_extendv4hiv4si2): Likewise.
4315         (*sse4_1_extendv4hiv4si2): Likewise.
4316         (sse4_1_extendv2hiv2di2): Likewise.
4317         (*sse4_1_extendv2hiv2di2): Likewise.
4318         (sse4_1_extendv2siv2di2): Likewise.
4319         (*sse4_1_extendv2siv2di2): Likewise.
4320         (sse4_1_zero_extendv8qiv8hi2): Likewise.
4321         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
4322         (sse4_1_zero_extendv4qiv4si2): Likewise.
4323         (*sse4_1_zero_extendv4qiv4si2): Likewise.
4324         (sse4_1_zero_extendv2qiv2di2): Likewise.
4325         (*sse4_1_zero_extendv2qiv2di2): Likewise.
4326         (sse4_1_zero_extendv4hiv4si2): Likewise.
4327         (*sse4_1_zero_extendv4hiv4si2): Likewise.
4328         (sse4_1_zero_extendv2hiv2di2): Likewise.
4329         (*sse4_1_zero_extendv2hiv2di2): Likewise.
4330         (sse4_1_zero_extendv2siv2di2): Likewise.
4331         (*sse4_1_zero_extendv2siv2di2): Likewise.
4332         (sse4_1_roundpd): Likewise.
4333         (sse4_1_roundps): Likewise.
4334         (sse4_1_roundsd): Likewise.
4335         (sse4_1_roundss): Likewise.
4336         (mulv4si3): Don't expand for SSE4.1.
4337         (smax<mode>3): Likewise.
4338         (umaxv4si3): Likewise.
4339         (uminv16qi3): Likewise.
4340         (umin<mode>3): Likewise.
4341         (umaxv8hi3): Rewrite.  Only enabled for SSE4.1.
4342
4343         * doc/extend.texi: Document SSE4.1 built-in functions.
4344
4345         * doc/invoke.texi: Document -msse4.1.
4346
4347 2007-05-22  Nathan Sidwell  <nathan@codesourcery.com>
4348
4349         * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
4350         * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
4351         * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
4352         (ASM_SPEC): Add asm_pcrel_spec.
4353         (EXTRA_SPECS): Add asm_pcrel_spec.
4354
4355 2007-05-21  David Daney  <ddaney@avtrex.com>
4356
4357         * doc/install.texi (Building a cross compiler): Add requirements
4358         for Java cross compiler.
4359
4360 2007-05-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4361
4362         PR middle-end/31995
4363         * tree-chrec.c (evolution_function_is_affine_multivariate_p):
4364         Add loopno argument.  Use evolution_function_is_invariant_rec_p
4365         instead of evolution_function_is_constant_p.
4366         Update calls to evolution_function_is_affine_multivariate_p.
4367         * tree-chrec.h (evolution_function_is_affine_multivariate_p):
4368         Add loopno argument.
4369         * tree-scalar-evolution.c (gather_chrec_stats): Call
4370         evolution_function_is_affine_multivariate_p with a loop
4371         number of 0.
4372         * tree-data-ref.c (analyze_miv_subscript): Likewise.
4373         (analyze_overlapping_iterations): Likewise.
4374         (access_functions_are_affine_or_constant_p): Likewise.
4375         (build_classic_dist_vector_1): If the access functions
4376         are equal, don't do anything.
4377
4378 2007-05-21  Paolo Bonzini  <bonzini@gnu.org>
4379             Paolo Carlini  <pcarlini@suse.de>
4380             Uros Bizjak  <ubizjak@gmail.com>
4381
4382         * c-cppbuiltin.c (c_cpp_builtins): Define
4383         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
4384         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
4385         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
4386         * doc/cpp.texi ([Standard Predefined Macros]): Document.
4387
4388 2007-05-21  Mike Stump  <mrs@apple.com>
4389
4390         * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
4391         handling as well.
4392         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
4393
4394 2007-05-21  Uros Bizjak  <ubizjak@gmail.com>
4395
4396         * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
4397         implementation if __OPTIMIZE__ is not defined.
4398         (_mm_alignr_pi8): Ditto.
4399         * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
4400         (_mm_inserti_si64): Ditto.
4401         * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
4402         (_mm_slli_epi16): Ditto.
4403         (_mm_slli_epi32): Ditto.
4404         (_mm_slli_epi64): Ditto.
4405         (_mm_srai_epi16): Ditto.
4406         (_mm_srai_epi32): Ditto.
4407         (_mm_srli_si128): Ditto.
4408         (_mm_slli_si128): Ditto.
4409         (_mm_srli_epi16): Ditto.
4410         (_mm_srli_epi32): Ditto.
4411         (_mm_srli_epi64): Ditto.
4412         (_mm_extract_epi16): Ditto.
4413         (_mm_insert_epi16): Ditto.
4414         (_mm_shufflehi_epi16): Ditto.
4415         (_mm_shufflelo_epi16): Ditto.
4416         (_mm_shuffle_epi32): Ditto.
4417         * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
4418         (_m_pextrw): Ditto.
4419         (_mm_insert_pi16): Ditto.
4420         (_m_pinsrw): Ditto.
4421         (_mm_shuffle_pi16): Ditto.
4422         (_m_pshufw): Ditto.
4423         (_mm_shufle_ps): Ditto.
4424         (_mm_prefetch): Ditto.
4425
4426 2007-05-21  Andreas Krebbel  <krebbel1@de.ibm.com>
4427
4428         * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
4429         * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
4430         * real.c (encode_i370_single, decode_i370_single,
4431         encode_i370_double, decode_i370_double): Functions removed.
4432         (i370_single_format, i370_double_format): Initializations removed.
4433         (real_maxval, round_for_format, exact_real_truncate, significand_size):
4434         Consider the log2_b field to always be one.
4435         (ieee_single_format, mips_single_format, coldfire_single_format,
4436         ieee_double_format, mips_double_format, coldfire_double_format,
4437         ieee_extended_motorola_format, ieee_extended_intel_96_format,
4438         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
4439         ibm_extended_format, mips_extended_format, ieee_quad_format,
4440         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
4441         decimal_single_format, decimal_double_format, decimal_quad_format,
4442         c4x_single_format, c4x_extended_format, real_internal_format): Remove
4443         initialization of log2_b.
4444         * real.h (i370_single_format, i370_double_format): Declarations removed.
4445         * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
4446         field to always be one.
4447
4448 2007-05-21  Andreas Schwab  <schwab@suse.de>
4449
4450         * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
4451         NOTE_INSN_BASIC_BLOCK_P.
4452         (process_for_unwind_directive): Likewise.
4453
4454 2007-05-21  Nathan Sidwell  <nathan@codesourcery.com>
4455
4456         * builtins.c (expand_builtin_setjmp_setup): Update comment.
4457         * function.h (struct function): Move va_list_gpr_size,
4458         va_list_fpr_size, function_frequency to front of bitfields.  Add
4459         calls_unwind_init.
4460         (current_function_calls_unwind_init): New.
4461         * except.c (expand_builtin_unwind_init): Set
4462         current_function_calls_unwind_init not
4463         current_function_has_nonlocal_label.
4464         * reload1.c (has_nonexceptional_receiver): New.
4465         (reload): Use it and current_function_calls_unwind_init to
4466         determine whether call-saved regs must be saved.
4467
4468 2007-05-20  Jan Hubicka  <jh@suse.cz>
4469
4470         * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
4471         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
4472         * ddg.c (create_ddg): LIkewise.
4473         * final.c (final): Remove hunk moving line numbernotes around since
4474         they are no longer present at this stage.
4475         (final_scan_insn): Use NOTE_KIND instead of
4476         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
4477         (output_asm_label): Likewise.
4478         * reorg.c (dbr_schedule): Likewise.
4479         * haifa-sched.c (unlink_other_notes): Likewise.
4480         * mode-switching.c (optimize_mode_switching): Likewise.
4481         * graph.c (start_bb): Likewise.
4482         * rtl.def (NOTE): Update description.
4483         * jump.c (squeeze_notes): Delete.
4484         (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
4485         NOTE_INSN_BASIC_BLOCK_P when possible.
4486         * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
4487         * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
4488         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
4489         (dwarf2out_var_location): Likewise.
4490         * cfgbuild.c (make_edges): Likewise.
4491         (find_basic_blocks_1): Likewise.
4492         * function.c (reorder_blocks_1): Likewise.
4493         (epilogue_done): Likewise.
4494         (reposition_prologue_and_epilogue_notes): Likewise.
4495         * print-rtl.c (print_rtx): Likewise; drop code for printing line number
4496         notes.
4497         (print_rtl): Likewise.
4498         (print_rtl_single): Likewise.
4499         * gcse.c (insert_insn_start_bb): Likewise.
4500         * alias.c (init_alias_analysis): Likewise.
4501         * calls.c (fixup_tail_calls): Likewise.
4502         * except.c (sjlj_emit_function_enter): Likewise.
4503         * emit-rtl.c (add_insn_after): Likeiwse.
4504         (emit_label_before): Likewise.
4505         (emit_label_after): Likewise.
4506         (emit_note_before, emit_note_after, emit_note): Update
4507         parameter to be enum insn_note; do not deal with source
4508         files.
4509         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
4510         Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
4511         when possible.
4512         (merge_blocks_move_successor_nojumps): Simplify now when
4513         we don't have BLOCK notes.
4514         (try_optimize_cfg): Likewise.
4515         * cfglayout.c (skip_insns_after_block): Likewise.
4516         (record_effective_endpoints): Likewise.
4517         (duplicate_insn_chain): Likewise.
4518         * varasm.c (output_constant_pool_1): Likewise.
4519         * sched-deps.c (sched_analyze): Likewise.
4520         * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
4521         Exterminate.
4522         (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
4523         * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
4524         (SET_INSN_DELETED): Simplify.
4525         (NOTE_LINE_NUMBER): Exterminate.
4526         (NOTE_LINE_KIND): New.
4527         (NOTE_INSN_BASIC_BLOCK_P): Update.
4528         (enum insn_note): Simplify.
4529         (GET_NOTE_INSN_NAME) Simplify.
4530         (emit_note_before, emit_note_after, emit_note): Update prototype.
4531         (squeeze_notes): Remove.
4532         * sched-int.h (NOTE_NOT_BB_P): Update.
4533         * resource.c (mark_target_live_regs): Update.
4534         * sched-rgn.c (debug_dependencies): Update.
4535         * sched-vis.c (print_insn): Update.
4536         * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
4537         * config/i386/i386.c (ix86_output_function_epilogue): Update.
4538         * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
4539         (TARGET_ADJUST_UNROLL_MAX): Likewise.
4540         (split_branches): Update.
4541         (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
4542         4.0.0.
4543         (sh_adjust_unroll_max): Exterminate.
4544         * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
4545         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
4546         (m68hc11_reorg): Likewise.
4547         * config/ia64/ia64.c (emit_insn_group_barriers): Update.
4548         (emit_predicate_relation_info): Update.
4549         (process_for_unwind_directive): Update.
4550         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
4551         (output_call): Update.
4552         * config/pa/pa.c (output_lbranch): Update.
4553         (output_millicode_call): Update.
4554         (output_call): Update.
4555         (pa_combine_instructions): Update.
4556         * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
4557         * config/bfin/bfin.c (gen_one_bundle): Update.
4558         * cfgrtl.c (can_delete_note_p): Update.
4559         (delete_insn): Update.
4560         (rtl_merge_blocks): Update.
4561         (commit_one_edge_insertion): Update.
4562         (rtl_verify_flow_info): Update.
4563         * stmt.c (expand_case): Do not call squeeze_notes.
4564
4565 2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4566
4567         PR middle-end/7651
4568         PR c++/11856
4569         PR c/12963
4570         PR c/23587
4571         PR other/29694
4572         * c.opt (Wtype-limits): New.
4573         * doc/invoke.texi (Wtype-limits): Document it.
4574         (Wextra): Enabled by -Wextra.
4575         * c-opts.c (c_common_post_options): Enabled by -Wextra.
4576         * c-common.c (shorten_compare): Warn with Wtype-limits.
4577
4578 2007-05-20  Uros Bizjak  <ubizjak@gmail.com>
4579
4580         * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
4581         inlined function, not as a macro.
4582         (_mm_alignr_pi8): Ditto.
4583         * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
4584         (_mm_inserti_si64): Ditto.
4585         * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
4586         (_mm_extract_epi16): Ditto.
4587         (_mm_insert_epi16): Ditto.
4588         (_mm_shufflehi_epi16): Ditto.
4589         (_mm_shufflelo_epi16): Ditto.
4590         (_mm_shuffle_epi32): Ditto.
4591         * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
4592         * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
4593         all functions.
4594         (_m_from_float): Add __extension__ to conversion.  Use 0.0f for
4595         float constant.
4596         (_m_to_float): Use C89 compatible assignment.
4597
4598 2007-04-20  Martin Michlmayr  <tbm@cyrius.com>
4599
4600         PR target/32007
4601         * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
4602
4603 2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4604
4605         PR middle-end/7651
4606         * doc/invoke.texi (Wreturn-type): Complete description.
4607         (Wextra): Delete item about return-type warning.
4608         * c-decl.c: Delete redundant Wextra warning.
4609
4610 2007-05-20  Uros Bizjak  <ubizjak@gmail.com>
4611
4612         PR target/31585
4613         * config/i386/pmmintrin.h: Do not include xmmintrin.h
4614         * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
4615         inlined function, not as a macro.
4616         (_mm_prefetch): Ditto.
4617         (_m_pextrw): Ditto.
4618         (_mm_insert_pi16): Ditto.
4619         (_m_pinsrw): Ditto.
4620         (_mm_shuffle_pi16): Ditto.  Add const to __N argument.
4621         (_m_pshufw): Ditto. Add const to __N argument.
4622         (_mm_shufle_ps): Ditto.  Add const to __mask argument.
4623         * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
4624         (_mm_slli_epi32): Ditto.
4625         (_mm_srli_si128): Implement as always inlined function, not as a macro.
4626         Add __inline to function declaration.
4627         (_mm_slli_si128): Ditto.
4628
4629 2007-05-19  Uros Bizjak  <ubizjak@gmail.com>
4630
4631         * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
4632         FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
4633         New constants.
4634         (struct fenv): New structure.
4635         (FP_HANDLE_EXCEPTIONS): New define.
4636         (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
4637         (_FP_DECL_EXP): New define.
4638         (FP_INIT_ROUNDMODE): New define.
4639         (FP_ROUNDMODE): New define.
4640
4641 2007-05-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4642
4643         * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
4644         (Wconversion): Update description.
4645         (Wconversion-sign): New.
4646         * c.opt (Wconversion-sign): New.
4647         * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
4648         means disabled for C++. Otherwise, take the status of Wconversion.
4649         * c-common.c (conversion_warning): Warn with either Wconversion or
4650         Wconversion-sign.
4651         (warnings_for_convert_and_check): Conditions are already checked by
4652         conversion_warning.
4653         (convert_and_check): Don't check warnings if the conversion failed.
4654
4655 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
4656            Anatoly Sokolov <aesok@dol.ru>
4657
4658         * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
4659         avr_epilogue_uses) : Add declaration.
4660         * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
4661         * config/avr/constraints.md (R): New constraint.
4662         config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
4663         UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
4664         (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
4665         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
4666         (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
4667         call_prologue_saves, epilogue_restores, return_from_epilogue,
4668         return_from_main_epilogue, return_from_interrupt_epilogue,
4669         return_from_naked_epilogue, prologue, epilogue): New patterns.
4670         (jump): Handle symbol reference.
4671         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
4672         avr_output_function_prologue, avr_output_function_epilogue): Remove
4673         functions.
4674         (avr_init_machine_status, expand_prologue, expand_epilogue,
4675         avr_asm_function_end_prologue, avr_epilogue_uses,
4676         avr_asm_function_begin_epilogue): New functions.
4677         (prologue_size, epilogue_size, jump_tables_size): Remove global
4678         variables.
4679         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
4680         (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
4681         (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
4682         (avr_override_options): Initialise init_machine_status.
4683         (output_movhi): Handle all stack pointer loads.
4684         (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
4685         (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
4686         * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
4687         (EPILOGUE_USES) Redefine.
4688         (machine_function) Declare.
4689
4690 2007-05-19  Richard Sandiford  <richard@codesourcery.com>
4691
4692         * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
4693         Use a single return statement.
4694
4695 2007-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4696
4697         PR middle-end/30250
4698         * builtins.c (do_mpfr_lgamma_r): New.
4699         (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
4700         * tree.h (CASE_FLT_FN_REENT): New.
4701
4702 2007-05-18  Geoffrey Keating  <geoffk@apple.com>
4703
4704         * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
4705         (output_die): Use 'unsigned long' with %x.
4706         * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
4707         HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
4708         * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
4709
4710         * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
4711
4712 2007-05-18  H.J. Lu  <hongjiu.lu@intel.com>
4713
4714         PR target/31989
4715         PR target/31681
4716         PR target/31666
4717         * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
4718         true if function has no argument.
4719
4720 2007-05-18  DJ Delorie  <dj@redhat.com>
4721
4722         * config/mips/mips.c (mips_offset_within_alignment_p): New.
4723         (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
4724
4725 2007-05-18  Uros Bizjak  <ubizjak@gmail.com>
4726
4727         * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
4728         sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
4729         count_trailing_zeros.
4730         (__i386__): Implement count_leading_zeros using __builtin_clz().
4731         Implement count_trailing_zeros usign __builtin_ctz().
4732
4733 2007-05-18  Richard Sandiford  <richard@codesourcery.com>
4734
4735         * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
4736
4737 2007-05-18  Uros Bizjak  <ubizjak@gmail.com>
4738
4739         PR middle-end/31344
4740         * expr.c (emit_move_change_mode): Change mode of push operands here.
4741
4742 2007-05-17  Ian Lance Taylor  <iant@google.com>
4743
4744         PR tree-optimization/31953
4745         * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
4746         Change all callers.
4747         (set_value_range_to_null): Call set_value_range_to_value.
4748         (extract_range_from_comparison): Likewise.
4749
4750 2007-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4751
4752         * toplev.c (print_version): Output GMP/MPFR version info.
4753
4754         * builtins.c (CASE_MATHFN_REENT): New macro.
4755         (mathfn_built_in): Use it.
4756         * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
4757         BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
4758         BUILT_IN_LGAMMAL_R): New.
4759         * doc/extend.texi: Document new builtins.
4760
4761         PR middle-end/31796
4762         * builtins.c (do_mpfr_remquo): New.
4763         (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
4764         (fold_builtin_3): Handle BUILT_IN_REMQUO.
4765
4766         PR middle-end/30251
4767         * builtins.c (fold_builtin_1): Handle y0, y1.
4768         (fold_builtin_2): Handle yn.
4769
4770         PR middle-end/30251
4771         * builtins.c (do_mpfr_bessel_n): New.
4772         (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
4773         (fold_builtin_2): Handle BUILT_IN_JN.
4774
4775 2007-05-17  Danny Smith  <dannysmith@users.sourceforge.net>
4776
4777         PR target/31965
4778         * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
4779         TYPE_PRECISION (intmax_type_node).
4780
4781 2007-05-17  Steve Ellcey  <sje@cup.hp.com>
4782
4783         PR target/31850
4784         * reload.c (subst_reloads): Remove checking.
4785
4786 2007-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
4787
4788         PR rtl-optimization/31691
4789         * combine.c (simplify_set): Build a new src pattern instead of
4790         substituting its operands in the COMPARE case.
4791
4792 2007-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
4793
4794         * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
4795         (execute_vrp): Preserve loops through jump threading.
4796         * tree-ssa-threadupdate.c (thread_single_edge,
4797         dbds_continue_enumeration_p, determine_bb_domination_status,
4798         thread_through_loop_header): New functions.
4799         (create_edge_and_update_destination_phis,
4800         create_edge_and_update_destination_phis): Set loops for the new blocks.
4801         (prune_undesirable_thread_requests): Removed.
4802         (redirect_edges): Do not pretend that redirect_edge_and_branch can
4803         create new blocks.
4804         (thread_block): Do not call prune_undesirable_thread_requests.
4805         Update loops.
4806         (mark_threaded_blocks): Select edges to thread here.
4807         (thread_through_all_blocks): Take may_peel_loop_headers argument.
4808         Thread edges through loop headers independently.
4809         * cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
4810         * tree-pass.h (TODO_mark_first_instance): New.
4811         (first_pass_instance): Declare.
4812         * cfghooks.c (duplicate_block): Put the block to the original loop
4813         if copy is not specified.
4814         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
4815         jump threading.  Pass may_peel_loop_headers to
4816         thread_through_all_blocks according to first_pass_instance.
4817         * cfgloop.h (create_preheader): Declare.
4818         * tree-flow.h (thread_through_all_blocks): Declaration changed.
4819         * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
4820         * passes.c (first_pass_instance): New variable.
4821         (next_pass_1): Set TODO_mark_first_instance.
4822         (execute_todo): Set first_pass_instance.
4823
4824 2007-05-17  Uros Bizjak  <ubizjak@gmail.com>
4825
4826         PR tree-optimization/24659
4827         * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
4828         OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
4829         OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
4830         OTI_vec_pack_ufix_trunc.
4831         (vec_unpacks_float_hi_optab): Define new macro.
4832         (vec_unpacks_float_lo_optab): Ditto.
4833         (vec_unpacku_float_hi_optab): Ditto.
4834         (vec_unpacku_float_lo_optab): Ditto.
4835         (vec_pack_sfix_trunc_optab): Ditto.
4836         (vec_pack_ufix_trunc_optab): Ditto.
4837         * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
4838         and vec_pack_[s|u]fix_trunc_optab using
4839         vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
4840         * tree-vectorizer.c (supportable_widening_operation): Handle
4841         FLOAT_EXPR and CONVERT_EXPR.  Update comment.
4842         (supportable_narrowing_operation): New function.
4843         * tree-vectorizer.h (supportable_narrowing_operation): Prototype.
4844         * tree-vect-transform.c (vectorizable_conversion): Handle
4845         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
4846         (vect_gen_widened_results_half): Move before vectorizable_conversion.
4847         (vectorizable_type_demotion): Call supportable_narrowing_operation()
4848         to check for target support.
4849         * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
4850         for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
4851         for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
4852         for VEC_PACK_FIX_TRUNC_EXPR.
4853         (expand_binop): Special case mode of the result for
4854         vec_pack_[u|s]fix_trunc_optab.
4855         (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
4856         vec_pack_[u|s]fix_trunc_optab.
4857
4858         * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
4859         VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
4860         * tree-pretty-print.c (dump_generic_node): Handle
4861         VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
4862         VEC_PACK_FIX_TRUNC_EXPR.
4863         (op_prio): Ditto.
4864         * expr.c (expand_expr_real_1): Ditto.
4865         * tree-inline.c (estimate_num_insns_1): Ditto.
4866         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
4867
4868         * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
4869         (vec_unpacks_float_lo_v8hi): Ditto.
4870         (vec_unpacku_float_hi_v8hi): Ditto.
4871         (vec_unpacku_float_lo_v8hi): Ditto.
4872         (vec_unpacks_float_hi_v4si): Ditto.
4873         (vec_unpacks_float_lo_v4si): Ditto.
4874         (vec_pack_sfix_trunc_v2df): Ditto.
4875
4876         * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
4877         Document.
4878         [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
4879         [VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
4880         * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
4881         [vec_pack_ufix_trunc]: Ditto.
4882         [vec_unpacks_float_hi]: Ditto.
4883         [vec_unpacks_float_lo]: Ditto.
4884         [vec_unpacku_float_hi]: Ditto.
4885         [vec_unpacku_float_lo]: Ditto.
4886
4887 2007-05-16  Uros Bizjak  <ubizjak@gmail.com>
4888
4889         * soft-fp/README: Update for new files.
4890         * soft-fp/floattisf.c: New file.
4891         * soft-fp/floattidf.c: New file.
4892         * soft-fp/floattitf.c: New file.
4893         * soft-fp/floatuntisf.c: New file.
4894         * soft-fp/floatuntidf.c: New file.
4895         * soft-fp/floatuntitf.c: New file.
4896         * soft-fp/fixsfti.c: New file.
4897         * soft-fp/fixdfti.c: New file.
4898         * soft-fp/fixtfti.c: New file.
4899         * soft-fp/fixunssfti.c: New file.
4900         * soft-fp/fixunsdfti.c: New file.
4901         * soft-fp/fixunstfti.c: New file.
4902         * soft-fp/extendxftf.c: New file.
4903         * soft-fp/trunctfxf.c: New file.
4904
4905         * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
4906         (__trunctfxf2): Ditto.
4907
4908         * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
4909         __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
4910         __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
4911         __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
4912         __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
4913         __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.
4914
4915         * config/i386/t-fprules-softfp64: New file.
4916         * config/i386/sfp-machine.h: New file.
4917         * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
4918         x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
4919         and soft-fp/t-softfp to tmake_file.
4920         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
4921         i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
4922
4923         * config/i386/t-linux64 (softfp_wrap_start): New.
4924         (softfp_wrap_end): New.
4925         * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
4926         supported for TARGET_64BIT.
4927
4928 2007-05-16  Rafael Avila de Espindola  <espindola@google.com>
4929
4930         * c-common.c (c_common_signed_or_unsigned_type): Emulate
4931         c_common_unsigned_type behavior.
4932
4933 2007-05-16  Paolo Bonzini  <bonzini@gnu.org>
4934
4935         * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
4936         calls as pure.
4937
4938 2007-05-16  Eric Christopher  <echristo@apple.com>
4939
4940         * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
4941         saving after stack push. Set sp_offset whenever we push.
4942         (rs6000_emit_epilogue): Move altivec register restore before
4943         stack push.
4944
4945 2007-05-16  Richard Sandiford  <richard@codesourcery.com>
4946
4947         * configure.ac: Allow sysroots to be relocated under $prefix as
4948         well as $exec_prefix.
4949         * configure: Regenerate.
4950
4951 2007-05-16  Richard Sandiford  <richard@codesourcery.com>
4952
4953         Revert:
4954
4955         2007-05-12  Richard Sandiford  <richard@codesourcery.com>
4956
4957         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
4958         (gcc_tooldir): Likewise.
4959         * configure: Regenerate.
4960         * Makefile.in (libsubdir_to_prefix): New variable, based on the
4961         old configure.ac gcc_tooldir setting.
4962         (prefix_to_exec_prefix): New variable.
4963         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
4964         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
4965
4966 2007-05-14  Janis Johnson  <janis187@us.ibm.com>
4967
4968         * c-typeck.c (build_binary_op): Return early for error.
4969
4970 2007-05-15  Zdenek Dvorak  <dvorakz@suse.cz>
4971
4972         * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
4973         struct nb_iter_bound.
4974         (free_numbers_of_iterations_estimates_loop): Use ggc_free.
4975         * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
4976         * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
4977         * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
4978         (struct scev_info_str, scalar_evolution_info): Add GTY markers.
4979         (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
4980         (del_scev_info): Use ggc_free.
4981         (scev_initialize): Allocate scalar_evolution_info in gc memory.
4982         * loop-init.c: Include ggc.h.
4983         (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
4984         (loop_optimizer_finalize): Use ggc_free.
4985         * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
4986         pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
4987         pass_iv_optimize): Add TODO_ggc_collect.
4988         * function.h (struct function): Remove skip marker from x_current_loops.
4989         * cfgloop.c: Include ggc.h.
4990         (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
4991         memory.
4992         (establish_preds): Vector superloops is gc allocated.
4993         (alloc_loop): Allocate loop using GGC_CNEW.  Allocate head of
4994         loop->exits list.
4995         (flow_loops_find): Vector larray is gc allocated.
4996         (loop_exit_free): Use ggc_free.
4997         (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit.  Reflect
4998         that head of exits list is now not a part of struct loop.
4999         (record_loop_exits): Allocate exits table in gc memory.
5000         (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect that
5001         head of exits list is now not a part of struct loop.
5002         * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
5003         struct loop_exit): Add GTY marker.
5004         (struct loop): Add GTY marker.  Make superloops vector gc allocated.
5005         Add skip marker to aux field.  Make head of exits list a separate
5006         object.
5007         (struct loops): Add GTY marker.  Make larray vector gc allocated.
5008         Add param marker to exits table.
5009         (get_loops): Type changed.
5010         * Makefile.in (tree-scalar-evolution.o): Add gt-tree-scalar-evolution.h
5011         dependency.
5012         (cfgloop.o, loop-init.o): Add ggc.h dependency.
5013         (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
5014         * basic-block.h (struct basic_block_def): Remove skip marker from
5015         loop_father field.
5016
5017 2007-05-14  Uros Bizjak  <ubizjak@gmail.com>
5018
5019         * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
5020         of 0 in the call to expand_expr().
5021         (expand_builtin_mathfn_3): Ditto.
5022         (expand_builtin_interclass_mathfn): Ditto.
5023         (expand_builtin_cexpi): Ditto.
5024         (expand_builtin_int_roundingfn): Ditto.
5025         (expand_builtin_int_roundingfn_2): Ditto.
5026         (expand_builtin_pow): Ditto.
5027         (expand_builtin_powi): Ditto.
5028         (expand_builtin_bswap): Ditto.
5029         (expand_builtin_unop): Ditto.
5030         (expand_builtin_fabs): Ditto.
5031         (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
5032         the call to expand_expr().
5033         (expand_builtin_sync_operation): Ditto.
5034         (expand_builtin_compare_and_swap): Ditto.
5035         (expand_builtin_lock_test_and_set): Ditto.
5036         * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
5037         instead of 0 in the call to expand_expr().
5038         (expand_builtin_extract_return_addr): Ditto.
5039         (expand_builtin_eh_return): Ditto.
5040         (expand_eh_return): Ditto.
5041         * explow.c (expr_size): Ditto.
5042         * expr.c (optimize_bitfield_assignment_op): Ditto.
5043         (expand_assignement): Ditto.
5044         (store_expr): Ditto.
5045         (store_field): Ditto.
5046         (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
5047         the call to expand_expr().
5048         (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
5049         in the call to expand_expr().
5050         [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
5051         BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
5052         [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
5053         of expand_expr().
5054         * optabs.c (expand_vec_shift_expr): Ditto.
5055         (expand_vec_cond_expr): Ditto.
5056         (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
5057         call to expand_expr().
5058         * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
5059         in the call to expand_expr().
5060
5061 2007-05-14  Dave Korn  <dave.korn@artimi.com>
5062
5063         * genautomata.c (gen_regexp_el):  Allocate correct size for regexp.
5064
5065 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
5066
5067         * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
5068         instead of c_common_unsigned_type.
5069         (c_common_unsigned_type): Remove.
5070         (shorten_compare): Use c_common_signed_or_unsigned_type instead of
5071         c_common_unsigned_type.
5072         (c_common_nodes_and_builtins): Use unsigned_type_for instead of
5073         c_common_unsigned_type.
5074         * c-common.h (c_common_unsigned_type): Remove.
5075         * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
5076         c_common_unsigned_type.
5077         * c-format.c (check_format_types): Use unsigned_type_for instead of
5078         c_common_unsigned_type.
5079         * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
5080         * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead of
5081         c_common_unsigned_type.
5082         * convert.c (convert_to_integer): Use unsigned_type_for instead of
5083         lang_hooks.types.unsigned_type.
5084         * expmed.c (make_tree): Use unsigned_type_for instead of
5085         lang_hooks.types.unsigned_type.
5086         * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
5087         lang_hooks.types.unsigned_type.
5088         (build_range_check): Likewise.
5089         (fold_unary): Likewise.
5090         (fold_binary): Likewise.
5091         (fold_ternary): Likewise.
5092         * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
5093         * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
5094         * tree.c (get_unsigned_type): New.
5095         (unsigned_type_for): Use get_unsigned_type instead of
5096         lang_hooks.types.unsigned_type.
5097
5098 2007-05-14  Kazu Hirata  <kazu@codesourcery.com>
5099
5100         * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
5101         to m68k_get_function_kind.  Update its prototype.
5102         * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
5103         interrupt_thread.
5104         (m68k_interrupt_function_p): Return enum m68k_function_type
5105         instead of bool.  Rename to m68k_get_function_kind.
5106         (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
5107         target is not fido.
5108         (m68k_compute_frame_layout): Don't mark any register for save
5109         if an interrupt_thread attribute is specified.
5110         (m68k_hard_regno_rename_ok): Update a use of
5111         m68k_interrupt_function_p.
5112         * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
5113         m68k_interrupt_function_p.
5114         (m68k_function_type): New.
5115         * config/m68k/m68k.md (*return): Output a 'sleep' instruction
5116         for a function with an interrupt_thread attribute.
5117         * doc/extend.texi: Document the interrupt_thread attribute.
5118
5119 2007-05-13  Daniel Berlin  <dberlin@dberlin.org>
5120
5121         Fix PR tree-optimization/31911
5122         * tree-ssa-pre.c (phi_translate): Make sure to cache results even
5123         if they didn't change the expression.
5124
5125 2007-05-13  Zdenek Dvorak  <dvorakz@suse.cz>
5126
5127         * tree-scalar-evolution.c (resolve_mixers): Exported.
5128         * tree-scalar-evolution.h (resolve_mixers): Declare.
5129         * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
5130         ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
5131         record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
5132         base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
5133         init_array_ref, init_pointer_ref, analyze_indirect_ref,
5134         strip_conversion, analyze_offset_expr, address_analysis,
5135         object_analysis, analyze_offset): Removed.
5136         (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
5137         split_constant_offset, canonicalize_base_object_address,
5138         object_address_invariant_in_loop_p, disjoint_objects_p,
5139         dr_may_alias_p, dr_address_invariant_p): New functions.
5140         (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
5141         and dr_analyze_alias.
5142         (initialize_data_dependence_relation): Use dr_may_alias_p
5143         and object_address_invariant_in_loop_p.
5144         (compute_self_dependence): Handle the case when DDR_ARE_DEPENDENT (ddr)
5145         is chrec_dont_know.
5146         (find_data_references_in_stmt): Restrict the analysis of data references
5147         to the given loop nest.
5148         (find_data_references_in_loop): Made static.  Pass loop nest to
5149         find_data_references_in_stmt.
5150         (compute_data_dependences_for_loop): Use DR_VOPS.
5151         (free_data_ref): Free DR_VOPS.
5152         * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
5153         (struct innermost_loop_behavior): ... new.
5154         (struct base_object_info): Replaced by ...
5155         (struct indices): ... new.
5156         (struct dr_alias): New.
5157         (enum data_ref_type): Removed.
5158         (struct data_reference): Consist of struct innermost_loop_behavior,
5159         struct indices and struct dr_alias.
5160         (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
5161         (DR_MEMTAG): Renamed to ...
5162         (DR_SYMBOL_TAG): ... this.
5163         (find_data_references_in_loop): Declaration removed.
5164         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
5165         instead of DR_OFFSET_MISALIGNMENT.  DR_ALIGNED_TO is never NULL.
5166         (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
5167         * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
5168
5169 2007-05-13  Revital Eres  <eres@il.ibm.com>
5170
5171         * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
5172         which walks virtual def-use chains to find redundant stores.
5173         (dse_optimize_stmt): Call it.
5174
5175 2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
5176
5177         * gcse.c (gcse_main): Do jump bypassing in CPROP2.
5178         * passes.c (init_optimization_passes): Move pass_jump_bypass
5179         after loop2.
5180
5181         * basic-block.h (bb_has_eh_pred): Fix style issue.
5182
5183 2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
5184
5185         PR rtl-optimization/31848
5186         * loop-invariant.c (move_invariant_reg): If we move an insn
5187         with a REG_EQUAL note, and that insn is not always executed,
5188         remove the REG_EQUAL note.
5189
5190 2007-05-12  Richard Guenther  <rguenther@suse.de>
5191
5192         PR tree-optimization/31797
5193         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
5194         propagate into a stmt that has volatile ops.
5195
5196 2007-05-12  Richard Sandiford  <richard@codesourcery.com>
5197
5198         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
5199         (gcc_tooldir): Likewise.
5200         * configure: Regenerate.
5201         * Makefile.in (libsubdir_to_prefix): New variable, based on the
5202         old configure.ac gcc_tooldir setting.
5203         (prefix_to_exec_prefix): New variable.
5204         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
5205         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
5206
5207 2007-05-11  Silvius Rus  <rus@google.com>
5208
5209         * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
5210         * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
5211         * c-common.h (strict_aliasing_warning): Change return type.
5212         * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
5213         * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
5214         (build_c_cast): Condition call to strict_aliasing_warning.
5215         * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
5216         * flags.h (set_Wstrict_aliasing): Declare.
5217         * opts.c (set_Wstrict_alising): Define, add call to.
5218         * tree-flow.h (strict_aliasing_warning_backend): Declare.
5219         * tree-ssa-alias-warnings.c: New file.
5220         * tree-ssa-alias.c (compute_may_aliases): Add call to
5221         strict_aliasing_warning_backend.
5222
5223 2007-05-11  Zdenek Dvorak  <dvorakz@suse.cz>
5224
5225         * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
5226         Use loop_depth and loop_outer accessor functions.
5227         * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
5228         determine_invariantness_stmt, move_computations_stmt): Ditto.
5229         * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
5230         add_loop, loopify, unloop, fix_loop_structure): Ditto.
5231         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
5232         * tree-scalar-evolution.c (interpret_loop_phi,
5233         compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
5234         instantiate_parameters_1, scev_const_prop): Ditto.
5235         * cfghooks.c (make_forwarder_block): Ditto.
5236         * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
5237         * modulo-sched.c (loop_canon_p): Ditto.
5238         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
5239         slpeel_can_duplicate_loop_p): Ditto.
5240         * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
5241         * tree-cfg.c (tree_duplicate_sese_region): Ditto.
5242         * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
5243         cancel_loop, verify_loop_structure): Ditto.
5244         (flow_loop_nested_p, superloop_at_depth, flow_loop_free,
5245         add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
5246         superloops vector instead of "pred" array.
5247         (establish_preds): Take father loop as an argument.  Initialize the
5248         superloops vector.
5249         (flow_loop_tree_node_add): Pass father loop to establish_preds.  Do not
5250         initialize loop->outer.
5251         (flow_loop_tree_node_remove): Truncate the superloops vector.
5252         * cfgloop.h (struct loop): Removed field "outer", fields "depth" and
5253         "pred" merged to "superloops" vector.
5254         (loop_depth, loop_outer): New.
5255         (fel_init): Use loop_outer.
5256
5257 2007-05-11  Jan Hubicka  <jh@suse.cz>
5258
5259         * cgraphunit.c: Include gt-cgraphunit.h
5260         (static_ctors, static_dtors): New static vars.
5261         (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
5262         based on implementation in c-common.c
5263         (cgraph_finalize_function): Call record_cdtor_fn.
5264         (cgraph_optimize): Call cgraph_build_cdtor_fns.
5265         * decl.c (finish_function): Do not call c_record_cdtor_fn.
5266         (c_write_global_declarations): Do not call c_build_cdtor_fns.
5267         * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
5268         build_cdtor, c_build_cdtor_fns): Remove.
5269         * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
5270         c_build_cdtor_fns): Remove prototype.
5271
5272 2007-05-11  Paolo Carlini  <pcarlini@suse.de>
5273
5274         PR other/31852
5275         * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
5276         * builtins.def: Add BUILT_IN_MEMCHR, use the latter.
5277         * builtins.c (fold_builtin_memchr): New.
5278         (expand_builtin_memchr): Call the latter.
5279         (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
5280         * doc/extend.texi ([Other built-in functions provided by GCC]):
5281         Document memchr.
5282
5283 2007-05-11  Andreas Krebbel  <krebbel1@de.ibm.com>
5284
5285         * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
5286         PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
5287         PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
5288         PFPO_OP1_TYPE_SHIFT): Constants added.
5289         (DFP_ALL): Mode macro defined.
5290         ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
5291         "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
5292         Insn definitions added.
5293         ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
5294         "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
5295         Expanders added.
5296
5297 2007-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
5298
5299         PR tree-optimization/31885
5300         * tree-chrec.c (chrec_contains_undetermined): Do not consider NULL_TREE
5301         to be undetermined.
5302         (automatically_generated_chrec_p): Return false for NULL.
5303
5304 2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>
5305
5306         * config/bfin/bfin.h (MOVE_RATIO): Define.
5307
5308 2007-05-10  Richard Sandiford  <richard@codesourcery.com>
5309
5310         * config.gcc (sparc-wrs-vxworks): New target.
5311         * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
5312         * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
5313         * config/sparc/sparc.h: Include vxworks-dummy.h.
5314         (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
5315         include LABEL_REFs too.
5316         * config/sparc/sparc.c (sparc_expand_move): Don't assume that
5317         _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
5318         VxWorks.
5319         (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
5320         on VxWorks.
5321         (load_pic_register): Use gen_vxworks_load_got for VxWorks.
5322         (sparc_emit_call_insn): New function.
5323         (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
5324         functions when generating VxWorks PIC.
5325         * config/sparc/sparc.md (vxworks_load_got): New pattern.
5326         (call, call_value): Use sparc_emit_call_insn instead of
5327         emit_call_insn.
5328
5329 2007-05-09  Bob Wilson  <bob.wilson@acm.org>
5330
5331         * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
5332
5333 2007-05-09  Bob Wilson  <bob.wilson@acm.org>
5334
5335         * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
5336         for floating-point values if HOST_BITS_PER_LONG > 32.  Use split_double
5337         instead of operand_subword.
5338
5339 2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>
5340
5341         * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
5342         * config/bfin/bfin.c (bfin_local_alignment): New function.
5343         * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.
5344
5345 2007-05-08  Chao-ying Fu  <fu@mips.com>
5346
5347         * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
5348         * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
5349         (smsub_widen_optab, umsub_widen_optab): Define.
5350         * optabs.c (init_optabs): Initialize smsub_widen_optab and
5351         umsub_widen_optab.
5352         * genopinit.c (optabs): Fill in smsub_widen_optab and
5353         umsub_widen_optab.
5354         * expr.c (expand_expr_real_1): Try to use smsub_widen_optab
5355         and umsub_widen_optab to implement multiply-subtract sequences.
5356         * config/mips/mips.md (*msac<u>_di): Rename to...
5357         (<u>msubsidi4): ...this.  Extend condition to include
5358         GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
5359         of operand 0 to "ka" and use the three-operand form of msub<u>
5360         for TARGET_DSPR2.
5361         * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
5362         to define_expands.
5363
5364 2007-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
5365
5366         PR rtl-optimization/28011
5367         * reload.c (push_reload): Set dont_share if IN appears in OUT
5368         also when IN is a PLUS rtx.
5369         (reg_overlap_mentioned_for_reload_p): Return true if X and IN
5370         are same PLUS rtx.
5371
5372 2007-05-08  Kazu Hirata  <kazu@codesourcery.com>
5373
5374         * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL.  Don't
5375         call unshare_all_decls.
5376         (unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
5377         (unshare_all_decls): Remove.
5378
5379 2007-05-08  Simon Martin  <simartin@users.sourceforge.net>
5380
5381         PR 31847
5382         * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
5383         dumps.
5384
5385 2007-05-08  Sandra Loosemore  <sandra@codesourcery.com>
5386             Nigel Stephens  <nigel@mips.com>
5387
5388         * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
5389         Update comments and all uses.
5390         (MIN_FPRS_PER_FMT): Define.
5391         * config/mips/mips.c (function_arg): Fix to correctly handle
5392         the -mips32r2 -mfp64 -mabi=32 case.
5393         (override_options): Enable use of odd-numbered registers for
5394         SFmode values on MIPS32.
5395         (mips_save_reg_p): Save whole floating-point register pair if
5396         either half is used.
5397         (compute_frame_size): Fix comment.
5398
5399 2007-05-08  Jie Zhang  <jie.zhang@analog.com>
5400
5401         * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
5402         argument of type bool.
5403         * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
5404         argument. Safely select temporary P register according to it.
5405         (do_link): Change call site of add_to_reg accordingly.
5406         (do_unlink): Add epilogue_p as a fourth argument and pass it
5407         to add_to_reg.
5408         (expand_interrupt_handler_epilogue): Change call of do_unlink
5409         accordingly.
5410         (bfin_expand_prologue): Add a third argument sibcall_p.
5411         * config/bfin/bfin.md (epilogue): Change call of
5412         bfin_expand_epilogue accordingly.
5413         (sibcall_epilogue): Likewise.
5414         (eh_return_internal): Likewise.
5415
5416         * config/bfin/bfin-protos.h (enum bfin_cpu): Add
5417         BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
5418         * config/bfin/bfin.c (bfin_handle_option): Handle
5419         -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
5420         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
5421         Support bf534, bf536 and bf561.
5422         * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
5423
5424 2007-05-08  Uros Bizjak  <ubizjak@gmail.com>
5425
5426         PR target/31854
5427         * config/i386/i386.c (ix86_function_regparm): Process local
5428         functions only when TREE_CODE (decl) equals FUNCTION_DECL.
5429
5430 2007-05-07  Mike Stump  <mrs@apple.com>
5431
5432         * doc/invoke.texi (Warning Options): Document that -Wempty-body
5433         also checks for and while statements in C++.
5434
5435 2007-05-07  Nathan Froyd  <froydnj@codesourcery.com>
5436
5437         * gcc.c (at_file_supplied): New variable.
5438         (main): Set it if we expanded argv.
5439         (do_spec_1): Pass an @-file to the linker if we were called with
5440         an @-file argument and HAVE_GNU_LD.
5441         * collect2.c (at_file_supplied): New variable.
5442         (response_file): New variable.
5443         (collect_exit): Unlink response_file if necessary.
5444         (handler): Likewise.
5445         (do_wait): Likewise.
5446         (main): Set at_file_supplied if we expanded argv.
5447         (collect_execute): Pass an @-file to subprocesses if we were called
5448         with an @-file argument.
5449         * configure.ac: Add define for HAVE_GNU_LD.
5450         * configure: Regenerate.
5451         * config.in: Regenerate.
5452
5453 2007-05-07  Naveen.H.S  <naveen.hs@kpitcummins.com>
5454
5455         * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
5456         operand to HI mode.
5457         (mulsi3): New.
5458         (divsi3): New.
5459         (udivsi3): New.
5460
5461 2007-05-07  Jayant Sonar  <jayants@kpitcummins.com>
5462
5463         * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
5464         (TARGET_ENCODE_SECTION_INFO): Re-define.
5465         (m32c_encode_section_info): New
5466         (function_vector_handler): New
5467         (current_function_special_page_vector): New
5468         (m32c_special_page_vector_p): New.
5469         * config/m32c/m32c-protos.h (m32c_special_page_vector_p):
5470         Prototype.
5471         * config/m32c/jump.md: Added instruction JSRS for functions
5472         with attribute "function_vector".
5473         * doc/extend.texi (function_vector): Added description
5474         for M16C, M32C targets.
5475
5476 2007-05-07  DJ Delorie  <dj@redhat.com>
5477
5478         PR 31794
5479         * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
5480         ashrpsi3, lshrpsi3): Update shift count constraint.
5481
5482 2007-05-07  Danny Smith  <dannysmith@users.sourceforge.net>
5483             Nathan Froyd  <froydnj@codesourcery.com>
5484
5485         PR 22133
5486         * c-incpath.c (add_path): Strip trailing path separators.
5487
5488 2007-05-07  Eric Botcazou  <ebotcazou@adacore.com>
5489
5490         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
5491         Free dominance info before purging EH edges.
5492         (eliminate_degenerate_phis): Likewise.
5493         (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
5494
5495 2007-05-07  Jan Hubicka  <jh@suse.cz>
5496
5497         * gimplify.c (gimplify_expr): Do not crash when folding
5498         (void *)(int)&a + 4.
5499
5500 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5501
5502         PR driver/31694
5503         * c-opts.c (lang_fortran): Make it non static.
5504         * c-common.h (lang_fortran): New prototype.
5505         * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
5506         -lang-fortran option was passed by the driver.
5507
5508 2007-05-06  Eric Botcazou  <ebotcazou@adacore.com>
5509
5510         * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
5511         of ASSERT_CHECKING.  Tweak message.
5512
5513 2007-05-06  Revital Eres  <eres@il.ibm.com>
5514
5515         PR 30957
5516         * loop-unroll.c (insert_var_expansion_initialization):
5517         Initialize the expansions with -zero instead of +zero.
5518
5519 2007-05-05  Aurelien Jarno  <aurelien@aurel32.net>
5520
5521         * config/pa/pa.md: Split tgd_load, tld_load and tie_load
5522         into pic and non-pic versions. Mark r19 as used for
5523         tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
5524         for tgd_load, tld_load and tie_load .
5525         * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
5526         version of tgd_load, tld_load and tie_load depending on the
5527         value of flag_pic.
5528
5529 2007-05-04  Ulrich Drepper  <drepper@redhat.com>
5530             Jakub Jelinek  <jakub@redhat.com>
5531
5532         * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
5533         (__do_global_dtors_aux): Use more paranoid loop to run
5534         destructors if HIDDEN_DTOR_LIST_END.
5535         (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
5536
5537 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
5538
5539         * varasm.c (align_variable): Don't increase alignment for
5540         DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
5541         DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
5542
5543 2007-05-04  Josh Conner  <jconner@apple.com>
5544
5545         * basic-block.h (cdi_direction): Assign values to all enumeration
5546         constants.
5547         (dom_computed): Remove.
5548         (dom_info_state): New.
5549         (set_dom_info_availability): New.
5550         * tree-ssa-loop-im.c (determine_invariantness): Initialize
5551         walk_data.dom_direction.
5552         * cfghooks.c (delete_basic_block): Use dom_info_available_p()
5553         instead of dom_computed[].
5554         (split_edge): Likewise.
5555         (create_basic_block): Likewise.
5556         (merge_blocks): Likewise.
5557         * ifcvt.c (find_if_header): Likewise.
5558         * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
5559         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
5560         * tree-ssa.c (verify_ssa): Likewise.
5561         * tree-cfg.c (tree_verify_flow_info): Likewise.
5562         (remove_edge_and_dominated_blocks): Likewise.
5563         * dominance.c (dom_computed): Make static.
5564         (calc_dfs_tree_nonrec): Change third param to a bool.
5565         (calc_dfs_tree): Change second param to a bool.
5566         (calc_idioms): Change second param to a bool.  Use
5567         dom_convert_dir_to_idx.
5568         (init_dom_info): Validate dir before using.
5569         (dom_convert_dir_to_idx): New.
5570         (calculate_dominance_info): Use dom_convert_dir_to_idx.  New
5571         variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
5572         (free_dominance_info): Use dom_convert_dir_to_idx.
5573         (get_immediate_dominator): Likewise.
5574         (set_immediate_dominator): Likewise.
5575         (get_dominated_by): Likewise.
5576         (redirect_immediate_dominators): Likewise.
5577         (nearest_common_denominator): Likewise.
5578         (dominated_by_p): Likewise.
5579         (bb_dom_dfs_in): Likewise.
5580         (bb_dom_dfs_out): Likewise.
5581         (recount_dominator): Likewise.
5582         (iterate_fix_dominators): Likewise.
5583         (add_to_dominance_info): Likewise.
5584         (delete_from_dominance_info): Likewise.
5585         (first_dom_son): Likewise.
5586         (next_dom_son): Likewise.
5587         (dom_info_available_p): Likewise.
5588         (dom_info_state): New.
5589         (set_dom_info_availability): New.
5590
5591 2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
5592
5593         * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
5594         Expander removed.
5595         ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
5596
5597 2007-05-04  Bob Wilson  <bob.wilson@acm.org>
5598
5599         * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
5600         (subdi3, subdi_carry): Delete.
5601
5602 2007-05-04  Jan Hubicka  <jh@suse.cz>
5603             Richard Guenther  <rguenther@suse.de>
5604
5605         * opts.c (decode_options): Do not fiddle with inlining
5606         parameters in case of optimizing for size.
5607         * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
5608         for size do nothing.
5609         (cgraph_decide_inlining_of_small_function): When optimizing for
5610         size never inline functions increasing caller size.
5611         (cgraph_early_inlining): Inline for size when optimizing for size.
5612
5613 2007-04-18  Bernd Schmidt  <bernd.schmidt@analog.com>
5614
5615         * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
5616         logical operations piecewise.
5617         (<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
5618         zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
5619         subdi_sesidi_di): Delete.
5620         (add_with_carry): Produce carry in CC instead of a DREG to shorten
5621         the generated sequence.  Allow three-reg add in constraints.  Rewrite
5622         the rtl expression for carry to avoid zero_extend of a constant.
5623         (sub_with_carry): New pattern.
5624         (adddi3, subdi3): Change into define_expand.  For subtract, generate a
5625         different sequence not involving jumps.
5626         (notbi): Now a named pattern.
5627
5628 2007-05-04  Bradley Lucier  <lucier@math.purdue.edu>
5629
5630         * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
5631         Add the note about a significant loss of accuracy of some
5632         mathematical routines when these options are used.
5633
5634 2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
5635
5636         * haifa-sched.c (rtx_vec_t): New typedef.
5637         (contributes_to_priority_p): Extract piece of priority () into new
5638         static function.
5639         (priority): Use the function.  Add assertion.
5640         (rank_for_schedule, set_priorities): Add assertion to check that
5641         insn's priority is initialized.
5642         (clear_priorities, calc_priorities): Change signature.  Make it update
5643         all relevant insns.  Update all callers ('add_to_speculative_block ()'
5644         and 'create_block_check_twin ()').
5645         * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
5646         Add new field 'priority_status'.
5647         (INSN_PRIORITY_STATUS): New macro.
5648         (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
5649
5650 2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
5651
5652         * sched-ebb.c (debug_ebb_dependencies): New static function.
5653         (init_ready_list): Use it.
5654
5655         * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
5656         with changed signature and 'debug_rgn_dependencies ()'.
5657         (debug_rgn_dependencies): New static function.
5658         (init_ready_list): Use it.
5659
5660         * sched-int.h (debug_dependencies): Declare.
5661
5662 2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
5663
5664         * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.
5665
5666 2007-05-04  Dirk Mueller  <dmueller@suse.de>
5667
5668         * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.
5669
5670 2007-05-03  Jan Hubicka  <jh@suse.cz>
5671
5672         * fold-const.c (fold_unary): Convert (T1)(X op Y) into ((T1)X op (T1)Y),
5673         for pointer type in more cases than before.
5674
5675         * gimplify.c (gimplify_expr): Fold (void *)&a + 4.
5676
5677         * tree-object-size.c (plus_expr_object_size): When operand size is
5678         unknown, return unknown.
5679
5680 2007-05-03  Dirk Mueller  <dmueller@suse.de>
5681
5682         * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.
5683
5684         * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
5685         options.
5686
5687         * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.
5688
5689 2007-05-03  Janis Johnson  <janis187@us.ibm.com>
5690
5691         * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.
5692
5693 2007-05-03  Joseph Myers  <joseph@codesourcery.com>
5694
5695         * config/soft-fp/double.h, config/soft-fp/extended.h,
5696         config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
5697         config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
5698         config/soft-fp/op-2.h, config/soft-fp/op-4.h,
5699         config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
5700         glibc CVS.
5701
5702 2007-05-03  Ian Lance Taylor  <iant@google.com>
5703
5704         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
5705         MASK_PPC_GFXOPT for 8540 or 8548.
5706
5707 2007-05-03  Uros Bizjak  <ubizjak@gmail.com>
5708
5709         * tree-vect-transform.c (vect_update_inits_of_drs): Use
5710         vect_print_dump_info() to output debug information.
5711
5712 2007-05-03  Uros Bizjak  <ubizjak@gmail.com>
5713
5714         PR target/31768
5715         * config/i386/i386.c (print_operand) ['z']: Output 'w' for
5716         operands of size 2 when operand is not MEM_P.
5717
5718 2007-05-03  Zdenek Dvorak  <dvorakz@suse.cz>
5719
5720         PR tree-optimization/30565
5721         * lambda-code.c (perfect_nestify): Fix updating of dominators.
5722
5723 2007-05-03  Bernd Schmidt  <bernd.schmidt@analog.com>
5724
5725         * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
5726         (umulsi3_highpart): Use them.
5727         * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
5728         for final accumulator to D regisster tranfser.
5729
5730 2007-05-03  Dorit Nuzman  <dorit@il.ibm.com>
5731
5732         PR tree-optimization/31699
5733         * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove wrong
5734         code.
5735         (vect_enhance_data_refs_alignment): Compute peel amount using
5736         TYPE_VECTOR_SUBPARTS instead of vf.
5737         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.
5738
5739 2007-05-02  Brooks Moses  <brooks.moses@codesourcery.com>
5740
5741         PR bootstrap/31776
5742         * system.h: Remove inclusion of double-int.h
5743         * tree.h: Include double-int.h
5744         * gengtype.c: Likewise
5745         * cfgloop.h: Likewise
5746         * Makefile.in: Adjust dependencies on double-int.h
5747
5748 2007-05-02  Eric Christopher  <echristo@apple.com>
5749
5750         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate
5751         -shared to -Zdynamiclib.
5752
5753 2007-05-02  Seongbae Park  <seongbae.park@gmail.com>
5754
5755         PR c++/31663
5756         * c-common.c (strip_pointer_or_array_types): New function.
5757         * c-common.h (strip_pointer_or_array_types): New function declaration.
5758
5759 2007-05-03  Zdenek Dvorak  <dvorakz@suse.cz>
5760
5761         PR tree-optimization/31771
5762         * tree-cfg.c (move_block_to_fn): Assign bb to the correct index.
5763
5764 2007-05-02  Paul Brook  <paul@codesourcery.com>
5765
5766         * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow.
5767
5768 2007-05-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5769
5770         PR middle-end/29715
5771         * fold-const.c (fold_comparision): Remove the "foo++ == CONST"
5772         transformation.
5773
5774 2007-05-02  Nick Clifton  <nickc@redhat.com>
5775
5776         * config/frv/predicates.md (symbolic_operand): Accept CONSTs.
5777
5778 2007-05-02  Richard Guenther  <rguenther@suse.de>
5779
5780         PR tree-optimization/31146
5781         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
5782         argument, single_use_p.  If we have a single use that is
5783         a conversion to the definition rhs type, propagate that rhs.
5784         (forward_propagate_addr_expr): Pass single_use_p argument
5785         to forward_propagate_addr_expr_1.
5786
5787 2007-05-01  H.J. Lu  <hongjiu.lu@intel.com>
5788
5789         * config/i386/i386.c (ix86_expand_sse_comi): Remove unused
5790         variable.
5791
5792 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
5793
5794         * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of
5795         'AMD Family 10 core'.
5796
5797 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
5798
5799         * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3
5800         and athlon64-sse3 as improved versions of k8, opteron and athlon64
5801         with SSE3 instruction set support.
5802         * doc/invoke.texi: Likewise.
5803
5804 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
5805
5806         * config/i386/i386.c (override_options): Tuning 32-byte loop
5807         alignment for amdfam10 architecture. Increasing the max loop
5808         alignment to 24 bytes.
5809
5810 2007-05-01  Kazu Hirata  <kazu@codesourcery.com>
5811
5812         * config/m68k/constraints.md: New.
5813         * config/m68k/m68k.h (REG_CLASS_FROM_LETTER,
5814         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
5815         EXTRA_CONSTRAINT): Remove.
5816         * config/m68k/m68k.md: Include constraints.md.
5817         * expr.c (expand_expr_real_1): Copy DECL_RTL before using it.
5818
5819 2007-05-01  Ian Lance Taylor  <iant@google.com>
5820
5821         PR tree-optimization/31739
5822         * tree-vrp.c (vrp_val_is_max): New static function.
5823         (vrp_val_is_min): New static function.
5824         (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
5825         copying the node.
5826         (set_value_range): Use vrp_val_is_{max,min}.
5827         (extract_range_from_assert): Likewise.
5828         (extract_range_from_binary_expr): Likewise.
5829         (extract_range_from_unary_expr): Likewise.
5830         (dump_value_range, vrp_meet): Likewise.
5831         (vrp_visit_phi_node): Likewise.
5832         * tree.c (build_distinct_type_copy): Revert change of 2007-04-27.
5833
5834 2007-05-01  Mark Mitchell  <mark@codesourcery.com>
5835
5836         * config/i386/gmon-sol2.c (size_t): New type.
5837         (intptr_t): Likewise.
5838         (s_textsize): Declare as size_t.
5839         (sbrk): Declare.
5840         (monstartup): Use size_t for sizes.
5841         (_mcount): Save and restore registers.
5842         (internal_mcount): Pass 0 as the first argument to monstartup
5843         in 64-bit mode.
5844         (moncontrol): Convert pointer to appropriately sized integer
5845         before passing to profil.
5846
5847 2007-05-01  Joseph Myers  <joseph@codesourcery.com>
5848
5849         * config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if
5850         __NO_FPRS__, not just if _SOFT_DOUBLE.
5851         * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise.
5852         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord
5853         also for E500 double.
5854         * config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt,
5855         suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT
5856         && !TARGET_FPRS).
5857
5858 2007-05-01  Richard Guenther  <rguenther@suse.de>
5859
5860         * tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt
5861         is NULL.
5862
5863 2007-05-01  Joseph Myers  <joseph@codesourcery.com>
5864
5865         * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
5866
5867 2007-05-01  Jan Hubicka  <jh@suse.cz>
5868
5869         * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is
5870         invariant.
5871
5872 2007-05-01  Jan Hubicka  <jh@suse.cz>
5873
5874         * tree.h (maybe_fold_offset_to_component_ref): Remove.
5875         (maybe_fold_offset_to_reference): Declare.
5876         * fold-const.c (fold_unary): Do not fold
5877         (type *)&A into &A->field_of_type_and_offset_0
5878         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type
5879         size is unknown, give up.
5880         (maybe_fold_offset_to_component_ref): Ignore firelds with unknown
5881         offsets.
5882         (maybe_fold_offset_to_reference): New.
5883         (maybe_fold_stmt_indirect): Use it.
5884         (fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset.
5885         * gimplify.c (gimplify_conversion): Canonicalize conversions to
5886         field references.
5887         (gimplify_expr): Likewise for plus_expr.
5888
5889 2007-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
5890
5891         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
5892         bsi_after_labels.  Always insert statements before bsi.
5893         * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
5894         * predict.c (apply_return_prediction): Check for empty blocks.
5895         * cfgexpand.c (lab_rtx_for_bb): New variable.
5896         (label_rtx_for_bb): Do not create new tree labels.
5897         (expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
5898         (tree_expand_cfg): Initialize lab_rtx_for_bb.
5899         * tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
5900         creating edges.
5901         (label_for_bb): Add field used.
5902         (update_eh_label, main_block_label): Mark the label used.
5903         (cleanup_dead_labels): Remove unused labels.
5904
5905 2007-05-01  Richard Guenther  <rguenther@suse.de>
5906
5907         * tree-vrp.c (set_value_range): Do not allocate equiv bitmap
5908         if it is not about to be set.
5909         (get_value_range): Do not pre-allocate equiv bitmap.
5910         (update_value_range): No need to clear equiv field.
5911         (add_equivalence): Change prototype to get bitmap pointer.
5912         Allocate bitmap here if it is not already.
5913         (extract_range_from_assert): Do not allocate bitmap here.
5914         Update callers to add_equivalence.
5915         (extract_range_from_ssa_name): Likewise.
5916         (get_vr_for_comparison): New static helper.
5917         (compare_name_with_value): Handle NULL equiv bitmap by
5918         peeling the first iteration of the comparison loop.
5919         Use get_vr_for_comparison.
5920         (compare_names): Handle NULL equiv bitmaps by using fake
5921         ones.  Use get_vr_for_comparison.
5922
5923 2007-04-30  Brooks Moses  <brooks.moses@codesourcery.com>
5924
5925         * double-int.c (mpz_set_double_int): Moved from
5926         tree-ssa-loop-niter.c.
5927         (mpz_get_double_int): Likewise; also, add option to wrap
5928         out-of-range integers.
5929         * double-int.h: New prototypes for above.
5930         * tree.c (get_static_type_bounds): Moved from
5931         tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and
5932         TYPE_MAX_VALUE if they exist..
5933         * tree.h: New prototype for above.
5934         * tree-ssa-loop-niter.c: Adjust mpz_to_double_int and
5935         get_type_bounds calls.
5936         (mpz_set_double_int): Move to double-int.c.
5937         (get_type_bounds): Move to tree.c, rename to
5938         get_static_type_bounds.
5939         (mpz_to_double_int): Move to double-int.c, rename to
5940         mpz_get_double_int.
5941
5942 2007-04-30  Bob Wilson  <bob.wilson@acm.org>
5943
5944         * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
5945         DIV0 exception can fall through to a normal return.
5946
5947 2007-04-30  Alexandre Oliva  <aoliva@redhat.com>
5948
5949         PR middle-end/22156
5950         Temporarily revert:
5951         2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
5952         * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
5953         2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
5954         * tree-sra.c (try_instantiate_multiple_fields): Needlessly
5955         initialize align to silence bogus warning.
5956         2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
5957         * tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
5958         all_no_warning.
5959         (struct sra_walk_fns): Remove use_all parameter from use.
5960         (sra_hash_tree): Handle BIT_FIELD_REFs.
5961         (sra_elt_hash): Don't hash bitfld blocks.
5962         (sra_elt_eq): Skip them in parent compares as well.  Handle
5963         BIT_FIELD_REFs.
5964         (sra_walk_expr): Don't maintain or pass down use_all_p.
5965         (scan_use): Remove use_all parameter.
5966         (scalarize_use): Likewise.  Re-expand assignment to
5967         BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
5968         output, and re-scalarize after output.  Don't mark anything
5969         for no warning.
5970         (scalarize_ldst): Adjust.
5971         (scalarize_walk_gimple_modify_statement): Likewise.
5972         (build_element_name_1): Handle BIT_FIELD_REFs.
5973         (instantiate_element): Don't warn for any element whose parent
5974         is used as a whole.
5975         (instantiate_missing_elements_1): Return the sra_elt.
5976         (canon_type_for_field): New.
5977         (try_instantiate_multiple_fields): New.
5978         (instantiate_missing_elemnts): Use them.
5979         (mark_no_warning): Removed.
5980         (generate_one_element_ref): Handle BIT_FIELD_REFs.
5981         (REPLDUP, sra_build_elt_assignment): New.
5982         (generate_copy_inout): Use them.
5983         (generate_element_copy): Likewise.  Handle bitfld differences.
5984         (generate_element_zero): Don't recurse for blocks.  Use
5985         sra_build_elt_assignment.
5986         (generate_one_element_int): Take elt instead of var.  Use
5987         sra_build_elt_assignment.
5988         (generate_element_init_1): Adjust.
5989         (scalarize_use, scalarize_copy): Use REPLDUP.
5990         (scalarize_ldst): Move assert before dereference.
5991         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
5992
5993 2007-04-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5994
5995         PR C++/31721
5996         * tree.c (reconstruct_complex_type): Reconstruct a reference
5997         correctly.
5998         Also use the same mode for the pointer as the old pointer type.
5999
6000 2007-04-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
6001
6002         * doc/trouble.texi (Interoperation): Remove note about Ultrix
6003         Fortran compiler.
6004
6005 2007-04-29  Zdenek Dvorak  <dvorakz@suse.cz>
6006
6007         PR rtl-optimization/31676
6008         * df-scan.c (record_nonlocal_goto_receiver_defs): New function.
6009         (df_refs_record): Call it.
6010
6011 2007-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
6012
6013         * rtl.def (SS_ABS): New code.
6014         * config/bfin/bfin.c (print_operand): New modifier 'v'.
6015         (enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32,
6016         BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32,
6017         BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32.
6018         (bfin_init_builtins): Define them.
6019         (bdesc_1arg, bdesc_2arg): Add some of them here, ...
6020         (bfin_expand_builtin): ... and handle the others here.
6021         * config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3,
6022         flag_mul_macv2hi_parts_acconly_andcc0): New patterns.
6023         (ss_absv2hi2): Renamed from absv2hi; use ss_abs code.
6024         (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count
6025         operand is only HImode.
6026
6027 2007-04-29  Steven Bosscher  <steven@gcc.gnu.org>
6028
6029         * regclass.c (scan_one_insn): Remove splitting of
6030         two address insns.
6031
6032 2007-04-28  Sandra Loosemore  <sandra@codesourcery.com>
6033             Nigel Stephens  <nigel@mips.com>
6034
6035         * config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16.
6036
6037 2007-04-28  Jan Hubicka  <jh@suse.cz>
6038
6039         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use
6040         insn_locators_alloc instead of insn_locators_initialize;
6041         call reset_block_changes.
6042         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
6043         * config/sh/sh.c (sparc_output_mi_thunk): Likewise.
6044         * config/is64/ia64.c (ia64_output_mi_thunk): Likewise.
6045         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
6046         * config/score/score.c (th_output_mi_thunk): Likewise.
6047         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
6048         * cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block):
6049         tolerate uninitialized locator info.
6050
6051         Re-apply:
6052         * function.c (init_function_start): Don't init line number info.
6053         (expand_function_end): Update.
6054         (reset_block_changes, record_block_change, finalize_block_changes,
6055         check_block_change, free_block_changes): Kill.
6056         * function.h (reset_block_changes, record_block_change,
6057         finalize_block_changes, check_block_change, free_block_changes): Remove
6058         prototypes.
6059         (struct function): Remove ib_boundaries_block.
6060         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
6061         Use curr_insn_locator to initialize locator.
6062         (emit_line_note): Remove.
6063         * cfgexpand.c (expand_gimple_cond_expr): Update.
6064         (construct_exit_block): Likewise.
6065         (tree_expand_cfg): Initialize/finalize locators.
6066         * expr.c (expand_expr_real): Update.
6067         * cfglayout.c (line_locators_locs, line_locators_lines,
6068         file_locators_locs, file_locators_files): Remove.
6069         (set_block_levels): Move to cfgexpand.c.
6070         (insn_locators_initialize): Remove.
6071         (pass_insn_locators_initialize): Remove.
6072         (locations_locators_locs, locations_locators_vals): New static vars.
6073         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
6074         Likewise.
6075         (insn_locators_alloc, insn_locators_finalize,
6076         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
6077         New functions.
6078         (locator_location): New.
6079         (locator_line, locator_file): Rewrite.
6080         * rtl.h (emit_line_note): Kill.
6081         (insn_locators_alloc, insn_locators_finalize,
6082         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
6083         Declare.
6084         * tree-inline.c (initialize_cfun): Do not initialize
6085         ib_boundaries_block.
6086         * passes.c (pass_insn_locators_initialize): Remove.
6087
6088 2007-04-28  Zdenek Dvorak  <dvorakz@suse.cz>
6089
6090         * tree-cfg.c (move_block_to_fn): Release bb from dominance
6091         info.  Update last_basic_block correctly.
6092
6093 2007-04-27  Kaz Kojima  <kkojima@gcc.gnu.org>
6094
6095         PR target/31701
6096         * config/sh/sh.c (output_stack_adjust): Avoid using the frame
6097         register itself to hold the offset constant.  Tell flow the use
6098         of r4 and r5 when they are used.
6099
6100 2007-04-27  Richard Guenther  <rguenther@suse.de>
6101
6102         * tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track
6103         if we simplified anything.
6104         (tree_ssa_forward_propagate_single_use_vars): Defer overflow
6105         warnings until we did a simplification and the stmt was not
6106         marked as TREE_NO_WARNING.
6107
6108 2007-04-27  Mike Stump  <mrs@apple.com>
6109
6110         * config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove.
6111
6112 2007-04-27  Ian Lance Taylor  <iant@google.com>
6113
6114         PR middle-end/31710
6115         * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
6116         TYPE_MAX_VALUE exist, convert them to the new type.
6117
6118 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
6119
6120         * tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info
6121         if it claims to be available.
6122         * tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when
6123         edge is redirected.
6124         (perform_tree_ssa_dce): Always free postdominators.
6125
6126 2007-04-27  Richard Henderson  <rth@redhat.com>
6127
6128         * config/alpha/predicates.md (aligned_memory_operand): Mark
6129         as define_special_predicate.
6130         (unaligned_memory_operand, normal_memory_operand): Likewise.
6131         (reg_or_unaligned_mem_operand): Remove.
6132         (any_memory_operand): Match the documentation and check for
6133         non-renumbered pseudos during reload.
6134         * config/alpha/alpha.c (alpha_secondary_reload): Rename from
6135         alpha_secondary_reload_class, update to new interface, make static.
6136         Handle CQImode like HImode.  Remove FP subreg check.
6137         (alpha_expand_mov): Use replace_equiv_address.
6138         (alpha_expand_mov_nobwx): Use any_memory_operand.
6139         (TARGET_SECONDARY_RELOAD): New.
6140         * config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove.
6141         (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
6142         * config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ...
6143         * config/alpha/alpha.md: ... here.
6144         (RELOAD12, reloadmode): New.
6145         (movcqi): New.
6146         (reload_in<RELOAD12>): Macro-ize from reload_inqi, reload_inhi.
6147         Don't handle the aligned case here.
6148         (reload_out<RELOAD12>): Macro-ize from reload_outqi, reload_outhi.
6149         (reload_in<I12MODE>_aligned): Macro-ize from reload_inqi_help,
6150         reload_inhi_help.  Don't expect a scratch register.
6151         (reload_out<I12MODE>_aligned): Macro-ize from reload_outqi_help,
6152         reload_outhi_help.
6153         * config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove.
6154
6155 2007-04-27  Richard Guenther  <rguenther@suse.de>
6156
6157         * tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo.
6158
6159 2007-04-27  Richard Guenther  <rguenther@suse.de>
6160
6161         PR tree-optimization/30965
6162         PR tree-optimization/30978
6163         * Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H).
6164         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove.
6165         (find_equivalent_equality_comparison): Likewise.
6166         (simplify_cond): Likewise.
6167         (get_prop_source_stmt): New helper.
6168         (get_prop_dest_stmt): Likewise.
6169         (can_propagate_from): Likewise.
6170         (remove_prop_source_from_use): Likewise.
6171         (combine_cond_expr_cond): Likewise.
6172         (forward_propagate_comparison): New function.
6173         (forward_propagate_into_cond): Rewrite to use fold for
6174         tree combining.
6175         (tree_ssa_forward_propagate_single_use_vars): Call
6176         forward_propagate_comparison to propagate comparisons.
6177
6178 2007-04-27  Richard Guenther  <rguenther@suse.de>
6179
6180         PR tree-optimization/31715
6181         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make
6182         sure to do computation on the offset in an appropriate
6183         signed type.
6184
6185 2007-04-27  Richard Sandiford  <richard@codesourcery.com>
6186
6187         * reload.h (elimination_target_reg_p): Declare.
6188         * reload.c (find_reloads): Don't apply the reg_rtx move
6189         optimization if the SET_DEST satisfies elimination_target_reg_p.
6190         * reload1.c (elimination_target_reg_p): New function.
6191         (gen_reload): In the move/add2 fallback, make sure that op0
6192         does not overlap the destination register.
6193
6194 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
6195
6196         * tree-ssa-loop-im.c (determine_invariantness_stmt): Attempt to
6197         transform only GIMPLE_MODIFY_STMTs.
6198         * tree-complex.c (expand_complex_operations_1): Ditto.
6199         (expand_complex_div_wide): Do not create gotos in COND_EXPR branches.
6200         * tree-ssa-loop-manip.c (build_if_stmt): Removed.
6201         (tree_transform_and_unroll_loop): Do not create gotos in COND_EXPR
6202         branches.
6203         * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
6204         tree_mod_subtract, tree_ic, tree_stringop_fixed_value): Ditto.
6205         * omp-low.c (expand_parallel_call, expand_omp_for_generic,
6206         expand_omp_for_static_chunk, expand_omp_for_static_nochunk): Ditto.
6207         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes,
6208         slpeel_add_loop_guard): Ditto.
6209         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
6210         * lambda-code.c (perfect_nestify): Ditto.
6211         * tree-iterator.c (tsi_split_statement_list_before): Fix splitting
6212         before the first statement.
6213         * tree-optimize.c (execute_free_datastructures): Fix comments.
6214         (execute_free_cfg_annotations): Do not call disband_implicit_edges.
6215         * tree-flow.h (disband_implicit_edges): Declaration removed.
6216         * tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR
6217         branches.
6218         (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle COND_EXPRs
6219         without gotos.
6220         (disband_implicit_edges, has_label_p): Removed.
6221         (tree_verify_flow_info): Verify that COND_EXPR branches are empty.
6222         (tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR
6223         branches.
6224         * tree.c (build3_stat): Mark COND_EXPRs used as statements as having
6225         side effects.
6226         * tree-pretty-print.c (dump_implicit_edges): Dump implicit edges
6227         also for COND_EXPRs.
6228         * cfgexpand.c (label_rtx_for_bb): New function.
6229         (expand_gimple_cond_expr): Do not expect gotos in COND_EXPR branches.
6230         Use label_rtx_for_bb to find the labels.
6231         (expand_gimple_basic_block): Remove RETURN_EXPR at the end of the
6232         last block.  Detect fallthru edges.
6233
6234 2007-04-26  Ian Lance Taylor  <iant@google.com>
6235
6236         PR target/28675
6237         * reload.c (find_reloads_subreg_address): If the address was valid
6238         in the original mode but not in the new mode, reload the whole
6239         address.
6240
6241 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
6242
6243         * tree-cfgcleanup.c (cfgcleanup_altered_bbs): New global variable.
6244         (remove_fallthru_edge): Use remove_edge_and_dominated_blocks.
6245         (cleanup_control_expr_graph): Do not invalidate dominance info.
6246         Record altered blocks.
6247         (cleanup_control_flow, cleanup_forwarder_blocks): Removed.
6248         (cleanup_control_flow_bb, split_bbs_on_noreturn_calls,
6249         cleanup_tree_cfg_bb): New functions.
6250         (remove_forwarder_block): Do not maintain the worklist of blocks.
6251         Record altered blocks.
6252         (cleanup_tree_cfg_1): Iterate over cfgcleanup_altered_bbs,
6253         not over whole cfg.
6254         (cleanup_tree_cfg): Do not iterate cleanup_tree_cfg_1.  Only call
6255         delete_unreachable_blocks if dominators are not available.
6256         * tree-inline.c (optimize_inline_calls): Free dominance information
6257         earlier.
6258         * tree-flow.h (remove_edge_and_dominated_blocks,
6259         cfgcleanup_altered_bbs): Altered.
6260         * tree-cfg.c (replace_uses_by, tree_merge_blocks): Record altered
6261         blocks.
6262         (get_all_dominated_blocks, remove_edge_and_dominated_blocks): New
6263         functions.
6264         (tree_purge_dead_eh_edges): Use remove_edge_and_dominated_blocks,
6265         do not invalidate dominators.
6266
6267 2007-04-26  Anatoly Sokolov <aesok@post.ru>
6268
6269         * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and
6270         ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
6271         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6272         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
6273
6274 2007-04-26  Steve Ellcey  <sje@cup.hp.com>
6275
6276         * config/ia64/ia64.md (ip_value):  Fix itanium_class attribute.
6277
6278 2007-04-26  Richard Guenther  <rguenther@suse.de>
6279
6280         PR tree-optimization/31703
6281         * tree-ssa-loop-im.c (rewrite_bittest): Make sure to use
6282         the right type for the target of the bittest.
6283
6284 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
6285
6286         * config/i386/vx-common.h (RETURN_IN_MEMORY): Use
6287         ix86_sol10_return_in_memory.
6288
6289 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
6290
6291         * config/i386/i386.c (ix86_sol10_return_in_memory): Remove unused
6292         variables.
6293
6294 2007-04-26  Jakub Jelinek  <jakub@redhat.com>
6295
6296         PR c++/31598
6297         * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
6298
6299         PR tree-optimization/30558
6300         * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
6301         clear this_state.prev_try.
6302
6303 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
6304             Mark Mitchell  <mark@codesourcery.com>
6305
6306         * config/i386/i386-protos.h (ix86_sol10_return_in_memory): Declare.
6307         * config/i386/i386.c (ix86_sol10_return_in_memory): New function.
6308         * config/i386/sol2-10.h (RETURN_IN_MEMORY): Use it.
6309
6310 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
6311
6312         PR driver/31107
6313         * doc/invoke.texi (%:print-asm-header): Document.
6314         * gcc.c (asm_options): Use %:print-asm-header() for --target-help
6315         and -ftarget-help.
6316         (static_spec_functions): Add print-asm-header.
6317         (main): Print a banner before the --target-help linker options.
6318         (print_asm_header_spec_function): New function.
6319
6320 2007-04-25  Kaz Kojima  <kkojima@gcc.gnu.org>
6321
6322         PR target/31403
6323         * config/sh/sh.md (movsi_ie): Fix length for TARGET_SH2A.
6324         (movsf_ie): Likewise.
6325
6326 2007-04-25  Paolo Carlini  <pcarlini@suse.de>
6327
6328         * doc/extend.texi ([Type Traits]): Adjust per N2255.
6329
6330 2007-04-25  Bob Wilson  <bob.wilson@acm.org>
6331
6332         * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an exception
6333         for divide-by-zero.
6334         (__umodsi3, __modsi3): Likewise.
6335
6336 2007-04-25  Dirk Mueller  <dmueller@suse.de>
6337
6338         * c-typeck.c (build_compound_expr): Annotate warning()
6339         call with OPT_Wunused_value.
6340         * tree-ssa.c (warn_uninit): Annotate warning with
6341         OPT_Wunintialized.
6342         * c-common.c (handle_sentinel_attribute): Annotate warning
6343         call with OPT_Wattributes.
6344
6345 2007-04-25  Thiemo Seufer  <ths@mips.com>
6346
6347         * config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options.
6348         (mips16): Fix typo.
6349         * config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx
6350         on to the assembler.  Improve handling of -mno-mips16.  Add handling
6351         of -mno-mips3d, -mno-dsp, -mno-dspr2.
6352         * doc/invoke.texi (MIPS Options): Whitespace cleanup.  Fix wrong use
6353         of @itemx.  Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx,
6354         -mno-mdmx, -mno-mips3d, -mmt and -mno-mt.
6355
6356 2007-04-25  Danny Smith  <dannysmith.users.sourceforge.net>
6357
6358         PR target/31680
6359         * config/i386/winnt.c (i386_pe_file_end): Strip only
6360         USER_LABEL_PREFIX when writing export name.
6361
6362 2007-04-25  Richard Sandiford  <richard@codesourcery.com>
6363
6364         * config.gcc (sh-wrs-vxworks): Don't include dbxelf.h.  Include
6365         sh/elf.h, vx-common.h and vxworks.h.
6366         * config/sh/sh.h: Include config/vxworks-dummy.h.
6367         (SUBTARGET_OVERRIDE_OPTIONS): Define.
6368         (OVERRIDE_OPTIONS): Use it.
6369         * config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs.
6370         (vxworks_picreg): New pattern.
6371         * config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
6372         VXWORKS_OS_CPP_BUILTINS.
6373         (LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine
6374         to their VXWORKS_* equivalents.
6375         (SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
6376         (SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define.
6377         * config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC.
6378         (set_fpscr, ic_invalidate): Add VxWorks PIC sequences.
6379         * config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and
6380         -mrtp/-fPIC multilibs.
6381         (MULTILIB_EXCEPTIONS): Generalize globs accordingly.
6382         (MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define.
6383         (MULTILIB_OSDIRNAMES): Delete.
6384
6385 2007-04-25  Anatoly Sokolov <aesok@post.ru>
6386
6387         PR target/18989
6388         * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
6389
6390 2007-04-24  Brooks Moses  <brooks.moses@codesourcery.com>
6391
6392         * real.c (mpfr_from_real): Handle Inf and NaN, and allow the
6393         rounding mode to be specified by the caller.
6394         (real_to_mpfr) Likewise.
6395         * real.h: Update mpfr_from_real, mpfr_to_real prototypes to
6396         include new arguments.
6397         * builtins.c: Update mpfr_from_real, mpfr_to_real calls.
6398
6399 2007-04-24  Ian Lance Taylor  <iant@google.com>
6400
6401         PR tree-optimization/31605
6402         * tree-vrp.c (set_value_range): Check that min and max are not
6403         both overflow infinities.
6404         (set_value_range_to_value): New static function.
6405         (extract_range_from_binary_expr): Call set_value_range_to_value.
6406         (extract_range_from_cond_expr): Likewise.
6407         (extract_range_from_expr): Likewise.
6408         (extract_range_from_unary_expr): Likewise.  Don't create a range
6409         which overflows on both sides.
6410         (vrp_meet): Check for a useless range.
6411         (vrp_visit_phi_node): If we see a constant which looks like an
6412         overflow infinity, turn off the TREE_OVERFLOW flag.
6413
6414 2007-04-24  Ian Lance Taylor  <iant@google.com>
6415
6416         * flow.c (elim_reg_cond): Handle a comparison of a subreg.
6417
6418 2007-04-24  Simon Martin  <simartin@users.sourceforge.net>
6419
6420         PR diagnostic/25923
6421         * tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a
6422         diagnostic message is being built.
6423         * tree-pretty-print.c (dump_generic_node): Only write the
6424         formatted text into BUFFER's stream if we are not building a
6425         diagnostic message.
6426         * toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to
6427         dump_generic_node.
6428         * Makefile.in (toplev.o): Depend on tree-pass.h.
6429
6430 2007-04-24  Ian Lance Taylor  <iant@google.com>
6431
6432         PR tree-optimization/31602
6433         * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
6434         conditionals in the copied loop header.
6435         * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
6436         warnings if TREE_NO_WARNING is set.
6437         * doc/invoke.texi (Warning Options): Clarify that
6438         -Wstrict-overflow does not warn about loops.
6439
6440 2007-04-24  Janis Johnson  <janis187@us.ibm.com>
6441
6442         * config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
6443         expand on the comment about _Decimal128 arguments and check the
6444         integer result of the modulus operation; for 64-bit ELF ABI, ensure
6445         that _Decimal128 argument uses even/odd register pair.
6446         (function_arg): Ditto.
6447
6448 2007-04-24  Hui-May Chang <hm.chang@apple.com>
6449
6450         * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
6451         instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
6452
6453 2007-04-24  Richard Guenther  <rguenther@suse.de>
6454             Olga Golovanevsky  <olga@il.ibm.com>
6455
6456         * fold-const.c (multiple_of_p): Check for bottom
6457         to be zero.
6458
6459 2007-04-24  Richard Henderson  <rth@redhat.com>
6460
6461         * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from
6462         IS_IBM_EXTENDED.  Also define in terms of WIDEST_HARDWARE_FP_SIZE.
6463         * libgcc2.c (__floatdisf): Avoid double-word arithmetic when
6464         looking for non-zero bits shifted out.  Avoid a recursive call
6465         when constructing the scalar.
6466         (__floatundisf): Likewise.
6467
6468 2007-04-24  Nathan Froyd  <froydnj@codesourcery.com>
6469
6470         * dwarf2out.c (field_byte_offset): Move the existing logic
6471         under the control of PCC_BITFIELD_TYPE_MATTERS and just use
6472         the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS.
6473
6474 2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
6475
6476         PR target/31641
6477         * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant length
6478         argument of 0 for memset.
6479         (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
6480         unsigned shift instead of the signed variant.
6481
6482 2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
6483
6484         * config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
6485         "fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
6486         "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
6487         "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
6488         "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
6489         "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
6490         "*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
6491         "*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
6492         "*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
6493         ("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
6494         "truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
6495         "mul<mode>3", "div<mode>3"): Insn definitions added.
6496         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
6497         "fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
6498         to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
6499         ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
6500         "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
6501         "sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
6502         ("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
6503         * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
6504         TARGET_FLOAT_FORMAT): Macro definitions removed.
6505         (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
6506         * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
6507         z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
6508         (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
6509         (s390_gen_rtx_const_DI): Function removed.
6510         * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.
6511
6512 2007-04-24  Richard Sandiford  <richard@codesourcery.com>
6513
6514         * optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
6515         over an external ffs function.
6516
6517 2007-04-24  Chao-ying Fu  <fu@mips.com>
6518             Richard Sandiford  <richard@nildram.co.uk>
6519
6520         * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
6521         * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
6522         (smadd_widen_optab, umadd_widen_optab): Define.
6523         * optabs.c (init_optabs): Initialize smadd_widen_optab and
6524         umadd_widen_optab.
6525         * genopinit.c (optabs): Fill in smadd_widen_optab and
6526         umadd_widen_optab.
6527         * expr.c (expand_expr_real_1): Try to use smadd_widen_optab
6528         and umadd_widen_optab to implement multiply-add sequences.
6529         * config/mips/mips.md (*<su>mul_acc_di): Rename to...
6530         (<u>maddsidi4): ...this.  Extend condition to include
6531         GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
6532         of operand 0 to "ka" and use the three-operand form of madd<u>
6533         for TARGET_DSPR2.
6534         * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
6535         to define_expands.
6536         * config/mips/constraints.md (ka): New register constraint.
6537
6538 2007-04-24  Jan Hubicka  <j@suse.cz>
6539
6540         Revert:
6541
6542         2007-04-23  Jan Hubicka  <jh@suse.cz>
6543         * function.c (init_function_start): Don't init line number info.
6544         (expand_function_end): Update.
6545         (reset_block_changes, record_block_change, finalize_block_changes,
6546         check_block_change, free_block_changes): Kill.
6547         * function.h (reset_block_changes, record_block_change,
6548         finalize_block_changes, check_block_change, free_block_changes): Remove
6549         prototypes.
6550         (struct function): Remove ib_boundaries_block.
6551         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
6552         Use curr_insn_locator to initialize locator.
6553         (emit_line_note): Remove.
6554         * cfgexpand.c (expand_gimple_cond_expr): Update.
6555         (construct_exit_block): Likewise.
6556         (tree_expand_cfg): Initialize/finalize locators.
6557         * expr.c (expand_expr_real): Update.
6558         * cfglayout.c (line_locators_locs, line_locators_lines,
6559         file_locators_locs, file_locators_files): Remove.
6560         (set_block_levels): Move to cfgexpand.c.
6561         (insn_locators_initialize): Remove.
6562         (pass_insn_locators_initialize): Remove.
6563         (locations_locators_locs, locations_locators_vals): New static vars.
6564         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
6565         Likewise.
6566         (insn_locators_alloc, insn_locators_finalize,
6567         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
6568         New functions.
6569         (locator_location): New.
6570         (locator_line, locator_file): Rewrite.
6571         * rtl.h (emit_line_note): Kill.
6572         (insn_locators_alloc, insn_locators_finalize,
6573         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
6574         Declare.
6575         * tree-inline.c (initialize_cfun): Do not initialize
6576         ib_boundaries_block.
6577         * passes.c (pass_insn_locators_initialize): Remove.
6578
6579 2007-04-24  Daniel Franke  <franke.daniel@gmail.com>
6580
6581         * doc/invoke.texi: Removed leading '-' from option index entries.
6582
6583 2007-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
6584
6585         * tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
6586         Use phi_nodes_ptr.
6587         (create_phi_node): Use set_phi_nodes.
6588         * omp-low.c (expand_omp_parallel): Use bb_stmt_list.
6589         * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
6590         (combine_blocks):  Use bb_stmt_list and set_bb_stmt_list.
6591         * tree-flow-inline.h (phi_nodes, set_phi_nodes,
6592         (bsi_start, bsi_last): Use bb_stmt_list.
6593         (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
6594         * cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
6595         Traverse the statements using tsi iterator.
6596         * basic-block.h (struct basic_block_def): Fields stmt_list
6597         and phi_nodes moved to ...
6598         (struct tree_bb_info): ... new structure.
6599         * tree-cfg.c (create_bb): Allocate il.tree.  Use set_bb_stmt_list.
6600         (tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
6601         (remove_bb): Handle blocks with NULL stmt list.  Clear il.tree field.
6602         (tree_verify_flow_info): Verify that il.tree is not set for
6603         entry and exit block.
6604         (tree_split_block): Use set_bb_stmt_list.
6605
6606 2007-04-23  Mike Stump  <mrs@apple.com>
6607
6608         * config/i386/i386.c (ix86_tune_features
6609         [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
6610         nocona and core2.
6611
6612 2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
6613
6614         * config/i386/i386.md (prefix_extra): New attribute.
6615         (length): Add prefix_extra.
6616
6617         * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
6618         (sse2_movntv2di): Likewise.
6619         (sse2_cvtps2dq): Likewise.
6620         (sse2_cvtpd2pi): Likewise.
6621         (sse2_cvttpd2pi): Likewise.
6622         (*sse2_cvtpd2ps): Likewise.
6623         (*add<mode>3): Likewise.
6624         (sse2_ssadd<mode>3): Likewise.
6625         (sse2_usadd<mode>3): Likewise.
6626         (*sub<mode>3): Likewise.
6627         (sse2_sssub<mode>3): Likewise.
6628         (sse2_ussub<mode>3): Likewise.
6629         (*mulv8hi3): Likewise.
6630         (*smulv8hi3_highpart): Likewise.
6631         (*umulv8hi3_highpart): Likewise.
6632         (sse2_umulv2siv2di3): Likewise.
6633         (sse2_pmaddwd): Likewise.
6634         (ashr<mode>3): Likewise.
6635         (lshr<mode>3): Likewise.
6636         (ashl<mode>3): Likewise.
6637         (sse2_ashlti3): Likewise.
6638         (sse2_lshrti3): Likewise.
6639         (*umaxv16qi3): Likewise.
6640         (*smaxv8hi3): Likewise.
6641         (*uminv16qi3): Likewise.
6642         (*sminv8hi3): Likewise.
6643         (sse2_eq<mode>3): Likewise.
6644         (sse2_gt<mode>3): Likewise.
6645         (*and<mode>3): Likewise.
6646         (sse2_nand<mode>3): Likewise.
6647         (*ior<mode>3): Likewise.
6648         (*xor<mode>3): Likewise.
6649         (sse2_packsswb): Likewise.
6650         (sse2_packssdw): Likewise.
6651         (sse2_packuswb): Likewise.
6652         (sse2_punpckhbw): Likewise.
6653         (sse2_punpcklbw): Likewise.
6654         (sse2_punpckhwd): Likewise.
6655         (sse2_punpcklwd): Likewise.
6656         (sse2_punpckhdq): Likewise.
6657         (sse2_punpckldq): Likewise.
6658         (sse2_punpckhqdq): Likewise.
6659         (sse2_punpcklqdq): Likewise.
6660         (*sse2_pinsrw): Likewise.
6661         (*sse2_pextrw): Likewise.
6662         (sse2_pshufd_1): Likewise.
6663         (sse2_uavgv16qi3): Likewise.
6664         (sse2_uavgv8hi3): Likewise.
6665         (sse2_psadbw): Likewise.
6666         (sse2_pmovmskb): Likewise.
6667         (*sse2_maskmovdqu): Likewise.
6668         (*sse2_maskmovdqu_rex64): Likewise.
6669         (sse4a_extrqi): Likewise.
6670         (sse4a_extrq): Likewise.
6671         (sse3_lddqu): Set prefix_rep.
6672         (sse3_addsubv4sf3): Likewise.
6673         (sse3_haddv4sf3): Likewise.
6674         (sse3_hsubv4sf3): Likewise.
6675         (sse_cvtss2si): Likewise.
6676         (sse_cvtss2si_2): Likewise.
6677         (sse_cvtss2siq): Likewise.
6678         (sse_cvtss2siq_2): Likewise.
6679         (sse_cvttss2si): Likewise.
6680         (sse_cvttss2siq): Likewise.
6681         (sse2_cvttps2dq): Likewise.
6682         (sse3_movshdup): Likewise.
6683         (sse3_movsldup): Likewise.
6684         (sse2_cvtsd2si): Likewise.
6685         (sse2_cvtsd2si_2): Likewise.
6686         (sse2_cvtsd2siq): Likewise.
6687         (sse2_cvtsd2siq_2): Likewise.
6688         (sse2_cvttsd2si): Likewise.
6689         (sse2_cvttsd2siq): Likewise.
6690         (*sse2_cvtpd2dq): Likewise.
6691         (*sse2_cvttpd2dq): Likewise.
6692         (sse2_pshuflw_1): Likewise.
6693         (sse2_pshufhw_1): Likewise.
6694         (sse4a_insertqi): Likewise.
6695         (sse4a_insertq): Likewise.
6696         (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
6697         (ssse3_phadddv4si3): Likewise.
6698         (ssse3_phaddswv8hi3): Likewise.
6699         (ssse3_phsubwv8hi3): Likewise.
6700         (ssse3_phsubdv4si3): Likewise.
6701         (ssse3_phsubswv8hi3): Likewise.
6702         (ssse3_pmaddubswv8hi3): Likewise.
6703         (ssse3_pmulhrswv8hi3): Likewise.
6704         (ssse3_pshufbv16qi3): Likewise.
6705         (ssse3_psign<mode>3): Likewise.
6706         (ssse3_palignrti): Likewise.
6707         (abs<mode>2): Likewise.
6708         (ssse3_phaddwv4hi3): Set prefix_extra.
6709         (ssse3_phadddv2si3): Likewise.
6710         (ssse3_phaddswv4hi3): Likewise.
6711         (ssse3_phsubwv4hi3): Likewise.
6712         (ssse3_phsubdv2si3): Likewise.
6713         (ssse3_phsubswv4hi3): Likewise.
6714         (ssse3_pmaddubswv4hi3): Likewise.
6715         (ssse3_pmulhrswv4hi3): Likewise.
6716         (ssse3_pshufbv8qi3): Likewise.
6717         (ssse3_psign<mode>3): Likewise.
6718         (ssse3_palignrdi): Likewise.
6719         (abs<mode>2): Likewise.
6720         (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
6721         (*vec_dupv2df): Set mode to V2DF instead of V4SF.
6722         (sse2_pmovmskb): Set mode to SI instead of V2DF.
6723
6724 2007-04-23  Nick Clifton  <nickc@redhat.com>
6725
6726         * params.def: Fix formatting of emacs local variables.
6727
6728 2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
6729
6730         * config/i386/sse.md (sse2_stored): Don't split to inter-unit
6731         move if inter-unit move isn't allowed.
6732         Don't split moving the first element of V2DI to DI to inter-unit
6733         move if inter-unit move isn't allowed.
6734
6735 2007-04-23  Richard Guenther  <rguenther@suse.de>
6736
6737         * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
6738         and CDI_POST_DOMINATORS separately.
6739
6740 2007-04-23  Nick Clifton  <nickc@redhat.com>
6741
6742         * c.opt (Wformat-contains-nul): Add warning attribute.
6743
6744 2007-04-23  Jan Hubicka  <jh@suse.cz>
6745
6746         * function.c (init_function_start): Don't init line number info.
6747         (expand_function_end): Update.
6748         (reset_block_changes, record_block_change, finalize_block_changes,
6749         check_block_change, free_block_changes): Kill.
6750         * function.h (reset_block_changes, record_block_change,
6751         finalize_block_changes, check_block_change, free_block_changes): Remove
6752         prototypes.
6753         (struct function): Remove ib_boundaries_block.
6754         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
6755         Use curr_insn_locator to initialize locator.
6756         (emit_line_note): Remove.
6757         * cfgexpand.c (expand_gimple_cond_expr): Update.
6758         (construct_exit_block): Likewise.
6759         (tree_expand_cfg): Initialize/finalize locators.
6760         * expr.c (expand_expr_real): Update.
6761         * cfglayout.c (line_locators_locs, line_locators_lines,
6762         file_locators_locs, file_locators_files): Remove.
6763         (set_block_levels): Move to cfgexpand.c.
6764         (insn_locators_initialize): Remove.
6765         (pass_insn_locators_initialize): Remove.
6766         (locations_locators_locs, locations_locators_vals): New static vars.
6767         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
6768         Likewise.
6769         (insn_locators_alloc, insn_locators_finalize,
6770         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
6771         New functions.
6772         (locator_location): New.
6773         (locator_line, locator_file): Rewrite.
6774         * rtl.h (emit_line_note): Kill.
6775         (insn_locators_alloc, insn_locators_finalize,
6776         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
6777         Declare.
6778         * tree-inline.c (initialize_cfun): Do not initialize
6779         ib_boundaries_block.
6780         * passes.c (pass_insn_locators_initialize): Remove.
6781
6782 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6783
6784         PR middle-end/31448
6785         * expr.c (reduce_to_bit_field_precision): Handle
6786         CONST_INT rtx's.
6787
6788 2007-04-22  Uros Bizjak  <ubizjak@gmail.com>
6789
6790         PR tree-optimization/24659
6791         * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
6792         OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
6793         (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
6794         * genopinit.c (optabs): Rename vec_pack_mod_optab
6795         to vec_pack_trunc_optab.
6796         * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
6797         early for scalar floating point operands for NOP_EXPR.
6798         (vectorizable_type_promotion): Ditto.
6799         * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
6800         vec_pack_trunc_optab.
6801         (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.
6802
6803         * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
6804         * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
6805         Rename from VEC_PACK_MOD_EXPR.
6806         (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
6807         * expr.c (expand_expr_real_1): Ditto.
6808         * tree-inline.c (estimate_num_insns_1): Ditto.
6809         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
6810
6811         * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
6812         (vec_unpacks_lo_v4sf): Ditto.
6813         (vec_pack_trunc_v2df): Ditto.
6814         (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
6815         (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
6816         (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
6817
6818         * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
6819         vec_pack_mod_v8hi.
6820         (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
6821
6822         * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
6823         Rename from VEC_PACK_MOD_EXPR.  This expression also represent
6824         packing of floating point operands.
6825         [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
6826         represent unpacking of floating point operands.
6827         * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
6828         [vec_unpacks_hi]: Ditto.
6829         [vec_unpacks_lo]: Ditto.
6830
6831 2007-04-22  Jan Hubicka  <jh@suse.cz>
6832
6833         * final.c (rest_of_handle_final): Call
6834         targetm.asm_out.constructor/targetm.asm_out.destructor
6835         * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
6836         proper priority via decl_*_priority_insert.
6837         * c-common.c (c_expand_body): Likewise.
6838
6839 2007-04-22  Richard Guenther  <rguenther@suse.de>
6840
6841         PR tree-optimization/29789
6842         * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
6843         (rewrite_reciprocal): New helper split out from
6844         determine_invariantness_stmt.
6845         (rewrite_bittest): Likewise.
6846         (determine_invariantness_stmt): Rewrite (A >> B) & 1 to
6847         A & (1 << B) if (1 << B) is loop invariant but (A >> B)
6848         is not.
6849
6850 2007-04-22  Revital Eres  <eres@il.ibm.com>
6851
6852         * loop-unroll.c (var_to_expand): New field to support also
6853         insns of the form x = something + x.
6854         (analyze_insn_to_expand_var): Use it.
6855         (expand_var_during_unrolling): Likewise.
6856
6857 2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>
6858
6859         * predict.c: Include pointer-set.h.
6860         (bb_predictions): New variable.
6861         (tree_predicted_by_p, tree_predict_edge,
6862         remove_predictions_associated_with_edge): Use bb_predictions map
6863         instead of bb->predictions.
6864         (clear_bb_predictions, assert_is_empty): New functions.
6865         (combine_predictions_for_bb): Use bb_predictions map.  Call
6866         clear_bb_predictions.
6867         (tree_estimate_probability): Create and free bb_predictions map.
6868         * Makefile.in (predict.o): Add pointer-set.h dependency.
6869         * basic-block.h (struct basic_block_def): Remove predictions
6870         field.
6871         * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
6872
6873 2007-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
6874
6875         PR target/31480
6876         * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
6877         is null.
6878
6879 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6880
6881         * timevar.c (timevar_print): Change reference of --disable-checking to
6882         --enable-checking=release.  Also warn if assert checking is disabled.
6883
6884 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6885
6886         PR C/30265
6887         * c-gimplifier.c (gimplify_compound_literal_expr): Mark the
6888         decl as addressable if the compound literal was marked as
6889         addressable.
6890         Mark the decl as a gimple register if it is a complex or
6891         vector decl and does not live in memory.
6892
6893 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6894
6895         * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
6896         (GENERIC_NEXT): New function macro.
6897         (PHI_CHAIN): Use phi_node's new chain variable.
6898         (tree_phi_node): Change tree_common to tree_base
6899         and add the chain field.
6900         * tree-phinodes.c (make_phi_node): Don't set
6901         TREE_TYPE on the new node.
6902         * c-decl.c (lang_tree_node): Use GENERIC_NEXT
6903         instead of checking GIMPLE_TUPLE_P in chain_next.
6904         * tree-vect-transform.c
6905         (get_initial_def_for_induction): Look at
6906         PHI_RESULT_TREE for the type of the phi node.
6907         (update_vuses_to_preheader): Use PHI_CHAIN
6908         instead of TREE_CHAIN on the phi node.
6909         * tree-ssa-structalias.c (compute_points_to_sets):
6910         Likewise.
6911         (ipa_pta_execute): Likewise.
6912
6913 2007-04-21  Richard Guenther  <rguenther@suse.de>
6914
6915         PR middle-end/31136
6916         * fold-const.c (fold_unary): Call fold_convert_const on the
6917         original tree.
6918
6919 2007-04-21  Alexandre Oliva  <aoliva@redhat.com>
6920
6921         * gcse.c (store_killed_in_insn): Handle PARALLELs.
6922         (store_killed_in_pat): New.
6923
6924 2007-04-20  Richard Henderson  <rth@redhat.com>
6925
6926         PR target/31628
6927         * config/i386/i386.c (type_has_variadic_args_p): Look for any
6928         TREE_LIST with a void_type_node value, not void_list_node exactly.
6929
6930 2007-04-21  Douglas Gregor  <doug.gregor@gmail.com>
6931
6932         * doc/standards.texi: Re-arrange into language-specific
6933         subsections. Add a C++ section, documenting which standards we
6934         support.
6935
6936 2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>
6937
6938         * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
6939         * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.
6940
6941 2007-04-20  Daniel Jacobowitz  <dan@codesourcery.com>
6942
6943         * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
6944         ecrti.o and crtbegin.o.
6945         (LIB_DEFAULT_SPEC): Include -lc.
6946         (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.
6947
6948 2007-04-20  Richard Henderson  <rth@redhat.com>
6949
6950         PR target/28623
6951         * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
6952         argument; update all callers.
6953         (get_unaligned_offset): New.
6954         * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
6955         get_unaligned_address, just pass on the address directly.
6956         (unaligned_extendqidi): Use gen_lowpart instead of open-coding
6957         the subreg in the helper patterns.
6958         (unaligned_extendqidi_le): Use get_unaligned_offset.
6959         (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
6960         (unaligned_extendhidi_be): Likewise.
6961         (unaligned_extendhidi): Tidy.
6962         * config/alpha/alpha-protos.h: Update.
6963
6964 2007-04-20  Richard Henderson  <rth@redhat.com>
6965
6966         * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove.
6967         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
6968         * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
6969         * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
6970         * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
6971         (CPP_SPEC): Don't include %(cpp_subtarget).
6972         * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC.
6973         (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
6974         * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly.
6975
6976 2007-04-20  Jakub Jelinek  <jakub@redhat.com>
6977
6978         * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
6979         for __builtin_ia32_cmpordss.
6980
6981         PR tree-optimization/31632
6982         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
6983         and arg1 for optimizations of comparison against min/max values.
6984         Fold arg0 to arg1's type for optimizations of comparison against
6985         min+1 and max-1 values.
6986
6987 2007-04-19  Bernd Schmidt  <bernd.schmidt@analog.com>
6988
6989         * reload.c (combine_reloads): When trying to use a dying register,
6990         check whether it's uninitialized and don't use if so.
6991
6992 2007-04-19  Brooks Moses  <brooks.moses@codesourcery.com>
6993
6994         * fold-const.c: Remove prototypes for native_encode_expr and
6995         native_interpret_expr.
6996         (native_encode_expr): Make non-static.
6997         (native_interpret_expr): Likewise.
6998         * tree.h: Add prototypes for the above.
6999
7000 2007-04-19  Joseph Myers  <joseph@codesourcery.com>
7001
7002         * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2,
7003         *mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2,
7004         *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2,
7005         spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr,
7006         tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
7007         Add length attributes.
7008
7009 2007-04-19  Janis Johnson  <janis187@us.ibm.com>
7010
7011         * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined,
7012         not that it is 1.
7013
7014         * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
7015         __STDC_WANT_DEC_FP__.
7016
7017 2007-04-19  Joseph Myers  <joseph@codesourcery.com>
7018
7019         * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
7020         for long double compatibility.
7021         * configure: Regenerate.
7022
7023 2007-04-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
7024
7025         PR rtl-optimization/29841
7026         * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
7027         trap instructions.
7028         * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
7029         that may cause control flow transfer from being moved.
7030
7031 2007-04-18  Jan Hubicka  <jh@suse.cz>
7032
7033         * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
7034         types.
7035
7036 2007-04-18  Eric Christopher  <echristo@apple.com>
7037
7038         * config/rs6000/darwin.md (load_macho_picbase): Use link register
7039         only. Update operands.
7040         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
7041         * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
7042         link register to pic register.
7043
7044 2007-04-18  Dirk Mueller  <dmueller@suse.de>
7045
7046         PR diagnostic/31227
7047         * tree-vrp.c (search_for_addr_array): New.
7048         (check_array_bounds): Suppress warning about
7049         address taken of array refs if its not de-referenced.
7050
7051 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
7052
7053         * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
7054         * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
7055
7056         * tree-vectorizer.h (NITERS_KNOWN_P): New.
7057         * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
7058         instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
7059
7060         * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
7061         dump print.
7062         (vect_analyze_operations): Fix indenetation.  Fix a comment.  Fix a
7063         print message.
7064         (vect_analyze_scalar_cycles): Fix indentation.
7065         (vect_enhance_data_refs_alignment): Fix check in case of peeling.
7066         (vect_mark_relevant): Include phis in relevance analysis.
7067
7068         * tree-vect-transform.c (vect_transform_loop): Add an assert.
7069
7070 2007-04-18  Anatoly Sokolov <aesok@post.ru>
7071
7072         * config/avr/avr.c (ptrreg_to_str): Replace error() with
7073         output_operand_lossage().
7074
7075 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
7076
7077         * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
7078         the unused code for reduction without adjust-in-epilog to simplify the
7079         function.
7080
7081 2007-04-18  Wolfgang Gellerich  <gellerich@de.ibm.com>
7082
7083         * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
7084         (S390_TDC_NEGATIVE_ZERO): New constant.
7085         (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
7086         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
7087         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
7088         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
7089         (S390_TDC_POSITIVE_INFINITY): New constant.
7090         (S390_TDC_NEGATIVE_INFINITY): New constant.
7091         (S390_TDC_POSITIVE_QUIET_NAN): New constant.
7092         (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
7093         (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
7094         (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
7095         (S390_TDC_INFINITY): New constant.
7096         * config/s390/s390.c (s390_canonicalize_comparison): Renamed
7097         UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
7098         optimization for UNSPEC_CCZ_TO_INT.
7099         * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
7100         ("*ccz_to_int"): New insn.
7101         ("isinf<mode>2"): New insn.
7102         (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
7103         (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
7104         (UNSPEC_CCZ_TO_INT): New constant.
7105
7106 2007-04-18  Richard Guenther  <rguenther@suse.de>
7107
7108         PR tree-optimization/19431
7109         PR tree-optimization/21463
7110         * tree-pass.h (pass_phiprop): Declare.
7111         * passes.c (init_optimization_passes): New phiprop pass.
7112         * tree-ssa-forwprop.c (struct phiprop_d): New structure.
7113         (phivn_valid_p): New helper function.
7114         (phiprop_insert_phi): Likewise.
7115         (propagate_with_phi): Likewise.
7116         (tree_ssa_phiprop): New propagator propagating loads
7117         through phi nodes if profitable.
7118
7119 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
7120
7121         * tree-vect-analyze.c (process_use): New function.
7122         (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
7123         Check phis in all bbs.
7124         * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
7125         assert.
7126
7127 2007-04-18  Bernd Schmidt  <bernd.schmidt@analog.com>
7128
7129         * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
7130         we use REG_EQUAL.
7131
7132 2007-04-17  Anatoly Sokolov <aesok@post.ru>
7133
7134         PR target/30483
7135         * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
7136         error().
7137
7138 2007-04-17  H.J. Lu  <hongjiu.lu@intel.com>
7139
7140         * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
7141         on "0".
7142         (sse_vmmulv4sf3): Likewise.
7143         (sse2_vmaddv2df3): Likewise.
7144         (sse2_vmmulv2df3): Likewise.
7145
7146 2007-04-17  Zdenek Dvorak  <dvorakz@suse.cz>
7147
7148         PR rtl-optimization/31360
7149         * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
7150         (target_reg_cost): New.
7151         (init_set_costs): Initialize target_reg_cost.  Add comments
7152         regarding the rationale of the costs.
7153         (global_cost_for_size): Renamed to...
7154         (estimate_reg_pressure_cost): ... and simplify.  Decrease importance
7155         of register pressure.
7156         * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
7157         estimate_reg_pressure_cost.  Add number of ivs.
7158         (determine_set_costs): Dump target_reg_cost.
7159         * loop-invariant.c (gain_for_invariant):  Use
7160         estimate_reg_pressure_cost.  Removed n_inv_uses argument.
7161         (best_gain_for_invariant, find_invariants_to_move): Remove
7162         n_inv_uses.
7163         * cfgloop.h (target_small_cost, target_pres_cost): Removed.
7164         (target_reg_cost): Declare.
7165         (global_cost_for_size): Declaration removed.
7166         (estimate_reg_pressure_cost): Declare.
7167
7168 2007-04-17  Peter Bergner  <bergner@vnet.ibm.com>
7169
7170         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
7171         regnos into even/odd register pairs.
7172         * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
7173         TDmode similar to the other floating point modes.
7174         [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
7175         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
7176         define_expand's.
7177         (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
7178         nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
7179         (movdd_hardfloat64): Use TARGET_MFPGPR.
7180
7181 2007-04-17  Bernd Schmidt  <bernd.schmidt@analog.com>
7182
7183         * reload1.c (delete_output_reload): Don't count output in n_inherited.
7184
7185         Revert
7186         2005-01-05  Richard Henderson  <rth@redhat.com>
7187         PR rtl-opt/10692
7188         * reload1.c (do_input_reload): Restrict the optimization deleteing
7189         a previous output reload to RELOAD_FOR_INPUT.
7190
7191 2007-04-17  Dorit Nuzman  <dorit@il.ibm.com>
7192
7193         * tree-vectorizer.h (stmt_vec_info_type): Add enum value
7194         induc_vec_info_type.
7195         (vectorizable_induction): New function declaration.
7196         * tree-vect-transform.c (get_initial_def_for_induction): No need to
7197         check if already vectorized.  Find first place in BB where new stmts
7198         can be inserted.  Takes only one argument.
7199         (vectorizable_induction): New function.
7200         (vect_transform_stmt): Add case for induc_vec_info_type to call
7201         vectorizable_induction.
7202         (vect_transform_loop): Consider phis for vectorization.
7203         * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
7204         condition.
7205         (analyze_operations): Call vectorizable_induction when analyzing phis.
7206         Fix comment.
7207         (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
7208         (vect_mark_relevant): Include phis in relevance analysis.
7209         (vect_mark_stmts_to_be_vectorize): Likewise.
7210         * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
7211
7212 2007-04-16  Lawrence Crowl  <crowl@google.com>
7213
7214         * doc/invoke.texi (Debugging Options): Add documentation for the
7215         -femit-struct-debug options -femit-struct-debug-baseonly,
7216         -femit-struct-debug-reduced, and
7217         -femit-struct-debug-detailed[=...].
7218
7219         * c-opts.c (c_common_handle_option): Add
7220         OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
7221         and OPT_femit_struct_debug_detailed_.
7222         * c.opt: Add specifications for
7223         -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
7224         and -femit-struct-debug-detailed[=...].
7225         * opts.c (set_struct_debug_option): Parse the
7226         -femit-struct-debug-... options.
7227         * opts.c (matches_main_base, main_input_basename,
7228         main_input_baselength, base_of_path, matches_main_base): Add
7229         variables and functions to compare header base name to compilation
7230         unit base name.
7231         * opts.c (should_emit_struct_debug): Add to determine to emit a
7232         structure based on the option.
7233         (dump_struct_debug) Also disabled function to debug this
7234         function.
7235         * opts.c (handle_options): Save the base name of the
7236         compilation unit.
7237
7238         * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
7239         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
7240         This hook indicates if a type is generic.  Set it by default
7241         to "never generic".
7242         * langhooks.h (struct lang_hooks_for_types): Add a new hook
7243         to determine if a struct type is generic or not.
7244         * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
7245         * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
7246         * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
7247         with live C++ hook.
7248
7249         * flags.h (enum debug_info_usage): Add an enumeration to describe
7250         a program's use of a structure type.
7251         * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
7252         to indicate the program's usage of the type.  Filter structs based
7253         on the -femit-struct-debug-... specification.
7254         (gen_type_die): Split into two routines, gen_type_die and
7255         gen_type_die_with_usage.  gen_type_die is now a wrapper
7256         that assumes direct usage.
7257         (gen_type_die_with_usage): Replace calls to gen_type_die
7258         with gen_type_die_with_usage adding the program usage of
7259         the referenced type.
7260         (dwarf2out_imported_module_or_decl): Suppress struct debug
7261         information using should_emit_struct_debug when appropriate.
7262
7263 2007-04-16  Ian Lance Taylor  <iant@google.com>
7264
7265         PR tree-optimization/31522
7266         * tree-vrp.c (vr_phi_edge_counts): New static variable.
7267         (vrp_initialize): Allocate vr_phi_edge_counts.
7268         (vrp_visit_phi_node): Don't push to infinity if we saw a new
7269         executable edge.  Drop test for all constants.
7270         (vrp_finalize): Free vrp_phi_edge_counts.
7271
7272         * doc/cpp.texi (Common Predefined Macros): Clarify description of
7273         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
7274
7275         * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
7276         predecessors at head rather than tail.
7277
7278 2007-04-16  Matthias Klose  <doko@debian.org>
7279
7280         * config/alpha/linux.h (CPP_SPEC): Define.
7281         * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
7282
7283 2007-04-16  Aldy Hernandez  <aldyh@redhat.com>
7284
7285         * function.h: Remove sequence_stack extern declaration.
7286
7287 2007-04-16  Kazu Hirata  <kazu@codesourcery.com>
7288
7289         * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
7290         TARGET_FIDOA.
7291         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
7292         defined.
7293
7294 2007-04-16  Anatoly Sokolov <aesok@post.ru>
7295
7296         * config/avr/avr.c (avr_arch_types): Rearranging  array.
7297         (enum avr_arch): Add.
7298         (avr_mcu_types): Use avr_arch enumeration constants instead of
7299         numbers.
7300         * config/avr/avr.h (LINK_SPEC): Simplify.
7301
7302 2007-04-16  Kazu Hirata  <kazu@codesourcery.com>
7303
7304         * config/m68k/m68k.c (m68k_libcall_value,
7305         m68k_function_value): Use macros for register names more.
7306
7307         * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
7308         instead.
7309         (M68K_REGNAME): Use A6_REG.
7310         * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
7311
7312 2007-04-16  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
7313
7314         PR middle-end/28071
7315         * sched-int.h (struct deps): Split field 'pending_lists_length' into
7316         'pending_read_list_length' and 'pending_write_list_length'.  Update
7317         comment.
7318         * sched-deps.c (add_insn_mem_dependence): Change signature.  Update
7319         to handle two length counters instead of one.  Update all uses.
7320         (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
7321         two length counters instead of one.
7322         * sched-rgn.c (propagate_deps): Update to handle two length counters
7323         instead of one.
7324
7325 2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>
7326
7327         PR target/31582
7328         * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
7329         copy of source, pass it to ix86_expand_vector_set and return
7330         it as target.
7331
7332 2007-04-16  David Ung  <davidu@mips.com>
7333             Joseph Myers  <joseph@codesourcery.com>
7334
7335         * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
7336         PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
7337         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
7338         Add 74K processor information.
7339         * config/mips/mips.md: Include 74k.md.
7340         (cpu): Add 74kc,74kf,74kx.
7341         (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
7342         * config/mips/74k.md: New.
7343         * doc/invoke.texi (MIPS Options): Document 74K support.
7344
7345 2007-04-16  Dorit Nuzman  <dorit@il.ibm.com>
7346
7347         * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
7348         vectorizable_* functions.
7349         * tree-vect-transform.c (vectorizable_call): Add check for
7350         STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
7351         (vectorizable_store): likewise.
7352         (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
7353         Add comments.
7354         (vectorizable_operation, vectorizable_type_demotion): Likewise.
7355         (vectorizable_type_promotion, vectorizable_load): Likewise.
7356         (vectorizable_live_operation, vectorizable_condition): Likewise.
7357         (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
7358         STMT_VINFO_LIVE_P.
7359         (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
7360
7361 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
7362
7363         * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
7364         register numbers more.
7365         * config/m68k/m68k.h (STACK_POINTER_REGNUM,
7366         FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
7367         M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
7368         FUNCTION_VALUE_REGNO_P): Likewise.
7369         * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
7370         STATIC_CHAIN_REGNUM): Likewise.
7371         * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
7372         * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
7373         STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
7374         * config/m68k/m68k.md (FP_REG): New.
7375
7376 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
7377
7378         * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
7379         alignment on fido.
7380
7381 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
7382
7383         * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
7384         tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
7385         comment typos.
7386
7387 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
7388
7389         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
7390         cold loops.
7391
7392 2007-04-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7393
7394         PR c/31520
7395         * c-decl.c (finish_decl): Grab the type of the decl after the call
7396         to store_init_value.
7397
7398 2007-04-14  Steven Bosscher  <steven@gcc.gnu.org>
7399
7400         * common.opt (fforward-propagate): Fix "Optimization" annotation.
7401
7402 2007-04-14  Jakub Jelinek  <jakub@redhat.com>
7403
7404         PR c++/25874
7405         * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators,
7406         post dominators and cleanup cfg before returning.
7407
7408 2007-04-14  Bernd Schmidt  <bernd.schmidt@analog.com>
7409
7410         * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
7411         * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
7412
7413 2007-04-14  Kazu Hirata  <kazu@codesourcery.com>
7414
7415         * config.gcc: Recognize fido.
7416         * config/m68k/m68k-devices.def (fidoa): New.
7417         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
7418         __mfido__.
7419         (FL_FIDOA, TARGET_FIDOA): New.
7420         * config/m68k/m68k.opt (mfidoa): New.
7421
7422 2007-04-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7423
7424         PR middle-end/31322
7425         * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
7426         when a personality function is used.
7427
7428 2007-04-13  Bob Wilson  <bob.wilson@acm.org>
7429
7430         * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
7431
7432 2007-04-13  Mike Stump  <mrs@apple.com>
7433
7434         * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
7435         we can...
7436         * config/darwin.opt (fapple-kext): Make C++ only.
7437         * config/darwin.c (darwin_override_options): Remove code to ensure
7438         -fapple-kext is given for C++ only.
7439
7440 2007-04-13  Richard Sandiford  <richard@codesourcery.com>
7441
7442         * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
7443         * config/mips/mips.c (override_options): Call
7444         SUBTARGET_OVERRIDE_OPTIONS, if defined.
7445
7446 2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>
7447
7448         * config/i386/i386.opt (msvr3-shlib): Removed.
7449
7450         * doc/invoke.texi: Remove -msvr3-shlib.
7451
7452 2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>
7453
7454         * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
7455         with "popcnt" instruction.
7456
7457 2007-04-13  Richard Guenther  <rguenther@suse.de>
7458
7459         PR tree-optimization/21258
7460         * tree-vrp.c (compare_case_labels): New helper.
7461         (find_switch_asserts): New function.
7462         (find_assert_locations): Call it for SWITCH_EXPRs.
7463
7464 2007-04-13  Uros Bizjak  <ubizjak@gmail.com>
7465
7466         * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
7467         * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
7468         check is now implied in X87_FLOAT_MODE_P.
7469         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
7470         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
7471         (fix_trunc<mode>_i386_fisttp): Ditto.
7472         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
7473         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
7474         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
7475         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
7476         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
7477         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
7478         (unnamed_splitters): Ditto.
7479         * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
7480         for X87_FLOAT_MODE_P mode.  Override FIRST_FLOAT_REG with
7481         FIRST_SSE_REG for local functions when SSE math is enabled or
7482         for functions with sseregparm attribute.
7483         (standard_80387_constant_p): Return -1 if mode is not
7484         X87_FLOAT_MODE_P.
7485         (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
7486         (ix86_expand_compare): Ditto.
7487         (ix86_expand_carry_flag_compare): Ditto.
7488         (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
7489         of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
7490         DECIMAL_FLOAT_MODE_P.
7491         (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
7492         of SCALAR_FLOAT_MODE_P.
7493         (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
7494         [MINUS]: ... here.  Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
7495         checks before FLOAT_MODE_P.
7496         [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
7497         before FLOAT_MODE_P.
7498         [DIV]: Ditto.
7499         [NEG]: Ditto.
7500         [ABS]: Ditto.
7501         [SQRT]: Ditto.
7502         [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
7503
7504 2007-04-12  Paolo Bonzini  <bonzini@gnu.org>
7505             Charles Wilson  <libtool@cwilson.fastmail.fm>
7506
7507         * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
7508         (libgcc.mvars): Don't depend on them.
7509         * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
7510         * exec-tool.in: New.
7511
7512 2007-04-12  Brooks Moses  <brooks.moses@codesourcery.com>
7513
7514         * doc/invoke.text (--help): Document --help=common.
7515
7516 2007-04-12  Thomas Neumann  <tneumann@users.sourceforge.net>
7517
7518         * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
7519
7520 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
7521
7522         * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
7523         * genemit.c (main): Emit #include "integrate.h".
7524         * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
7525         (LOADGP_RTP): New mips_loadgp_style.
7526         * config/mips/mips.h: Include config/vxworks-dummy.h.
7527         (TARGET_RTP_PIC): New macro.
7528         (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
7529         (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
7530         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
7531         for TARGET_RTP_PIC.
7532         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define.  Pass down
7533         -mvxworks-pic when using -mrtp and a PIC option.
7534         * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
7535         for RTP PIC.
7536         (mips_symbolic_constant_p, mips_symbolic_address_p)
7537         (mips_symbol_insns): Handle SYMBOL_HALF.
7538         (override_options): Warn about -G and -mrtp being used together.
7539         Initialize mips_lo_relocs[SYMBOL_HALF].
7540         (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
7541         (mips_emit_loadgp): Handle LOADGP_RTP.
7542         (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
7543         * config/mips/mips.md (loadgp_rtp): New insn and splitter.
7544         (tablejump): Handle function-relative case table entries if
7545         TARGET_RTP_PIC.
7546         * config/mips/predicates.md (symbol_ref_operand): New predicate.
7547
7548 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
7549
7550         * config/mips/mips.md (load_call<mode>): Allow any general register.
7551         destination.
7552         (sibcall_value_internal, sibcall_value_multiple_internal)
7553         (call_value_internal, call_value_split, call_value_multiple_internal)
7554         (call_value_multiple_split): Remove constraints from operand 0.
7555
7556 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
7557
7558         * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
7559         rather than loadgp_noshared.
7560         * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
7561         instead of gen_loadgp_noshared.  Use gen_loadgp_newabi instead of
7562         gen_loadgp.
7563         * config/mips/mips.md (loadgp): Rename to...
7564         (loadgp_newabi): ...this.
7565         (loadgp_noshared): Rename to...
7566         (loadgp_absolute): ...this.
7567
7568 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
7569
7570         * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
7571         false for locally-binding symbols.
7572         (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
7573
7574 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
7575
7576         * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
7577         (SYMBOL_GOT_PAGE_OFST): ...this.
7578         (SYMBOL_GOT_GLOBAL): Rename to...
7579         (SYMBOL_GOT_DISP): ...this.
7580         (SYMBOL_GOTOFF_GLOBAL): Rename to...
7581         (SYMBOL_GOTOFF_DISP): ...this.  Update comments accordingly.
7582         * config/mips/mips.c (mips_global_symbol_p): New function.
7583         (mips_symbol_binds_local_p): Likewise.
7584         (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
7585         and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST.  Use mips_global_symbol_p
7586         and mips_symbol_binds_local_p.
7587         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
7588         (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
7589         SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
7590         SYMBOL_GOTOFF_DISP.
7591         (mips_ok_for_lazy_binding_p): New function.
7592         (mips_load_call_address, mips_expand_call): Use it.
7593         (mips_dangerous_for_la25_p): Likewise.
7594         * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
7595         (*got_disp<mode>): Use got_disp_operand instead of
7596         global_got_operand.  Use SYMBOL_GOTOFF_DISP instead of
7597         SYMBOL_GOTOFF_GLOBAL.
7598         (*got_page<mode>): Use got_page_ofst_operand instead of
7599         local_got_operand.
7600         * config/mips/predicates.md (const_call_insn_operand): Use
7601         SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
7602         (global_got_operand): Rename to...
7603         (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
7604         SYMBOL_GOT_GLOBAL.
7605         (local_got_operand): Rename to...
7606         (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
7607         of SYMBOL_GOT_LOCAL.
7608
7609 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
7610
7611         * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
7612         TARGET_CALL_CLOBBERED_GP.
7613         (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
7614         (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
7615         (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
7616         (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
7617         of TARGET_ABICALLS && !TARGET_NEWABI.
7618         (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
7619         * config/mips/mips.c (mips_load_call_address): Check
7620         TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
7621         (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
7622         Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
7623         (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
7624         TARGET_ABICALLS && TARGET_NEWABI.
7625         (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
7626         TARGET_ABICALLS.
7627         (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
7628         (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
7629         TARGET_ABICALLS && TARGET_NEWABI.
7630         (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
7631         TARGET_ABICALLS.  Check TARGET_CALL_SAVED_GP instead of
7632         TARGET_NEWABI.  Use TARGET_USE_PIC_FN_ADDR_REG to decide
7633         whether indirect calls must use $25.
7634         (mips_extra_live_on_entry): Check TARGET_GOT instead of
7635         TARGET_ABICALLS.
7636         * config/mips/mips.md (jal_macro): Check flag_pic and
7637         TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
7638         (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
7639         instead of TARGET_ABICALLS.
7640         (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
7641         TARGET_ABICALLS && TARGET_OLDABI.
7642         (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
7643         (sibcall): In the comment above the define_insn, mention
7644         TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
7645         * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
7646         instead of TARGET_ABICALLS.
7647
7648 2007-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
7649
7650         * doc/md.texi (Blackfin family constraints): Document PA and PB.
7651         * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
7652         (MACFLAGS_MATCH_P): New macro.
7653         * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
7654         (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
7655         * config/bfin/bfin.md (MACFLAG_IS_M): New constant.  Renumber some of
7656         the other MACFLAG constants.
7657         (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
7658         (flag_machi): Tighten constraints.  Renumber some of the operands.
7659         (flag_machi_acconly): Tighten constraints.  Correct operand numbers in
7660         output template.
7661         (flag_machi_parts_acconly): New pattern.
7662         (flag_macinithi): Tighten constraints.  Allow any accumulator to be
7663         used.
7664         (flag_macinit1hi): Tighten constraints.
7665         (flag_mul_macv2hi_parts_acconly): New pattern.
7666
7667         * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
7668         Use a more efficient implementation.
7669         * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
7670         inline sequences when not optimizing for size.
7671
7672         * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
7673         movhi_high2low): Delete, merge functionality into...
7674         (packv2hi): ... this pattern.
7675
7676         2007-02-11  Jie Zhang  <jie.zhang@analog.com>
7677         * config/bfin/bfin.opt (msim): New option.
7678         (mcpu=): New option.
7679         * config/bfin/bfin-protos.h (enum bfin_cpu): New.
7680         (bfin_cpu_t): Typedef of enum bfin_cpu.
7681         (bfin_cpu_type): New declaration.
7682         * config/bfin/elf.h (STARTFILE_SPEC): Add support for
7683         -msim and -mcpu= options.
7684         (LIB_SPEC): Likewise.
7685         * config/bfin/bfin.c (bfin_cpu_type): Define.
7686         (bfin_handle_option): Handle -mcpu= option.
7687         * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
7688         (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
7689         __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
7690
7691 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
7692
7693         * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
7694         (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
7695         (powerpc-wrs-vxworksae): Use ${tm_file}.
7696         (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
7697         after elfos.h.  Remove i386/sysv4.h and add i386/vx-common.h.
7698         * config/i386/vx-common.h: New file.
7699
7700 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
7701
7702         * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
7703         of crt0.o%s.
7704
7705 2007-04-12  Andreas Krebbel  <krebbel1@de.ibm.com>
7706
7707         * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
7708         ldxtr.
7709
7710 2007-04-12  Douglas Gregor  <doug.gregor@gmail.com>
7711
7712         PR c++/31078
7713         PR c++/31103
7714         * c-common.c (c_build_qualified_type): Set canonical type
7715         appropriately.
7716
7717 2007-04-12  Richard Guenther  <rguenther@suse.de>
7718
7719         * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
7720         lower bound and element size if lower bound is not zero
7721         or either of the ARRAY_REF operands is set.
7722
7723 2007-04-12  Richard Guenther  <rguenther@suse.de>
7724
7725         PR tree-optimization/24689
7726         PR tree-optimization/31307
7727         * fold-const.c (operand_equal_p): Compare INTEGER_CST array
7728         indices by value.
7729         * gimplify.c (canonicalize_addr_expr): To be consistent with
7730         gimplify_compound_lval only set operands two and three of
7731         ARRAY_REFs if they are not gimple_min_invariant.  This makes
7732         it never at this place.
7733         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
7734
7735 2007-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7736
7737         * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
7738         null before emitting a .nsubspa directive.
7739
7740 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
7741
7742         * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
7743         need_to_partition_p if there are no memory statements in the
7744         function.
7745
7746 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
7747
7748         * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
7749         (gcd_of_steps_may_divide_p): New function.
7750         (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
7751
7752 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
7753
7754         * reload.c (find_reloads_toplev, find_reloads_address,
7755         find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
7756         not a pointer equality test, to decide if we need to call
7757         push_reg_equiv_alt_mem.
7758
7759 2007-04-11  Sebastian Pop  <sebastian.pop@inria.fr>
7760
7761         * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
7762         insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): New.
7763         (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
7764
7765 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
7766
7767         * tree-data-ref.c (add_multivariate_self_dist): Force the distance
7768         vector to be positive.
7769
7770 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
7771
7772         PR 30735
7773         PR 31090
7774         * doc/invoke.texi: Document --params max-aliased-vops and
7775         avg-aliased-vops.
7776         * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
7777         debug_memory_partitions): Move to tree-flow.h
7778         * params.h (AVG_ALIASED_VOPS): Define.
7779         * tree-ssa-alias.c (struct mp_info_def): Remove.  Update all
7780         users.
7781         (mp_info_t): Likewise.
7782         (get_mem_sym_stats_for): New.
7783         (set_memory_partition): Move from tree-flow-inline.h.
7784         (mark_non_addressable): Only clear the set of symbols for the
7785         partition if it exists.
7786         (dump_memory_partitions): Move from tree-ssa-operands.c
7787         (debug_memory_partitions): Likewise.
7788         (need_to_partition_p): New.
7789         (dump_mem_ref_stats): New.
7790         (debug_mem_ref_stats): New.
7791         (dump_mem_sym_stats): New.
7792         (debug_mem_sym_stats): New.
7793         (update_mem_sym_stats_from_stmt): New.
7794         (compare_mp_info_entries): New.
7795         (mp_info_cmp): Call it.
7796         (sort_mp_info): Change argument to a list of mem_sym_stats_t
7797         objects.
7798         (get_mpt_for): Move from tree-ssa-operands.c.
7799         (find_partition_for): New.
7800         (create_partition_for): Remove.
7801         (estimate_vop_reduction): New.
7802         (update_reference_counts): New.
7803         (build_mp_info): New.
7804         (compute_memory_partitions): Refactor.
7805         Document new heuristic.
7806         Call build_mp_info, update_reference_counts,
7807         find_partition_for and estimate_vop_reduction.
7808         (compute_may_aliases): Populate virtual operands before
7809         calling debugging dumps.
7810         (delete_mem_sym_stats): New.
7811         (delete_mem_ref_stats): New.
7812         (init_mem_ref_stats): New.
7813         (init_alias_info): Call it.
7814         (maybe_create_global_var): Remove alias_info argument.
7815         Get number of call sites and number of pure/const call sites
7816         from gimple_mem_ref_stats().
7817         (dump_alias_info): Call dump_memory_partitions first.
7818         (dump_points_to_info_for): Show how many times a pointer has
7819         been dereferenced.
7820         * opts.c (decode_options): For -O2 set --param
7821         max-aliased-vops to 500.
7822         For -O3 set --param max-aliased-vops to 1000 and --param
7823         avg-aliased-vops to 3.
7824         * fortran/options.c (gfc_init_options): Remove assignment to
7825         MAX_ALIASED_VOPS.
7826         * tree-flow-inline.h (gimple_mem_ref_stats): New.
7827         * tree-dfa.c (dump_variable): Dump memory reference
7828         statistics.
7829         Dump NO_ALIAS* settings.
7830         (referenced_var_lookup): Tidy.
7831         (mem_sym_stats): New.
7832         * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
7833         and ORIG are different SSA names for a memory partition.
7834         * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
7835         * tree-flow.h (struct mem_sym_stats_d): Define.
7836         (mem_sym_stats_t): Define.
7837         (struct mem_ref_stats_d): Define.
7838         (struct gimple_df): Add field mem_ref_stats.
7839         (enum noalias_state): Define.
7840         (struct var_ann_d): Add bitfield noalias_state.
7841         (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
7842         debug_mem_ref_stats, debug_memory_partitions,
7843         debug_mem_sym_stats): Declare.
7844         * tree-ssa-structalias.c (update_alias_info): Update call
7845         sites, pure/const call sites and asm sites in structure
7846         returned by gimple_mem_ref_stats.
7847         Remove local variable IS_POTENTIAL_DEREF.
7848         Increase NUM_DEREFS if the memory expression is a potential
7849         dereference.
7850         Call update_mem_sym_stats_from_stmt.
7851         If the memory references memory, call
7852         update_mem_sym_stats_from_stmt for all the direct memory
7853         symbol references found.
7854         (intra_create_variable_infos): Set noalias_state field for
7855         pointer arguments according to the value of
7856         flag_argument_noalias.
7857         * tree-ssa-structalias.h (struct alias_info): Remove fields
7858         num_calls_found and num_pure_const_calls_found.
7859         (update_mem_sym_stats_from_stmt): Declare.
7860         * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
7861         Set default value to 100.
7862         (PARAM_AVG_ALIASED_VOPS): Define.
7863
7864 2007-04-11  Richard Guenther  <rguenther@suse.de>
7865
7866         PR middle-end/31530
7867         * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
7868         a * -b + c as c - a * b if we honor sign dependent rounding.
7869
7870 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
7871
7872         * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
7873         bfin_expand_strmov.
7874         * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
7875         bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
7876         variables.
7877         (initialize_trampoline): Don't use old-style function definition.
7878         (bfin_secondary_reload): Mark IN_P argument as unused.
7879
7880 2007-04-10  Sebastian Pop  <sebastian.pop@inria.fr>
7881
7882         PR tree-optimization/31343
7883         * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
7884         (build_polynomial_chrec): Return a scalar when the evolution is zero.
7885         * testsuite/gcc.dg/vect/pr31343.c: New.
7886
7887 2007-04-10  Eric Christopher  <echristo@apple.com>
7888
7889         * config/i386/i386.h (X87_FLOAT_MODE_P): New.
7890         * config/i386/i386.md (*cmpfp0): Use.
7891         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
7892         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
7893         (fix_trunc<mode>_i386_fisttp): Ditto.
7894         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
7895         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
7896         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
7897         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
7898         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
7899         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
7900         (unnamed_splitters): Ditto.
7901         * config/i386/i386.c (output_fix_trunc): Assert that
7902         we're not being passed a TFmode operand.
7903
7904 2007-04-10  Zdenek Dvorak  <dvorakz@suse.cz>
7905
7906         PR tree-optimization/31526
7907         * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
7908         n_basic_blocks to find newly added blocks.
7909
7910 2007-04-10  Uros Bizjak  <ubizjak@gmail.com>
7911
7912         * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
7913         alternative.
7914         (fix_trunc<mode>si_sse): Ditto.
7915         (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
7916         (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
7917         (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
7918         (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
7919         (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
7920         expander using SSEMODEF mode macro.
7921         (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
7922         expander using SSEMODEF mode macro.
7923         (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
7924         *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
7925         (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
7926         *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
7927         (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
7928         *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
7929         (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
7930         Macroize insn using X87MODEF mode macro.
7931
7932 2007-04-09  H.J. Lu  <hongjiu.lu@intel.com>
7933
7934         * config/i386/sse.md (sse2_pinsrw): Removed.
7935         (sse2_pextrw): Renamed to ...
7936         (*sse2_pextrw): This.
7937
7938 2007-04-09  Jan Hubicka  <jh@suse.cz>
7939
7940         PR target/27869
7941         * config/i386/sse.md
7942         (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
7943         (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
7944         (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
7945         (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
7946
7947 2007-04-09  Jan Hubicka  <jh@suse.cz>
7948
7949         * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
7950         multiple fields of union.
7951
7952 2007-04-09  Zdenek Dvorak  <dvorakz@suse.cz>
7953
7954         * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
7955         (create_preheaders): Check that loops are available.
7956         (fix_loop_structure): Clean up, improve comments.
7957         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
7958         Check that loops are available.  Set LOOP_CLOSED_SSA to the loops
7959         state flags.
7960         * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
7961         * predict.c (tree_estimate_probability): Do not call
7962         calculate_dominance_info.  Call create_preheaders.
7963         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
7964         rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
7965         flags.
7966         * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
7967         * cfgloop.h (LOOP_CLOSED_SSA): New constant.
7968         * tree-cfg.c (tree_split_edge): Make an assert more precise.
7969         * tree-ssa-threadedge.c (thread_across_edge): Comment the function
7970         arguments.
7971
7972 2007-04-08  Jan Hubicka  <jh@suse.cz>
7973
7974         * tree.h (maybe_fold_offset_to_component_ref): Declare.
7975         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
7976         * fold-const.c (fold_unary): Use it.
7977
7978 2007-04-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7979
7980         * varasm.c (assemble_variable): Remove call to
7981         lang_hooks.decls.prepare_assemble_variable.
7982         * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
7983         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
7984         * langhooks.h (lang_hooks_for_decls): Remove
7985         prepare_assemble_variable.
7986
7987 2007-04-08  Mike Stump  <mrs@apple.com>
7988
7989         * config/i386/i386.c: Use inc/dec on Core2.
7990
7991 2007-04-08  Steven Bosscher  <steven@gcc.gnu.org>
7992
7993         * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
7994         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
7995         lhd_tree_inlining_end_inlining): Remove.
7996         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
7997         add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
7998         end_inlining hooks.
7999         * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
8000         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
8001         lhd_tree_inlining_end_inlining): Remove prototypes.
8002         (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
8003         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
8004         LANG_HOOKS_TREE_INLINING_START_INLINING,
8005         LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
8006
8007         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
8008         not set it.
8009
8010 2007-04-08  Anatoly Sokolov <aesok@post.ru>
8011
8012         PR target/29932
8013         * config/avr/predicates.md (io_address_operand): Delete predicate.
8014         (low_io_address_operand): Don't use 'mode' argument.
8015         (higth_io_address_operand): Rename ...
8016         (high_io_address_operand): ... to this. Don't use 'mode' argument.
8017         * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
8018         for above change.
8019
8020 2007-04-07  Daniel Berlin  <dberlin@dberlin.org>
8021
8022         Revert change removing staticp.
8023
8024 2007-04-07  Anatoly Sokolov <aesok@post.ru>
8025
8026         PR target/30289
8027         * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
8028         earlyclobber.
8029
8030 2007-04-07  Bruce Korb  <bkorb@gnu.org>
8031
8032         * c.opt: Add -Wformat-contains-nul.
8033         * c-format.c (set_Wformat):  Set warn_format_contains_nul to the
8034           -Wformat setting.
8035         (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
8036         the NUL byte warning.
8037
8038 2007-04-07  H.J. Lu  <hongjiu.lu@intel.com>
8039
8040         * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
8041
8042 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
8043
8044         * tree.c (staticp): No longer use staticp langhook.
8045         * langhooks.c (lhd_staticp): Removed.
8046         * langhooks.h (struct lang_hooks): Remove staticp.
8047         * c-common.c (c_staticp): Remove.
8048         * c-common.h (c_staticp): Ditto.
8049         * langhooks-defs.h (lhd_staticp): Ditto.
8050         (LHD_HOOKS_STATICP): Ditto
8051         * tree.h (gcc_assert_lowered): New macro.
8052
8053 2007-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
8054
8055         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
8056         argument "reliable".
8057         (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
8058         Add argument "reliable".  Propagate it through calls.
8059         (infer_loop_bounds_from_undefined):  Derive number of iterations
8060         estimates from references in blocks that do not dominate loop latch.
8061         (gcov_type_to_double_int): New function.
8062         (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
8063         and expected_loop_iterations_unbounded.
8064         * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
8065         (expected_loop_iterations): Use expected_loop_iterations_unbounded.
8066         * tree-data-ref.c (estimated_loop_iterations): Export.
8067         (get_references_in_stmt): Fix -- do not return addresses of local
8068         objects.
8069         * cfgloop.h (expected_loop_iterations_unbounded,
8070         estimated_loop_iterations): Declare.
8071
8072 2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
8073
8074         * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
8075
8076 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
8077
8078         * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
8079         and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
8080         (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
8081         Use output_387_reg_move().
8082         (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
8083         expander using X87MODEF12 mode macro.
8084         (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
8085         choosing register preferences.  Use output_387_reg_move().
8086         (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
8087         instead of "x".  Use output_387_reg_move().
8088         (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
8089         *truncxfdf2_i387_noop.  Macroize insn using X87MODEF12 mode macro.
8090         (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
8091         *truncxfdf2_i387.  Macroize insn using X87MODEF12 mode macro.
8092         Use output_387_reg_move().
8093         (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
8094         mode macro.
8095         (*truncxf?f_i387 splitter): Ditto.
8096
8097 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
8098
8099         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
8100         LANG_HOOKS_SAFE_FROM_P.
8101         * expr.c (safe_from_p): Remove langhook call.
8102         * langhooks.h (lang_hooks): Remove safe_from_p.
8103         (lhd_safe_from_p): Remove prototype.
8104         * langhooks.c (lhd_safe_from_p): Remove.
8105
8106 2007-04-06  Jan Hubicka  <jh@suse.cz>
8107
8108         * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
8109         functions.
8110
8111 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
8112
8113         * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
8114         * config/i386/i386.md (*movsf_1, *movdf_nointeger,
8115         *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
8116         *movxf_integer): Use output_387_reg_move() for x87 reg->mem
8117         alternative.
8118         (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
8119         *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
8120
8121 2007-04-05  Richard Henderson  <rth@redhat.com>
8122
8123         * config/alpha/alpha.c (print_operand) [+]: Remove.
8124         (alpha_end_function): Print nop if call at end of function.
8125         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
8126         * config/alpha/alpha.md (UNSPEC_LDGP1): New.
8127         (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
8128         (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
8129         (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
8130         the call pattern. Update peepholes to match.
8131
8132 2007-04-05  Janis Johnson  <janis187@us.ibm.com>
8133
8134         * doc/extend.texi (Other Builtins): Add decimal float variants
8135         of signbit.
8136         * builtins.def: Ditto.
8137         * builtins.c (expand_builtin): Ditto.
8138
8139 2007-04-05  Uros Bizjak  <ubizjak@gmail.com>
8140             H.J. Lu  <hongjiu.lu@intel.com>
8141
8142         PR target/31478
8143         * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
8144         of V8HImode when calling ix86_binary_operator_ok.
8145         (sse2_pmaddwd): Call ix86_binary_operator_ok.
8146         (sdot_prodv8hi): Operands 1 and 2 must be register.
8147
8148 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
8149
8150         * tree-sra.c (try_instantiate_multiple_fields): Needlessly
8151         initialize align to silence bogus warning.
8152
8153 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
8154
8155         PR middle-end/22156
8156         * tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
8157         all_no_warning.
8158         (struct sra_walk_fns): Remove use_all parameter from use.
8159         (sra_hash_tree): Handle BIT_FIELD_REFs.
8160         (sra_elt_hash): Don't hash bitfld blocks.
8161         (sra_elt_eq): Skip them in parent compares as well.  Handle
8162         BIT_FIELD_REFs.
8163         (sra_walk_expr): Don't maintain or pass down use_all_p.
8164         (scan_use): Remove use_all parameter.
8165         (scalarize_use): Likewise.  Re-expand assignment to
8166         BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
8167         output, and re-scalarize after output.  Don't mark anything
8168         for no warning.
8169         (scalarize_ldst): Adjust.
8170         (scalarize_walk_gimple_modify_statement): Likewise.
8171         (build_element_name_1): Handle BIT_FIELD_REFs.
8172         (instantiate_element): Don't warn for any element whose parent
8173         is used as a whole.
8174         (instantiate_missing_elements_1): Return the sra_elt.
8175         (canon_type_for_field): New.
8176         (try_instantiate_multiple_fields): New.
8177         (instantiate_missing_elemnts): Use them.
8178         (mark_no_warning): Removed.
8179         (generate_one_element_ref): Handle BIT_FIELD_REFs.
8180         (REPLDUP, sra_build_elt_assignment): New.
8181         (generate_copy_inout): Use them.
8182         (generate_element_copy): Likewise.  Handle bitfld differences.
8183         (generate_element_zero): Don't recurse for blocks.  Use
8184         sra_build_elt_assignment.
8185         (generate_one_element_int): Take elt instead of var.  Use
8186         sra_build_elt_assignment.
8187         (generate_element_init_1): Adjust.
8188         (scalarize_use, scalarize_copy): Use REPLDUP.
8189         (scalarize_ldst): Move assert before dereference.
8190         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
8191
8192 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
8193
8194         * regmove.c: Fix unused variable warnings due to previous commit.
8195
8196 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
8197
8198         * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
8199         (regmove_bb_head): Remove.
8200         (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
8201         (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
8202         problems with fixup_match_1.
8203         Don't initialize/free regmove_bb_head.
8204
8205         (reg_is_remote_constant_p): If an insn is in the same basic block
8206         but not before INSN, consider it remote, too.
8207
8208 2007-04-05  Anatoly Sokolov <aesok@post.ru>
8209
8210         PR target/25448
8211         * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
8212         DECL_ASSEMBLER_NAME, not the DECL_NAME.
8213
8214 2007-04-05  H.J. Lu  <hongjiu.lu@intel.com>
8215
8216         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
8217         (CONDITIONAL_REGISTER_USAGE): Likewise.
8218
8219 2007-04-04  Richard Henderson  <rth@redhat.com>
8220
8221         * config/alpha/lib1funcs.asm: Remove unused file.
8222
8223 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
8224
8225         PR other/31356
8226         * opts.c (print_specific_help): Fix --help=<language>
8227         header line.
8228         (common_handle_option): Support --help=common.
8229
8230 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
8231
8232         PR other/31353
8233         * gcc.c (main): Do not run the linker if
8234         print_subprocess_help indicates that it shouldn't be
8235         run.
8236
8237 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
8238
8239         PR doc/31355
8240         * doc/invoke.texi (--help=): Document <languages> value, fix
8241         formatting in tables of values.
8242
8243 2007-04-04  Danny Smith  <dannysmith.users.sourceforge.net>
8244
8245         * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
8246         dllimport attribute of virtual methods.
8247
8248 2007-04-04  Chen Liqin  <liqin@sunnorth.com.cn>
8249
8250         * config/score/crti.asm: Change _bss_start to __bss_start.
8251         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
8252         (OUTGOING_REG_PARM_STACK_SPACE) update.
8253         * config/score/score.opt: add options to make backend support
8254         score5, score5u, score7 and score7d.
8255         * config/score/score.md: Likewise.
8256         * config/score/misc.md: Likewise.
8257         * config/score/mac.md: Likewise.
8258         * doc/invoke.texi: Likewise.
8259         * doc/md.texi: update constraints define.
8260
8261 2007-04-03  Richard Henderson  <rth@redhat.com>
8262
8263         * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
8264         an appropriate type, use the mode instead.
8265
8266 2007-04-03  Richard Sandiford  <richard@codesourcery.com>
8267
8268         * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
8269         Set the default --with-arch setting to mips2.
8270         * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
8271         (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
8272         (MULTILIB_OSDIRNAMES): Delete.
8273         (MULTILIB_DIRNAMES): Define.
8274         * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
8275         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
8276         (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
8277         definitions, except for _WRS_R3K_EXC_SUPPORT.  Call
8278         VXWORKS_OS_CPP_BUILTINS.
8279         (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
8280         (MIPS_DEBUGGING_INFO): Undefine.
8281         (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
8282
8283 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
8284
8285         PR middle-end/30704
8286         * fold-const.c (native_encode_real): Encode real.c provided longs
8287         as a series of 32-bit native integers.
8288         (native_interpret_real): Interpret buffer as a series of 32-bit
8289         native integers.
8290
8291 2007-04-03  Richard Guenther  <rguenther@suse.de>
8292
8293         * genpreds.c (write_insn_constraint_len): Write function
8294         optimized for CONSTRAINT_LEN implementation.
8295         (write_tm_preds_h): Output insn_constraint_len inline and
8296         use it for CONSTRAINT_LEN.
8297         (write_insn_preds_c): Don't output insn_constraint_len.
8298         * doc/md.texi (define_register_constraint): Document multi-letter
8299         constraints shall have the same length if they start with the same
8300         letter.
8301
8302 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
8303
8304         PR target/31175
8305         * config/i386/i386.md (isinf<mode>2): Expand only when
8306         TARGET_C99_FUNCTIONS is set.
8307
8308 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
8309
8310         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
8311         (x86_64-*-linux*): Ditto.
8312         * config/i386/i386.opt (mpc): New option.
8313         * config/i386/i386.c (overrride_options): Handle
8314         ix87_precision_string.
8315         * config/i386/crtprec.c: New file.
8316         * config/i386/t-crtpc: Ditto.
8317         * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
8318         and -mpc80 options.
8319         * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
8320         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
8321         crtprec32.o, crtprec64.o and crtprec80.o.
8322
8323         * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
8324         and -mpc80 options.
8325         (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
8326
8327 2007-04-02  Eric Christopher  <echristo@apple.com>
8328
8329         * doc/invoke.texi (i386 and x86-64 Options): Document -m64
8330         limitations on darwin.
8331
8332 2007-04-02  Anatoly Sokolov <aesok@post.ru>
8333
8334         PR target/31137
8335         * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
8336
8337 2007-04-02  Dave Korn  <dave.korn@artimi.com>
8338
8339         * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
8340
8341 2007-04-02  Dave Korn  <dave.korn@artimi.com>
8342
8343         * libgcc2.h (exception_descriptor): Don't forward-declare.
8344         (__get_eh_table_language, __get_eh_table_version): Delete
8345         prototypes of long-dead functions.
8346
8347 2007-04-01  Daniel Berlin  <dberlin@dberlin.org>
8348
8349         * ebitmap.h: New file
8350         * ebitmap.c: New file
8351         * Makefile.in (ebitmap.o): New target.
8352
8353 2007-04-01  Jan Hubicka  <jh@suse.cz>
8354
8355         * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
8356         before very first instruction.
8357
8358 2007-04-01  Jan Hubicka  <jh@suse.cz>
8359
8360         * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
8361         waring on 64bit hosts.
8362         * bitmap.h: Fix typo in bitmap_head_def.
8363
8364 2007-04-01  Steven Bosscher  <steven@gcc.gnu.org>
8365
8366         PR rtl-optimization/31391
8367         * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
8368         into a DELETED_LABEL note, and the label is in an empty basic
8369         block, update BB_END as well as BB_HEAD.
8370
8371 2007-04-01  Richard Henderson  <rth@redhat.com>
8372
8373         PR tree-optimization/31169
8374         * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
8375         to varying if the range is outside [0,  prec-1].
8376
8377 2007-04-01  Richard Sandiford  <richard@codesourcery.com>
8378
8379         PR target/31388
8380         * config/mips/mips.md (load_const_gp): New insn.
8381         * config/mips/mips.c (mips_split_symbol): Avoid using or creating
8382         the MIPS16 GP pseudo register if no_new_pseudos.
8383         (mips16_gp_pseudo_reg): Use gen_load_const_gp.
8384
8385 2007-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8386
8387         PR target/31364
8388         * config/rs6000/rs6000.md (call): Convert to LR hard reg for
8389         secureplt.
8390         (call_value): Likewise.
8391
8392 2007-03-31  Wolfgang Bangerth  <bangerth@dealii.org>
8393             Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8394
8395         PR 14737
8396         * doc/invoke.texi: (optimization options): Reword description
8397         of -ffast-math. Document its primary purpose.
8398
8399 2007-03-31  Richard Guenther  <rguenther@suse.de>
8400
8401         * omp-low.c (splay-tree.h): Include.
8402         (lookup_decl): Replace splay-tree usage by pointer-map.
8403         (maybe_lookup_decl): Likewise.
8404         (new_omp_context): Likewise.
8405         (delete_omp_context): Likewise.
8406         * gimplify.c (splay-tree.h): Include.
8407         * tree-inline.c (insert_decl_map): Replace splay-tree usage by
8408         pointer-map.
8409         (remap_ssa_name): Likewise.
8410         (remap_decl): Likewise.
8411         (remap_type_1): Likewise.
8412         (remap_type): Likewise.
8413         (copy_body_r): Likewise.
8414         (expand_call_inline): Likewise.
8415         (clone_body): Likewise.
8416         (copy_tree_r): Likewise.
8417         (remap_save_expr): Likewise.
8418         (unsave_r): Likewise.
8419         (unsave_expr_now): Likewise.
8420         (tree_function_versioning): Likewise.
8421         (build_duplicate_type): Likewise.
8422         * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
8423         (struct copy_body_data): Replace splay-tree by pointer-map.
8424         * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
8425         not $(SPLAY_TREE_H).
8426         (gimplify.o): Depend on $(SPLAY_TREE_H).
8427         (omp-low.p): Likewise.
8428
8429 2007-03-31  Anatoly Sokolov <aesok@post.ru>
8430
8431         * config/avr/predicates.md (even_register_operand,
8432         odd_register_operand): New predicates.
8433         * config/avr/avr.md (movw peephole2): New.
8434         (movw_r peephole2): New.
8435
8436 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
8437
8438         * tree.h (get_signed_or_unsigned_type): New.
8439         * fold-const.c (operand_equal_for_comparison_p): Use
8440         get_signed_or_unsigned_type instead of
8441         lang_hooks.types.signed_or_unsigned_type.
8442         * expr.c (store_expr): Ditto.
8443         * langhooks.c (get_signed_or_unsigned_type): New.
8444         (lhd_signed_or_unsigned_type): New.
8445         * langhooks.h (lhd_signed_or_unsigned_type): New.
8446         * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
8447
8448 2007-03-30  Richard Henderson  <rth@redhat.com>
8449
8450         * tree-ssa-loop-ivopts.c: Include target.h.
8451         (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
8452         (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
8453         (force_expr_to_var_cost): Use produce_memory_decl_rtl.
8454         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
8455
8456 2007-03-30  Richard Henderson  <rth@redhat.com>
8457             Kai Tietz  <kai.tietz@onevision.com>
8458
8459         * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
8460         default for 64-bit.
8461         (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
8462         (TARGET_64BIT_MS_ABI): New.
8463         (DBX_REGISTER_NUMBER): Handle 64-bit.
8464         (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
8465         (LONG_TYPE_SIZE): Force to 32.
8466         (REG_PARM_STACK_SPACE): New.
8467         (OUTGOING_REG_PARM_STACK_SPACE): New.
8468         (REGPARM_MAX, SSE_REGPARM_MAX): New.
8469         (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
8470         (STACK_BOUNDARY): Use 128 for 64-bit.
8471         * config/i386/cygwin.asm: Use push/ret to preserve call stack.
8472         Add 64-bit implementation.
8473         * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
8474         argument unused.
8475         * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
8476         (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
8477         Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
8478         for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
8479         (ix86_handle_cconv_attribute): Don't warn when ignoring if
8480         TARGET_64BIT_MS_ABI.
8481         (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
8482         (ix86_pass_by_reference): Likewise.
8483         (ix86_function_value_regno_p): Likewise.
8484         (ix86_build_builtin_va_list): Likewise.
8485         (ix86_va_start, ix86_gimplify_va_arg): Likewise.
8486         (function_arg_advance_ms_64): New.
8487         (function_arg_advance): Call it.
8488         (function_arg_ms_64): New.
8489         (function_arg): Call it.
8490         (function_value_ms_64): New.
8491         (ix86_function_value_1): Call it.
8492         (return_in_memory_ms_64): New.
8493         (ix86_return_in_memory): Call it.
8494         (setup_incoming_varargs_ms_64): New.
8495         (ix86_setup_incoming_varargs): Call it.
8496         (ix86_expand_prologue): Handle 64-bit stack probing.
8497         (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
8498         (output_pic_addr_const): Likewise.
8499         (x86_this_parameter): Likewise.
8500         (x86_output_mi_thunk): Likewise.
8501         (x86_function_profiler): Likewise.
8502         (TARGET_STRICT_ARGUMENT_NAMING): New.
8503         * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
8504         (TARGET_64BIT_MS_ABI): New.
8505         (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
8506         * config/i386/i386.md (allocate_stack_worker): Remove.
8507         (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
8508         describe the clobber of eax without a match_scratch.
8509         (allocate_stack_worker_postreload): Remove.
8510         (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
8511         describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
8512         (allocate_stack_worker_rex64_postreload): Remove.
8513         (allocate_stack): Handle 64-bit.
8514         * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
8515         * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
8516         (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
8517         (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
8518         (STANDARD_STARTFILE_PREFIX_1): Likewise.
8519         * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
8520         * config.build (x86_64-*-mingw*): New host.
8521         * config.host (x86_64-*-mingw*): New host.
8522         * config.gcc (x86_64-*-mingw*): New target.
8523         * gthr-win32.h (__gthread_key_create): Mark dtor unused.
8524
8525 2007-03-30  Richard Henderson  <rth@redhat.com>
8526             Kai Tietz  <kai.tietz@onevision.com>
8527
8528         * c-pragma.c (struct def_pragma_macro_value): New.
8529         (struct def_pragma_macro): New.
8530         (pushed_macro_table): New.
8531         (dpm_hash, dpm_eq): New.
8532         (handle_pragma_push_macro, handle_pragma_pop_macro): New.
8533         (init_pragma): Install them.
8534         * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
8535
8536 2007-03-30  Anatoly Sokolov <aesok@post.ru>
8537
8538         * config/avr/avr.c (avr_override_options): Clear
8539         'flag_delete_null_pointer_checks'.
8540
8541 2007-03-30  Paolo Carlini  <pcarlini@suse.de>
8542
8543         PR c++/26099
8544         * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
8545         RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
8546         RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
8547         RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
8548         RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
8549         RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
8550         RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
8551         C++ extensions.
8552         * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
8553
8554 2007-03-30  Steven Bosscher  <steven@gcc.gnu.org>
8555
8556         * regmove.c: Move all of pass_stack_adjustments from here...
8557         * combine-stack-adj.c: ...to this new file.
8558         * Makefile.in: Add rules for combine-stack-adj.o.
8559
8560 2007-03-30  Zdenek Dvorak  <dvorakz@suse.cz>
8561
8562         PR tree-optimization/31383
8563         * tree-data-ref.c (affine_function_equal_p): Do not require the vectors
8564         to have the same length.
8565
8566 2007-03-30  Jan Hubicka  <jh@suse.cz>
8567
8568         PR middle-end/30700
8569         * dwarf2out.c (reference_to_unused): Ask cgraph for functions
8570         availablility; add more sanity checking; ask varpool only about
8571         VAR_DECL.
8572
8573 2007-03-29  Richard Henderson  <rth@redhat.com>
8574
8575         * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
8576         to decide, but __SIZEOF_LONG_LONG__.
8577
8578 2007-03-29  Richard Henderson  <rth@redhat.com>
8579
8580         * emutls.c (struct __emutls_array): New.
8581         (emutls_destroy): Use it instead of casting element 0 from void*.
8582         (__emutls_get_address): Likewise.
8583
8584 2007-03-29  Richard Henderson  <rth@redhat.com>
8585
8586         * varasm.c (initializer_constant_valid_p): Don't deny
8587         DECL_DLLIMPORT_P on functions.
8588
8589         * config/i386/cygming.h: Remove function declarations.
8590         (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
8591         (ASM_OUTPUT_LABELREF): Remove.
8592         (COMMON_ASM_OP): Remove.
8593         (ASM_OUTPUT_COMMON): Remove.
8594         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
8595         (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
8596         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8597         * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
8598         Rename from TARGET_ENCODE_SECTION_INFO.
8599         * config/i386/netware.h: Likewise.
8600         * config/i386/i386-protos.h: Update.
8601         * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
8602         of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
8603         (legitimate_constant_p): Reject dllimports.
8604         (dllimport_map, get_dllimport_decl): New.
8605         (legitimize_dllimport_symbol): New.
8606         (legitimize_address, ix86_expand_move): Use it.
8607         (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
8608         * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
8609         (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
8610         (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
8611         * config/i386/predicates.md (constant_call_address_operand): Only
8612         accept symbols; reject dllimport_p symbols.
8613         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
8614         i386_pe_maybe_record_exported_symbol.
8615         * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
8616         (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
8617         (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
8618         trust the setting of DECL_DLLIMPORT_P.
8619         (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
8620         (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
8621         (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
8622         tidy the argument scanning loop.
8623         (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
8624         SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
8625         (i386_pe_strip_name_encoding): Remove.
8626         (i386_pe_binds_local_p): New.
8627         (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
8628         (i386_pe_output_labelref): Remove.
8629         (i386_pe_asm_output_aligned_decl_common): New.
8630         (i386_pe_maybe_record_exported_symbol): Rename from
8631         i386_pe_record_exported_symbol; check for dllexported symbols.
8632
8633 2007-03-29  Zack Weinberg  <zack@mrtock.ucsd.edu>
8634
8635         * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
8636         add comment explaining why vsnprintf cannot be used.
8637
8638 2007-03-29  Douglas Gregor  <doug.gregor@gmail.com>
8639
8640         PR tree-optimization/30666
8641         * tree.c (build_complex_type): When creating type names for DWARF2
8642         debug info, create TYPE_DECLs for TYPE_NAME instead of
8643         IDENTIFIER_NODEs.
8644         (build_common_tree_nodes_2): Use build_complex_type when building
8645         predefined complex types, to preserve canonical types.
8646
8647 2007-03-29  Steven Bosscher  <steven@gcc.gnu.org>
8648
8649         * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
8650         (noce_get_alt_condition): Look at it to determine whether to
8651         reverse the condition or not.
8652         (noce_get_condition): Substitute the truth for lies.
8653         (noce_find_if_block): Set the then_else_reversed field.
8654
8655 2007-03-29  Lars Poeschel <larsi@wh2.tu-dresden.de>
8656
8657         * config/fr30/fr30.md (movdi): Do not accept immediates as the
8658         destination of this insn.
8659         * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
8660         than calling gen_rtx_SET directly.  Use r0 to hold the value of
8661         'address + 4' rather than a stack based temporary which can be
8662         mis-optimized away.
8663
8664 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
8665
8666         * config/s390/s390.c (s390_secondary_input_reload_class,
8667         s390_secondary_output_reload_class): Functions removed.
8668         (s390_secondary_reload): New function.
8669         (TARGET_SECONDARY_RELOAD): Target macro defined.
8670         * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
8671         SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
8672         * config/s390/s390.md ("reload_outti", "reload_outdi",
8673         "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
8674         "reload_out<mode>"): Expanders removed.
8675         ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
8676         "reload<mode>_nonoffmem_out"): Expanders added.
8677
8678 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
8679
8680         * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if
8681         SRC->DEST replacement failed anyway.
8682
8683 2007-03-28  Mike Stump  <mrs@apple.com>
8684
8685         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
8686         * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
8687         * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
8688
8689 2007-03-28  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
8690
8691         * config.gcc: Accept barcelona as a variant of amdfam10.
8692         * config/i386/i386.c (override_options): Likewise.
8693         * doc/invoke.texi: Likewise.
8694
8695 2007-03-28  Eric Botcazou  <ebotcazou@adacore.com>
8696
8697         * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
8698         offsets for BIT_FIELD_REF and COMPONENT_REF.
8699
8700 2007-03-28  Richard Guenther  <rguenther@suse.de>
8701
8702         * tree.c (is_global_var): Move ...
8703         * tree-flow-inline.h (is_global_var): ... here.
8704         * tree.h (is_global_var): Remove declaration.
8705
8706 2007-03-28  Uros Bizjak  <ubizjak@gmail.com>
8707
8708         * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
8709         option.
8710         (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
8711         * config/i386/i386.c (ix86_tune_features): Initialize new
8712         tuning option.
8713         * config/i386/predicates.md (promotable_binary_operator): Use
8714         TARGET_TUNE_PROMOTE_HIMODE_IMUL.
8715
8716 2007-03-28  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
8717
8718         PR target/31380
8719         * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
8720
8721 2007-03-28  Lars Poeschel <larsi@wh2.tu-dresden.de>
8722
8723         * config/fr30/fr30.md (movsi_internal): Change destination
8724         constraint from m to V and add m to the end.
8725
8726 2007-03-28  Christian Bruel  <christian.bruel@st.com>
8727
8728         * config/sh/sh.md (movsi_i): Fix type attribute.
8729
8730 2007-03-28  Christian Bruel  <christian.bruel@st.com>
8731
8732         * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
8733         (movsf_ie): Likewise.
8734
8735 2007-03-28  Christian Bruel  <christian.bruel@st.com>
8736
8737         * config.gcc: Add sh4-300 to multilib.
8738         * config/sh/t-mlib-sh4-300: New file.
8739
8740 2007-03-28  Andreas Krebbel  <krebbel1@de.ibm.com>
8741
8742         * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
8743         ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
8744         fix_trunc<mode>di2.
8745         ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
8746         fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
8747         ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
8748         "fixuns_trunctddi2"): Whitespace fix.
8749
8750 2007-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
8751
8752         * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
8753         the definition of struct sh_args.
8754         (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
8755         CALL_COOKIE_INT_REG_GET): Likewise.
8756
8757 2007-03-28  Steven Bosscher  <steven@gcc.gnu.org>
8758
8759         * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
8760         transformations are applied successfully.
8761
8762 2007-03-27  Douglas Gregor  <doug.gregor@gmail.com>
8763
8764         * tree.c (tree_contains_struct): Permit 512 tree codes.
8765         * tree.h (tree_contains_struct): Ditto.
8766         (MAX_TREE_CODES): Ditto.
8767         (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
8768         SPARE member to store remaining padding bits.
8769
8770 2007-03-27  Anatoly Sokolov <aesok@post.ru>
8771
8772         * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
8773         architecture.
8774
8775 2007-03-27  Janis Johnson  <janis187@us.ibm.com>
8776
8777         * configure.ac: Fix assembler test for powerpc*-linux decimal float.
8778         * configure: Regenerate.
8779
8780         * configure: Regenerate using the correct version of autoconf.
8781
8782 2007-03-27  Anatoly Sokolov  <aesok@post.ru>
8783
8784         * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
8785         pointer regs.
8786         * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
8787         regs to "__SP_L__" and "__SP_H__".
8788
8789 2007-03-27  Richard Guenther  <rguenther@suse.de>
8790
8791         * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
8792         computations with it with a HOST_WIDE_INT variable.
8793
8794 2007-03-26  Mike Stump  <mrs@apple.com>
8795
8796         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
8797         objective-c-header, objective-c++-header and objc++-cpp-output
8798         support.
8799         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
8800
8801 2007-03-26  Richard Henderson  <rth@redhat.com>
8802
8803         PR target/31361
8804         * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
8805         IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
8806         IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
8807         IX86_BUILTIN_PSRLQ128): New.
8808         (ix86_init_mmx_sse_builtins): Add them.
8809         (ix86_expand_builtin): Expand them.
8810         * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
8811         operand 2 be TImode.
8812         * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
8813         _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
8814         _mm_srli_epi64): Mark __B const.
8815         (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
8816         (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
8817         _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
8818         new two-vector shift builtins.
8819
8820 2007-03-26  Ian Lance Taylor  <iant@google.com>
8821
8822         PR tree-optimization/31345
8823         * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
8824         [+INF, +INF(OVF)] into VARYING.
8825
8826 2007-03-26  Zack Weinberg  <zackw@panix.com>
8827
8828         * gengtype-parse.c: New file.
8829         * gengtype-yacc.y: Delete.
8830         * gengtype-lex.l: Don't include gengtype-yacc.h.
8831         Define YY_DECL and yyterminate appropriately for recursive
8832         descent parser.  yylval is now a string out-parameter to yylex.
8833         (HWS, EOID): New shorthand.
8834         (IWORD): Add a couple more types.
8835         (yylex): Add a setup stanza.  Remove the complex rules for
8836         detecting GTY'ed types and typedefs; replace with simple
8837         keyword detectors.  Adjust everything for the changed
8838         definition of yylval.  Ignore all pp-directives, not just #define.
8839         (yyerror): Delete.
8840         (parse_file): Rename yybegin; do not call yyparse.
8841         (yyend): New.
8842         * gengtype.c (xasprintf): Export again.
8843         (this_file): New.  Use everywhere __FILE__ was being used.
8844         (get_lang_bitmap): Special case types defined in gengtype.c.
8845         (do_typedef, new_structure): Suppress definition of certain types.
8846         (new_structure): Improve diagnostics of duplicate definitions.
8847         Make sure location_s is associated with input.h.
8848         (nreverse_pairs, define_location_structures): New functions.
8849         (main): Improve tagging of kludge types.  Remove old kludges
8850         for input.h types; use define_location_structures.
8851         * gengtype.h: Update prototypes.  Define token codes here.
8852         * Makefile.in: Remove all references to gengtype-yacc.
8853         Add rules for gengtype-parse.o.  Adjust rules for gengtype-lex.o
8854         and gengtype.
8855         * bitmap.h (struct bitmap_head_def): Coalesce definitions,
8856         add GTY((skip)) to the field that's only conditionally there.
8857         * doc/install.texi: Document that Bison is no longer required
8858         unless building treelang.
8859
8860         * gengtype.c: Don't include gtyp-gen.h.
8861         (srcdir): Declare here.
8862         (base_files, lang_dir_names): Allocate dynamically.
8863         (gt_files, num_gt_files, num_lang_dirs): New globals.
8864         (measure_input_list, read_input_line, read_input_list)
8865         (set_lang_bitmap): New functions.
8866         (get_base_file_bitmap): Rename get_lang_bitmap and drastically
8867         simplify, relying on read_input_list to set up the bitmaps.
8868         (main): Arguments are no longer unused.  Check for correct number
8869         of command line arguments, set srcdir and srcdir_len, then call
8870         read_input_list, before doing anything else.  No need to worry
8871         about duplicates in main loop.
8872         * configure.ac: Simplify the calculation of all_gtfiles.
8873         Put language tags in there.  Don't set or substitute
8874         all_gtfiles_files_langs or all_gtfiles_files_frags.
8875         * Makefile.in: Revamp the way gengtype is invoked, now that it
8876         takes a file on its command line with a much simpler format.
8877         Remove or replace with gtyp-input.list all references to gtyp-gen.h.
8878         (GTFILES): Remove duplicates and C source files.
8879         * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
8880         * objcp/config-lang.in: Add c-pragma.h to gtfiles.
8881         * configure: Regenerate.
8882
8883         * gengtype.h: Remove all type definitions to gengtype.c; leave
8884         only definitions of options_p, type_p, and pair_p as opaque
8885         pointers.  Update prototypes.
8886         * gengtype.c: Many type definitions moved here from gengtype.h.
8887         Consolidate type definitions at the top of the file.
8888         (xvasprintf): Delete.
8889         (xasprintf): Make static.
8890         (create_nested_pointer_option): Add 'next' parameter.
8891         (create_field_all, create_field_at): New functions.
8892         (create_field): Now a thin wrapper around create_field_all.
8893         (create_optional_field): Rename create_optional_field_ and add
8894         line argument.  Original name is now a macro which supplies
8895         __LINE__.
8896         (oprintf): Use vsnprintf directly.
8897         (close_output_files): Use fatal rather than perror/exit.
8898         (note_def_vec, note_def_vec_alloc): Use create_field_at.
8899         (main): Set progname.  Don't use exit.
8900         * gengtype-yacc.y (struct_fields): Use create_field_at.
8901         (option, optionseqopt): Delete.
8902         (optionseq): Consolidate productions from option here so we
8903         can use the first argument to create_option.
8904
8905         * gengtype-lex.l: Distinguish unions from structures in the
8906         token type.  Don't call find_structure; return the tag as a string.
8907         * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and ENT_UNION.
8908         Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is string.
8909         Reorganize typedef_struct production accordingly.
8910         Use create_nested_ptr_option.
8911         * gengtype.c (create_nested_ptr_option): New function.
8912         * gengtype.h: Declare it.
8913
8914         * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
8915         (string_type): Don't declare.
8916         (do_scalar_typedef): Declare.
8917         (create_scalar_type): Update prototype.
8918         * gengtype.c (string_type): Make static.
8919         (scalar_nonchar, scalar_char): New.
8920         (do_scalar_typedef): Export.  Always use scalar_nonchar for the type.
8921         (resolve_typedef): Use scalar_nonchar for error recovery.
8922         (create_scalar_type): Remove name_len field.  Return scalar_char
8923         or scalar_nonchar as appropriate.
8924         (adjust_field_type): Look at scalar_is_char boolean to decide whether
8925         to use string_type.
8926         (throughout): Use scalar_nonchar instead of calling create_scalar_type,
8927         whenever possible.
8928         (main): Initialize scalar_char and scalar_nonchar before calling
8929         gen_rtx_next.
8930         * gengtype-lex.l: Adjust for removal of second argument to
8931         create_scalar_type.  Use yylval.s instead of yylval.t when
8932         returning SCALAR.
8933         * gengtype-yacc.y: Type of SCALAR is string.  Call
8934         create_scalar_type from type:SCALAR rule.  Adjust for removal of
8935         second argument to create_scalar_type.
8936
8937         * vec.h: Remove all #if IN_GENGTYPE blocks.
8938         Add comment saying that changes may require adjustments to gengtype.
8939         * gengtype.c: Don't include coretypes.h or tm.h.
8940         Add comment to inclusion of errors.h.
8941         (note_def_vec, note_def_vec_alloc): New functions.
8942         * gengtype.h: Declare new functions.
8943         * gengtype-lex.l: Don't include coretypes.h.
8944         (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
8945         Delete.
8946         (update_lineno): Remove unnecessary prototype.
8947         (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
8948         (VEC rule): Just return VEC_TOKEN.
8949         * gengtype-yacc.y (VEC_TOKEN): New token type.
8950         (type): Add a production for VEC(a,b).
8951         * Makefile.in: Update dependencies.
8952
8953         * gengtype-lex.l: Remove rules for parsing pointer-to-function
8954         typedefs that use the old PARAMS macro.
8955
8956         * gengtype-lex.l: Remove all rules and states relating to yacc
8957         input files.
8958         * gengtype-yacc.y: Similarly.
8959         * gengtype.c (note_yacc_type): Delete function.
8960         * gengtype.h: Update prototypes.
8961
8962 2007-03-26  Joseph Myers  <joseph@codesourcery.com>
8963
8964         * tree-pretty-print.c (dump_generic_node): Report precision of
8965         unnamed integer types.
8966
8967 2007-03-26  Steven Bosscher  <steven@gcc.gnu.org>
8968
8969         * ifcvt.c (noce_try_store_flag_constants): Don't check
8970         no_new_pseudos here.
8971         (noce_try_store_flag_constants): Don't check no_new_pseudos.
8972         (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
8973         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
8974         noce_try_sign_mask): Likewise.
8975         (if_convert): Check no_new_pseudos here.
8976
8977         (cond_exec_process_if_block, noce_process_if_block, find_if_block):
8978         Remove prototypes.
8979         (struct noce_if_info): Add then_bb, else_bb, join_bb members.
8980         (noce_get_condition): Handle new then_else_reversed argument.
8981         (noce_init_if_info): Remove, fold into noce_find_if_block.
8982         (noce_process_if_block): Take a struct noce_if_info as the
8983         argument.  Don't set up one based on ce_if_info.  Update pointer
8984         references accordingly.
8985         (cond_move_process_if_block): Likewise.
8986         (process_if_block): Removed.
8987         (find_if_block): Removed.  Move functionality two new functions,
8988         noce_find_if_block and cond_exec_find_if_block.
8989         (noce_find_if_block): New function.  Be aware of IF-THEN-JOIN
8990         blocks and the symmetric IF-ELSE-JOIN case.
8991         (cond_exec_find_if_block): Also new function mostly based on old
8992         find_if_block and process_if_block.
8993         (find_if_header): Replace find_if_block call with separately
8994         guarded calls to noce_find_if_block and cond_exec_find_if_block.
8995         (find_cond_trap): Update noce_get_condition call.
8996         (dead_or_predicable): Likewise.
8997
8998 2007-03-26  Jakub Jelinek  <jakub@redhat.com>
8999
9000         * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
9001         Remove.
9002         (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
9003         IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
9004         IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
9005         (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
9006         v4si_ftype_v4si_v2di.  Remove __builtin_ia32_psllw128,
9007         __builtin_ia32_pslld128, __builtin_ia32_psllq128,
9008         __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
9009         __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
9010         __builtin_ia32_psrad128 builtins.
9011
9012 2007-03-26  Uros Bizjak  <ubizjak@gmail.com>
9013
9014         * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
9015         * config/i386/constraints.md
9016         (define_constraint "I"): Use IN_RANGE macro.
9017         (define_constraint "J"): Ditto.
9018         (define_constraint "K"): Ditto.
9019         (define_constraint "M"): Ditto.
9020         (define_constraint "N"): Ditto.
9021         (define_constraint "O"): Ditto.
9022         * config/i386/predicates.md
9023         (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
9024         (define_predicate "const_0_to_3_operand"): Ditto.
9025         (define_predicate "const_0_to_7_operand"): Ditto.
9026         (define_predicate "const_0_to_15_operand"): Ditto.
9027         (define_predicate "const_0_to_63_operand"): Ditto.
9028         (define_predicate "const_0_to_255_operand"): Ditto.
9029         (define_predicate "const_1_to_31_operand"): Ditto.
9030         (define_predicate "const_2_to_3_operand"): Ditto.
9031         (define_predicate "const_4_to_7_operand"): Ditto.
9032
9033 2007-03-25  David Edelsohn  <edelsohn@gnu.org>
9034
9035         * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
9036         in SImode for save_world.
9037         * config/rs6000/altivec.md (save_world, restore_world): Convert to
9038         LR hard reg.
9039
9040 2007-03-25  Dorit Nuzman  <dorit@il.ibm.com>
9041
9042         PR tree-optimization/30784
9043         * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
9044         BIT_FIELD_REF.
9045
9046 2007-03-25  Revital Eres  <eres@il.ibm.com>
9047
9048         * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
9049           Fold movement_possibility function into it.
9050
9051 2007-03-25  David Edelsohn  <edelsohn@gnu.org>
9052
9053         * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
9054         (load_macho_picbase_{si,di}): Convert to LR hard reg.
9055         (call_indirect_nonlocal_darwin64): Same.
9056         (call_nonlocal_darwin64): Same.
9057         (call_value_indirect_nonlocal_darwin64): Same.
9058         (call_value_nonlocal_darwin64): Same.
9059         (sibcall_nonlocal_darwin64): Same.
9060         (sibcall_value_nonlocal_darwin64): Same.
9061         (sibcall_symbolic_64): Same.
9062         (sibcall_value_symbolic_64): Same.
9063         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
9064         LR pseudo.
9065         (rs6000_emit_load_toc_table): Same.
9066         * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
9067         * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
9068         (mull_call): Same.
9069         (divss_call): Same.
9070         (divus_call): Same.
9071         (quoss_call): Same.
9072         (quous_call): Same.
9073         (load_toc_v4_pic_si): Same
9074         (load_toc_v4_PIC_1): Same.
9075         (load_toc_v4_PIC_1b): Same.
9076         (call_indirect_aix{32,64}): Same.
9077         (call_value_indirect_aix{32,64}): Same.
9078         (call): Same.
9079         (call_value): Same.
9080         (call_local{32,64}): Same.
9081         (call_value_local{32,64}): Same.
9082         (call_indirect_nonlocal_aix{32,64}): Same.
9083         (call_nonlocal_aix{32,64}): Same.
9084         (call_value_indirect_nonlocal_aix{32,64}): Same.
9085         (call_value_nonlocal_aix{32,64}): Same.
9086         (call_indirect_nonlocal_sysv<mode>): Same.
9087         (call_nonlocal_sysv<mode>): Same.
9088         (call_value_indirect_nonlocal_sysv<mode>): Same.
9089         (call_value_nonlocal_sysv<mode>): Same.
9090         (sibcall): Same.
9091         (sibcall_local{32,64}): Same.
9092         (sibcall_value_local{32,64}): Same.
9093         (sibcall_nonlocal_aix{32,64}): Same.
9094         (sibcall_value_nonlocal_aix{32,64}): Same.
9095         (sibcall_nonlocal_sysv<mode>): Same.
9096         (sibcall_value): Same.
9097         (sibcall_value_nonlocal_sysv<mode>): Same.
9098
9099 2007-03-24  Paul Brook  <paul@codesourcery.com>
9100
9101         * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
9102         * config/arm/linux-eabi.h: Remove legacy syscall hack.
9103
9104 2007-03-24  Richard Henderson  <rth@redhat.com>
9105
9106         * config/ia64/constraints.md: New file.
9107         * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
9108         satisfies_constraint_?.
9109         * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
9110         ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
9111         ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
9112         ia64_output_mi_thunk): Likewise.
9113         (ia64_const_ok_for_letter_p): Remove.
9114         (ia64_const_double_ok_for_letter_p): Remove.
9115         (ia64_extra_constraint): Remove.
9116         * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
9117         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
9118         CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
9119         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
9120         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
9121         EXTRA_MEMORY_CONSTRAINT): Remove.
9122         * config/ia64/ia64.md: Include constriants.md.  Replace
9123         CONST_OK_FOR_? with satisfies_constraint_?.
9124
9125 2007-03-23  Michael Meissner  <michael.meissner@amd.com>
9126             H.J. Lu  <hongjiu.lu@intel.com>
9127
9128         * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
9129         DPD or BID name.
9130         (name macros): Use DPD_BID_NAME to convert names properly.
9131
9132         * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
9133         decimal floating point format.
9134         (init_floating_libfuncs): Change decimal functions so that they
9135         have a "bid_" prefix if the decimal system uses the BID format,
9136         and "dpd_" prefix if the decimal system uses the DPD format.
9137         (init_interclass_conv_libfuncs): Ditto.
9138         (init_intraclass_conv_libfuncs): Ditto.
9139
9140         * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
9141         using the BID format.
9142
9143         * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
9144         whether we are using the BID decimal format.
9145         * configure: Regenerate.
9146
9147         * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
9148         the compiler has decimal floating point enabled.  Define
9149         __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
9150         instead of DPD.
9151
9152         * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
9153         using the BID format.
9154
9155         * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
9156         whether we are using the BID decimal format.
9157         * configure: Regenerate.
9158
9159         * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
9160         the compiler has decimal floating point enabled.  Define
9161         __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
9162         instead of DPD.
9163
9164         * doc/install.texi (--enable-decimal-float): Document BID and DPD
9165         options, and that it is enabled for i386/x86_64 systems.
9166
9167         * Makefile.in (enable_decimal_float): New.
9168         (DECNUMFMT): New.
9169         (DECNUMINC): Add  -I$(DECNUMFMT).
9170         (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
9171         to $(DECNUMFMT) from $(DECNUM).
9172
9173         * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
9174         Substitute enable_decimal_float.
9175         * configure: Regenerated.
9176
9177         PR other/30529
9178         * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
9179         unsigned long.
9180
9181         * configure.ac: Enable decimal float for x86_64-*-linux*.
9182         * configure: Regenerated.
9183
9184         PR other/30530
9185         * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
9186         decimal128ClearSign to flip and clear the sign bit in decimal128.
9187         (decimal_real_maxval): Set decimal128SetSign to set the sign
9188         bit in decimal128.
9189
9190 2007-03-23  Ian Lance Taylor  <iant@google.com>
9191
9192         * fold-const.c (fold_binary): Correct warning for X - c >= X.
9193
9194 2007-03-23  Ian Lance Taylor  <iant@google.com>
9195
9196         * tree-dump.c (dump_files): Correct comment.
9197
9198 2007-03-23  Ian Lance Taylor  <iant@google.com>
9199
9200         * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
9201
9202 2007-03-23  Steven Bosscher  <steven@gcc.gnu.org>
9203
9204         * tracer.c (tracer): Don't take FLAGS argument.  Assert we are
9205         in cfglayout mode.  Don't go into and out of cfglayout mode.
9206         Link the blocks in the order of the constructed traces.
9207         (rest_of_handle_tracer): Adjust call to tracer.
9208         * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
9209         Don't go into cfglayout mode.
9210         (rtl_loop_done): Don't go out of cfglayout mode.
9211         * cfglayout.c (relink_block_chain): New function, split out from...
9212         (fixup_reorder_chain): ...here.  Remove redundant checking.
9213         (cfg_layout_finalize): Don't clear the header, footer, and aux
9214         fields here, move the code to do so to relink_block_chain.  Likewise
9215         for free_original_copy_tables.
9216         * rtl.h (tracer): Update prototype.
9217         * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
9218         Assert we are in cfglayout mode.  Don't go into and out of cfglayout
9219         mode.  Use relink_block_chain to serialize the CFG according to the
9220         new basic block order.  Move targetm.cannot_modify_jumps_p check from
9221         here...
9222         (gate_handle_reorder_blocks): ...to here.
9223         (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
9224         from here...
9225         (gate_duplicate_computed_gotos): ...to here.
9226         (rest_of_handle_reorder_blocks): Don't see if anything has changed,
9227         something always changes when going into and out of cfglayout mode.
9228         Perform an expensive cfg cleanup while going into cfglayout mode.
9229         Always update liveness information on HAVE_conditional_execution
9230         targets.  Reserialize the basic blocks and go out of cfglayout mode.
9231         * reg-stack.c: Include cfglayout.h.
9232         (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
9233         the call to reorder_basic_blocks.
9234         * basic-block.h (reorder_basic_blocks): Update prototype.
9235         (relink_block_chain): New prototype.
9236         * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
9237
9238 2007-03-23  Joseph Myers  <joseph@codesourcery.com>
9239
9240         * config/mips/mips.md (type, hazard, *movdi_32bit,
9241         *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
9242         *movhi_internal, *movqi_internal, *movsf_hardfloat,
9243         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
9244         movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
9245         mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
9246         applicable.
9247         (movcc): Change first xfer to multi.
9248         * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
9249         config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
9250         config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
9251         config/mips/generic.md: Change reservations using "xfer" to use
9252         "mfc,mtc".
9253         * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
9254         using match_operand.
9255         (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
9256         * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
9257         examining mode.
9258         (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
9259
9260 2007-03-22  Richard Henderson  <rth@redhat.com>
9261
9262         * config/i386/i386.c: Remove unnecessary function declarations.
9263         Move targetm definition, and all related macros, to the end of
9264         the file.  Resort some functions to put definitions before uses.
9265         (ix86_attribute_table): Make static.  Move to end of file.
9266         (ix86_gimplify_va_arg): Make static.
9267
9268 2007-03-22  Richard Henderson  <rth@redhat.com>
9269
9270         * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
9271         don't increase local_regparm with force_align_arg_pointer check.
9272         (ix86_function_sseregparm): Assert 32-bit.
9273         (type_has_variadic_args_p): New.
9274         (ix86_return_pops_args): Early exit for 64-bit.  Reindent; use
9275         type_has_variadic_args_p.
9276         (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
9277         (init_cumulative_args): Remove TARGET_DEBUG_ARG.  Remove zero_cum;
9278         use memset instead.  Do maybe_vaarg check first; skip attribute
9279         tests if true; skip attribute tests for 64-bit.
9280         (construct_container): Remove TARGET_DEBUG_ARG.
9281         (function_arg_advance_32, function_arg_advance_64): Split out ...
9282         (function_arg_advance): ... from here.
9283         (function_arg_32, function_arg_64): Split out ...
9284         (function_arg): ... from here.
9285         (ix86_pass_by_reference): Tidy.
9286         (ix86_function_value_regno_p): Rearrange w/ switch on regno.
9287         (function_value_32): New, from parts of ix86_function_value
9288         and ix86_value_regno.
9289         (function_value_64): New, from parts of ix86_function_value
9290         and ix86_libcall_value.
9291         (ix86_function_value_1): New.
9292         (ix86_function_value, ix86_libcall_value): Use it.
9293         (return_in_memory_32, return_in_memory_64): Split out ...
9294         (ix86_return_in_memory): ... from here.
9295         (ix86_struct_value_rtx): Skip for 64-bit.
9296         (ix86_libcall_value, ix86_value_regno): Remove.
9297         (setup_incoming_varargs_64): Split out ...
9298         (ix86_setup_incoming_varargs): ... from here.
9299         (ix86_va_start): Remove TARGET_DEBUG_ARG.
9300         (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
9301         * config/i386/i386-protos.h (ix86_function_value): Remove.
9302         * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
9303
9304 2007-03-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9305
9306         PR other/23572
9307         * c-lex.c (interpret_float): On overflow, emit pedantic warning if
9308         infinities not supported, otherwise emit warning if -Woverflow. On
9309         underflow, emit warning if -Woverflow.
9310         * real.c (real_from_string): Return -1 if underflow, +1 if overflow
9311         and 0 otherwise.
9312         * real.h (real_from_string): Update declaration
9313
9314 2007-03-22  Kai Tietz  <kai.tietz@onevision.com>
9315             Richard Henderson  <rth@redhat.com>
9316
9317         * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
9318         * calls.c (compute_argument_block_size, expand_call,
9319         emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
9320         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
9321         * function.c (STACK_DYNAMIC_OFFSET): Likewise.
9322         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
9323         * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
9324         config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
9325         config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
9326         config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
9327         Set to 1.
9328
9329 2007-03-22  Joseph Myers  <joseph@codesourcery.com>
9330
9331         * c-incpath.c (add_sysroot_to_chain): New.
9332         (merge_include_chains): Add sysroot argument.  Call
9333         add_sysroot_to_chain if sysrooted.
9334         (register_include_chains): Update call to merge_include_chains.
9335         * doc/cppopts.texi: Document use of '=' in include directory
9336         arguments.
9337
9338 2007-03-22  Uros Bizjak  <ubizjak@gmail.com>
9339
9340         * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
9341         Macroize expander using SSEMODEF mode macro.  Use SSE_FLOAT_MODE_P.
9342         (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
9343         insn pattern using X87MODEF12 mode macro.
9344
9345 2007-03-21  Seongbae Park <seongbae.park@gmail.com>
9346
9347         * regmove.c (regmove_optimize): Use reg_mentioned_p
9348         instead of reg_overlap_mentioned_p for DST.
9349
9350 2007-03-21  Mike Stump  <mrs@apple.com>
9351
9352         * c.opt: Fixup for Objective-C/C++.
9353
9354 2007-03-21  Steve Ellcey  <sje@cup.hp.com>
9355
9356         * explow.c (convert_memory_address): Fold memory reference when
9357         POINTERS_EXTEND_UNSIGNED < 0
9358
9359 2007-03-21  Richard Henderson  <rth@redhat.com>
9360
9361         PR target/31245
9362         * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
9363         * config/i386/mmintrin.h (__m64): Likewise.
9364         * config/i386/xmmintrin.h (__m128): Likewise.
9365
9366 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
9367
9368         * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
9369         (VXWORKS_OS_CPP_BUILTINS): Define.
9370         * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
9371         (TARGET_OS_CPP_BUILTINS): ...here.  Use VXWORKS_OS_CPP_BUILTINS.
9372
9373 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
9374
9375         * rtl.h (constant_pool_reference_p): Delete.
9376         (find_constant_src): Declare.
9377         * rtlanal.c (find_constant_src): New function.
9378         * simplify-rtx.c (constant_pool_reference_p): Delete.
9379         * config/i386/i386.md: Use find_constant_src instead of
9380         constant_pool_reference_p/avoid_constant_pool_reference pairs.
9381
9382 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
9383
9384         * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
9385         * c-cppbuiltin.c (c_cpp_builtins): Define them.
9386
9387 2007-03-20  Mark Mitchell  <mark@codesourcery.com>
9388
9389         * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
9390         * config/arm/arm.c (arm_elf_asm_cdtor): New function.
9391         (arm_elf_asm_constructor): Use it.
9392         (arm_elf_asm_destructor): New function.
9393
9394 2007-03-20  Bernd Schmidt  <bernd.schmidt@analog.com>
9395
9396         * jump.c (mark_jump_label): Treat SEQUENCE specially.
9397
9398 2007-03-20  Nathan Sidwell  <nathan@codesourcery.com>
9399
9400         * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
9401
9402 2007-03-19  Andrew Haley  <aph@redhat.com>
9403
9404         PR tree-optimization/31264
9405         * tree-vrp.c (register_edge_assert_for_1): Don't look though
9406         VIEW_CONVERT_EXPRs.
9407
9408 2007-03-19  Paolo Bonzini  <bonzini@gnu.org>
9409
9410         PR rtl-optimization/30907
9411         * fwprop.c (forward_propagate_into): Never propagate inside a loop.
9412         (fwprop_init): Always call loop_optimizer_initialize.
9413         (fwprop_done): Always call loop_optimizer_finalize.
9414         (fwprop): We always have loop info now.
9415         (gate_fwprop_addr): Remove.
9416         (pass_fwprop_addr): Use gate_fwprop as gate.
9417
9418         PR rtl-optimization/30841
9419         * df-problems.c (df_ru_local_compute, df_rd_local_compute,
9420         df_chain_alloc): Call df_reorganize_refs unconditionally.
9421         * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
9422         refs_organized to refs_organized_size.
9423         (df_ref_create_structure): Use refs_organized_size instead of
9424         bitmap_size if refs had been organized, and keep refs_organized_size
9425         up-to-date.
9426         * df.h (struct df_ref_info): Change refs_organized to
9427         refs_organized_size.
9428         (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
9429         bitmap_size.
9430
9431 2007-03-19  Mark Mitchell  <mark@codesourcery.com>
9432
9433         * except.c (output_function_exception_table): Do not reference the
9434         EH personality routine for functions that do not require an
9435         exception table.
9436
9437 2007-03-20  Jakub Jelinek  <jakub@redhat.com>
9438
9439         PR c/30762
9440         * c-typeck.c (convert_for_assignment): Call comptypes for
9441         RECORD_TYPE or UNION_TYPE.
9442
9443         PR inline-asm/30505
9444         * reload1.c (reload): Do invalid ASM checking after
9445         cleanup_subreg_operands.
9446
9447 2007-03-19  Jeff Law  <law@redhat.com>
9448
9449         * tree-cfg.c (find_taken_edge): Tighten conditions for
9450         optimizing computed gotos.
9451
9452 2007-03-19  Michael Matz  <matz@suse.de>
9453
9454         * builtins.c (expand_builtin_sync_operation,
9455         expand_builtin_compare_and_swap,
9456         expand_builtin_lock_test_and_set): Care for extending CONST_INTs
9457         correctly.
9458
9459         * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
9460         sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
9461         for operand 3.
9462
9463 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
9464
9465         * doc/tm.texi: Add brackets around the return type of
9466         TARGET_SECONDARY_RELOAD.
9467
9468 2007-03-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9469         Richard Guenther  <rguenther@suse.de>
9470
9471         PR tree-optimization/31254
9472         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
9473         Use handled_component_p () where appropriate.  Continue
9474         propagating into the rhs if we propagated into an INDIRECT_REF
9475         on the lhs.
9476
9477 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
9478
9479         * config/s390/s390.md (op_type attribute): RRR instruction type added.
9480         (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
9481         (xde, xdee): Mode attributes adjusted to support DFP modes.
9482         (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
9483         ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
9484         DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
9485         "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
9486         "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
9487         "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
9488         "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
9489         numbers.
9490         ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
9491         "movsf"): Insn definitions removed.
9492         ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
9493         "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
9494         "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
9495         definitions added.
9496         ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
9497         "reload_in<mode>", "reload_out<mode>"): Expander added.
9498         ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
9499         Expander removed.
9500
9501 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
9502
9503         * config/s390/s390.md: Only non-functional changes.  Renamed
9504         FPR mode macro to BFP all over the file.
9505
9506 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
9507
9508         * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
9509         (op_type attribute): RRF instruction type added.
9510         (fT0): New mode attribute.
9511         ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
9512         "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
9513         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new instruction
9514         no secondary memory is needed when moving DFmode values between GPRs
9515         and FPRs.
9516
9517 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
9518
9519         * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
9520         inverted and documentation adjusted.
9521         ("mhard-dfp", "msoft-dfp"): New options.
9522         * config/s390/s390.c (s390_handle_arch_option): New architecture
9523         switch: z9-ec.
9524         (override_options): Sanity checks for the new options added.
9525         * config.gcc: New architecture switch: z9-ec.
9526         * config/s390/s390.h (processor_flags): PF_DFP added.
9527         (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
9528         (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
9529         when the bit is NOT set so remove it from the defaults.
9530
9531 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
9532
9533         * genemit.c (main): Print include statement for dfp.h.
9534         * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
9535         is not available.
9536
9537 2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
9538
9539         * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
9540
9541 2007-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
9542
9543         PR target/31022
9544         * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
9545         instead of PATTERN.
9546
9547 2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9548
9549         * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
9550         attr_length_call, output_call, output_indirect_call): Cleanup
9551         formatting of targetm calls.
9552
9553 2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
9554
9555         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
9556
9557 2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9558
9559         * pa.md: Add fpstore_load and store_fpload instruction types.  Provide
9560         reservation, bypass and anti-bypass descriptions for these instructions.
9561         Update move patterns.
9562         * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
9563         TYPE_FPSTORE.
9564
9565 2007-03-18  Dorit Nuzman  <dorit@il.ibm.com>
9566
9567         * tree-vect-transform.c (get_initial_def_for_induction): Replace
9568         GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
9569         (get_initial_def_for_reduction): Likewise.
9570
9571 2007-03-16  Daniel Berlin  <dberlin@dberlin.org>
9572
9573         Fix PR tree-optimization/29922
9574         * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
9575         (get_representative): Removed.
9576         (value_dies_in_block_x): Update for rvuse removal.
9577         (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
9578         (compute_antic_aux): Handle when PHI nodes appear in
9579         non-single-successors.
9580         (dump_bitmap_of_names): Removed.
9581         (compute_antic_safe): Renamed and removed rvuse calculation.
9582         Calculate only antic safe.
9583         (insert_into_preds_of_block): Remove assert.
9584         (execute_pre): Update for renamed functions.
9585         (defer_or_phi_translate_block): New function.
9586
9587 2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
9588
9589         * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
9590         config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
9591         typos.
9592         * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
9593         Follow spelling conventions.
9594
9595         * tree-data-ref.h: Remove the prototype for analyze_array.
9596
9597 2007-03-17  Dorit Nuzman  <dorit@il.ibm.com>
9598
9599         PR tree-optimization/31041
9600         * tree-vect-transform.c (get_initial_def_for_induction): Call
9601         force_gimple_operand.
9602
9603 2007-03-17  Olga Golovanevsky  <olga@il.ibm.com>
9604
9605         * ipa-type-escape.c (look_for_casts) : Revert code to use
9606         handled_component_p due to ada test a-numaux.adb.
9607
9608 2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
9609
9610         * final.c (final_scan_insn): Alter the condition of a
9611         conditional trap if we have nonstandard CC.
9612
9613 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
9614
9615         * configure.ac: Remove excess quoting from asm line 0 test.
9616         * configure: Rebuilt.
9617
9618 2007-03-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9619
9620         * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
9621         * c-common.c (convert_and_check): Move warning logic to...
9622         (warnings_for_convert_and_check): ...here. Define.
9623         * c-common.h (warnings_for_convert_and_check): Declare.
9624
9625 2007-03-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9626
9627         * pa.c (attr_length_call): Partially revert change of 2007-03-09.
9628         (output_call): Likewise.
9629
9630 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
9631
9632         * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
9633
9634 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
9635
9636         * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
9637
9638 2007-03-16  Uros Bizjak  <ubizjak@gmail.com>
9639
9640         * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
9641         opteron, athlon-64 and athlon-fx processor_alias_table entries.
9642
9643 2007-03-16  Sebastian Pop  <sebastian.pop@inria.fr>
9644
9645         PR tree-optimization/31183
9646         * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
9647         Use double_int instead of unsigned int for representing access_strides.
9648         * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
9649
9650 2007-03-16  Richard Guenther  <rguenther@suse.de>
9651
9652         PR tree-optimization/31146
9653         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
9654         to allow recursion of forward_propagate_addr_expr.
9655         (forward_propagate_addr_into_variable_array_index): Likewise.
9656         (forward_propagate_addr_expr): Likewise.
9657         (tree_ssa_forward_propagate_single_use_vars): Likewise.
9658         (forward_propagate_addr_expr_1): Recurse on simple copies
9659         instead of propagating into them.  Do so for useless conversions
9660         as well.
9661         (forward_propagate_addr_expr): Clean up unused statements after
9662         recursion.
9663
9664 2007-03-16  Richard Guenther  <rguenther@suse.de>
9665
9666         * builtins.c (expand_builtin_cexpi): Use the right argument
9667         for the expansion via cexp.
9668
9669 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
9670
9671         * configure.ac: Don't require ELF binutils to tolerate # 0 "".
9672         * configure: Rebuilt.
9673
9674 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
9675
9676         PR debug/29906
9677         * dwarf2out.c (force_type_die): Adjust comment.
9678         (dwarf2out_imported_module_or_decl): Handle base AT_import types.
9679
9680 2007-03-15  DJ Delorie  <dj@redhat.com>
9681
9682         * config/frv/predicates.md (minmax_operator): Don't check operands
9683         here.
9684
9685 2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>
9686
9687         * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
9688         Update constant estimates of number of iterations.
9689         (record_nonwrapping_iv): Add "upper" argument.  "data_size_bounds_p"
9690         argument renamed to "realistic".
9691         (compute_estimated_nb_iterations): Removed.
9692         (record_niter_bound): New function.
9693         (idx_infer_loop_bounds): For possible but unlikely tail arrays,
9694         call record_nonwrapping_iv with upper = false.
9695         (infer_loop_bounds_from_signedness): Pass upper argument to
9696         record_nonwrapping_iv.
9697         (estimate_numbers_of_iterations_loop): Do not call
9698         compute_estimated_nb_iterations.  Record estimate based on profile
9699         information.  Initialize the constant estimates of number of
9700         iterations.
9701         * tree-data-ref.c (estimated_loop_iterations): Return the recorded
9702         estimates.
9703         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
9704         number of iterations is too small.
9705         * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
9706         (EST_NOT_AVAILABLE): Removed.
9707         (struct loop): Replace estimated_nb_iterations by any_upper_bound,
9708         nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
9709         fields.
9710
9711 2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>
9712
9713         * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
9714         Handle NE_EXPR guards.
9715
9716 2007-03-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9717
9718         PR c++/24924
9719         * c-opts.c (c_common_post_options): Handle C++ post-processing here.
9720         Set also -pedantic-errors by default for the  preprocessor unless
9721         -fpermissive is given.
9722
9723 2007-03-15  Richard Guenther  <rguenther@suse.de>
9724
9725         PR middle-end/29719
9726         PR middle-end/31161
9727         * builtins.c (expand_builtin_cexpi): As a fallback if we
9728         don't have builtins for sincos or cexp create a function
9729         declaration for cexp and expand to a call to that.
9730         (expand_builtin_int_roundingfn): Always fall
9731         back to floor/ceil and its variants even if they may be
9732         not available.
9733
9734 2007-03-15  Steven Bosscher  <steven@gcc.gnu.org>
9735
9736         PR middle-end/31159
9737         * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
9738         jump tables, move the call to delete_dead_jumptables from here...
9739         (cfg_layout_finalize): ...to here.  But rebuild jump labels first.
9740         * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
9741         don't allow merging of blocks that try_redirect_by_replacing_jump
9742         also does not handle when not optimizing.
9743
9744 2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
9745             Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9746
9747         * config/i386/i386.md (x86_sahf_1): Correctly handle
9748         HAVE_AS_IX86_SAHF.
9749
9750 2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
9751
9752         PR target/31167
9753         * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
9754         x86_64_general_operand as operand[2] predicate.  Remove "iF"
9755         from operand constraints and use "e" constraint instead.
9756         (*subti3_1, *subti3_1 splitter): Ditto.
9757         (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
9758         operand[1] predicate.
9759
9760 2007-03-14  Sebastian Pop  <sebastian.pop@inria.fr>
9761
9762         * tree-loop-linear.c (gather_interchange_stats): For multidimensional
9763         arrays, multiply the access strides by the size of the sub-array.
9764         * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
9765
9766 2007-03-14  Uros Bizjak  <ubizjak@gmail.com>
9767
9768         * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
9769         the configured assembler supports the sahf mnemonic.
9770         * configure: Regenerate.
9771         * config.in: Regenerate.
9772
9773         * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
9774         emit "sahf" or ".byte\t0x9e" as asm template.
9775
9776 2007-03-14  Michael Meissner  <michael.meissner@amd.com>
9777
9778         PR 31018
9779         * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
9780         option to replace hard coded TARGET_xxx in md file.
9781         (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
9782         (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
9783         (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
9784         (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
9785         (X86_TUNE_NOT_UNPAIRABLE): Ditto.
9786         (X86_TUNE_NOT_VECTORMODE): Ditto.
9787         (TUNE_SHORTEN_X87_SSE): Use new tuning option.
9788         (TUNE_AVOID_VECTOR_DECODE): Ditto.
9789         (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
9790         (TUNE_SLOW_IMUL_IMM8): Ditto.
9791         (TUNE_MOVE_M1_VIA_OR): Ditto.
9792         (TUNE_NOT_UNPAIRABLE): Ditto.
9793         (TUNE_NOT_VECTORMODE): Ditto.
9794
9795         * config/i386/i386.c (ix86_tune_features): Fill in new tuning
9796         options.
9797
9798         * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
9799         tuning options instead of hard coded TARGET_xxx.
9800         (fix ssemode peephole2's): Ditto.
9801         (imul peephole2's): Ditto.
9802         (movsi_or): Ditto.
9803         (movdi_or_rex64): Ditto.
9804         (move peephole2): Ditto.
9805         (not peephole2's): Ditto.
9806
9807 2007-03-14  Dirk Mueller  <dmueller@suse.de>
9808
9809         * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
9810         * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
9811         * c-parser.c (c_parser_if_body): Always add an empty statement in case
9812         of empty body.
9813         * c-parser.c (c_parser_do_statement): Warn about empty body in
9814         do/while statement.
9815         * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
9816         * doc/invoke.texi (-Wempty-body): Update documentation.
9817
9818 2007-03-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9819
9820         PR c/21438
9821         * c-common.h (warn_for_div_by_zero): Declare.
9822         * c-common.c (warn_for_div_by_zero): Define.
9823         * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
9824         warning.
9825
9826 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
9827
9828         * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
9829         to PREFIX and STANDARD_PREFIX.
9830
9831 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
9832             Phil Edwards  <phil@codesourcery.com>
9833
9834         * gthr-vxworks.h: Add an extern "C" wrapper for C++.
9835         (__gthread_once_t): Remove busy field for RTPs.
9836         (__GTHREAD_ONCE_INIT): Update accordingly.
9837
9838 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
9839
9840         * doc/invoke.texi: Document VxWorks options.
9841
9842 2007-03-14  Uros Bizjak  <ubizjak@gmail.com>
9843
9844         * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
9845
9846 2007-03-13  Seongbae Park <seongbae.park@gmail.com>
9847
9848         PR tree-optimization/30590
9849         * tree-nrv.c (tree_nrv): Check for the partial update of the
9850         return value.
9851
9852 2007-03-13  Alexandre Oliva  <aoliva@redhat.com>
9853
9854         * flags.h (flag_random_seed): Remove declaration, in favor of...
9855         * toplev.h (get_random_seed, set_random_seed): ... these.
9856         * tree.c (get_file_function_name): Use the former.
9857         * opts.c (common_handle_option): Use the latter.
9858         * toplev.c
9859
9860 2007-03-13  Steven Bosscher  <steven@gcc.gnu.org>
9861
9862         PR middle-end/31127
9863         * cse.c (cse_find_path): Do not bail out if a basic block that
9864         we already visited now becomes part of a path that starts at a
9865         different basic block.  Just disallow this, to make sure we
9866         visit each basic block at most once.
9867
9868 2007-03-13  Jan Hubicka  <jh@suse.cz>
9869
9870         * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold attributes,
9871         when profile esitmate is present, calls with very low frequency are
9872         cold.
9873
9874 2007-03-13  Zdenek Dvorak  <dvorakz@suse.cz>
9875
9876         PR tree-optimization/30730
9877         PR tree-optimization/26900
9878         * tree-ssa-loop-niter.c: Include gmp.h.
9879         (bounds): New type.
9880         (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
9881         split_to_var_and_offset, determine_value_range,
9882         bound_difference_of_offsetted_base, refine_bounds_using_guard,
9883         bound_difference, bounds_add, bounds_negate,
9884         number_of_iterations_ne_max, dump_affine_iv): New functions.
9885         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
9886         assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
9887         difference of initial and final value of control iv to validate
9888         results.
9889         (number_of_iterations_cond): Add loop parameter.  Determine bounds
9890         on the difference of the extremes of the control iv.  Add dumps.
9891         (expand_simple_operations): Handle phi nodes.
9892         (simplify_using_initial_conditions): Do not record used conditions.
9893         (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
9894         Do not set additional_info.
9895         (implies_nonnegative_p, implies_ge_p): Removed.
9896         (derive_constant_upper_bound): Do not use parameter `additional'.
9897         (record_estimate): Parameter `additional' removed.  Parameter
9898         `i_bound' added.  Do not call derive_constant_upper_bound.
9899         (record_nonwrapping_iv): Use derive_constant_upper_bound to
9900         bound the number of iterations estimate.
9901         (estimate_numbers_of_iterations_loop): Pass the estimate from
9902         the number of iterations analysis to record_estimate.
9903         * tree.h (multiple_of_p): Declare.
9904         * tree-scalar-evolution.c (expression_expensive_p): Removed.
9905         (scev_const_prop): Do not check expression_expensive_p.
9906         * fold-const.c (multiple_of_p): Exported.
9907         * double-int.c (double_int_mask): Exported.
9908         * double-int.h (double_int_mask): Declare.
9909         * tree-flow.h (struct tree_niter_desc): Removed additional_info
9910         field.  Added max field.
9911
9912 2007-03-13  David Taylor  <taylor@candd.org>
9913
9914         PR driver/12448:
9915         * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
9916         default -MQ.
9917
9918 2007-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9919
9920         PR target/31123
9921         * pa.md (vdepi_ior): Don't allow zero length deposit.  Likewise for
9922         two unamed patterns.
9923
9924 2007-03-13  Uros Bizjak  <ubizjak@gmail.com>
9925
9926         * config/i386/i386.opt (mcx16, msahf): New options.
9927         * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
9928         (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
9929
9930         * config/i386/driver-i386.c (bit_LAHF_LM): New define.
9931         (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
9932         Output -mcx16 and -msahf options when corresponding bit is set.
9933
9934         * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
9935         and -msahf options.
9936
9937 2007-03-13  Alexandre Oliva  <aoliva@redhat.com>
9938
9939         * configure.ac: Test for assembler tolerance to # 0 "".
9940         * configure, config.in: Rebuilt.
9941         * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
9942
9943 2007-03-13  Geoffrey Keating  <geoffk@apple.com>
9944
9945         * doc/invoke.texi (Spec Files): Update for '%{,' spec.
9946
9947         * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
9948         (handle_syscall): Handle direct system calls.
9949         * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
9950
9951 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
9952
9953         * doc/invoke.texi: Fix cpp.info cross-reference.
9954         * doc/passes.texi: Fix gcc.info cross-reference.
9955
9956 2007-03-12  Zdenek Dvorak  <dvorakz@suse.cz>
9957
9958         PR tree-optimization/30835
9959         * lambda-code.c (can_convert_to_perfect_nest): Check whether
9960         bb_for_stmt is not NULL before accessing it.
9961
9962 2007-03-12  Joseph Myers  <joseph@codesourcery.com>
9963
9964         * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
9965         some multilibs.
9966
9967 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
9968
9969         PR 30635
9970         * doc/install.texi: Document --enable-stage1-languages
9971
9972 2007-03-12  Steven Bosscher  <steven@gcc.gnu.org>
9973
9974         * tree-pass.h (pass_into_cfg_layout_mode,
9975         pass_outof_cfg_layout_mode): Declare.
9976         * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
9977         pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
9978         * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
9979         (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
9980
9981 2007-03-12  Seongbae Park <seongbae.park@gmail.com>
9982
9983         * c-decl.c (warn_variable_length_array): New function.
9984         Refactored from grokdeclarator to handle warn_vla
9985         and handle unnamed array case.
9986         (grokdeclarator): Refactored VLA warning case.
9987         * c.opt (Wvla): New flag.
9988         * doc/invoke.texi (Wvla): New warning.
9989
9990 2007-03-12  Richard Henderson  <rth@redhat.com>
9991
9992         * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
9993         (TARGET_SECTION_TYPE_FLAGS): New.
9994
9995 2007-03-12  Richard Henderson  <rth@redhat.com>
9996
9997         * config/darwin.c (machopic_reloc_rw_mask): New.
9998         * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
9999         * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
10000
10001 2007-03-12  Mark Mitchell  <mark@codesourcery.com>
10002
10003         * cppdefault.c (cpp_EXEC_PREFIX): New variable.
10004         * cppdefault.h (cpp_PREFIX): Document.
10005         (cpp_PREFIX_len): Likewise.
10006         (cpp_EXEC_PREFIX): New variable.
10007         * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
10008         * c-incpath.c (add_standard_paths): Correct logic for relocating
10009         paths within prefix.
10010
10011 2007-03-12  Uros Bizjak  <ubizjak@gmail.com>
10012
10013         * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
10014         fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
10015         mode macro.
10016         (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
10017         fix_truncdfdi_sse using SSEMODEF mode macro.
10018         (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
10019         fix_truncdfsi_sse using SSEMODEF mode macro.
10020         (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
10021         (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
10022
10023 2007-03-12  Richard Sandiford  <richard@codesourcery.com>
10024
10025         * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
10026         elfos.h to tm_file.
10027
10028 2007-03-12  Olga Golovanevsky  <olga@il.ibm.com>
10029
10030         * tree.h : Add multiple_of_p declaration.
10031         * fold-const.c (multiple_of_p): Make multiple_of_p public.
10032         * ipa-type-escape.c (results_of_malloc): Redundant.
10033         (visited_stmts): New. Visited stmt for walk_use_def_chains.
10034         (cast_type): Extended with new members.
10035         (check_cast): Returns cast_type.
10036         (cast): New structure for data of walk_use_def_chains.
10037         (is_malloc_result, is_cast_from_non_pointer_1,
10038         is_cast_from_non_pointer,
10039         is_array_access_through_pointer_and_index): New functions.
10040         (look_for_casts): Returns cast types.
10041         (check_call): Returns void.
10042         (okay_pointer_operation): Use support of pointer plus index,
10043         pointer plus constant and allow all multiplications.
10044
10045 2007-03-11  Richard Guenther  <rguenther@suse.de>
10046
10047         PR tree-optimization/31115
10048         * tree-vrp.c (extract_range_from_binary_expr): Make sure
10049         the shift count is positive and non-anti-range for RSHIFT_EXPR.
10050         A shift count of zero is not special as with *_DIV_EXPR.
10051         (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
10052         direction.
10053
10054 2007-03-11  Ian Lance Taylor  <iant@google.com>
10055
10056         * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
10057         the *_DIV_EXPR codes correctly with overflow infinities.
10058
10059 2007-03-11  Ira Rosen  <irar@il.ibm.com>
10060
10061         * tree-data-ref.c (analyze_offset): Add a return value (bool) to
10062         indicate success/failure of the analysis. Add negation to subtrahend
10063         in case of subtraction. Fail if both operands contain constants.
10064         (create_data_ref): Fail if analyze_offset fails.
10065
10066 2007-03-11  Uros Bizjak  <ubizjak@gmail.com>
10067
10068         * config/i386/i386.md (frndintxf2): Rename to ...
10069         (rintxf2): ... this. Remove expander having same name.
10070         (rintsf2, rintdf2): Implement using SSEMODEF macro.
10071         (roundsf2, rounddf2): Ditto.
10072         (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
10073         (lround<mode>di2, lround<mode>si2): Ditto.
10074
10075 2007-03-11  Steven Bosscher  <steven@gcc.gnu.org>
10076
10077         * lower-subreg.c: Include except.h.
10078         (decompose_multiword_subregs): Verify that the only control flow
10079         insns we can split are loads to multi-words pseudos.
10080         Handle breaking such blocks after splitting, instead of calling
10081         find_many_sub_basic_blocks.
10082
10083         * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
10084         on the new basic block.  Add a lengthy comment explaining why we
10085         thought this was necessary.
10086         * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
10087
10088 2007-03-10  Mark Mitchell  <mark@codesourcery.com>
10089
10090         PR c++/30924
10091         * tree.c (walk_type_fields): Recurse into the element type of
10092         ARRAY_TYPEs if there is a pointer set.
10093
10094 2007-03-10  Dirk Mueller  <dmueller@suse.de>
10095
10096         * c-common.c (warn_logical_operator): Fix condition.
10097
10098 2007-03-10  Tobias Schl�ter  <tobi@gcc.gnu.org>
10099
10100         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
10101         quotation mark.
10102         * config/darwin.c (machopic_select_section): Remove superfluous
10103         argument in call to categorize_decl_for_section.  Remove unused
10104         variable shlib.
10105
10106 2007-03-10  Joseph Myers  <joseph@codesourcery.com>
10107
10108         * configure.ac (glibc_header_dir): Set using with_build_sysroot if
10109         defined.
10110         * configure: Regenerate.
10111
10112 2007-03-10  Uros Bizjak  <ubizjak@gmail.com>
10113
10114         PR target/31101
10115         * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
10116         (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
10117         (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
10118         Add LABEL_NUSES to emitted label.
10119         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
10120         branch probability value to emitted jump insn.
10121         * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
10122         Do not check life information and do not re-arrange input operands
10123         for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
10124
10125 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
10126
10127         * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
10128         the change of decode_asm_operands.
10129
10130 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
10131
10132         * mode-switching.c (create_pre_exit): Skip blockage insn.
10133
10134 2007-03-09  Diego Novillo  <dnovillo@redhat.com>
10135
10136         * tree-pass.h (TODO_update_smt_usage): Remove.
10137         Update all users.
10138         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
10139         argument SOME.
10140         Update all users.
10141
10142 2007-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10143
10144         * pa.c (attr_length_call): Revise condition for long pc-relative branch.
10145         (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local
10146         calls on the SOM target.  Don't use "LONG_PIC_PCREL" call sequence on
10147         SOM target.
10148
10149 2007-03-09  Geoffrey Keating  <geoffk@apple.com>
10150
10151         * gcc.c: Document %{, in big comment at top.
10152         (input_suffix_matches): Remove special handling for .s and
10153         .S.
10154         (input_spec_matches): New.
10155         (handle_braces): Handle %{,.
10156         (validate_switches): ',' indicates a value which is not a switch.
10157         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
10158         to detect assembler input.
10159         * config/i386/sol2.h (CPP_SPEC): Likewise.
10160         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
10161         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
10162         * config/rs6000/lynx.h (ASM_SPEC): Likewise.
10163         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
10164         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
10165         -m64 causes deployment target to default to 10.5.
10166         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
10167
10168 2007-03-09  Richard Henderson  <rth@redhat.com>
10169
10170         PR target/26090
10171         * target.h (targetm.asm.out.reloc_rw_mask): New.
10172         * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
10173         (TARGET_ASM_OUT): Use it.
10174         * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
10175         * varasm.c (categorize_decl_for_section): Remove shlib argument;
10176         use the new reloc_rw_mask target hook instead.
10177         (default_section_type_flags_1): Merge into...
10178         (default_section_type_flags): ... here.
10179         (decl_readonly_section_1): Merge into...
10180         (decl_readonly_section): ... here.
10181         (default_elf_select_section_1): Merge into...
10182         (default_elf_select_section): ... here.
10183         (default_unique_section_1): Merge into...
10184         (default_unique_section): ... here.
10185         (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
10186         (default_select_rtx_section): Use it.
10187         (default_elf_select_rtx_section): Likewise.
10188         * output.h: Update to match.
10189         * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
10190         * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
10191         (TARGET_ASM_RELOC_RW_MASK): New.
10192         * config/i386/i386.c (x86_64_elf_select_section): Adjust call
10193         to categorize_decl_for_section.
10194         (x86_64_elf_unique_section): Likewise.
10195         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
10196         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
10197         (TARGET_ASM_RELOC_RW_MASK): New.
10198         * config/ia64/ia64.c (ia64_rwreloc_select_section,
10199         ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
10200         (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
10201         (TARGET_RWRELOC): Remove.
10202         (ia64_section_type_flags): Adjust call to default_section_type_flags.
10203         * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
10204         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
10205         (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
10206         (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
10207         (rs6000_xcoff_select_section): Use decl_readonly_section.
10208         (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
10209         * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
10210         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
10211         (TARGET_SECTION_TYPE_FLAGS): Remove.
10212         * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
10213
10214 2007-03-09  Roger Sayle  <roger@eyesopen.com>
10215
10216         * fold-const.c (fold_comparison): Remove compile-time evaluation of
10217         complex constant equality/inequality comparisons for here.
10218         (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
10219         known at compile-time or can be simplified to a scalar comparison.
10220         (fold_relational_const): Move compile-time evaluation of complex
10221         constant equality/inequality comparisons to here.
10222
10223 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
10224
10225         PR rtl-optimization/30643
10226         * cse.c (cse_insn): Recompute dest_hash after insert_regs for
10227         dest_addr_elt.
10228         (fold_rtx): Recurse, like before 2006-11-03.
10229
10230 2007-03-09  DJ Delorie  <dj@redhat.com>
10231
10232         * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
10233         m32c-pragma.o.
10234
10235 2007-03-09  Aldy Hernandez  <aldyh@redhat.com>
10236
10237         PR tree-optimization/30375
10238         * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
10239         LHS of statements is not the same.
10240         * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
10241
10242 2007-03-09  Chao-ying Fu  <fu@mips.com>
10243
10244         * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
10245         REV 2.
10246         * doc/invoke.texi (-mdspr2): Document new option.
10247         * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
10248         New unspec for DSP REV 2.
10249         (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
10250         these instructions are extended in DSP REV 2.
10251         (mips-dspr2.md): Include.
10252         * config/mips/mips.opt (mdspr2): New option.
10253         * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
10254         MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
10255         MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
10256         (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
10257         (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
10258         (dsp_bdesc): Add DSP REV 2 builtins.  Remove 32-bit only DSP builtins.
10259         (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
10260         and 2 builtins.
10261         (bdesc_map): Add one field of unsupported_target_flags.
10262         (bdesc_arrays):  Update entries to have extra fields.  Add
10263         dsp_32only_bdesc.
10264         (mips_init_builtins): Initialize new function types.
10265         Check unsupported_target_fileds to filter out builtins.
10266         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
10267         TARGET_DSPR2.
10268         (ASM_SPEC): Pass mdspr2 to the assembler.
10269         * config/mips/mips-dspr2.md: New file.
10270
10271 2007-03-09  Sa Liu  <saliu@de.ibm.com>
10272
10273         * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
10274
10275 2007-03-09  Ian Lance Taylor  <iant@google.com>
10276
10277         * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
10278         argument) like -Wstrict-overflow=2.
10279         * doc/invoke.texi (Warning Options): Update documentation.
10280
10281 2007-03-09  Dirk Mueller  <dmueller@suse.de>
10282
10283         PR c++/17946
10284         * doc/invoke.texi (-Wlogical-op): Document.
10285         * common.opt (-Wlogical-op): New.
10286         * c-common.h (warn_logical_operator): Declare.
10287         * c-common.c (warn_logical_operator): Define.
10288         * c-typeck.c (parser_build_binary_op): Call
10289         warn_logical_operator.
10290
10291 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
10292
10293         * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
10294         * final.c (final_scan_insn): Test for non-"" file name.
10295
10296 2007-03-09  Sebastian Pop  <sebastian.pop@inria.fr>
10297
10298         * doc/loop.texi: Document the Omega linear constraints solver.
10299         * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
10300         omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
10301         omega-hash-table-size, omega-max-keys, and
10302         omega-eliminate-redundant-constraints.
10303         * tree-pass.h (pass_check_data_deps): Declared.
10304         * omega.c: New.
10305         * omega.h: New.
10306         * timevar.def (TV_CHECK_DATA_DEPS): Declared.
10307         * tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
10308         pass_check_data_deps): New.
10309         * tree-data-ref.c (init_data_ref): Remove declaration.
10310         (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
10311         (analyze_array): Renamed init_array_ref, move up initializations.
10312         (init_data_ref): Renamed init_pointer_ref.  Moved before its call.
10313         Removed arguments that are set to NULL.
10314         (analyze_indirect_ref): Correct indentation, correct call to
10315         init_pointer_ref.
10316         (object_analysis): Call init_array_ref instead of analyze_array.
10317         (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
10318         (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
10319         of DR_ACCESS_FNS_ADDR.
10320         (init_omega_eq_with_af, omega_extract_distance_vectors,
10321         omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
10322         ddr_consistent_p): New.
10323         (compute_affine_dependence): Check consistency of ddrs when
10324         flag_check_data_deps is passed.
10325         (analyze_all_data_dependences): Uncomment.
10326         (tree_check_data_deps): New.
10327         * tree-data-ref.h: Include omega.h.
10328         (DR_ACCESS_FNS_ADDR): Removed.
10329         (data_dependence_relation): Add inner_loop.
10330         (DDR_INNER_LOOP): New.
10331         * common.opt (fcheck-data-deps): New.
10332         * tree-flow.h (tree_check_data_deps): Declare.
10333         * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
10334         (OBJS-common): Depend on omega.o.
10335         (omega.o): Define.
10336         * passes.c (pass_check_data_deps): Scheduled.
10337         * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
10338         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
10339         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
10340         PARAM_VECT_MAX_VERSION_CHECKS,
10341         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
10342
10343 2007-03-09  Richard Guenther  <rguenther@suse.de>
10344
10345         PR tree-optimization/30904
10346         PR middle-end/31058
10347         * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
10348         the same way as *_DIV_EXPR.
10349
10350 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
10351
10352         * recog.c (decode_asm_operands): No mixed declarations and code.
10353
10354 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
10355
10356         * rtl.def (ASM_INPUT): Add location.
10357         * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
10358         (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
10359         (decode_asm_operands): Add loc operand.
10360         (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
10361         * stmt.c (expand_asm): Rename to...
10362         (expand_asm_loc): ... this.  Add locus argument.  Pass it on to
10363         gen_rtx_ASM_INPUT_loc.
10364         (expand_asm_expr): Adjust.
10365         * recog.c (decode_asm_operands): Add loc operand.
10366         (check_asm_operands, extract_insn): Adjust.
10367         * reload1.c (maybe_fix_stack_asms): Likewise.
10368         * final.c (asm_insn_count): Likewise.
10369         (final_scan_insn): Output # line before and after asm.
10370
10371 2007-03-09  Daniel Berlin  <dberlin@dberlin.org>
10372
10373         * tree-ssa-structalias.c (variable_info): Remove
10374         finished_solution.
10375         (new_var_info): Ditto.
10376         (shared_bitmap_info_t): New structure.
10377         (shared_bitmap_table): New variable.
10378         (shared_bitmap_hash): New function.
10379         (shared_bitmap_eq): Ditto
10380         (shared_bitmap_lookup): Ditto.
10381         (shared_bitmap_add): Ditto.
10382         (merge_smts_into): Change to take bitmap directly.
10383         (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
10384         (init_alias_vars): Init shared bitmap hashtable.
10385         (delete_points_to_sets): Delete shared bitmap hashtable.
10386         * tree-ssa-operands.c (add_virtual_operand): Partially revert the
10387         is_aliased removal as a change that was still necessary was
10388         deleted.
10389
10390 2007-03-09  Uros Bizjak  <ubizjak@gmail.com>
10391
10392         * config/i386/i386.h (override_options): Conditionally disable
10393         x86_sahf for 64bit targets only.
10394
10395 2007-03-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10396
10397         PR C/31072
10398         * c-decl.c (merge_decls): Don't call make_var_volatile.
10399         * varasm.c (make_var_volatile): Remove.
10400         * output.h (make_var_volatile): Remove.
10401
10402 2007-03-08  Zdenek Dvorak  <dvorakz@suse.cz>
10403
10404         PR tree-optimization/31085
10405         * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
10406
10407 2007-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10408
10409         * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
10410         llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
10411         ATTR_CONST_NOTHROW_LIST.
10412
10413         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
10414         FIX_TRUNC_EXPR.
10415
10416 2007-03-08  Diego Novillo  <dnovillo@redhat.com>
10417
10418         * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
10419
10420 2007-03-08  Geoffrey Keating  <geoffk@apple.com>
10421
10422         PR 31013
10423         * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
10424         is declared.
10425         * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
10426         passed, use shared libgcc.
10427
10428 2007-03-08  Roger Sayle  <roger@eyesopen.com>
10429
10430         * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
10431         instead of calling build2 with a GIMPLE_MODIFY_STMT.
10432         (honor_protect_cleanup_actions, lower_try_finally_switch):
10433         Likewise.
10434         * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
10435         ifc_temp_var): Likewise.
10436         * tree-inline.c (setup_one_parameter): Likewise.
10437         * tree-mudflap.c (mf_decl_cache_locals,
10438         mf_build_check_statement_for): Likewise.
10439         * tree-nested.c (init_tmp_var, save_tmp_var,
10440         finalize_nesting_tree_1): Likewise.
10441         * tree-outof-ssa.c (insert_copy_on_edge,
10442         insert_backedge_copies): Likewise.
10443         * tree-profile.c (tree_gen_edge_profiler,
10444         tree_gen_ic_profiler): Likewise.
10445         * tree-scalar-evolution.c (scev_const_prop): Likewise.
10446         * tree-sra.c (sra_build_assignment): Likewise.
10447         * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
10448         * tree-ssa-math-opts.c (insert_reciprocals,
10449         execute_cse_sincos_1): Likewise.
10450         * tree-tailcall.c (adjust_accumulator_values,
10451         adjust_return_value): Likewise.
10452         * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
10453         * tree-vect-transform.c (vect_create_data_ref_ptr,
10454         bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
10455         vect_create_epilog_for_reduction, vectorizable_reduction,
10456         vectorizable_call, vectorizable_conversion,
10457         vectorizable_assignment, vectorizable_operation,
10458         vectorizable_type_demotion, vect_gen_widened_results_half,
10459         vect_permute_store_chain, vectorizable_store,
10460         vect_setup_realignment, vect_permute_load_chain,
10461         vectorizable_load, vectorizable_condition,
10462         vect_create_cond_for_align_checks): Likewise.
10463         * tree-vrp.c (build_assert_expr_for): Likewise.
10464
10465 2007-03-08  Ian Lance Taylor  <iant@google.com>
10466
10467         * tree-vrp.c: Include "intl.h".
10468         (usable_range_p): New static function.
10469         (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
10470         overflowed values, juts set *strict_overflow_p.
10471         (compare_values): Only return -2 if one of the operands is not a
10472         constant.
10473         (compare_ranges): Call usable_range_p.
10474         (compare_range_with_value): Likewise.
10475         (vrp_evaluate_conditional_warnv): Rename from
10476         vrp_evaluate_conditional.  Make static.  Change all callers.
10477         (vrp_evaluate_conditional): New function.
10478         (simplify_div_or_mod_using_ranges): Issue warning about reliance
10479         on signed overflow.
10480         (simplify_abs_using_ranges): Likewise.
10481         (simplify_stmt_for_jump_threading): Add within_stmt parameter.
10482         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
10483         within_stmt parameter.
10484         * tree-ssa-propagate.c (fold_predicate_in): Update call to
10485         vrp_evaluate_conditional.
10486         * tree-ssa-threadedge.c
10487         (record_temporary_equivalences_from_stmts_at_dest): Change
10488         simplify parameter to take a second tree parameter.
10489         (simplify_control_stmt_condition): Likewise.
10490         (thread_across_edge): Likewise.
10491         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
10492         (thread_across_edge): Likewise.
10493         * Makefile.in (tree-vrp.o): Depend upon intl.h.
10494
10495 2007-03-08  Uros Bizjak  <ubizjak@gmail.com>
10496
10497         * config/i386/i386.h (TARGET_SAHF): New define.
10498         * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
10499         Also enable for m_K8, m_AMDFAM10 and m_CORE2.
10500         (x86_sahf): New global variable.
10501         (override_options): Add PTA_NO_SAHF to pta_flags enum.  Recode
10502         pta_flags masks using shifts.  Add PTA_NO_SAHF to x86_64 and
10503         nocona processor flags.  Set x86_sahf when PTA_NO_SAHF is not set
10504         in processor flags.  Do not unconditionally disable TARGET_USE_SAHF
10505         for 64-bit.
10506         (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
10507         (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
10508         when expanding fcomi/sahf based tests.
10509         (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
10510         expanding sahf based alternative. Emit sahf based sequence when
10511         optimizing for code size.
10512         * config/i386/i386.md (x86_sahf_1): Do not disable for
10513         TARGET_64BIT, enable for TARGET_SAHF.
10514
10515 2007-03-08  Martin Michlmayr  <tbm@cyrius.com>
10516
10517         * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
10518         spurious whitespace from error message.
10519
10520 2007-03-08  Volker Reichelt  <reichelt@netcologne.de>
10521
10522         PR c++/30852
10523         * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
10524
10525 2007-03-08  Alexandre Oliva  <aoliva@redhat.com>
10526
10527         * c-decl.c (grokdeclarator): Disable warnings for anonymous
10528         bitfields.
10529         * tree-sra.c (instantiate_element): Propagate disabled warnings
10530         from the element itself to the created variable.
10531
10532 2007-03-07  Richard Henderson  <rth@redhat.com>
10533
10534         PR target/30848
10535         * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
10536         silently fix up the stack in the case of a missing register.
10537
10538 2007-03-07  Paul Brook  <paul@codesourcery.com>
10539
10540         * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
10541
10542 2007-03-07  Joseph Myers  <joseph@codesourcery.com>
10543
10544         * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
10545         New.
10546         (phase1_vrs): Use them.
10547         (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
10548         (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
10549         __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
10550         (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
10551         __gnu_Unwind_Restore_WMMXC if required.
10552         (_Unwind_VRS_Pop): Implement iWMMXt support.
10553         * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
10554         gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
10555         gnu_Unwind_Save_WMMXC): Define.
10556
10557 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
10558
10559         * config/vxworks.h (vxworks_override_options): Declare.
10560         (VXWORKS_OVERRIDE_OPTIONS): Use it.
10561         * config/vxworks.c: Include target.h and toplev.h.
10562         (vxworks_override_options): New function.
10563         * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
10564
10565 2007-03-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10566
10567         * config/s390/s390.c (override_options): Don't emit an error when
10568         -mstack-size is used without providing -mstack-guard.
10569         (s390_emit_prologue): Choose stack_guard value automatically if not
10570         provided via command line.
10571         * doc/invoke.texi: Adjust description of -mstack-guard and -mstack-size.
10572
10573 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
10574
10575         * config/i386/i386.c (output_set_got): Add a GOT initialization
10576         sequence for VxWorks PIC.
10577         (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
10578         around labels as well as symbols.  Use gotoff_operand instead
10579         of local_symbolic_operand.
10580         (legitimize_pic_address): Use gotoff_operand instead of
10581         local_symbolic_operand.  Use @GOT accesses for labels as
10582         well as symbols.
10583         (ix86_output_addr_diff_elt): Use PC-relative rather than
10584         GP-relative offsets for VxWorks PIC.
10585         (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
10586         no_new_pseudos.  Check whether the returned register is op0.
10587         * config/i386/i386.md (tablejump): Use PC-relative rather than
10588         GP-relative offsets for VxWorks PIC.
10589         * config/i386/predicates.md (gotoff_operand): New predicate.
10590
10591 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
10592
10593         * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
10594         before defining.
10595         * config/vxworks-dummy.h: New file.
10596         * config/i386/i386.h: Include it.
10597
10598 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
10599
10600         * dwarf2out.c (is_inlined_entry_point): New
10601         (add_high_low_attributes): Emit DW_AT_entry_pc along with
10602         DW_AT_ranges if the first subblock is the entry point.
10603
10604 2007-03-06  David Daney  <ddaney@avtrex.com>
10605
10606         * doc/install.texi (mips-*-*): Change recommended binutils
10607         version.
10608
10609 2007-03-06  Anatoly Sokolov <aesok@post.ru>
10610
10611         * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
10612         ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
10613         devices.
10614         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10615         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10616
10617 2007-03-06  Jan Hubicka  <jh@suse.cz>
10618
10619         * errors.h (warning, error, fatal, internal_error): Mark as cold.
10620         * predict.c (maybe_hot_bb): Cold functions are never hot; hot functions
10621         are hot.
10622         (probably_cold_bb_p): Cold functions are cold.
10623         (probably_never_executed_bb_p): Cold functions are cold.
10624         (tree_bb_level_predictions): Predict calls to cold functions as not
10625         taken.
10626         (compute_function_frequency): Check hot/cold attributes.
10627         * function.h (function_frequency): Update comments.
10628         * predict.def (PRED_COLD_FUNCTION): Predict cold function.
10629         * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
10630         (c_common_att): Add cold and hot.
10631
10632         * doc/extend.texi (hot,cold attributes): Document.
10633
10634 2007-03-06  Andrew Haley  <aph@redhat.com>
10635
10636         * function.c (expand_function_end): Move blockage to just after we
10637         emit the label for the naked return from the function.
10638
10639 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
10640
10641         * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
10642         before redefining.
10643
10644 2007-03-06  Jan Hubicka  <jh@suse.cz>
10645
10646         * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
10647         loaded for constant large models.  Non-large 64bit PIC can do.
10648         * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
10649         * cmodel.h: Add LARGE PIC.
10650         * i386.md (UNSPEC_PLTOFF): New.
10651         (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other unspecs as
10652         needed.
10653         (*call_1_rex64): Disable for large models.
10654         (*call_1_rex64_large): New.
10655         (*call_value_1_rex64): Disable for large models.
10656         (*call_value_1_rex64_large): New.
10657         (set_rip_rex4): New.
10658         (set_got_offset_rex64): New.
10659         * predicates.md (constant_call_address_operand): For large model
10660         constant calls are not possible.
10661         * i386-protos.h (construct_plt_address): Declare.
10662         * i386.c (override_options): Accept large models.
10663         (ix86_expand_prologue): Expand large PIC GOT pointer load.
10664         (legitimate_constant_p): Add new UNSPECs.
10665         (legitimate_pic_operand_p): Likewise.
10666         (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
10667         (legitimize_pic_address): Do easy RIP relative way for TLS only for
10668         non-large model.
10669         (output_pic_addr_const): Add PLTOFF.
10670         (ix86_output_addr_diff_elt): Output 64bit tables when needed.
10671         (ix86_expand_move): Legitimize pic address when in PIC mode.
10672         (construct_plt_address): New function.
10673         (ix86_expand_call): Offload the address to register and use GOT pointer
10674         for large model.
10675         * invoke.texi (mcmodel=large): Update documentation.
10676
10677 2007-03-06  Richard Henderson  <rth@redhat.com>
10678
10679         * config/i386/i386.c (x86_use_leave, x86_push_memory,
10680         x86_zero_extend_with_and, x86_movx, x86_double_with_add,
10681         x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
10682         x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
10683         x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
10684         x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
10685         x86_split_long_moves, x86_promote_QImode, x86_fast_prefix,
10686         x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
10687         x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
10688         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
10689         x86_partial_reg_dependency, x86_memory_mismatch_stall,
10690         x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
10691         x86_sse_partial_reg_dependency, x86_sse_split_regs,
10692         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
10693         x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
10694         x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
10695         x86_schedule, x86_use_bt, x86_pad_returns,
10696         x86_use_xchgb): Merge into ...
10697         (ix86_tune_features): ... here.  New array.
10698         (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
10699         x86_bswap): Merge into ...
10700         (ix86_arch_features): ... here.  New array.
10701         (x86_3dnow_a): Remove.
10702         (x86_accumulate_outgoing_args): Make static.
10703         (x86_arch_always_fancy_math_387): Make static.
10704         (ix86_tune_mask, ix86_arch_mask): Move ...
10705         (override_options): ... to local variables here.  Apply the
10706         appropriate mask to each element of ix86_arch_features and
10707         ix86_tune_features.  Adjust TARGET_CMOVE and TARGET_USE_SAHF
10708         as were done in the old macros.
10709         (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
10710         * config/i386/i386.h (x86_use_leave, x86_push_memory,
10711         x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
10712         x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
10713         x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
10714         x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
10715         x86_read_modify_write, x86_read_modify, x86_split_long_moves,
10716         x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
10717         x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
10718         x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
10719         x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
10720         x86_partial_reg_dependency, x86_memory_mismatch_stall,
10721         x86_accumulate_outgoing_args, x86_prologue_using_move,
10722         x86_epilogue_using_move, x86_decompose_lea,
10723         x86_arch_always_fancy_math_387, x86_shift1,
10724         x86_sse_partial_reg_dependency, x86_sse_split_regs,
10725         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
10726         x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
10727         x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
10728         x86_use_incdec, x86_pad_returns, x86_bswap,
10729         x86_partial_flag_reg_stall): Remove.
10730         (enum ix86_tune_indices): New.
10731         (ix86_tune_features): New.
10732         (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
10733         TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
10734         TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
10735         TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
10736         TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
10737         TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
10738         TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
10739         TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
10740         TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
10741         TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
10742         TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
10743         TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
10744         TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
10745         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
10746         TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
10747         TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
10748         TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
10749         TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
10750         TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
10751         TARGET_EXT_80387_CONSTANTS): Use it.
10752         (enum ix86_arch_indices): New.
10753         (ix86_arch_features): New.
10754         (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
10755         TARGET_BSWAP): Use it.
10756         (ix86_tune_mask, ix86_arch_mask): Remove.
10757
10758 2007-03-06  Joseph Myers  <joseph@codesourcery.com>
10759
10760         PR bootstrap/31020
10761         * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
10762         Define using $${sysroot_headers_suffix}.
10763         * configure: Regenerate.
10764         * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
10765         multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
10766         defined.
10767         * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
10768         * gcc.c (print_sysroot_headers_suffix): New.
10769         (option_map): Include --print-sysroot-headers-suffix.
10770         (display_help): Mention -print-sysroot-headers-suffix.
10771         (process_command): Handle -print-sysroot-headers-suffix.
10772         (do_spec_1): Append multilib directory to include-fixed path if
10773         sysroot suffixes in use.
10774         (main): Handle -print-sysroot-headers-suffix.
10775         * Makefile.in (start.encap): Don't depend on xlimits.h
10776         (xlimits.h): Remove.
10777         (stmp-int-hdrs): Don't depend on xlimits.h.  Inline generation of
10778         limits.h for each multilib in fixinc_list.
10779         (fixinc_list, s-fixinc_list): New.
10780         (stmp-fixinc): Depend on fixinc_list.  If not copying headers,
10781         generate them for each multilib in fixinc_list.
10782         (stmp-fixproto): Use include-fixed.  Run fixproto for each
10783         multilib in fixinc_list.
10784         (mostlyclean): Don't remove xlimits.h.
10785         (clean): Remove include-fixed.
10786         (real-install-headers-tar, real-install-headers-cpio,
10787         real-install-headers-cp): Don't copy include, only include-fixed.
10788         (install-mkheaders): Depend on fixinc_list.  Don't depend on
10789         xlimits.h.  Save limits.h files for each multilib in fixinc_list.
10790         Always save mkinstalldirs.  Preserve ${sysroot_headers_suffix} in
10791         SYSTEM_HEADER_DIR setting in mkheaders.conf.
10792
10793 2007-03-06  Jan Hubicka  <jh@suse.cz>
10794
10795         * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
10796         NANs easilly.
10797
10798 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
10799
10800         * configure.ac: Allow tm_file to contain build-directory files.
10801         * configure: Regenerate.
10802         * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
10803         * config/m68k/t-uclinux (sysroot-suffix.h): New target.
10804         * config/m68k/print-sysroot-suffix.sh: New file.
10805
10806 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
10807
10808         * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
10809         of pic_offset_table_rtx if reload_completed.
10810         (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
10811         PIC_OFFSET_TABLE_REGNUM.
10812         * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
10813         return true.
10814         (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
10815         (m68k_output_mi_thunk): Rewrite to use RTL.  Honor vcall_offset.
10816
10817 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
10818
10819         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
10820         functions that call eh_return.
10821
10822 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
10823
10824         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
10825         functions that need a constant pool.
10826
10827 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
10828
10829         PR target/28181
10830         * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
10831         (m68k_preferred_reload_class): Likewise.
10832         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
10833         (SECONDARY_RELOAD_CLASS): Define.
10834         (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
10835         (LIMIT_RELOAD_CLASS): Delete.
10836         * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
10837         registers from storing bytes.
10838         (m68k_secondary_reload_class): New function.
10839         (m68k_preferred_reload_class): Likewise.
10840
10841 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
10842
10843         * config/m68k/m68k.c (m68k_save_reg): Remove special case for
10844         leaf functions.
10845         (m68k_expand_prologue): Likewise.
10846
10847 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
10848
10849         * config/m68k/m68k-protos.h (output_sibcall): Declare.
10850         (mips_expand_epilogue): Add a bool parameter.
10851         (m68k_legitimize_sibcall_address): Declare.
10852         * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
10853         (m68k_expand_epilogue): Add a parameter to select between sibling
10854         and normal epilogues.  Only generate a return for the latter.
10855         (m68k_ok_for_sibcall_p): New function.
10856         (m68k_legitimize_sibcall_address, output_sibcall): New functions.
10857         * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
10858         (sibcall_value, *sibcall_value): Likewise.
10859         (*call, *call_value): Require !SIBLING_CALL_P.
10860         (epilogue): Update call to m68k_expand_epilogue.
10861         (sibcall_epilogue): New pattern.
10862         * config/m68k/predicates.md (const_call_operand): Say that this
10863         predicate applies to sibling calls too.
10864         (sibcall_operand): New predicate.
10865
10866 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
10867
10868         * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
10869         alternatives as movsi_cf.
10870         (movsf_cf_hard): Add commentary.
10871
10872 2007-03-06  Kazu Hirata  <kazu@codesourcery.com>
10873             Richard Sandiford  <richard@codesourcery.com>
10874
10875         * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
10876         (m68k_movem_pattern_p, m68k_output_movem): Likewise.
10877         (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
10878         * config/m68k/m68k.h (EPILOGUE_USES): Define.  Treat all registers
10879         as being live on exit from an interrupt function.
10880         (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
10881         * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
10882         (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
10883         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
10884         (m68k_interrupt_function_p): Globalize.
10885         (m68k_compute_frame_layout): Remove reverse mask code.
10886         (m68k_emit_movem, m68k_set_frame_related): New functions.
10887         (m68k_output_function_prologue): Delete in favor of...
10888         (m68k_expand_prologue): ...this new function.
10889         (m68k_output_function_epilogue): Delete in favor of...
10890         (m68k_expand_epilogue): ...this new function.
10891         (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
10892         functions.
10893         (print_operand): Handle %?.
10894         * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
10895         (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
10896         (prologue, epilogue): New patterns.
10897         (return): Turn into a define_expand.
10898         (*return): New pattern, derived from old "return" pattern.  Use rte
10899         rather than rts for interrupt functions.  Only use rtd if the pop
10900         count is nonzero.
10901         (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
10902         (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
10903         (link, *link, unlink, *unlink, load_got): Likewise.
10904
10905 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
10906
10907         PR target/23482
10908         PR target/17114
10909         * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
10910         (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
10911         (m68k_matches_q_p, m68k_matches_u_p): Likewise.
10912         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
10913         and m68k_matches_u_p.
10914         (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
10915         (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
10916         (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
10917         (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
10918         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
10919         (REG_STRICT_P): New macro.
10920         (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
10921         PCREL_GENERAL_OPERAND_OK.
10922         (REG_OK_FOR_BASE_P): Merge definitions.  Use REG_STRICT_P and
10923         m68k_legitimate_base_reg_p.
10924         (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
10925         (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
10926         (PIC_CASE_VECTOR_ADDRESS): Update comment.
10927         * config/m68k/m68k.c (m68k_address): New structure.
10928         (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
10929         (m68k_decompose_index, m68k_legitimate_constant_address_p)
10930         (m68k_jump_table_ref_p, m68k_decompose_address)
10931         (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
10932         (m68k_matches_u_p): New functions.
10933         (print_operand_address): Rewrite to use m68k_decompose_index.
10934
10935 2007-03-05  David Taylor  <dtaylor@emc.com>
10936
10937         * gcc.c: Correct copyright date in --version output.
10938
10939 2007-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10940
10941         * pa.md: In unamed move patterns, disparge copies between general
10942         and floating point registers using '?' modifier.  Don't include 'f'
10943         constraint for register preferences in DImode, SImode, HImode and
10944         QImode patterns.  Likewise for 'r' in DFmode and SFmode patterns.
10945         Remove constraints for copies between general and floating registers
10946         in soft-float DFmode pattern.
10947         (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
10948         floating register.
10949         (movsf): Likewise.
10950
10951 2007-03-05  Mike Stump  <mrs@apple.com>
10952
10953         * c-common.c (targetcm): Add.
10954         * c-opts.c (c_common_handle_option): Handle language specific
10955         target options.
10956         * opts.c (handle_option): Verify language for target options, if
10957         any are given.
10958         * opth-gen.awk: Add CL_LANG_ALL.
10959         * target-def.h (TARGET_HANDLE_C_OPTION): Add.
10960         (TARGETCM_INITIALIZER): Add.
10961         * target.h (struct gcc_targetcm): Add.
10962         (targetcm): Add.
10963         * targhooks.c (default_handle_c_option): Add.
10964         * targhooks.h (default_handle_c_option): Add.
10965         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
10966
10967         * config/darwin.opt (iframework): Add.
10968         * config/darwin.h (TARGET_HAS_TARGETCM): Add.
10969         * config/darwin-c.c (handle_c_option): Add.
10970         (TARGET_HANDLE_C_OPTION): Add.
10971         (targetcm): Add.
10972         * doc/invoke.texi (Darwin Options): Add -iframework.
10973
10974 2007-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10975
10976         * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
10977         conversion.
10978
10979 2007-03-05  Ian Lance Taylor  <iant@google.com>
10980
10981         * c.opt (fgnu89-inline): New option.
10982         * c-opts.c (c_common_post_options): Set default value for
10983         flag_gnu89_inline.
10984         * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
10985         (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
10986         inline functions.
10987         (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
10988         (grokdeclarator, start_function): Likewise.
10989         * c-cppbuiltin.c (c_cpp_builtins): Define either
10990         __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
10991         * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
10992         (C Dialect Options): Document -fgnu89-inline.
10993         * doc/extend.texi (Function Attributes): Explain what the
10994         gnu_inline attribute does.
10995         * doc/cpp.texi (Common Predefined Macros): Document
10996         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
10997
10998 2007-03-05  Ian Lance Taylor  <iant@google.com>
10999
11000         PR tree-optimization/31034
11001         * tree-vrp.c (extract_range_from_assert): Don't try to handle a
11002         half-range if the other side is an overflow infinity.
11003
11004 2007-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
11005
11006         * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
11007         (bfin*-linux-uclibc*): New configuration.
11008         * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
11009         defining.
11010         * config/bfin/linux.h: New file.
11011         * config/bfin/libgcc-bfin.ver: New file.
11012         * config/bfin/t-bfin-uclinux: New file.
11013         * config/bfin/t-bfin-linux: New file.
11014         * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
11015         (TARGET_OS_CPP_BUILTINS): New macro.
11016
11017 2007-03-05  Richard Guenther  <rguenther@suse.de>
11018
11019         * fold-const.c (fold_binary): Remove duplicate folding
11020         of comparison of non-null ADDR_EXPR against null.
11021
11022 2007-03-05  Richard Guenther  <rguenther@suse.de>
11023             Dorit Nuzman  <dorit@il.ibm.com>
11024
11025         PR tree-optimization/26420
11026         * tree-vectorizer.c (vectorize_loops): Bail out early if there
11027         are no loops in the function.  Only print the number of
11028         vectorized loops if it is greater than zero or we are supposed
11029         to print information about unvectorized loops.
11030
11031 2007-03-05  Revital Eres  <eres@il.ibm.com>
11032
11033         * gcc.dg/var-expand1.c: New test.
11034         * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
11035         when an accumulator is expanded.
11036
11037 2007-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11038
11039         PR other/30465
11040         * c-common.c (convert_and_check): Don't give warnings for
11041         conversion if 'expr' already overflowed.
11042
11043 2007-03-04  Roger Sayle  <roger@eyesopen.com>
11044
11045         PR middle-end/30744
11046         * fold-const.c (fold_comparison): Enforce type consistency when
11047         transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.
11048
11049 2007-03-04  Zdenek Dvorak  <dvorakz@suse.cz>
11050
11051         * tree-ssa-address.c (create_mem_ref): Do not put an expression
11052         containing a cast to the base of TARGET_MEM_REF.
11053
11054 2007-03-04  Martin Michlmayr  <tbm@cyrius.com>
11055
11056         * tree.c (tree_contains_struct_check_failed): Remove spurious
11057         whitespace from error message.
11058
11059 2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
11060
11061         PR target/30406
11062         * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
11063         instead of precision.
11064
11065 2007-03-04  Roman Zippel <zippel@linux-m68k.org>
11066             Nathan Sidwell  <nathan@codesourcery.com>
11067
11068         * emit-rtl.c (find_auto_inc): New.
11069         (try_split): recreate REG_INC notes,
11070         Use regular for loops rather than whiles.
11071
11072 2007-03-03  Andreas Schwab  <schwab@suse.de>
11073
11074         * configure.ac (HAVE_AS_REL16): Move test back to correct place.
11075         * configure: Regenerate.
11076
11077 2007-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11078
11079         * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
11080         flag_rounding_math, not flag_unsafe_math_optimizations.
11081
11082         * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
11083         fold_build2.
11084         * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
11085         alpha_fold_vector_minmax): Likewise.
11086         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
11087         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
11088
11089 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
11090
11091         * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
11092         (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
11093         if the lhs has side-effects.
11094         <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
11095
11096 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
11097
11098         * config/i386/i386.h (TUNEMASK): Remove define.
11099         (ARCHMASK): Remove define.
11100         (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
11101          Use ix86_arch_mask variable instead of ARCHMASK.
11102         * config/i386/i386.c (override_options): Ditto.
11103         (standard_80387_constant_p): Ditto.
11104
11105 2007-03-02  Ian Lance Taylor  <iant@google.com>
11106
11107         Used signed infinities in VRP.
11108         * tree-vrp.c (uses_overflow_infinity): New static function.
11109         (supports_overflow_infinity): New static function.
11110         (make_overflow_infinity): New static function.
11111         (negative_overflow_infinity): New static function.
11112         (positive_overflow_infinity): New static function.
11113         (is_negative_overflow_infinity): New static function.
11114         (is_positive_overflow_infinity): New static function.
11115         (is_overflow_infinity): New static function.
11116         (overflow_infinity_range_p): New static function.
11117         (compare_values_warnv): New function split out of compare_values.
11118         (compare_value): Call it.
11119         (set_value_range_to_nonnegative): Add overflow_infinity
11120         parameter.  Change caller.
11121         (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
11122         Change callers.
11123         (vrp_expr_computes_nonzero): Likewise.
11124         (compare_ranges, compare_range_with_value): Likewise.
11125         (compare_name_with_value, compare_names): Likewise.
11126         (vrp_evaluate_conditional): Likewise.
11127         (set_value_range): Handle infinity
11128         (vrp_operand_equal_p, operand_less_p): Likewise.
11129         (extract_range_from_assert): Likewise.
11130         (vrp_int_const_binop): Likewise.
11131         (extract_range_from_binary_expr): Likewise.
11132         (extract_range_from_unary_expr): Likewise.
11133         (extract_range_from_comparison): Likewise.
11134         (extract_range_from_expr): Likewise.
11135         (dump_value_range): Likewise.
11136         (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
11137         (test_for_singularity): Likewise.
11138         (vrp_int_const_binop): Remove inline qualifier.
11139         (adjust_range_with_scev): Add comment.
11140         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
11141
11142 2007-03-02  Diego Novillo  <dnovillo@redhat.com>
11143
11144         * tree-ssa-structalias.c (could_have_pointers): Tidy.
11145         (get_constraint_for): Likewise.
11146         (do_structure_copy): Likewise.
11147         (find_func_aliases): Fix references to MODIFY_EXPR.
11148         (intra_create_variable_infos): Tidy.
11149         * tree-ssa-operands.c (add_virtual_operand): Add argument
11150         IS_CALL_SITE.
11151         When adding members of alias sets, if IS_CALL_SITE is true and
11152         the symbol is not call-clobbered, skip it.
11153         Adjust all callers.
11154
11155 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
11156
11157         * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
11158         entry by means of emit_insn_at_entry.
11159
11160 2007-03-02  Richard Henderson  <rth@redhat.com>
11161
11162         * expr.h (promoted_input_arg): Remove decl.
11163         * function.c (promoted_input_arg): Merge into ...
11164         * combine.c (setup_incoming_promotions): ... only caller.
11165         Rearrange to avoid double loop.
11166
11167 2007-03-02  Ben Elliston  <bje@au.ibm.com>
11168             Peter Bergner  <bergner@vnet.ibm.com>
11169             Janis Johnson  <janis187@us.ibm.com>
11170
11171         * config/rs6000/dfp.md: New file.
11172         * config/rs6000/rs6000.md: Include dfp.md.
11173         (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
11174         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
11175         and TDmode decimal float modes in FP registers.
11176         (num_insns_constant): Likewise.
11177         (rs6000_legitimate_offset_address_p): Likewise.
11178         (rs6000_legitimize_address): Likewise.
11179         (rs6000_legitimize_reload_address): Likewise.
11180         (rs6000_legitimate_address): Likewise.
11181         (rs6000_emit_move): Likewise.
11182         (function_arg_boundary): Likewise.
11183         (function_arg_advance): Likewise.
11184         (rs6000_darwin64_record_arg_recurse): Likewise.
11185         (function_arg): Likewise.
11186         (rs6000_gimplify_va_arg): Likewise.
11187         (rs6000_split_multireg_move): Likewise.
11188         (rs6000_output_function_epilogue): Likewise.
11189         (rs6000_output_function_epilogue): Likewise.
11190         (rs6000_register_move_cost): Likewise.
11191         (rs6000_function_value): Likewise.
11192         (rs6000_libcall_value): Likewise.
11193
11194 2007-03-02  Richard Sandiford  <richard@codesourcery.com>
11195
11196         * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
11197
11198 2007-03-02  Richard Sandiford  <richard@codesourcery.com>
11199
11200         * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
11201         Use $MULTIDIR to choose between the kernel and RTP headers,
11202         and use $WIND_BASE and $WIND_USR to locate them.
11203
11204 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
11205
11206         * config/i386/i386.c (override_options): Put initialization of
11207         ix86_tune_mask and ix86_arch_mask to the correct place.
11208
11209 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
11210             Michael Meissner  <michael.meissner@amd.com>
11211
11212         PR target/31019
11213         * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
11214         (ARCHMASK): Define.
11215         (TARGET_CMOVE): Use ARCHMASK.
11216         (TARGET_CMPXCHG): Ditto.
11217         (TARGET_CMPXCHG8B): Ditto.
11218         (TARGET_XADD): Ditto.
11219         (TARGET_BSWAP): Ditto.
11220         * config/i386/i386.c (ix86_tune_mask): New global variable.
11221         (ix86_arch_mask): Ditto.
11222         (override_options): Initialize ix86_tune_mask and
11223         ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
11224         target_flags.
11225
11226 2007-03-02  Ben Elliston  <bje@au.ibm.com>
11227
11228         PR 30992
11229         * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
11230
11231 2007-03-02  Joseph Myers  <joseph@codesourcery.com>
11232
11233         * target.h (init_dwarf_reg_sizes_extra): New target hook.
11234         * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
11235         * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
11236         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
11237         hook.
11238         * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
11239         rs6000_init_dwarf_reg_sizes_extra): New.
11240         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
11241         SPE register high parts.
11242
11243 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
11244
11245         * Makefile.in: Add install-pdf target as
11246         copied from automake v1.10 rules.
11247         * configure.ac: Add install-pdf to target list.
11248         * configure: Regenerate.
11249
11250 2007-03-01  Paul Brook  <paul@codesourcery.com>
11251
11252         * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
11253         modes to LDRD for DImode.
11254         (output_move_double): Fixup out of range ldrd/strd.
11255         (vfp_secondary_reload_class): Rename...
11256         (coproc_secondary_reload_class): ... to this.  Add wb argument.
11257         * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
11258         coproc_secondary_reload_class for CLASS_IWMMXT.
11259         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
11260         * arm-protos.h (coproc_secondary_reload_class): Update prototype.
11261
11262 2007-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
11263
11264         * tree-ssa-loop-prefetch.c (determine_unroll_factor):  Bound the unroll
11265         factor by the estimated number of iterations.
11266         (loop_prefetch_arrays): Do not prefetch in loops that iterate less than
11267         prefetch latency.
11268
11269         * config/i386/driver-i386.c (describe_cache, detect_caches_amd,
11270         decode_caches_intel, detect_caches_intel): New functions.
11271         (host_detect_local_cpu): Use detect_caches_amd and
11272         detect_caches_intel.
11273
11274 2007-03-01  Richard Henderson  <rth@redhat.com>
11275
11276         * expr.c (emit_move_complex_push): Export.
11277         (emit_move_complex_parts): Split out from ...
11278         (emit_move_complex): ... here.
11279         * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
11280         * config/i386/i386.md (movcdi): New.
11281
11282 2007-03-01  Uros Bizjak  <ubizjak@gmail.com>
11283
11284         * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
11285         size of mode1 to check for tieable modes in MMX case.
11286
11287 2007-03-01  Richard Sandiford  <richard@codesourcery.com>
11288
11289         * Makefile.in (rtlanal.o): Depend on tree.h.
11290         * rtl.h (offset_within_section_p, split_const): Declare.
11291         * rtlanal.c: Include tree.h.
11292         (offset_within_block_p): New function, taken from
11293         mips_offset_within_object_p.
11294         (split_const): New function, taken from mips_split_const.
11295         * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
11296         Declare.
11297         * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
11298         (CONSTANT_ADDRESS_P): Only accept legitimate constants.
11299         (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
11300         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
11301         (m68k_illegitimate_symbolic_constant_p): New function.
11302         * config/m68k/m68k.md (movsi): Remove misleading predicates.
11303         If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
11304         symbolic constant that might be outside the symbol's section,
11305         move the symbol first and then add the offset.
11306         * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
11307         Override.
11308         * config/mips/mips.c (mips_split_const): Delete.
11309         (mips_offset_within_object_p): Delete.
11310         (mips_symbolic_constant_p): Use offset_within_section_p and
11311         split_const instead of mips_offset_within_object_p and
11312         mips_split_const.
11313         (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
11314         (mips_legitimize_const_move, print_operand_reloc)
11315         (mips_dangerous_for_la25_p): Use split_const instead of
11316         mips_split_const.
11317
11318 2007-02-28  Eric Christopher  <echristo@apple.com>
11319
11320         * Makefile.in (install-include-dir): Don't rm -rf include.
11321
11322 2007-02-28  Richard Guenther  <rguenther@suse.de>
11323
11324         PR middle-end/30364
11325         * fold-const.c (fold_binary): Do not associate expressions
11326         with more than one variable for integer types that do not wrap.
11327
11328 2007-02-28  Sandra Loosemore  <sandra@codesourcery.com>
11329
11330         * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
11331         Delete, and replace with...
11332         (fold_builtin_call_array): This.  Update callers to use it.
11333         * fold-const.c (fold_build_call_list): Delete, and replace with...
11334         (fold_build_call_array): This.
11335         (fold_build_call_list_initializer): Delete, and replace with...
11336         (fold_build_call_array_initializer): This.
11337         * tree.h: Update declarations to reflect above changes.
11338
11339         * c-typeck.c (build_function_call): Store converted arguments
11340         in a stack-allocated array instead of building a list.
11341         (convert_arguments): Store arguments in the array passed in as an
11342         argument, and return the actual number of arguments.
11343         * c-format.c: (check_function_format): Pass arguments in an
11344         array instead of a list.
11345         * c-common.c (check_function_nonnull): Likewise.
11346         (check_function_sentinel): Likewise.
11347         (check_function_arguments): Likewise.
11348         * c-common.h: Update declarations to reflect above changes.
11349
11350 2007-02-28  Jan Hubicka  <jh@suse.cz>
11351
11352         * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
11353         PRED_NEGATIVE_RETURN): Update outcomes.
11354
11355 2007-02-28  Bernd Schmidt  <bernd.schmidt@analog.com>
11356
11357         * calls.c (emit_library_call_value_1): Handle partial registers
11358         correctly when building up CALL_INSN_FUNCTION_USAGE.
11359
11360 2007-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11361
11362         * pa/predicates.md (move_src_operand): Allow zero for mode.
11363         * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
11364         move pattern.
11365
11366 2007-02-27  Uros Bizjak  <ubizjak@gmail.com>
11367
11368         PR target/30970
11369         * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
11370         *movv2df_internal): Enable pattern only for valid operand
11371         combinations.
11372         * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
11373         tie only 128bit modes. For MMX registers, tie only 64bit modes.
11374
11375 2007-02-27  Mike Stump  <mrs@apple.com>
11376
11377         * config/darwin-crt3.c: Avoid compilation when compiling for a
11378         kext multilib.
11379
11380 2007-02-27  Joseph Myers  <joseph@codesourcery.com>
11381
11382         * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
11383         FIXED_INCLUDE_DIR.
11384         (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
11385         for fixed headers and limits.h.
11386         (install-include-dir, install-headers-tar, install-headers-cpio,
11387         install-headers-cp, real-install-headers-tar,
11388         real-install-headers-cpio, real-install-headers-cp): Handle
11389         include-fixed as well as include.
11390         (install-mkheaders): Don't install files that go only in include
11391         not include-fixed.
11392         * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
11393         from GCC_INCLUDE_DIR.
11394         * gcc.c (process_command): Remove special -BstageN/ handling.
11395         (do_spec_1): Add include-fixed directories.
11396
11397 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
11398
11399         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
11400         _smulsi3_highpart.
11401         * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
11402         New functions.
11403         * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
11404         patterns.
11405
11406 2007-02-27  Mark Mitchell  <mark@codesourcery.com>
11407
11408         * c-common.c (get_priority): Add check for
11409         SUPPORTS_INIT_PRIORITY.
11410
11411 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
11412
11413         * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
11414
11415         * config/bfin/bfin.c: Include "cfglayout.h".
11416         (MAX_LSETUP_DISTANCE): New macro.
11417         (struct loop_info): New members incoming, incoming_src and
11418         incoming_dest.  Delete member predecessor.
11419         (length_for_loop): New function.
11420         (bfin_optimize_loop): Handle more different loop structures.
11421         (bfin_discover_loop): Rework detection of predecessor blocks by
11422         examining incoming edges.
11423         (bfin_discover_loops, bfin_free_loops): New functions, broken out of
11424         bfin_reorg_loops.
11425         (bfin_reorder_loops): New function.
11426         (bfin_reorg_loops): Use these three new functions.
11427
11428         * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
11429         REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
11430         (CONSTRAINT_LEN): Add entry for 'q'.
11431         (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
11432         Add 'q' constraints.
11433         (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
11434         (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
11435
11436         * config/bfin/bfin.md (add_with_carry): New pattern.
11437         (s_or_u, su_optab, su_modifier): New code macros/attrs.
11438         (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
11439         <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
11440         support unsigned multiplies too.  Removed incorrect commutativity from
11441         operand 1 constraint where appropriate.
11442         (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
11443         patterns.
11444         (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
11445         <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
11446         New patterns.
11447         (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
11448         usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
11449         usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
11450         usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
11451         usmulhisi_hh_huh): New patterns.
11452
11453         * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
11454         lshifthi3): Fix output template to use half reg for operand 2.
11455
11456         * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
11457         instead of R2.
11458
11459         * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
11460
11461 2007-02-27  Andreas Schwab  <schwab@suse.de>
11462
11463         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
11464
11465 2007-02-27  Jan Hubicka  <jh@suse.cz>
11466
11467         * predict.c (last_basic_block_p): Remove.
11468         (tree_estimate_probability): Update return heuristic for commonized
11469         return blocks.
11470
11471 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
11472
11473         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
11474
11475 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
11476
11477         * doc/include/gcc-common.texi (versionsubtitle): New macro.
11478         * doc/cpp.texi: Standardize title page.
11479         * doc/cppinternals.texi: Likewise.
11480         * doc/gcc.texi: Standardize title page, remove version number
11481         from copyright page.
11482         * doc/gccint.texi: Likewise.
11483         * doc/install.texi: Standardize title page, add table of
11484         contents.
11485
11486 2007-02-26  Jan Hubicka  <jh@suse.cz>
11487
11488         * predict.def: Set outcomes according to more recent results.
11489         (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
11490         Remove dead predictors.
11491         * predict.c (return_prediction): Fix pasto.
11492
11493 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
11494
11495         * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
11496         change; avoid a memory leak when returning early.
11497
11498 2007-02-26  Mark Mitchell  <mark@codesourcery.com>
11499
11500         * c-decl.c (static_ctors): Move to c-common.c.
11501         (static_dtors): Likewise.
11502         (finish_function): Use c_record_cdtor_fn.
11503         (build_cdtor): Move to c-common.c.
11504         (c_write_global_declarations): Use c_build_cdtor_fns.
11505         * c-common.h (static_ctors): Declare.
11506         (static_dtors): Likewise.
11507         (c_record_cdtor_fn): Likewise.
11508         (c_build_cdtor_fns): Likewise.
11509         * c-common.c (static_ctors): New variable.
11510         (static_dtors): Likewise.
11511         (c_record_cdtor_fn): New function.
11512         (build_cdtor): Move from c-decl.c
11513         (c_build_cdtor_fns): New function.
11514
11515         * output.h (assemble_addr_to_section): Declare.
11516         (get_cdtor_priority_section): Likewise.
11517         * varasm.c (assemble_addr_to_section): New function.
11518         (get_cdtor_priority_section): Likewise.
11519         (default_named_section_asm_out_destructor): Use them.
11520         (destor_dtor_section_asm_out_destructor): Likewise.
11521         (default_named_section_asm_out_constructor): Likewise.
11522         (default_ctor_section_asm_out_constructor): Likewise.
11523         * config.gcc (*-*-vxworks*): Include vxworks.o.
11524         * config/t-vxworks (vxworks.o): New target.
11525         * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
11526         (TARGET_ASM_CONSTRUCTOR): Define.
11527         (TARGET_ASM_DESTRUCTOR): Likewise.
11528         (vxworks_asm_out_constructor): Declare.
11529         (vxworks_asm_out_destructor): Likewise.
11530
11531         * c-common.c (get_priority): Check that we have not just an
11532         INTEGER_CST, but an integer constant with integeral type.
11533
11534 2007-02-25  Uros Bizjak  <ubizjak@gmail.com>
11535
11536         PR tree-optimization/30938
11537         * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
11538         use &dt[nargs-1] instead of &dt[nargs] in the call to
11539         vect_is_simple_use().
11540
11541 2007-02-25  Ulrich Weigand  <uweigand@de.ibm.com>
11542
11543         * reload.c (find_reloads_address_1): Handle PLUS expressions resulting
11544         from register elimination as PRE_MODIFY / POST_MODIFY increments.
11545         Do not attempt to handle MEM inside auto-inc expressions.
11546         * reload1.c (eliminate_regs_1): Do not attempt to handle elimination
11547         of a register modified by an auto-inc expression.  However, do handle
11548         elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
11549         (elimination_effects): Prohibit elimination of a register modified
11550         by an auto-inc expression.  Disable register elimination rules whose
11551         target register is modified by an auto-inc expression with variable
11552         increment.
11553
11554 2007-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
11555
11556         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
11557         off-by-one error.
11558         (array_at_struct_end_p): New function.
11559         (idx_infer_loop_bounds): Use it.
11560         (estimate_numbers_of_iterations_loop): Export.
11561         * predict.c (predict_loops): Use estimated_loop_iterations_int.
11562         Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
11563         (tree_estimate_probability): Call record_loop_exits.
11564         * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
11565         (estimated_loop_iterations, estimated_loop_iterations_int,
11566         estimated_loop_iterations_tree): New functions.
11567         (analyze_siv_subscript_cst_affine,
11568         compute_overlap_steps_for_affine_1_2,
11569         analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
11570         (analyze_miv_subscript): Use estimated_loop_iterations_tree.
11571         * predict.def (PRED_LOOP_ITERATIONS): Update comment.
11572         (PRED_LOOP_ITERATIONS_GUESSED): New.
11573         * cfgloop.c (record_loop_exits): Do nothing if there are no loops.
11574         * cfgloop.h (estimate_numbers_of_iterations_loop,
11575         estimated_loop_iterations_int): Declare.
11576
11577 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
11578
11579         * doc/extend.texi: Document optional priority argument to
11580         constructors and destructors.
11581         * tree.c (init_priority_for_decl): Adjust GTY markers.
11582         (init_ttree): Use priority-info hash functions for
11583         init_priority_for_decl.
11584         (tree_map_eq): Rename to ...
11585         (tree_map_base_eq): ... this.
11586         (tree_map_marked_p): Rename to ...
11587         (tree_map_base_marked_p): ... this.
11588         (tree_map_base_hash): New function.
11589         (decl_init_priority_lookup): Rework.
11590         (decl_fini_priority_lookup): New function.
11591         (decl_priority_info): New function.
11592         (decl_init_priority_insert): Use it.
11593         (decl_fini_priority_insert): Likewise.
11594         (decl_restrict_base_lookup): Adjust for refactoring of tree_map
11595         hierarchy.
11596         (decl_restrict_base_insert): Likewise.
11597         (decl_debug_expr_insert): Likewise.
11598         (decl_value_expr_lookup): Likewise.
11599         (decl_value_expr_insert): Likewise.
11600         * tree.h (priority_type): New type.
11601         (decl_init_priority_lookup): Use priority_type.
11602         (decl_fini_priority_lookup): New function.
11603         (decl_init_priority_insert): Use priority_type.
11604         (decl_fini_priority_insert): New function.
11605         (DECL_HAS_INIT_PRIORITY): Tweak comments.
11606         (DECL_INIT_PRIORITY): Likewise.
11607         (SET_DECL_INIT_PRIORITY): Add comment.
11608         (DECL_FINI_PRIORITY): New macro.
11609         (SET_DECL_FINI_PRIORITY): Likewise.
11610         (DEFAULT_INIT_PRIORITY): Document.
11611         (MAX_INIT_PRIORITY): Likewise.
11612         (MAX_RESERVED_INIT_PRIORITY): Likewise.
11613         (tree_map_base): New type.
11614         (tree_map_base_eq): New function.
11615         (tree_map_base_hash): Likewise.
11616         (tree_map_base_marked_p): Likewise.
11617         (tree_map): Inherit from tree_map_base.
11618         (tree_map_eq): Make it a macro.
11619         (tree_map_marked_p): Likewise.
11620         (tree_int_map): Inherit from tree_map_base.
11621         (tree_int_map_eq): Make it a macro.
11622         (tree_int_map_hash): Likewise.
11623         (tree_int_map_marked_p): Likewise.
11624         (tree_priority_map): New type.
11625         (tree_priority_map_eq): New macro.
11626         (tree_priority_map_hash): Likewise.
11627         (tree_priority_map_marked_p): Likewise.
11628         * varasm.c (emults_decl): Adjust for refactoring of tree_map
11629         hierarchy.
11630         (emutls_common_1): Likewise.
11631         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
11632         * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
11633         of tree_map hierarchy.
11634         * tree-cfg.c (move_stmt_r): Likewise.
11635         (new_label_mapper): Likewise.
11636         * c-tree.h (c_expand_body): Move to ...
11637         * c-common.h (c_expand_body): ... here.
11638         * c-decl.c (c_expand_body): Move to ...
11639         * c-common.c (c_expand_body): ... here.
11640         (c_common_attribute_table): Allow 1 argument for the constructor
11641         and destructor attributes.
11642         (get_priority): New function.
11643         (handle_constructor_attribute): Set DECL_INIT_PRIORITY.
11644         (handle_destructor_attribute): Set DECL_FINI_PRIORITY.
11645
11646 2007-02-24  Jan Hubicka  <jh@suse.cz>
11647
11648         PR middle-end/30509
11649         * tree-inline.c (copy_bb): Produce exact copy of EH info when copying for inlining.
11650
11651 2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
11652             Jan Hubicka  <jh@suse.cz>
11653
11654         PR target/30778
11655         * i386.c (counter_mode): New function.
11656         (expand_set_or_movmem_via_loop): Use it.
11657         (expand_movmem_epilogue): Likewise; fix pasto.
11658         (ix86_expand_movmem): Do emit guard even for constant counts.
11659         (ix86_expand_setmem): Likewise.
11660
11661 2007-02-25  Nick Clifton  <nickc@redhat.com>
11662
11663         * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
11664         (JUMP_TABLES_IN_TEXT_SECTION): Define.
11665
11666 2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
11667
11668         PR target/30770
11669         * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
11670         count argument with 0x10, not with 0x16.
11671         (expand_setmem_epilogue): Ditto.
11672
11673 2007-02-24  Mike Stump  <mrs@apple.com>
11674
11675         * config/i386/i386.c (output_pic_addr_const): Stubify optimized
11676         symbols.
11677
11678 2007-02-24  Richard Guenther  <rguenther@suse.de>
11679
11680         PR middle-end/30951
11681         * fold-const.c (fold_binary): Fold x +- CST op x for
11682         EQ_EXPR and NE_EXPR.
11683
11684 2007-02-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11685
11686         * pa.md (muldi3): Force subregs to registers in 64-bit expander.
11687
11688 2007-02-24  Jan Hubicka  <jh@suse.cz>
11689
11690         * cgraphunit.c (decide_is_function_needed): Honor
11691         -fkeep-inline-functions.
11692
11693 2007-02-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11694
11695         * builtins.c (fold_builtin_modf): New.
11696         (fold_builtin_2): Use it.
11697
11698 2007-02-24  Bernd Schmidt  <bernd.schmidt@analog.com>
11699
11700         * loop-iv.c (implies_p): Detect additional cases where A implies B.
11701         (determine_max_iter): Take additional LOOP arg; all callers changed.
11702         Lose broken logic dealing with PLUS.  Try to limit the upper bound by
11703         one using simplifications.
11704         (simplify_using_initial_values): Return if the expression becomes
11705         invalid due to altered regs.
11706
11707 2007-02-23  DJ Delorie  <dj@redhat.com>
11708
11709         * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
11710
11711 2007-02-23  Mike Stump  <mrs@apple.com>
11712
11713         * tlink.c (scan_linker_output): Parse linker messages from
11714         darwin9's linker better.
11715
11716 2007-02-23  Steve Ellcey  <sje@cup.hp.com>
11717
11718         PR debug/29614
11719         * varpool.c (varpool_assemble_pending_decls):  Set
11720         varpool_last_needed_node to null.
11721
11722 2007-02-23  DJ Delorie  <dj@redhat.com>
11723
11724         * config/i386/i386.c (ix86_data_alignment): Don't specify an
11725         alignment bigger than the object file can handle.
11726
11727 2007-02-23  Uros Bizjak  <ubizjak@gmail.com>
11728
11729         PR target/30825
11730         * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
11731         zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
11732         (*movsf_1): Penalize MMX moves.
11733
11734 2007-02-23  Bernd Schmidt  <bernd.schmidt@analog.com>
11735
11736         * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
11737         2^32-1 or more times unless flag_unsafe_loop_optimizations.
11738
11739         * loop-iv.c (determine_max_iter): Moved in front of its sole user.
11740
11741 2007-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11742
11743         * builtins.c (fold_builtin_logb, fold_builtin_significand): New.
11744         (fold_builtin_1): Use them.
11745         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
11746         BUILT_IN_SIGNIFICAND.
11747
11748 2007-02-23  H.J. Lu  <hongjiu.lu@intel.com>
11749
11750         * config/i386/i386.c (bdesc_1arg): Initialize
11751         IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
11752         "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
11753         (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
11754         and IX86_BUILTIN_MOVSLDUP.
11755
11756 2007-02-22  Paolo Bonzini  <bonzini@gnu.org>
11757
11758         PR rtl-optimization/30841
11759         * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.
11760
11761 2007-02-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11762
11763         * builtins.c (fold_builtin_frexp): New.
11764         (fold_builtin_2): Use it.
11765
11766 2007-02-22  Mark Mitchell  <mark@codesourcery.com>
11767
11768         * doc/invoke.texi (Spec Files): Document getenv spec function.
11769
11770         * gcc.c (getenv_spec_function): New function.
11771         (static_spec_functions): Add it.
11772         * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
11773         (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
11774         header files.
11775
11776 2007-02-22  Michael Matz  <matz@suse.de
11777
11778         PR c++/29433
11779         * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
11780         (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
11781
11782 2007-02-22  Ian Lance Taylor  <iant@google.com>
11783
11784         PR debug/30898
11785         * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
11786         (mem_loc_descriptor): Call it.
11787
11788 2007-02-22  Zdenek Dvorak  <dvorakz@suse.cz>
11789             Ira Rosen  <irar@il.ibm.com>
11790
11791         * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
11792
11793 2007-02-22  Ira Rosen  <irar@il.ibm.com>
11794
11795         PR tree-optimization/30843
11796         * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
11797         stores only after all the group is vectorized.
11798
11799 2007-02-22  Dorit Nuzman  <dorit@il.ibm.com>
11800
11801         PR tree-optimization/30858
11802         * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
11803         in the reduction cycle have a single use in the loop.
11804         * tree-vectorizer.h (relevant): Add documentation.
11805
11806 2007-02-20  Mike Stump  <mrs@apple.com>
11807
11808         * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
11809         * configure: Regenerate.
11810
11811 2007-02-21  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
11812
11813         Change the defaults of some parameters and options.
11814         * config/spu/spu-protos.h (spu_optimization_options): Declare.
11815         * config/spu/spu.c (spu_optimization_options): Add.
11816         (spu_override_options): Change params in spu_optimization_options.
11817         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
11818
11819         Register 127 is only 16 byte aligned when used as a frame pointer.
11820         * config/spu/spu-protos.h (spu_init_expanders): Declare.
11821         * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
11822         HARD_FRAME_POINTER_REGNUM.
11823         (spu_legitimate_address):  Use regno_aligned_for_reload.
11824         (regno_aligned_for_load):  HARD_FRAME_POINTER_REGNUM is only 16 byte
11825         aligned when frame_pointer_needed is true.
11826         (spu_init_expanders): New.  Set alignment of HARD_FRAME_POINTER_REGNUM
11827         to 8 bits.
11828         * config/spu/spu.h (INIT_EXPANDERS): Define.
11829
11830         Make sure shift and rotate instructions have valid immediate operands.
11831         * config/spu/predicates.md (spu_shift_operand): Remove.
11832         * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
11833         * config/spu/constraints.md (W, O): Extend range.
11834         * config/spu/spu.md (umask, nmask): Define.
11835         (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
11836         lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
11837         rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
11838         rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
11839         spu_nonmem_operand instead of spu_shift_operands.  Use new modifiers.
11840         (lshr<mode>3_reg):  Fix rtl description.
11841
11842         Make sure mulhisi immediate operands are valid.
11843         * config/spu/predicates.md (imm_K_operand): Add.
11844         * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
11845
11846         Generate constants using fsmbi and andi.
11847         * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
11848         (print_operand, spu_split_immediate, classify_immediate,
11849         fsmbi_const_p): Handle IC_FSMBI2.
11850
11851         Correctly handle a CONST_VECTOR containing symbols.
11852         * config/spu/spu.c (print_operand): Handle HIGH correctly.
11853         (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
11854         (immediate_load_p): Allow symbols that use 2 instructions to create.
11855         (classify_immediate, spu_builtin_splats):  Don't accept a CONST_VECTOR
11856         with symbols when flag_pic is set.
11857         (const_vector_immediate_p): New.
11858         (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
11859         accept a CONST_VECTOR with symbols.
11860         (spu_legitimate_constant_p): Use const_vector_immediate_p.  Don't
11861         accept a CONST_VECTOR with symbols when flag_pic is set.  Handle HIGH
11862         correctly.
11863         * config/spu/spu.md (high, low): Delete.
11864         (low_<mode>): Define.
11865
11866         Remove INTRmode and INTR_REGNUM, which didn't work.
11867         * config/spu/spu.c (spu_conditional_register_usage): Remove reference
11868         of INTR_REGNUM.
11869         * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
11870         set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
11871         peephole2 pattern): Don't use INTR or 131.
11872         (movintrcc): Delete.
11873         * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
11874         CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
11875         * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
11876         (UNSPEC_SET_INTR): Add.
11877         * config/spu/spu-modes.def (INTR): Remove.
11878
11879         More accurate warnings about run-time relocations.
11880         * config/spu/spu.c (reloc_diagnostic): Test in_section.
11881
11882         Correctly warn about immediate arguments to specific intrinsics.
11883         * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
11884         (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
11885         the instruction predicate.
11886
11887         Fix tree check errors with latest update.
11888         * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
11889         CALL_EXPR_ARG.
11890         (spu_expand_builtin): Use CALL_EXPR_FN.
11891
11892         Add missing specific intrinsics.
11893         * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
11894         si_bislede.
11895         * config/spu/spu_internals.h: Ditto.
11896
11897         Fix incorrect operand modifiers.
11898         * config/spu/spu-builtins.md (spu_mpy, spu_mpyu):  Remove use of %H.
11899         * config/spu/spu.md (xor<mode>3):  Change %S to %J.
11900
11901         Optimize one case of zero_extend of a vec_select.
11902         * config/spu/spu.md (_vec_extractv8hi_ze):  Add.
11903
11904         Accept any immediate for hbr.
11905         * config/spu/spu.md (hbr):  Change s constraints to i.
11906
11907 2007-02-21  Paul Brook  <paul@codesourcery.com>
11908
11909         * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
11910         condexec_count when skipping USE and CLOBBER.
11911
11912 2007-02-21  Nick Clifton  <nickc@redhat.com>
11913
11914         * common.opt (Warray-bounds): Add Warning attribute.
11915         (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
11916         Likewise.
11917         (fsized-zeroes): Add Optimization attribute.
11918         (fsplit-wide-types, ftree-scev-cprop): Likewise.
11919         * c.opt (Wc++0x-compat): Add Warning attribute.
11920
11921 2007-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
11922
11923         PR middle-end/30761
11924         * reload1.c (eliminate_regs_in_insn): In the single_set special
11925         case, attempt to re-recognize the insn before falling back to
11926         having reload fix it up.
11927
11928 2007-02-20  Eric Christopher  <echristo@gmail.com>
11929
11930         * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
11931         Rewrite accordingly.
11932         (frv_read_iacc_argument): Ditto.
11933         (frv_expand_set_builtin): Take a call instead of arglist, update for
11934         above changes.
11935         (frv_expand_unop_builtin): Ditto.
11936         (frv_expand_binop_builtin): Ditto.
11937         (frv_expand_cut_builtin): Ditto.
11938         (frv_expand_binopimm_builtin): Ditto.
11939         (frv_expand_voidbinop_builtin): Ditto.
11940         (frv_expand_int_void2arg): Ditto.
11941         (frv_expand_prefetches): Ditto.
11942         (frv_expand_voidtriop_builtin): Ditto.
11943         (frv_expand_voidaccop_builtin): Ditto.
11944         (frv_expand_load_builtin): Ditto.
11945         (frv_expand_store_builtin): Ditto.
11946         (frv_expand_mdpackh_builtin): Ditto.
11947         (frv_expand_mclracc_builtin): Ditto.
11948         (frv_expand_mrdacc_builtin): Ditto.
11949         (frv_expand_mwtacc_builtin): Ditto.
11950         (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
11951         calls for above.
11952
11953 2007-02-20  Janis Johnson  <janis187@us.ibm.com>
11954
11955         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
11956         * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
11957         cmpb instruction.
11958         (HAVE_GAS_DFP): Check for assembler support of decimal floating
11959         point instructions.
11960         * configure: Regenerate.
11961         * config.in: Regenerate.
11962         * config/rs6000/rs6000.opt (mcmpb, mdfp): New.
11963         * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
11964         masks to power6 and power6x and to POWERPC_MASKS.
11965         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
11966         _ARCH_PWR6.
11967         * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
11968         * config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
11969         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
11970         Access PROTOTYPE as variable, not mask.
11971
11972 2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>
11973
11974         * rtl.h (remove_reg_equal_equiv_notes): New prototype.
11975         * rtlanal.c (remove_reg_equal_equiv_notes): New function.
11976         * combine.c (adjust_for_new_dest): Use it.
11977         * postreload.c (reload_combine): Likewise.
11978
11979 2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>
11980
11981         * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
11982         notes on an insn with multiple sets, even if single_set returns
11983         non-NULL for that insn.
11984
11985 2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11986
11987         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
11988         scalbn and scalbln.
11989
11990 2007-02-20  Geoffrey Keating  <geoffk@apple.com>
11991
11992         * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
11993         if user didn't pass it.
11994         * config/i386/darwin.h (CC1_SPEC): Likewise.
11995         * config/rs6000/darwin.h (CC1_SPEC): Likewise.
11996         (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
11997         -mmacosx-version-min.
11998
11999 2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12000             Uros Bizjak  <ubizjak@gmail.com>
12001
12002         * optabs.h (enum optab_index): Add new OTI_scalb.
12003         (scalb_optab): Define corresponding macro.
12004         * optabs.c (init_optabs): Initialize scalb_optab.
12005         * genopinit.c (optabs): Implement scalb_optab using scalb?f3
12006         patterns.
12007         * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
12008         BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
12009         (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
12010         and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
12011         flag_unsafe_math_optimizations is set.
12012
12013         * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
12014         to implement scalbf, scalb and scalbl built-ins as inline x87
12015         intrinsics.
12016
12017 2007-02-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12018             DJ Delorie <dj@redhat.com>
12019
12020         PR other/30824
12021         * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
12022         (diagnostic_report_diagnostic): ... here, and turn them into real
12023         errors. If warnings are inhibited, no need to do anything.
12024
12025 2007-02-20  Uros Bizjak  <ubizjak@gmail.com>
12026
12027         * config/i386/i386.md (expm1xf2): Reorder insn sequence for
12028         better code generation.
12029
12030 2007-02-20  Ben Elliston  <bje@au.ibm.com>
12031
12032         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
12033
12034 2007-02-20  Kazu Hirata  <kazu@codesourcery.com>
12035
12036         * config/alpha/alpha.c, config/alpha/alpha.md,
12037         config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
12038         config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
12039         config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
12040         config/arm/lib1funcs.asm: Follow spelling conventions.
12041
12042         * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
12043         config/fr30/fr30.md, config/i386/i386.h,
12044         config/iq2000/iq2000.h, config/iq2000/predicates.md,
12045         config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
12046         config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
12047         config/pdp11/pdp11.c, config/pdp11/pdp11.h,
12048         config/rs6000/altivec.md, config/rs6000/rs6000.c,
12049         config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
12050         config/sparc/sparc.c, config/sparc/sparc.h,
12051         config/sparc/sparc.md, config/spu/constraints.md,
12052         config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
12053         conventions.
12054
12055 2007-02-20  Alan Modra  <amodra@bigpond.net.au>
12056
12057         PR target/29943
12058         * varasm.c (use_blocks_for_decl_p): Return false for decls with
12059         alias attribute.
12060
12061 2007-02-19  Kazu Hirata  <kazu@codesourcery.com>
12062
12063         * doc/invoke.texi (-ftree-lrs): Remove.
12064
12065 2007-02-19  Diego Novillo  <dnovillo@redhat.com>
12066
12067         * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
12068         NULL.
12069
12070 2007-02-19  Lee Millward  <lee.millward@codesourcery.com>
12071
12072         * config/ia64/ia64.c (ia64_expand_builtin): Use the
12073         new CALL_EXPR_FN macro for retrieving the function
12074         declaration of the input expression.
12075
12076 2007-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12077
12078         * c.opt (Waddress): New.
12079         * common.opt (Walways-true): Delete.
12080         (Wstring-literal-comparison): Delete.
12081         * doc/invoke.texi (Warning Options): Delete -Walways-true and
12082         -Wstring-literal-comparison. Add -Waddress.
12083         (Waddress): New.
12084         (Walways-true): Delete.
12085         (Wstring-literal-comparison): Delete.
12086         * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
12087         consistently instead of -Walways-true in example.
12088         * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
12089         * c-typeck.c (parser_build_binary_op): Replace
12090         -Wstring-literal-comparison and -Walways-true with -Waddress.
12091         * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
12092         with -Waddress.
12093
12094 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
12095
12096         * tree-cfg.c (dump_function_to_file): Be prepared for functions
12097         without DECL_STRUCT_FUNCTION initialized.
12098
12099 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
12100
12101         * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
12102         due to calls to functions taking pointers as parameters.
12103
12104 2007-02-19  Richard Henderson  <rth@redhat.com>
12105
12106         PR debug/29558
12107         * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
12108         in memory.
12109
12110 2007-02-19  Andreas Krebbel  <krebbel1@de.ibm.com>
12111
12112         * config/s390/s390.c (s390_call_saved_register_used,
12113         s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
12114         accessed to the new scheme.
12115
12116 2007-02-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
12117
12118         * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
12119         (cris_print_index, cris_print_operand, cris_print_operand_address)
12120         (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
12121         (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
12122         (cris_expand_pic_call_address): Use xxx_P predicate macros instead of
12123         GET_CODE () == xxx.
12124         * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
12125         EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
12126         GO_IF_LEGITIMATE_ADDRESS): Ditto.
12127         * config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
12128         (*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
12129         (*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
12130         (*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
12131         (*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
12132         (*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
12133         (uminsi3, call, call_value): Ditto.
12134         (define_split: indir_to_reg_split, unnamed): Ditto.
12135
12136 2007-02-19  Dorit Nuzman  <dorit@il.ibm.com>
12137
12138         PR tree-optimization/30975
12139         * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
12140         wrong assert.
12141
12142 2007-02-18  Eric Christopher  <echristo@gmail.com>
12143
12144         * mips.c (mips_prepare_builtin_arg): Add argnum parameter.
12145         Remove use of arglist.
12146         (mips_expand_builtin): Remove use of arglist, pass in expr.
12147         (mips_expand_builtin_direct): Rewrite handling for arglist removal.
12148         (mips_expand_builtin_movtf): Ditto.
12149         (mips_expand_builtin_compare): Ditto.
12150
12151 2007-02-19  Alexandre Oliva  <aoliva@redhat.com>
12152
12153         * tree-sra.c (sra_build_assignment): Replace assertion
12154         checking with a comment explaining why it can't be done.
12155
12156 2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>
12157
12158         PR middle-end/30833
12159         * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
12160         during CALL_EXPR representation conversion.
12161         * tree-ssa-propagate.c (set_rhs): Likewise.
12162
12163 2007-02-19  Alexandre Oliva  <aoliva@redhat.com>
12164
12165         * tree-sra.c (sra_build_assignment): Disable assertion checking
12166         for now.
12167
12168 2007-02-18  Roger Sayle  <roger@eyesopen.com>
12169
12170         * function.c (gimplify_parameters): Call build_gimple_modify_stmt
12171         instead of calling build2 with a GIMPLE_MODIFY_STMT.
12172         * gimple-low.c (lower_function_body, lower_builtin_setjmp):
12173         Likewise.
12174         * gimplify.c (build_stack_save_restore, gimplify_return_expr,
12175         gimplify_decl_expr,  gimplify_self_mod_expr, gimplify_cond_expr,
12176         gimplify_init_ctor_eval_range, gimple_push_cleanup,
12177         gimplify_omp_for, gimplify_omp_atomic_pipeline,
12178         gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
12179         force_gimple_operand): Likewise.
12180         * ipa-cp.c (constant_val_insert): Likewise.
12181         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
12182         lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
12183         perfect_nestify): Likewise.
12184         * langhooks.c (lhd_omp_assignment): Likewise.
12185         * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
12186         lower_copyprivate_clauses, lower_send_clauses,
12187         lower_send_shared_vars, expand_parallel_call,
12188         expand_omp_for_generic, expand_omp_for_static_nochunk,
12189         expand_omp_for_static_chunk, expand_omp_sections,
12190         lower_omp_single_copy, lower_omp_for_lastprivate,
12191         lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
12192         * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
12193         tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
12194         Likewise.
12195
12196 2007-02-19  Kazu Hirata  <kazu@codesourcery.com>
12197
12198         * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
12199         config/sh/sh.md: Follow spelling conventions.
12200
12201         * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
12202         config/frv/predicates.md: Follow spelling conventions.
12203
12204         * config/m68k/linux-unwind.h: Fix a comment typo.
12205         * target.h: Follow spelling conventions.
12206
12207 2007-02-18  Roger Sayle  <roger@eyesopen.com>
12208
12209         PR rtl-optimization/28173
12210         * simplify-rtx.c (simplify_binary_operation_1) <IOR>:  Optimize
12211         (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
12212         Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
12213         Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
12214         <AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).
12215
12216 2007-02-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12217
12218         * builtins.c (fold_builtin_load_exponent): New.
12219         (fold_builtin_2): Use it.
12220
12221 2007-02-18  Steven Bosscher  <steven@gcc.gnu.org>
12222
12223         PR rtl-optimization/30773
12224         * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
12225         if we fail to attach a REG_EQUIV note.
12226
12227 2007-02-18  David Edelsohn  <edelsohn@gnu.org>
12228             Roger Sayle  <roger@eyesopen.com>
12229
12230         * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.
12231
12232 2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>
12233
12234         * calls.c (initialize_argument_information): Pass original EXP
12235         and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments.  Move
12236         code to split complex arguments here, as part of initializing the
12237         ARGS array.
12238         (expand_call): Remove code that builds a list of arguments and
12239         inserts implicit arguments into it.  Instead, just count how many
12240         implicit arguments there will be so we can determine the size of
12241         the ARGS array, and let initialize_argument_information do the work.
12242         (split_complex_values): Delete unused function.
12243
12244 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
12245
12246         * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
12247
12248 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
12249
12250         * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
12251         for arg pointer based indexed addressing.
12252
12253 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
12254
12255         * config/ia64/ia64.h, config/ia64/ia64.md,
12256         config/ia64/predicates.md, config/ia64/sysv4.h: Follow
12257         spelling conventions.
12258
12259 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
12260
12261         * config/m68k/m68k.c (split_di): New.
12262         * config/m68k/m68k-protos.h: Declare split_di.
12263         * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
12264           Improve predicate handling and split constant shifts.
12265
12266 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
12267
12268         * config/m68k/m68k.md (extv,extzv,insv): disable dynamic
12269         parameter for register bitfield operations, general predicates
12270         cleanup
12271
12272 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
12273
12274         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
12275         * config/m68k/linux-unwind.h: New file.
12276
12277 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
12278
12279         * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
12280         config/i386/athlon.md, config/ia64/ia64.md,
12281         config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
12282         df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
12283         ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
12284         tree-ssa-loop-niter.c, tree-vect-analyze.c,
12285         tree-vect-transform.c: Fix comment typos.
12286
12287 2007-02-17  Kazu Hirata  <kazu@codesourcery.com>
12288
12289         * sched-deps.c (find_insn_list): Remove.
12290         * sched-int.h: Remove the prototype for find_insn_list.
12291
12292 2007-02-16  Geoffrey Keating  <geoffk@apple.com>
12293
12294         * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
12295         to linker.
12296         (DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
12297         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
12298         darwin_rs6000_override_options.
12299         (C_COMMON_OVERRIDE_OPTIONS): Expect
12300         darwin_macosx_version_min to be non-NULL always.
12301         (TARGET_C99_FUNCTIONS): Likewise.
12302         (CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
12303         (DARWIN_MINVERSION_SPEC): New.
12304         * config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
12305         * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
12306         to cc1*.
12307         (DARWIN_MINVERSION_SPEC): New.
12308         * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
12309         value.
12310         * config/darwin-c.c (darwin_cpp_builtins): Expect
12311         darwin_macosx_version_min to be non-NULL always.
12312
12313         * config/rs6000/rs6000.c: Clean up trailing whitespace.
12314
12315 2007-02-16  Uros Bizjak  <ubizjak@gmail.com>
12316
12317         * config/i386/i386.h (x86_use_xchgb): New.
12318         (TARGET_USE_XCHGB): New macro.
12319         * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
12320         * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
12321         Split after reload into bswaphi for shifts of 8.
12322         (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
12323         (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
12324         or when optimizing for size.
12325
12326 2007-02-16  Richard Guenther  <rguenther@suse.de>
12327             Christian Bruel  <christian.bruel@st.com>
12328
12329         * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
12330         DECLs but prefer SSA_NAMEs over DECLs.
12331
12332 2007-02-16  Richard Guenther  <rguenther@suse.de>
12333
12334         * tree-flow-inline.h (single_imm_use_p): Remove.
12335         (zero_imm_uses_p): Likewise.
12336         * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
12337         instead of single_imm_use_p.
12338         * tree-cfg.c (replace_uses_by): Use has_zero_use instead of
12339         zero_imm_uses_p.
12340
12341 2007-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12342
12343         PR other/27843
12344         * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
12345         nested double- and backquotes.
12346
12347 2007-02-15  Roger Sayle  <roger@eyesopen.com>
12348
12349         PR middle-end/30391
12350         * tree.c (expr_align): Handle MODIFY_EXPR.  GIMPLE_MODIFY_STMT
12351         should be unreachable.
12352         (build2_stat): Allow construction of MODIFY_EXPR at any time.
12353         For the time being redirect GIMPLE_MODIFY_STMT to the new
12354         (renamed) build_gimple_modify_stmt_stat.
12355         (build2_gimple_stat): Rename to...
12356         (build_gimple_modify_stmt_stat): Now longer take a CODE argument.
12357         Always build a GIMPLE_MODIFY_STMT node.
12358         * tree.h (build2_gimple, build2_gimple_stat): Delete.
12359         (build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
12360         declarations.
12361
12362         * tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
12363         gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
12364         * tree-complex.c (set_component_ssa_name, expand_complex_move,
12365         expand_complex_div_wide): Likewise.
12366         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
12367         * tree-ssa-loop-im.c (schedule_sm): Likewise.
12368         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
12369         * tree-ssa-loop-manip.c (create_iv): Likewise.
12370         * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
12371         abs_replacement): Likewise.
12372         * tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
12373         realify_fake_stores): Likewise.
12374
12375         * builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
12376         node rather than a GIMPLE_MODIFY_STMT node.
12377         (std_gimpify_va_arg_expr, expand_builtin_va_copy,
12378         fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
12379         Likewise.
12380         (integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
12381         * expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
12382         GIMPLE_MODIFY_STMT.
12383
12384 2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12385
12386         PR middle-end/30433
12387         * fold-const.c (fold_comparison): Add back the
12388         folding of constant complex comparisions.
12389
12390 2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12391
12392         PR middle-end/30729
12393         * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
12394         effects unknown to this function, return early.
12395
12396 2007-02-15  Ian Lance Taylor  <iant@google.com>
12397
12398         * lower-subreg.c (move_eh_region_note): New static function.
12399         (resolve_simple_move): Call it.
12400         (decompose_multiword_subregs): Track blocks for which we resolve a
12401         simple move which is also a control flow insn.  Pass them to
12402         find_many_sub_basic_blocks.
12403         (pass_lower_subreg): Add TODO_verify_flow.
12404         (pass_lower_subreg2): Likewise.
12405
12406 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
12407             Brooks Moses  <brooks.moses@codesourcery.com>
12408             Lee Millward  <lee.millward@codesourcery.com>
12409
12410         * tree.h (enum tree_code_class): Add tcc_vl_exp.
12411         (VL_EXP_CLASS_P): New.
12412         (TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
12413         TREE_CODE_LENGTH.
12414         (TREE_OPERAND_CHECK_CODE): Likewise.
12415         (GIMPLE_STMT_OPERAND_CHECK): Likewise.
12416         (TREE_RTL_OPERAND_CHECK): Likewise.
12417         (tree_operand_check_failed): Make second parameter the whole tree
12418         instead of its code.  Fixed callers.
12419         (VL_EXP_CHECK): New.
12420         (TREE_OPERAND_LENGTH): New.
12421         (VL_EXP_OPERAND_LENGTH): New.
12422         (CALL_EXPR_FN): New.
12423         (CALL_EXPR_STATIC_CHAIN): New.
12424         (CALL_EXPR_ARGS): New.
12425         (CALL_EXPR_ARG): New.
12426         (call_expr_nargs): New.
12427         (CALL_EXPR_ARGP): New.
12428         (build_nt_call_list): Declare.
12429         (build_vl_exp_stat): Declare.
12430         (build_vl_exp): New.
12431         (build_call_list): Declare.
12432         (build_call_nary): Declare.
12433         (build_call_valist): Declare.
12434         (build_call_array): Declare.
12435         (call_expr_arg): Declare.
12436         (call_expr_argp): Declare.
12437         (call_expr_arglist): Declare.
12438         (fold_build_call_list): Declare.
12439         (fold_build_call_list_initializer): Declare.
12440         (fold_call_expr): Declare to replace fold_builtin.
12441         (fold_builtin_fputs): Update to agree with modified definition.
12442         (fold_builtin_strcpy): Likewise.
12443         (fold_builtin_strncpy): Likewise.
12444         (fold_builtin_memory_chk): Likewise.
12445         (fold_builtin_stxcpy_chk): Likewise.
12446         (fold_builtin_strncpy_chk): Likewise.
12447         (fold_builtin_next_arg): Likewise.
12448         (fold_build_call_expr): Declare.
12449         (fold_builtin_call_list): Declare.
12450         (fold_builtin_call_valist): Declare.
12451         (build_call_expr): Declare.
12452         (validate_arglist): Update to agree with modified definition.
12453         (tree_operand_length): New.
12454         (call_expr_arg_iterator): New.
12455         (init_call_expr_arg_iterator): New.
12456         (next_call_expr_arg): New.
12457         (first_call_expr_arg): New.
12458         (more_call_expr_args_p): New.
12459         (FOR_EACH_CALL_EXPR_ARG): New.
12460
12461         * tree.c (tree_code_class_string): Add entries for tcc_vl_exp
12462         and tcc_gimple_stmt.
12463         (tree_code_size): Update documentation.  Use sizeof (tree) rather
12464         than sizeof (char *).
12465         (tree_size): Likewise.  Add case for tcc_vl_exp.
12466         (tree_node_structure): Add case for tcc_vl_exp.
12467         (contains_placeholder_p): Likewise.
12468         (substitute_in_expr): Likewise.
12469         (substitute_placeholder_in_expr): Likewise.
12470         (stabilize_reference_1): Likewise.
12471         (build3_stat): Remove logic for CALL_EXPRs.  Replace with assertion
12472         to diagnose breakage of this interface for constructing CALL_EXPRs.
12473         (build_nt): Add similar assertion here.
12474         (build_nt_call_list): New.
12475         (simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
12476         (iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
12477         TREE_CODE_LENGTH.
12478         (get_callee_fndecl): Use new CALL_EXPR accessors.
12479         (tree_operand_check_failed): Change parameters to pass entire node
12480         instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
12481         (process_call_operands): New.
12482         (build_vl_exp_stat): New.
12483         (build_call_list): New.
12484         (build_call_nary): New.
12485         (build_call_valist): New.
12486         (build_call_array): New.
12487         (walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
12488         (call_expr_arglist): New.
12489
12490         * tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
12491         tcc_vl_exp instead of a fixed-size tcc_expression.
12492
12493         * doc/c-tree.texi (CALL_EXPR): Document new representation and
12494         accessors for CALL_EXPRs.
12495         (AGGR_INIT_EXPR): Likewise.
12496
12497 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
12498             Brooks Moses  <brooks.moses@codesourcery.com>
12499             Lee Millward  <lee.millward@codesourcery.com>
12500
12501         * builtins.c (c_strlen): Return NULL_TREE instead of 0.
12502         (expand_builtin_nonlocal_goto): Change parameter to be entire
12503         CALL_EXPR instead of an arglist.  Use new CALL_EXPR accessors.
12504         (expand_builtin_prefetch): Likewise.
12505         (expand_builtin_classify_type): Likewise.
12506         (mathfn_built_in): Return NULL_TREE instead of 0.
12507         (expand_errno_check): Use new CALL_EXPR accessors.
12508         (expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
12509         Return NULL_RTX instead of 0.
12510         (expand_builtin_mathfn_2): Likewise.
12511         (expand_builtin_mathfn_3): Likewise.
12512         (expand_builtin_interclass_mathfn): Likewise.
12513         (expand_builtin_sincos): Likewise.
12514         (expand_builtin_cexpi): Likewise.
12515         (expand_builtin_int_roundingfn): Likewise.
12516         (expand_builtin_int_roundingfn_2): Likewise.
12517         (expand_builtin_pow): Likewise.
12518         (expand_builtin_powi): Likewise.
12519         (expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
12520         of arglist, fixing callers appropriately.  Use new CALL_EXPR
12521         accessors and constructors.  Return NULL_RTX instead of 0.
12522         (expand_builtin_strstr): Likewise.
12523         (expand_builtin_strchr): Likewise.
12524         (expand_builtin_strrchr): Likewise.
12525         (expand_builtin_strpbrk): Likewise.
12526         (expand_builtin_memcpy): Likewise.
12527         (expand_builtin_mempcpy): Likewise.
12528         (expand_builtin_mempcpy_args): New.
12529         (expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
12530         (expand_builtin_memmove_args): New.
12531         (expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
12532         (expand_movstr): Likewise.
12533         (expand_builtin_strcpy): Likewise.
12534         (expand_builtin_strcpy_args): New.
12535         (expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
12536         (expand_builtin_strncpy): Likewise.
12537         (expand_builtin_memset): Likewise.
12538         (expand_builtin_memset_args): New.
12539         (expand_builtin_bzero): Similarly to expand_builtin_memset.
12540         (expand_builtin_memcmp): Likewise.
12541         (expand_builtin_strcmp): Likewise.
12542         (expand_builtin_strncmp): Likewise.
12543         (expand_builtin_strcat): Likewise.
12544         (expand_builtin_strncat): Likewise.
12545         (expand_builtin_strspn): Likewise.
12546         (expand_builtin_strcspn): Likewise.
12547         (expand_builtin_args_info): Likewise.
12548         (expand_builtin_va_start): Likewise.
12549         (gimplify_va_arg_expr): Likewise.
12550         (expand_builtin_va_end): Likewise.
12551         (expand_builtin_va_copy): Likewise.
12552         (expand_builtin_frame_address): Likewise.
12553         (expand_builtin_alloca): Likewise.
12554         (expand_builtin_bswap): Likewise.
12555         (expand_builtin_unop): Likewise.
12556         (expand_builtin_fputs): Likewise.
12557         (expand_builtin_expect): Likewise.
12558         (expand_builtin_fabs): Likewise.
12559         (expand_builtin_copysign): Likewise.
12560         (expand_builtin_printf): Likewise.
12561         (expand_builtin_fprintf): Likewise.
12562         (expand_builtin_sprintf): Likewise.
12563         (expand_builtin_init_trampoline): Likewise.
12564         (expand_builtin_signbit): Likewise.
12565         (expand_builtin_fork_or_exec): Likewise.
12566         (expand_builtin_sync_operation): Likewise.
12567         (expand_builtin_compare_and_swap): Likewise.
12568         (expand_builtin_lock_test_and_set): Likewise.
12569         (expand_builtin_lock_release): Likewise.
12570         (expand_builtin): Likewise.
12571         (builtin_mathfn_code): Likewise.
12572
12573         (fold_builtin_constant_p): Pass call arguments individually instead
12574         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
12575         accessors and constructors.  Return NULL_TREE instead of 0.
12576         (fold_builtin_expect): Likewise.
12577         (fold_builtin_classify_type): Likewise.
12578         (fold_builtin_strlen): Likewise.
12579         (fold_builtin_nan): Likewise.
12580         (integer_valued_real_p): Likewise.
12581         (fold_trunc_transparent_mathfn): Likewise.
12582         (fold_fixed_mathfn): Likewise.
12583         (fold_builtin_cabs): Likewise.
12584         (fold_builtin_sqrt): Likewise.
12585         (fold_builtin_cbrt): Likewise.
12586         (fold_builtin_cos): Likewise.
12587         (fold_builtin_cosh): Likewise.
12588         (fold_builtin_tan): Likewise.
12589         (fold_builtin_sincos): Likewise.
12590         (fold_builtin_cexp): Likewise.
12591         (fold_builtin_trunc): Likewise.
12592         (fold_builtin_floor): Likewise.
12593         (fold_builtin_ceil): Likewise.
12594         (fold_builtin_round): Likewise.
12595         (fold_builtin_int_roundingfn): Likewise.
12596         (fold_builtin_bitop): Likewise.
12597         (fold_builtin_bswap): Likewise.
12598         (fold_builtin_logarithm): Likewise.
12599         (fold_builtin_hypot): Likewise.
12600         (fold_builtin_pow): Likewise.
12601         (fold_builtin_powi): Likewise.
12602         (fold_builtin_exponent): Likewise.
12603         (fold_builtin_memset): Likewise.
12604         (fold_builtin_bzero): Likewise.
12605         (fold_builtin_memory_op): Likewise.
12606         (fold_builtin_bcopy): Deleted; call site changed to invoke
12607         fold_builtin_memory_op directly.
12608         (fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
12609         (fold_builtin_strncpy): Likewise.
12610         (fold_builtin_memcmp): Likewise.
12611         (fold_builtin_strcmp): Likewise.
12612         (fold_builtin_strncmp): Likewise.
12613         (fold_builtin_signbit): Likewise.
12614         (fold_builtin_copysign): Likewise.
12615         (fold_builtin_isascii): Likewise.
12616         (fold_builtin_toascii): Likewise.
12617         (fold_builtin_isdigit): Likewise.
12618         (fold_builtin_fabs): Likewise.
12619         (fold_builtin_abs): Likewise.
12620         (fold_builtin_fmin_fmax): Likewise.
12621         (fold_builtin_carg): Likewise.
12622         (fold_builtin_classify): Likewise.
12623         (fold_builtin_unordered_cmp): Likewise.
12624
12625         (fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
12626         New functions split out from fold_builtin_1.
12627         (fold_builtin_n): New.
12628         (fold_builtin_varargs): New.
12629         (fold_builtin): Deleted.  Most callers changed to use fold_call_expr
12630         instead.
12631         (fold_call_expr): New.
12632         (build_function_call_expr): Rewrite to use new helper function.
12633         (fold_builtin_call_list): New.
12634         (build_call_expr): New.
12635         (fold_builtin_call_valist): New.
12636         (rewrite_call_expr): New.
12637         (validate_arg): New.
12638         (validate_arglist): Change parameter to be entire CALL_EXPR instead
12639         of an arglist.  Change return type to bool.  Use new CALL_EXPR
12640         accessors.
12641
12642         (fold_builtin_strstr):  Pass call arguments individually instead
12643         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
12644         accessors and constructors.  Return NULL_TREE instead of 0.
12645         (fold_builtin_strchr): Likewise.
12646         (fold_builtin_strrchr): Likewise.
12647         (fold_builtin_strpbrk): Likewise.
12648         (fold_builtin_strcat): Likewise.
12649         (fold_builtin_strncat): Likewise.
12650         (fold_builtin_strspn): Likewise.
12651         (fold_builtin_strcspn): Likewise.
12652         (fold_builtin_fputs): Likewise.
12653         (fold_builtin_next_arg): Likewise.
12654         (fold_builtin_sprintf): Likewise.
12655
12656         (expand_builtin_object_size): Use new CALL_EXPR accessors.  Use
12657         NULL_RTX instead of 0.
12658         (expand_builtin_memory_chk): Likewise.
12659         (maybe_emit_chk_warning): Likewise.
12660         (maybe_emit_sprintf_chk_warning): Likewise.
12661
12662         (fold_builtin_object_size): Pass call arguments individually instead
12663         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
12664         accessors and constructors.  Return NULL_TREE instead of 0.
12665         (fold_builtin_memory_chk): Likewise.
12666         (fold_builtin_stxcpy_chk): Likewise.
12667         (fold_builtin_strncpy_chk): Likewise.
12668         (fold_builtin_strcat_chk): Likewise.
12669         (fold_builtin_strcat_chk): Likewise.
12670         (fold_builtin_strncat_chk): Likewise.
12671         (fold_builtin_sprintf_chk): Likewise.
12672         (fold_builtin_snprintf_chk): Likewise.
12673         (fold_builtin_printf): Likewise.
12674         (fold_builtin_vprintf): Likewise.
12675
12676         * fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
12677         constructors.
12678         (operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
12679         (make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
12680         (extract_muldiv_1): Add VL_EXP_CLASS_P case.
12681         (fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
12682         (fold_unary): Likewise.
12683         (fold_binary): Likewise.
12684         (fold_ternary): Remove CALL_EXPR case, since they are no longer
12685         ternary expressions.
12686         (fold): Add logic for tcc_vl_exp.
12687         (fold_checksum_tree):  Make it know about tcc_vl_exp.  Use
12688         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
12689         (fold_build3_stat): Add assertion to flag broken interface for
12690         constructing CALL_EXPRs.
12691         (fold_build_call_list): New.
12692         (fold_build_call_list_initializer): New.
12693         (tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
12694         constructors.
12695         (fold_strip_sign_ops): Likewise.
12696
12697 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
12698             Brooks Moses  <brooks.moses@codesourcery.com>
12699             Lee Millward  <lee.millward@codesourcery.com>
12700
12701         * tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
12702         accessors and dump arguments explicitly.
12703
12704         * tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
12705         TREE_CODE_LENGTH.
12706         (dump_generic_node): Use new CALL_EXPR accessors and walk arguments
12707         explicitly.
12708         (print_call_name): Use new CALL_EXPR accessors.
12709
12710         * print-tree.c (print_node): Add case tcc_vl_exp.  Print
12711         CALL_EXPR arguments explicitly instead of as a list.  Use
12712         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
12713
12714         * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
12715         (vrp_visit_stmt): Likewise.
12716
12717         * tree-ssa-loop-im.c (outermost_invariant_loop_expr):  Make it
12718         know about tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of
12719         TREE_CODE_LENGTH.
12720         (force_move_till_expr): Likewise.
12721
12722         * targhooks.c (default_external_stack_protect_fail): Use
12723         build_call_expr instead of build_function_call_expr.
12724         (default_hidden_stack_protect_fail): Likewise.
12725
12726         * tree-complex.c (expand_complex_libcall): Use build_call_expr to
12727         build the call.
12728
12729         * cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
12730         and walk arguments explicitly.
12731
12732         * tree-ssa-loop-niter.c (simplify_replace_tree): Use
12733         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
12734         (expand_simple_operations): Likewise.
12735         (infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
12736
12737         * gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
12738         of TREE_CODE_LENGTH.
12739         (walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
12740
12741         * optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
12742         instead of TREE_CODE_LENGTH.
12743
12744         * value_prof.c (tree_ic): Use new CALL_EXPR accessors.
12745         (tree_ic_transform): Likewise.
12746         (interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
12747         parameter instead of arglist.  Fix callers.
12748         (tree_stringop_fixed_value): Use new CALL_EXPR accessors.
12749         (tree_stringops_transform): Likewise.
12750         (tree_indirect_call_to_profile): Likewise.
12751         (tree_stringops_values_to_profile): Likewise.
12752
12753         * tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
12754         (eliminate_tail_call): Likewise.
12755
12756         * ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
12757
12758         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
12759         Use TREE_OPERAND_LENGTH and generalize to handle any number of
12760         operands.
12761         (instantiate_parameters_1): Can't handle tcc_vl_exp here.
12762
12763         * omp-low.c (build_omp_barrier): Use build_call_expr.
12764         (lower_rec_input_clauses): Likewise.
12765         (lower_reduction_clauses): Likewise.
12766         (expand_parallel_call): Likewise.
12767         (maybe_catch_exception): Likewise.
12768         (expand_omp_for_generic): Likewise.
12769         (expand_omp_for_static_nochunk): Likewise.
12770         (expand_omp_sections): Likewise.
12771         (lower_omp_single_simple): Likewise.
12772         (lower_omp_single_copy): Likewise.
12773         (lower_omp_master): Likewise.
12774         (lower_omp_ordered): Likewise.
12775         (lower_omp_critical): Likewise.
12776
12777         * ipa-reference.c (check-call): Use new CALL_EXPR iterator.
12778         (scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
12779
12780         * tree-gimple.c (is_gimple_call_addr): Fix doc.
12781         (recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
12782         TREE_CODE_LENGTH.  Add tcc_vl_exp case.
12783
12784         * tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
12785         and generalize to handle any number of operands.
12786         (chrec_contains_undetermined): Likewise.
12787         (tree_contains_chrecs): Likewise.
12788         (evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
12789
12790         * cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
12791
12792         * tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors.  Use
12793         fold_call_expr instead of fold_builtin.
12794         (ccp_fold_builtin): Likewise.  Update calls into builtins.c to
12795         match declarations there.
12796         (fold_stmt): Use new CALL_EXPR constructor and accessors.  Doc
12797         updates.
12798
12799         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
12800         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
12801
12802         * ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
12803         (scan_function): Add case tcc_vl_exp for CALL_EXPR.
12804
12805         * tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
12806         accessors.
12807
12808         * tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
12809         (execute_cse_sincos): Use new CALL_EXPR accessors.
12810
12811         * tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
12812
12813         * gimple-low.c (lower_function_body): Use build_call_expr.
12814         (lower_builtin_setjmp): Likewise.
12815
12816         * expr.c (emit_block_move_via_libcall): Use build_call_expr.
12817         (set_storage_via_libcall): Likewise.
12818         (safe_from_p): Add tcc_vl_exp case.  Use TREE_OPERAND_LENGTH
12819         instead of TREE_CODE_LENGTH.
12820         (expand_expr_real_1): Use new CALL_EXPR accessors.
12821
12822         * tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
12823         generalize to handle any number of operands.
12824         (TB_parent_eq): Likewise.
12825
12826         * predict.c (expr_expected_value): Use new CALL_EXPR accessors.
12827         (strip_builtin_expect): Likewise.
12828
12829         * function.c (gimplify_parameters): Use build_call_expr.
12830
12831         * tree-vectorizer.c (vect_is_simple_reduction): Use TREE_OPERAND_LENGTH
12832         instead of TREE_CODE_LENGTH.
12833
12834         * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
12835         (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
12836
12837         * tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
12838         iterators.
12839
12840         * gimplify.c (build_stack_save_restore): Use build_call_expr.
12841         (gimplify_decl_expr): Likewise.
12842         (gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
12843         Use new CALL_EXPR iterators.
12844         (gimplify_modify_expr_to_memcpy): Use build_call_expr.
12845         (gimplify_modify_expr_to_memset): Likewise.
12846         (gimplify_variable_sized_compare): Likewise.
12847         (gimplify_omp_atomic_fetch_op): Likewise.
12848         (gimplify_omp_atomic_pipeline): Likewise.
12849         (gimplify_omp_atomic_mutex): Likewise.
12850         (gimplify_function_tree): Likewise.
12851
12852         * calls.c (alloca_call_p): Use new CALL_EXPR accessors.
12853         (call_expr_flags): Likewise.
12854         (expand_call): Likewise.
12855
12856         * except.c (expand_builtin_eh_return_data_regno): Pass entire
12857         CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
12858         accessors.
12859
12860         * coverage.c (create_coverage): Use build_call_expr.
12861
12862         * tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
12863         (temp_call_expr_obstack): New.
12864         (pool_copy_list): Delete.
12865         (temp_copy_call_expr): New.
12866         (phi_translate): Add case tcc_vl_exp for CALL_EXPR.  Use new
12867         CALL_EXPR accessors.  Get rid of special goo for copying argument
12868         lists and use temp_copy_call_expr instead.
12869         (valid_in_sets): Add case tcc_vl_exp for CALL_EXPR.  Use new
12870         CALL_EXPR accessors.
12871         (create_expression_by_pieces): Likewise.  Use build_call_array
12872         to construct the result instead of fold_build3.
12873         (create_value_expr_from): Add tcc_vl_exp.  Delete special goo for
12874         dealing with argument lists.
12875         (init_pre): Remove references to expression_node_pool and
12876         list_node_pool.  Init temp_call_expr_obstack instead.
12877         (fini_pre): Remove references to expression_node_pool and
12878         list_node_pool.
12879
12880         * tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
12881         and walk arguments explicitly instead of as a list.
12882
12883         * tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
12884         (mx_register_decls): Likewise.
12885         (mudflap_register_call): Likewise.
12886         (mudflap_finish_file): Likewise.
12887
12888         * ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
12889         (ipa_callsite_compute_param): Likewise.
12890
12891         * tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
12892         accessors and constructor.
12893
12894         * tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
12895         accessors and constructor.
12896         (convert_tramp_reference): Likewise.
12897         (convert_call_expr): Likewise.
12898         (finalize_nesting_tree_1): Likewise.
12899
12900         * tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
12901         accessors.
12902
12903         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
12904
12905         * tree-inline.c (initialize_inlined_parameters): Pass entire
12906         CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
12907         accessors.
12908         (estimate_num_insns_1): Use new CALL_EXPR accessors.
12909         (expand_call_inline): Tidy up call to initialize_inlined_parameters.
12910
12911         * tree-vect-transform.c (vect_create_epilog_for_reduction):  Use
12912         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
12913         (vectorizable_reduction): Likewise.
12914         (vectorizable_call): Use new CALL_EXPR iterators.
12915         (vectorizable_conversion): Use build_call_expr.
12916         (vectorizable_operation): Use TREE_OPERAND_LENGTH.
12917         (vect_gen_widened_results_half): Use build_call_expr.
12918         (vect_setup_realignment): Likewise.
12919         (vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
12920
12921         * tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
12922         (pass_through_call): Likewise.
12923         (compute_object_sizes): Likewise.  Use fold_call_expr instead of
12924         fold_builtin.
12925
12926         * tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
12927         (tree_gen_pow2_profiler): Likewise.
12928         (tree_gen_one_value_profiler): Likewise.
12929         (tree_gen_ic_func_profiler): Likewise.
12930         (tree_gen_average_profiler): Likewise.
12931         (tree_gen_ior_profiler): Likewise.
12932
12933         * tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
12934         (find_func_aliases): Use new CALL_EXPR accessors.  Add case
12935         tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
12936
12937         * tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
12938         of TREE_CODE_LENGTH.
12939
12940         * stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
12941         of TREE_CODE_LENGTH.
12942
12943         * convert.c (convert_to_real): Use new CALL_EXPR accessors and
12944         constructor.
12945         (convert_to_integer): Likewise.
12946
12947         * tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
12948         accessors.
12949
12950 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
12951             Brooks Moses  <brooks.moses@codesourcery.com>
12952             Lee Millward  <lee.millward@codesourcery.com>
12953
12954         * config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
12955         accessors.
12956         * config/frv/frv.c (frv_expand_builtin): Likewise.
12957         * config/s390/s390.c (s390_expand_builtin): Likewise.
12958
12959         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
12960         (sparc_expand_builtin): Use new CALL_EXPR accessors.
12961
12962         * config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
12963         (ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
12964         instead of arglist.  Use new CALL_EXPR accessors on it.  Fix callers.
12965         (ix86_expand_store_builtin): Likewise.
12966         (ix86_expand_unop_builtin): Likewise.
12967         (ix86_expand_unop1_builtin): Likewise.
12968         (ix86_expand_sse_compare): Likewise.
12969         (ix86_expand_sse_comi): Likewise.
12970         (ix86_expand_vec_init_builtin): Likewise.
12971         (ix86_expand_vec_ext_builtin): Likewise.
12972         (ix86_expand_vec_set_builtin): Likewise.
12973         (ix86_expand_builtin): Use new CALL_EXPR accessors.
12974
12975         * config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
12976         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
12977
12978         * config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
12979         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
12980         (iq2000_expand_builtin): Use new CALL_EXPR accessors.
12981
12982         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
12983         build_call_expr.
12984         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
12985         (rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
12986         arglist.  Use new CALL_EXPR accessors.  Fix callers.
12987         (altivec_expand_abs_builtin): Likewise.
12988         (rs6000_expand_binop_builtin): Likewise.
12989         (altivec_expand_predicate_builtin): Likewise.
12990         (altivec_expand_lv_builtin): Likewise.
12991         (spe_expand_stv_builtin): Likewise.
12992         (altivec_expand_stv_builtin): Likewise.
12993         (rs6000_expand_ternop_builtin): Likewise.
12994         (altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
12995         (altivec_expand_st_builtin): Likewise.
12996         (altivec_expand_dst_builtin): Likewise.
12997         (altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
12998         arglist.  Use new CALL_EXPR accessors.  Fix callers.
12999         (altivec_expand_vec_set_builtin): Likewise.
13000         (altivec_expand_vec_ext_builtin): Likewise.
13001         (altivec_expand_builtin): Use new CALL_EXPR accessors.
13002         (spe_expand_builtin): Likewise.
13003         (spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
13004         arglist.  Use new CALL_EXPR accessors.  Fix callers.
13005         (spe_expand_evsel_builtin): Likewise.
13006         (rs6000_expand_builtin): Use new CALL_EXPR accessors.  VCFUX and
13007         FCFSX cases must construct whole new CALL_EXPR, not just arglist.
13008
13009         * config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
13010         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
13011         (arm_expand_unop_builtin): Likewise.
13012         (arm_expand_builtin): Use new CALL_EXPR accessors.
13013
13014         * config/mips/mips.c (mips_expand_builtin):  Use new CALL_EXPR
13015         accessors.
13016
13017         * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire CALL_EXPR
13018         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
13019         (bfin_expand_unop_builtin): Likewise.
13020         (bfin_expand_builtin): Use new CALL_EXPR accessors.
13021
13022 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
13023             Brooks Moses  <brooks.moses@codesourcery.com>
13024             Lee Millward  <lee.millward@codesourcery.com>
13025
13026         * c-semantics.c (build_stmt): Add internal diagnostic check.
13027
13028         * c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
13029         accessors.  Print arguments explicitly instead of as a list.
13030
13031         * c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
13032
13033         * c-omp.c (c_finish_omp_barrier): Use build_call_expr.
13034         (c_finish_omp_flish): Likewise.
13035
13036         * c-common.c (verify_tree): Use new CALL_EXPR accessors.  Traverse
13037         arguments explicitly instead of as a list.  Use TREE_OPERAND_LENGTH
13038         instead of TREE_CODE_LENGTH.
13039         (check_function_arguments_recurse): Use new CALL_EXPR accessors.
13040         (c_warn_unused_result): Likewise.
13041
13042 2007-02-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13043
13044         PR c/26494
13045         * doc/invoke.texi (Warning Options): Remove
13046         -Werror-implicit-function-declaration.
13047         (Wimplicit-function-declaration): Update description.
13048         * opts.c (common_handle_option): Move handling of -Werror=* to...
13049         (enable_warning_as_error): ...here.
13050         * opts.h (enable_warning_as_error): Declare.
13051         * c-decl.c (implicit_decl_warning): Unless
13052         -Wno-implicit-function-declaration is given, emit a pedwarn if
13053         -std=c99 or emit a warning if -Wimplicit-function-declaration.
13054         * c.opt (Wimplicit-function-declaration): Replace
13055         mesg_implicit_function_declaration with
13056         warn_implicit_function_declaration.
13057         * c-opts.c (c_common_handle_option):
13058         -Werror-implicit-function-declaration is exactly equal as
13059         -Werror=implicit-function-declaration.
13060         (set_Wimplicit): Replace mesg_implicit_function_declaration with
13061         warn_implicit_function_declaration.
13062         (c_common_post_options): -Wimplict-function-declaration is enabled
13063         by default by -std=c99, otherwise is disabled by default.
13064         * c-objc-common.c (c_objc_common_init): Remove flawed logic.
13065
13066 2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>
13067
13068         * gimplify.c (gimplify_modify_expr): During gimplification, attach a
13069         DECL on the rhs to a DECL on the lhs for debug info purposes if the
13070         former is ignored but not the latter.
13071
13072 2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>
13073
13074         * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
13075         is made and the reference doesn't use the alias set of its type,
13076         do not create the temporary using that type.
13077
13078 2007-02-15  Aldy Hernandez  <aldyh@redhat.com>
13079
13080         * jump.c: Remove prototypes for delete_computation and
13081         delete_prior_computation.
13082
13083 2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
13084
13085         * jump.c (get_label_after): Delete.
13086         (get_label_before, delete_computation, delete_jump,
13087         delete_prior_computation, follow_jumps): Move...
13088         * reorg.c (delete_computation, delete_prior_computation): ... here...
13089         (get_label_before, delete_jump): ... making these static ...
13090         (follow_jumps): ... and simplifying this since it only runs after
13091         reload.
13092         * rtl.h (get_label_after, get_label_before, delete_jump,
13093         follow_jumps): Delete prototypes.
13094
13095 2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
13096
13097         * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
13098
13099 2007-02-15  Nick Clifton  <nickc@redhat.com>
13100
13101         * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
13102         order to prevent it from being munged by the target.
13103
13104 2007-02-15  Uros Bizjak  <ubizjak@gmail.com>
13105
13106         * config/i386/i386.md: Remove misleading comment.
13107
13108 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
13109
13110         * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
13111         reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
13112         invalid patterns.
13113
13114 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
13115
13116         * tree-sra.c (instantiate_missing_elements): Canonicalize
13117         bit-field types.
13118         (sra_build_assignment): New.
13119         (generate_copy_inout, generate_element_copy,
13120         generate_element_zero, generate_one_element_init): Use it.
13121
13122 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
13123
13124         * tree-sra.c (instantiate_missing_elements): Canonicalize
13125         bit-field types.
13126         (sra_build_assignment): New.
13127         (generate_copy_inout, generate_element_copy,
13128         generate_element_zero, generate_one_element_init): Use it.
13129
13130 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
13131
13132         * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
13133         limbo die nodes.
13134
13135 2007-02-14  Joseph Myers  <joseph@codesourcery.com>
13136
13137         * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
13138         types as aggregates not scalars.
13139         * function.c (assign_stack_temp_for_type): Likewise.
13140
13141 2007-02-14  Roger Sayle  <roger@eyesopen.com>
13142             Zdenek Dvorak  <dvorakz@suse.cz>
13143
13144         * tree-dump.c (dump_switch_p_1): Require exact match of the option
13145         name.
13146
13147 2007-02-14  Zdenek Dvorak  <dvorakz@suse.cz>
13148
13149         * passes.c (next_pass_1): Clear the next field of the copied
13150         pass structure.
13151
13152 2007-02-14  Richard Henderson  <rth@redhat.com>
13153
13154         * tree-sra.c (early_sra): New.
13155         (decl_can_be_decomposed_p): Deny va_list if early_sra.
13156         (tree_sra_early, pass_sra_early): New.
13157         * tree-pass.h (pass_sra_early): Declare.
13158         * passes.c (init_optimization_passes): Use it.
13159
13160 2007-02-14  Richard Guenther  <rguenther@suse.de>
13161
13162         * flags.h (issue_strict_overflow_warning): Convert to a macro.
13163
13164 2007-02-14  Dorit Nuzman  <dorit@il.ibm.com>
13165
13166          PR tree-optimization/30771
13167         * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
13168         also phi nodes.
13169         (vect_analyze_operations): Induction phis can now be marked as
13170         used_in_loop.
13171         (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
13172         Update documentation accordingly.
13173
13174 2007-02-14  Nick Clifton  <nickc@redhat.com>
13175
13176         * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
13177         most 3 arguments are supported.
13178         (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
13179
13180 2007-02-13  Seongbae Park <seongbae.park@gmail.com>
13181
13182         * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
13183         Ensure dst->current is valid.
13184
13185 2007-02-13  Paul Brook  <paul@codesourcery.com>
13186
13187         * config.gcc: Add arm*-*-uclinux-*eabi.
13188         * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
13189         (SUBTARGET_EXTRA_LINK_SPEC): Define.
13190         (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
13191         (LINK_GCC_C_SEQUENCE_SPEC): Undef.
13192         (LINK_SPEC): Define.
13193         (LIB_SPEC): Define.
13194         * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
13195         register.
13196         * config/arm/uclinux-eabi.h: New file.
13197         * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
13198         * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
13199         based targets.
13200
13201 2007-02-13  Ian Lance Taylor  <iant@google.com>
13202
13203         * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
13204         * flags.h (warn_strict_overflow): Declare.
13205         (enum warn_strict_overflow_code): Define.
13206         (issue_strict_overflow_warning): New static inline function.
13207         * opts.c (warn_strict_overflow): New variable.
13208         (common_handle_option): Handle OPT_Wstrict_overflow and
13209         OPT_Wstrict_overflow_.
13210         * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
13211         OPT_Wall.
13212         * fold-const.c: Include intl.h.
13213         (fold_deferring_overflow_warnings): New static variable.
13214         (fold_deferred_overflow_warning): New static variable.
13215         (fold_deferred_overflow_code): New static variable.
13216         (fold_defer_overflow_warnings): New function.
13217         (fold_undefer_overflow_warnings): New function.
13218         (fold_undefer_and_ignore_overflow_warnings): New function.
13219         (fold_deferring_overflow_warnings_p): New function.
13220         (fold_overflow_warning): New static function.
13221         (make_range): Add strict_overflow_p parameter.  Change all
13222         callers.
13223         (extract_muldiv, extract_muldiv_1): Likewise.
13224         (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
13225         tree_expr_nonnegative_p.
13226         (fold_negate_expr): Call fold_overflow_warning.
13227         (fold_range_test): Likewise.
13228         (fold_comparison): Likewise.
13229         (fold_binary): Likewise.  Call tree_expr_nonnegative_warnv_p
13230         instead of tree_expr_nonnegative_p.
13231         (tree_expr_nonnegative_warnv_p): Rename from
13232         tree_expr_nonnegative_p, add strict_overflow_p parameter.
13233         (tree_expr_nonnegative_p): New function.
13234         (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
13235         strict_overflow_p parameter.
13236         (tree_expr_nonzero_p): New function.
13237         * passes.c (verify_interpass_invariants): New static function.
13238         (execute_one_pass): Call it.
13239         * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
13240         warnings.
13241         (number_of_iterations_exit, loop_niter_by_eval): Likewise.
13242         (estimate_numbers_of_iterations): Likewise.
13243         (scev_probably_wraps_p): Likewise.
13244         * tree-ssa-ccp.c: Include "toplev.h".
13245         (evaluate_stmt): Defer fold overflow warnings until we know we are
13246         going to optimize.
13247         (struct fold_stmt_r_data): Add stmt field.
13248         (fold_stmt_r): Defer fold overflow warnings until we know we
13249         optimized.
13250         (fold_stmt): Initialize stmt field of fold_stmt_r_data.
13251         (fold_stmt_inplace): Likewise.
13252         * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
13253         (cleanup_control_expr_graph): Defer fold overflow warnings until
13254         we know we are going to optimize.
13255         * tree-cfg.c (fold_cond_expr_cond): Likewise.
13256         * tree-ssa-threadedge.c (simplify_control_stmt_condition):
13257         Likewise.
13258         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
13259         tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
13260         * tree-ssa-loop-manip.c (create_iv): Likewise.
13261         * c-typeck.c (build_conditional_expr): Likewise.
13262         (build_binary_op): Likewise.
13263         * tree-vrp.c (vrp_expr_computes_nonzero): Call
13264         tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
13265         (extract_range_from_unary_expr): Likewise.
13266         * simplify-rtx.c (simplify_const_relational_operation): Warn when
13267         assuming that signed overflow does not occur.
13268         * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
13269         * tree.h (tree_expr_nonnegative_warnv_p): Declare.
13270         (fold_defer_overflow_warnings): Declare.
13271         (fold_undefer_overflow_warnings): Declare.
13272         (fold_undefer_and_ignore_overflow_warnings): Declare.
13273         (fold_deferring_overflow_warnings_p): Declare.
13274         (tree_expr_nonzero_warnv_p): Declare.
13275         * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
13276         of warning options.
13277         (Warning Options): Document -Wstrict-overflow.
13278         * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
13279         (tree-ssa-ccp.o): Likewise.
13280         (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
13281         (fold-const.o): Depend on intl.h.
13282
13283 2007-02-13  Ian Lance Taylor  <iant@google.com>
13284
13285         PR middle-end/30751
13286         * lower-subreg.c (resolve_simple_move): Decompose subregs in
13287         addresses.
13288
13289 2007-02-13  Stuart Hastings  <stuart@apple.com>
13290
13291         * config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
13292
13293 2007-02-13  Richard Henderson  <rth@redhat.com>
13294
13295         * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
13296         handled_component_p before looking for the indirect_ref.
13297
13298 2007-02-13  Richard Henderson  <rth@redhat.com>
13299
13300         * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
13301         remove flags clobber.
13302         (bswapsi2): New expander, emit code for !TARGET_BSWAP.
13303         (bswaphi_lowpart): New.
13304         (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
13305         remove TARGET_BSWAP test.  Delete expander of the same name.
13306
13307         * optabs.c (widen_bswap, expand_doubleword_bswap): New.
13308         (expand_unop): Use them.
13309
13310 2007-02-13  Uros Bizjak  <ubizjak@gmail.com>
13311
13312         * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
13313         *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
13314         *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
13315         *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
13316         *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
13317         *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
13318         *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
13319         assembler dialect choice from asm templates.
13320
13321 2007-02-12  Richard Henderson  <rth@redhat.com>
13322
13323         * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
13324         (fixuns_trunc<SSEMODEF>si2): Use it.
13325         * config/i386/sse.md (vec_setv4sf_0): Export.
13326         * config/i386/i386.c (ix86_build_const_vector): Export.
13327         (ix86_split_convert_uns_si_sse): Rename from
13328         ix86_expand_convert_uns_si_sse and rewrite as a splitter.
13329         * config/i386/i386-protos.h: Update.
13330
13331 2007-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13332
13333         PR c/29521
13334         * c-typeck.c (c_finish_return): Improve warning message.
13335
13336 2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13337
13338         * alias.c (find_symbolic_term): Delete unused function.
13339
13340 2007-02-12  Uros Bizjak  <ubizjak@gmail.com>
13341
13342         * config/i386/i386.md (paritydi2, paritysi2): New expanders.
13343         (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
13344         (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
13345
13346 2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
13347
13348         * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
13349         * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
13350         the function, temporarily point the debug interface to the null one.
13351
13352 2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
13353
13354         * dwarf2out.c (round_up_to_align): New static function.
13355         (field_byte_offset): Use it to round the offset.
13356
13357 2007-02-12  Richard Henderson  <rth@redhat.com>
13358
13359         * config/alpha/alpha.md (bswapsi2, bswapdi2): New.
13360         (inswl_const): Export.
13361
13362 2007-02-12  Richard Henderson  <rth@redhat.com>
13363
13364         * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
13365         result mode of the libcall, convert back to outmode.
13366
13367 2007-02-12  Roger Sayle  <roger@eyesopen.com>
13368
13369         * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
13370         (bswapdi2): New define_expand to implement 32-bit implementation.
13371
13372 2007-02-12  Nick Clifton  <nickc@redhat.com>
13373
13374         * doc/invoke.texi (Overall Options): Document --help=.
13375         * gcc.c (target_help_flag): Rename to print_subprocess_flag.
13376         (cc1_options): Pass --help= on to cc1.
13377         (display_help): Add description of --help=.
13378         (process_command): Add code to handle --help=.  Allow translated
13379         --help and --target-help switches to be passed on to compiler
13380         sub-process.
13381         (main): Remove unused if statement.
13382         * opts.c (columns): Remove.
13383         (LEFT_COLUMN): Define.
13384         (wrap_help): Add columns argument.
13385         (print_filtered_help): Change parameters to be an include bitmask,
13386         an exclude bitmask, an any bitmask and the column width.  Move the
13387         code to display the params list here.  Add code to display the
13388         status of options rather than their descriptions if the quiet flag
13389         is not active.
13390         (print_specific_help): Change parameters to be an include bitmask,
13391         an exclude bitmask and an any bitmask.  Move code to look up the
13392         column width here.  Decide upon the title for an options listing.
13393         (common_handle_options): Add code to handle --help=.  Adapt code
13394         for --help and --target-help to use the revised form of the
13395         print_specific_help function.
13396         (print_help): Delete.
13397         (print_param_help): Delete.
13398         (print_switch): Delete.
13399         * opts.h (cl_lang_count): Add prototype.
13400         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS,
13401         CL_MAX_OPTION_CLASS): New defines.
13402         * optc-gen.awk: Add construction of cl_lang_count.
13403         * c.opt: Add Warning attribute to warning options and Optimization
13404         attribute to optimization options.
13405         * common.opt: Likewise.
13406         Add --help=.
13407         Add -fhelp and -ftarget-help as aliases for the transformed --help
13408         and --target-help options.
13409         * opt-functions.awk: Add code to handle Warning and Optimization
13410         attributes.
13411
13412 2007-02-12  Richard Henderson  <rth@redhat.com>
13413
13414         * config/alpha/constraints.md: New file.
13415         * config/alpha/alpha.c: Include tm-constrs.h.
13416         (alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
13417         alpha_extra_constraint): Remove.
13418         (alpha_emit_conditional_branch): Use satisfies_constraint_*.
13419         * config/alpha/alpha-protos.h: Update.
13420         * config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
13421         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
13422         (EXTRA_CONSTRAINT): Remove.
13423         * config/alpha/alpha.md: Include constraints.md.
13424         (adddi splitter): Use satisfies_constraint_*.
13425         * config/alpha/predicates.md (add_operand): Likewise.
13426         (sext_add_operand, addition_operation): Likewise.
13427
13428 2007-02-12  Dorit Nuzman  <dorit@il.ibm.com>
13429
13430         PR tree-optimization/29145
13431         * tree-data-ref.c (base_addr_differ_p): Make us more conservative
13432         in our handling of restrict qualified pointers.
13433
13434 2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13435
13436         PR middle-end/7651
13437         * doc/invoke.texi (Wunused-value): Update description.
13438         (Wextra): Delete item.
13439         * opts.c (set_Wextra): Don't use the value of Wextra to set the
13440         value of Wunused-value.
13441         * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
13442         (c_finish_stmt_expr): Don't check extra_warnings.
13443         (emit_side_effect_warnings): The caller is responsible to check
13444         warn_unused_value.
13445
13446 2007-02-11  Roger Sayle  <roger@eyesopen.com>
13447             Matt Thomas  <matt@3am-software.com>
13448
13449         * simplify-rtx.c (simplify_relational_operation_1): Correct typo.
13450
13451 2007-02-11  Roger Sayle  <roger@eyesopen.com>
13452
13453         * simplify-rtx.c (simplify_relational_operation_1): Optimize
13454         comparisons of POPCOUNT against zero.
13455         (simplify_const_relational_operation): Likewise.
13456
13457 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13458
13459         * doc/invoke.texi (Wextra): Delete outdated paragraph.
13460
13461 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13462
13463         * dwarf2out.c (root_type): Delete unused function.
13464
13465 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13466
13467         * genattrtab.c (contained_in_p): Delete unused function.
13468         (write_expr_attr_cache): Likewise.
13469
13470 2007-02-11  Jan Hubicka  <jh@suse.cz>
13471
13472         * ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
13473         previous patch.
13474
13475 2007-02-11  Steven Bosscher  <steven@gcc.gnu.org>
13476
13477         * fwprop.c (try_fwprop_subst): Use set_unique_reg_note
13478         to add the REG_EQ* note.
13479         * see.c (see_merge_one_use_extension): Likewise.
13480         * local-alloc.c (update_equiv_regs): Likewise.  Also don't
13481         turn REG_EQUAL notes into REG_EQUIV notes if the target
13482         register may have more than one set.
13483         * function.c (assign_parm_setup_reg): Use set_unique_reg_note.
13484         * gcse.c (try_replace_reg): Likewise.
13485         * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
13486         * calls.c (fixup_tail_calls): Likewise.  Abort if there is
13487         more than one REG_EQUIV note.
13488         * reload1.c (gen_reload): Use set_unique_reg_note.
13489
13490 2007-02-11  Uros Bizjak  <ubizjak@gmail.com>
13491
13492         * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
13493         (ix86_builtin_conversion): New function.
13494
13495 2007-02-06  Mark Mitchell  <mark@codesourcery.com>
13496
13497         PR target/29487
13498         * tree.h (DECL_REPLACEABLE_P): New macro.
13499         * except.c (set_nothrow_function_flags): Likewise.
13500
13501 2007-02-11  Tehila Meyzels  <tehila@il.ibm.com>
13502             Ira Rosen  <irar@il.ibm.com>
13503             Dorit Nuzman  <dorit@il.ibm.com>
13504
13505         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
13506         * targhooks.c (default_builtin_vectorized_conversion): New.
13507         * targhooks.h (default_builtin_vectorized_function): New declaration.
13508         * target.h (struct vectorize): Add builtin_conversion field.
13509         * tree-vectorizer.h (type_conversion_vec_info_type): New enum
13510         stmt_vec_info_type value.
13511         (vectorizable_conversion): New declaration.
13512         * tree-vect-analyze.c (vect_analyze_operations): Add
13513         vectorizable_conversion call.
13514         * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
13515         * tree-vect-transform.c (vectorizable_conversion): New function.
13516         (vect_transform_stmt): Add case for type_conversion_vec_info_type.
13517         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
13518         mode.
13519         * config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
13520         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
13521         (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX
13522         or ALTIVEC_BUILTIN_VCFSX.
13523
13524 2007-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13525
13526         PR target/30634
13527         * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
13528         CONST_DOUBLE and operand 0 is a hard register.
13529         (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
13530         memory.  Fail if operand 1 is a non-zero CONST_INT and operand 0
13531         is a hard floating-point register.
13532
13533 2007-02-10  Richard Henderson  <rth@redhat.com>
13534             Jakub Jelinek  <jakub@redhat.com>
13535             Alexandre Oliva  <aoliva@redhat.com>
13536
13537         * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
13538         * builtin-types.def (BT_WORD): Make unsigned.
13539         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
13540         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
13541         (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
13542         * c-decl.c (grokdeclarator): Don't error if !have_tls.
13543         * c-parser.c (c_parser_omp_threadprivate): Likewise.
13544         * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
13545         emulated tls.
13546         * expr.c (emutls_var_address): New.
13547         (expand_expr_real_1): Expand emulated tls.
13548         (expand_expr_addr_expr_1): Likewise.
13549         * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
13550         * output.h (emutls_finish): Declare.
13551         * toplev.c (compile_file): Call it.
13552         * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
13553         address before wrapping in CONST.
13554         * varasm.c (emutls_htab, emutls_object_type): New.
13555         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
13556         (get_emutls_object_name, get_emutls_object_type): New.
13557         (get_emutls_init_templ_addr, emutls_decl): New.
13558         (emutls_common_1, emutls_finish): New.
13559         (assemble_variable): When emulating tls, swap decls; generate
13560         constructor for the emutls objects.
13561         (do_assemble_alias): When emulating tls, swap decl and target name.
13562         (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
13563         for emulated tls.
13564         * varpool.c (decide_is_variable_needed): Look at force_output.
13565         Recurse for emulated tls.
13566         (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
13567         with decide_is_variable_needed.
13568         * emutls.c: New file.
13569         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
13570         tls_object for real tls.
13571
13572 2007-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
13573
13574         PR rtl-optimization/29599
13575         * reload1.c (eliminate_regs_in_insn): Take the destination
13576         mode into account when computing the offset.
13577
13578 2007-02-09  Stuart Hastings  <stuart@apple.com>
13579             Richard Henderson  <rth@redhat.com>
13580
13581         * config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
13582         * config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
13583         * config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2,
13584         fixuns_truncdfhi2): New.
13585         (fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse.
13586         (floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
13587         (floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
13588         (floatunssidf2): Allow nonimmediate source.
13589         * config/i386/sse.md (movdi_to_sse): New.
13590         (vec_concatv2di): Drop '*'.
13591         * config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
13592         ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
13593         ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse):
13594         New.
13595         * config/i386/i386.c (ix86_expand_convert_uns_si_sse,
13596         ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
13597         ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
13598         ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
13599         (ix86_build_signbit_mask): Fix decl of v, refactor to call
13600         ix86_build_const_vector.
13601         (x86_emit_floatuns): Rewrite.
13602
13603 2007-02-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13604
13605         * genautomata.c (longest_path_length): Delete unused function.
13606         (struct state): Delete unused longest_path_length.
13607         (UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
13608         (get_free_state): Delete unused.
13609
13610 2007-02-09  Jan Hubicka  <jh@suse.cz>
13611
13612         * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
13613         * doc/invoke.texi (inline-unit-growth): Update default value.
13614
13615         * Makefile.in (passes.o, ipa-inline.o): Add dependencies.
13616         * cgraphbuild.c (build_cgraph_edges): Compute frequencies.
13617         (rebuild_cgraph_edges): Likewise.
13618         * cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
13619         (dump_cgraph_node): Dump frequencies.
13620         (cgraph_clone_edge): Add frequency scales.
13621         (cgraph_clone_node): Add freuqnecy.
13622         * cgraph.h (cgraph_edge): Add freuqnecy argument.
13623         (CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
13624         (cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
13625         * tree-pass.h (TODO_rebuild_frequencies): New constant.
13626         * cgraphunit.c (verify_cgraph_node): Verify frequencies.
13627         (cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
13628         (save_inline_function_body): Likewise.
13629         * ipa-inline.c: inluce rtl.h
13630         (cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
13631         (cgraph_edge_badness): Use frequencies.
13632         (cgraph_decide_recursive_inlining): Update clonning.
13633         (cgraph_decide_inlining_of_small_function): Dump frequency.
13634         * predict.c (estimate_bb_frequencies): Export.
13635         * predict.h (estimate_bb_frequencies): Declare.
13636         * tree-inline.c (copy_bb): Watch overflows.
13637         (expand_call_inline): Update call of cgraph_create_edge.
13638         (optimize_inline_calls): Use TODO flags to update frequnecies.
13639         * passes.h: Include predict.h
13640         (init_optimization_passes): Move profile ahead.
13641         (execute_function_todo): Handle TODO_rebuild_frequencies.
13642
13643 2007-02-09  Roger Sayle  <roger@eyesopen.com>
13644
13645         * config/alpha/alpha.c (emit_insxl): Force the first operand of
13646         the insbl or inswl pattern into a register.
13647
13648 2007-02-09  Roger Sayle  <roger@eyesopen.com>
13649
13650         * config/ia64/ia64.md (bswapdi2): New define_insn.
13651
13652 2007-02-09  Richard Henderson  <rth@redhat.com>
13653
13654         * config/i386/constraints.md (Ym): New constraint.
13655         * config/i386/i386.md (movsi_1): Change Y2 to Yi constraints.
13656         (movdi_1_rex64): Split sse and xmm general register moves from
13657         memory move alternatives.  Use conditional register constraints.
13658         (movsf_1, movdf_integer): Likewise.
13659         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
13660         (movdf_integer_rex64): New.
13661         (pushsf_rex64): Fix output constraints.
13662         * config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi.
13663         (sse2_stored): Likewise.
13664         (sse2_storeq_rex64): New.
13665         * config/i386/i386.c (x86_inter_unit_moves): Enable for not
13666         amd and not generic.
13667         (ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
13668         for optimize_size.  Remove SF/DFmode hack.
13669
13670 2007-02-09  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
13671
13672         * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
13673         (bit_SSE4a): New.
13674
13675 2007-02-09  Nathan Sidwell  <nathan@codesourcery.com>
13676             Richard Sandiford  <richard@codesourcery.com>
13677
13678         * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
13679         (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
13680         (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
13681         m68k/t-mlib to tmake_file.
13682         (m68020-*-elf*, m68k-*-elf*): Likewise.  Add t-m68kbare as well.
13683         (m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
13684         (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
13685         Allow it to be cf or m68k.  Set m68k_arch_family.  If that
13686         variable is not empty, add t-$m68k_arch_family to tmake_file.
13687         Add t-mlibs to tmake_file.
13688         * doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
13689         * config/m68k/t-cf: New file.
13690         * config/m68k/t-m68k: Likewise.
13691         * config/m68k/t-mlibs: Likewise.
13692         * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
13693         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
13694         (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
13695         * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
13696         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
13697         Delete.
13698         * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
13699         (INSTALL_LIBGCC): Delete.
13700         (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
13701         * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
13702         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
13703         (M68K_MLIB_CPU): Define.
13704         * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
13705         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
13706         (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.
13707
13708 2007-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
13709             Richard Guenther  <rguenther@suse.de>
13710
13711         PR middle-end/23361
13712         * fold-const.c (fold_comparison): Handle obfuscated comparisons
13713         against INT_MIN/INT_MAX.
13714         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump
13715         file if a loop is removed.
13716
13717 2007-02-09  Joseph Myers  <joseph@codesourcery.com>
13718
13719         * calls.c (store_one_arg): Pass correct alignment to
13720         emit_push_insn for non-BLKmode values.
13721         * expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an
13722         unaligned stack slot via a suitably aligned slot.
13723
13724 2007-02-08  DJ Delorie  <dj@redhat.com>
13725
13726         * config/m32c/m32c.c (m32c_unpend_compare): Add default to silence
13727         warnings.
13728         (legal_subregs): Use unsigned char, make const.
13729         (m32c_illegal_subreg_p): Use ARRAY_SIZE.  Delete unused variables.
13730
13731 2007-02-08  Paul Brook  <paul@codesourcery.com>
13732
13733         * config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no
13734         special interworking needed.
13735
13736 2007-02-08  Harsha Jagasia  <harsha.jagasia@amd.com>
13737
13738         * config/i386/xmmintrin.h: Make inclusion of emmintrin.h
13739         conditional to __SSE2__.
13740         (Entries below should have been added to first ChangeLog
13741         entry for amdfam10 dated 2007-02-05)
13742         * config/i386/emmintrin.h: Generate #error if __SSE2__ is not
13743         defined.
13744         * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not
13745         defined.
13746         * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not
13747         defined.
13748
13749 2007-02-08  DJ Delorie  <dj@redhat.com>
13750
13751         * config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New.
13752         * config/m32c/m32c.c (legal_subregs): New.
13753         (m32c_illegal_subreg_p): New.
13754         * config/m32c/predicates.md (m32c_any_operand): Use it to reject
13755         unsupported subregs of hard regs.
13756
13757 2007-02-08  Jan Hubicka  <jh@suse.cz>
13758
13759         * tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
13760         the same one; always update histograms.
13761
13762 2007-02-08  Diego Novillo  <dnovillo@redhat.com>
13763
13764         * passes.c (init_optimization_passes): Tidy comment.
13765
13766 2007-02-08  Roger Sayle  <roger@eyesopen.com>
13767
13768         * simplify-rtx.c (simplify_unary_operation_1) <POPCOUNT>: We can
13769         strip zero_extend, bswap and rotates from POCOUNT's argument.
13770         <PARITY>: Likewise, we can strip not, bswap, sign_extend,
13771         zero_extend and rotates from PARITY's argument.
13772         <BSWAP>: A byte-swap followed by a byte-swap is an identity.
13773         (simplify_const_unary_operation) <BSWAP>: Evaluate the byte-swap
13774         of an integer constant at compile-time.
13775
13776 2007-02-08  Diego Novillo  <dnovillo@redhat.com>
13777
13778         PR 30562
13779         * tree-flow.h (struct var_ann_d): Remove field 'is_used'.
13780         Update all users.
13781         * tree-ssa-alias.c (compute_is_aliased): Remove.  Update all
13782         users.
13783         (init_alias_info):
13784         * tree-ssa-live.c (remove_unused_locals): Do not remove
13785         TREE_ADDRESSABLE variables.
13786         * tree-ssa-structalias.c (compute_points_to_sets): Tidy.
13787         * tree-ssa-operands.c (add_virtual_operand): Remove argument
13788         FOR_CLOBBER.  Update all users.
13789         If VAR has an associated alias set, add a virtual operand for
13790         it if no alias is found to conflict with the memory reference.
13791
13792 2007-02-07  Jan Hubicka  <jh@suse.cz>
13793             Robert Kidd <rkidd@crhc.uiuc.edu>
13794
13795         * value-prof.c (visit_hist, free_hist): Return 1 instead of 0.
13796
13797 2007-02-07  Ian Lance Taylor  <iant@google.com>
13798
13799         * lower-subreg.c (simple_move): Reject PARTIAL_INT modes.
13800
13801 2007-02-07  Roger Sayle  <roger@eyesopen.com>
13802
13803         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
13804         parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack,
13805         tablejumpdi, movsi_to_cr_one): Remove constraints from
13806         define_expand's match_operands.
13807
13808 2007-02-07  Roger Sayle  <roger@eyesopen.com>
13809
13810         * global.c (compute_regsets): Move declatation of "i" inside of
13811         #ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure.
13812
13813 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
13814
13815         PR c++/30703
13816         * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
13817         of INDIRECT_REF <RESULT_DECL>.
13818
13819         * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2.
13820
13821 2007-02-06  J"orn Rennecke  <joern.rennecke@arc.com>
13822             Kaz Kojima  <kkojima@gcc.gnu.org>
13823
13824         PR target/29746
13825         * config/sh/sh.c (expand_cbranchdi4): Use scratch register
13826         properly.
13827         (sh_initialize_trampoline): Add parentheses to avoid a warning.
13828
13829 2007-02-06  Zdenek Dvorak <dvorakz@suse.cz>
13830
13831         * doc/loop.texi: Document possibility not to perform disambiguation
13832         of loops with multiple latches.
13833         * cfgloopmanip.c (alp_enum_p): Removed.
13834         (add_loop): Handle subloops.  Use get_loop_body_with_size.
13835         (create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
13836         * cfghooks.c (redirect_edge_and_branch_force): Set dominator for
13837         the new forwarder block.
13838         (make_forwarder_block): Only call new_bb_cbk if it is not NULL.
13839         Handle the case latch is NULL.
13840         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg modifications
13841         when marking loop exits.
13842         * ifcvt.c (if_convert): Ditto.  Mark loop exits even if cfg cannot
13843         be modified.
13844         * loop-init.c (loop_optimizer_init): Do not modify cfg.  Call
13845         disambiguate_loops_with_multiple_latches.
13846         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
13847         before fix_loop_structure.
13848         * cfgloop.c: Include pointer-set.h and output.h.
13849         (canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
13850         update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
13851         (get_loop_latch_edges, find_subloop_latch_edge_by_profile,
13852         find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
13853         mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
13854         disambiguate_multiple_latches, get_loop_body_with_size,
13855         disambiguate_loops_with_multiple_latches): New functions.
13856         (flow_loop_dump): Dump multiple latch edges.
13857         (flow_loop_nodes_find): Handle loops with multiple latches.
13858         (flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
13859         (glb_enum_p): Modified.
13860         (get_loop_body): Use get_loop_body_with_size.
13861         * cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
13862         (AVOID_CFG_MODIFICATIONS): New constant.
13863         (disambiguate_loops_with_multiple_latches, add_loop,
13864         get_loop_body_with_size): Declare.
13865         * Makefile.in (cfgloop.o): Add pointer-set.h and output.h.
13866
13867 2007-02-06  Seongbae Park <seongbae.park@gmail.com>
13868
13869         PR inline-asm/28686
13870         * global.c (compute_regsets): New function.
13871         (global_alloc): Refactored ELIMINABLE_REGSET
13872         and NO_GLOBAL_ALLOC_REGS computation out.
13873         (rest_of_handle_global_alloc): Call compute_regsets()
13874         for non-optimizing case.
13875
13876 2007-02-06  Richard Henderson  <rth@redhat.com>
13877
13878         * config/i386/constraints.md (Y2): Rename from Y.
13879         (Yi): New constraint.
13880         * config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger,
13881         pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32,
13882         zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2.
13883         (extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed,
13884         truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse,
13885         fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse,
13886         floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed,
13887         absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse,
13888         fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x.
13889         * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64,
13890         mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal,
13891         vec_extractv2si_1): Change Y constraints to Y2.
13892         * config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si,
13893         vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di):
13894         Change Y constraints to Y2.
13895         (sse2_loadld): Change Y constraints to x.
13896
13897 2007-02-06  Roger Sayle  <roger@eyesopen.com>
13898
13899         * config/rs6000/rs6000.md (popcount<mode>2): Rewrite.
13900         (parity<mode>2): New define_expand using rs6000_emit_parity.
13901         * config/rs6000/rs6000.c (rs6000_emit_popcount,
13902         rs6000_emit_parity): New functions.
13903         * config/rs6000/rs6000-protos.h (rs6000_emit_popcount,
13904         rs6000_emit_parity): Prototype here.
13905
13906 2007-02-06  Ian Lance Taylor  <iant@google.com>
13907
13908         * lower-subreg.c (simple_move_operand): Reject CONST.
13909         (resolve_clobber): Call validate_change rather than directly
13910         assigning to XEXP (pat, 0).
13911
13912 2006-02-06  Paolo Bonzini  <bonzini@gnu.org>
13913
13914         * Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency.
13915         (tree-ssa-reassoc.o): Add pointer-set.h dependency.
13916         (tree-cfg.o): Remove hashtab.h dependency.
13917
13918         * tree-ssa-loop-ivopts.c: Include pointer-set.h.
13919         (struct ivopts_data): Change niters to pointer_map_t.
13920         (struct nfe_cache_elt, nfe_hash, nfe_eq): Delete.
13921         (niter_for_exit): Create pointer_map on demand.  Change for
13922         pointer_map API.
13923         (tree_ssa_iv_optimize_init): Initialize data->niters to NULL.
13924         (free_loop_data): Destroy data->niters if created and reset field.
13925         (tree_ssa_iv_optimize_finalize): Don't delete data->niters here.
13926         (tree_ssa_iv_optimize_loop): Check for presence of stale data.
13927
13928         * tree-ssa-reassoc.c: Include pointer-set.h.
13929         (bb_rank): Change to long *.
13930         (operand_rank): Change to pointer_map_t.
13931         (find_operand_rank): Return long, -1 if not found.  Declare as inline.
13932         (insert_operand_rank): Accept long.
13933         (operand_entry_hash, operand_entry_eq): Remove.
13934         (get_rank): Return long.  Adjust for changes above.
13935         (init_reassoc): Change rank type to long.  Adjust creation of bb_rank
13936         and operand_rank.
13937         (fini_reassoc): Delete operand_rank with pointer_map_destroy.
13938
13939         * tree-ssa-structalias.c (vi_for_tree): Change to pointer_map.
13940         (struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete.
13941         (insert_vi_for_tree): Rewrite for pointer_map API.  Assert argument
13942         is not NULL.
13943         (lookup_vi_for_tree): Rewrite for pointer_map API.  Return varinfo_t
13944         directly since it cannot be NULL.
13945         (get_vi_for_tree): Rewrite for pointer_map API.
13946         (find_what_p_points_to): Adjust for change to lookup_vi_for_tree.
13947         (init_alias_vars): Create vi_for_tree as pointer_map.
13948         (delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy.
13949
13950         * tree-cfg.c: Don't include hashtab.h.
13951         (edge_to_cases): Declare as pointer_map.
13952         (struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq):
13953         Delete.
13954         (edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback.
13955         (start_recording_case_labels): Create edge_to_cases as pointer_map.
13956         (end_recoding_case_labels): Cleanup edge_to_cases manually before
13957         destroying it.
13958         (record_switch_edge): Delete.
13959         (get_cases_for_edge): Adjust for pointer_map API, inline
13960         record_switch_edge (rewritten for new API), remove goto.
13961
13962 2006-02-06  Paolo Bonzini  <bonzini@gnu.org>
13963
13964         * Makefile.in (tree-nested.o): Add pointer-set.h dependency.
13965         * tree-nested.c: Include pointer-set.h.
13966         (var_map_elt, var_map_eq, var_map_hash): Delete.
13967         (struct nesting_info): Remove GTY marker.  Change the two htab_t's
13968         to pointer_map_t's.
13969         (nesting_info_bitmap_obstack): New.
13970         (lookup_field_for_decl): Adjust for pointer_map API.
13971         (lookup_tramp_for_decl): Adjust for pointer_map API.
13972         (get_nonlocal_debug_decl): Adjust for pointer_map API.
13973         (get_local_debug_decl): Adjust for pointer_map API.
13974         (convert_nl_goto_reference): Adjust for pointer_map API.
13975         (convert_nl_goto_receiver): Adjust for pointer_map API.
13976         (create_nesting_tree): Create outside GGC space.  Create bitmap on
13977         the new obstack.  Create field_map and var_map as pointer_maps.
13978         (free_nesting_tree): Adjust for changes to create_nesting_tree.
13979         (root): Delete.
13980         (lower_nested_functions): Move root here, no need to NULL it.
13981         Initialize and release the obstack.
13982
13983 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
13984
13985         * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
13986         Remove prototypes and make them non-static.
13987         (struct tree_int_map): Remove.
13988         * tree.h (struct tree_int_map): Move here, turning TO into an
13989         unsigned int.
13990         (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.
13991
13992         * tree.h (TREE_COMPLEXITY): Remove.
13993         (struct tree_exp): Remove complexity field.
13994         * tree.c (build1_stat): Don't set it.
13995
13996 2007-02-06  Dorit Nuzman  <dorit@il.ibm.com>
13997             Victor Kaplansky  <victork@il.ibm.com>
13998
13999         * tree-vectorizer.c (vect_is_simple_use): Support induction.
14000         (vect_is_simple_reduction): Support reduction with induction as
14001         one of the operands.
14002         (vect_is_simple_iv_evolution): Fix formatting.
14003         * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
14004         formatting.  Don't mark induction phis for vectorization.
14005         (vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
14006         * tree-vect-transform.c (get_initial_def_for_induction): New function.
14007         (vect_get_vec_def_for_operand): Support induction.
14008         (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
14009         induction case.
14010         (vectorizable_reduction): Support reduction with induction as one of
14011         the operands.
14012         (vectorizable_type_demotion): Use def-type of stmt argument rather
14013         than dummy def-type.
14014
14015         * tree-ssa-loop.c (gate_scev_const_prop): Return the value of
14016         flag_tree_scev_cprop.
14017         * common.opt (tree-scev-cprop): New flag.
14018
14019         * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in
14020         call to vect_get_new_vect_var.
14021
14022 2007-02-06  Ira Rosen  <irar@il.ibm.com>
14023
14024         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that
14025         vectype is not NULL.
14026         (vect_pattern_recog_1): Likewise.
14027
14028 2007-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14029
14030         * fold-const.c (negate_expr_p): Handle CONJ_EXPR.
14031         (fold_negate_expr): Likewise.
14032
14033 2007-02-05  Alexandre Oliva  <aoliva@redhat.com>
14034
14035         PR debug/30189
14036         * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
14037         even if cv-qualification is the same.
14038
14039 2007-02-05  Geoffrey Keating  <geoffk@apple.com>
14040
14041         * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
14042         __enable_execute_stack on completion.
14043
14044 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14045
14046         * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8,
14047         athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov,
14048         athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul,
14049         athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn,
14050         athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8,
14051         athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load,
14052         athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8,
14053         athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10.
14054
14055 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14056
14057         * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse,
14058         cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387,
14059         swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse,
14060         fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse,
14061         x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed,
14062         floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse,
14063         floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1,
14064         mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn,
14065         umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn,
14066         umuldi3_highpart_rex64, umulsi3_highpart_insn,
14067         umulsi3_highpart_zext, smuldi3_highpart_rex64,
14068         smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld,
14069         x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse,
14070         sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387,
14071         sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387,
14072         sqrtextenddfxf2_i387): Added amdfam10_decode.
14073
14074         * config/i386/athlon.md (athlon_idirect_amdfam10,
14075         athlon_ivector_amdfam10, athlon_idirect_load_amdfam10,
14076         athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10,
14077         athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10,
14078         athlon_ivector_store_amdfam10): New define_insn_reservation.
14079         (athlon_idirect_loadmov, athlon_idirect_movstore): Added
14080         amdfam10.
14081
14082 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14083
14084         * config/i386/athlon.md (athlon_call_amdfam10,
14085         athlon_pop_amdfam10, athlon_lea_amdfam10): New
14086         define_insn_reservation.
14087         (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8,
14088         athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI,
14089         athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10.
14090
14091 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14092
14093         * config/i386/athlon.md (athlon_sseld_amdfam10,
14094         athlon_mmxld_amdfam10, athlon_ssest_amdfam10,
14095         athlon_mmxssest_short_amdfam10): New define_insn_reservation.
14096
14097 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14098
14099         * config/i386/athlon.md (athlon_sseins_amdfam10): New
14100         define_insn_reservation.
14101         * config/i386/i386.md (sseins): Added sseins to define_attr type
14102         and define_attr unit.
14103         * config/i386/sse.md: Set type attribute to sseins for insertq
14104         and insertqi.
14105
14106 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14107
14108         * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10,
14109         ssecmpvector_load_amdfam10, ssecmpvector_amdfam10,
14110         ssecomi_load_amdfam10, ssecomi_amdfam10,
14111         sseaddvector_load_amdfam10, sseaddvector_amdfam10): New
14112         define_insn_reservation.
14113         (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10.
14114
14115 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14116
14117         * config/i386/athlon.md (cvtss2sd_load_amdfam10,
14118         cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10,
14119         cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10,
14120         cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10,
14121         cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10,
14122         cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New
14123         define_insn_reservation.
14124
14125         * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si,
14126         cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq,
14127         cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq,
14128         cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd,
14129         cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute.
14130
14131 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14132
14133         * config/i386/athlon.md (athlon_ssedivvector_amdfam10,
14134         athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10,
14135         athlon_ssemulvector_load_amdfam10): New define_insn_reservation.
14136         (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul,
14137         athlon_ssemul_load_k8): Added amdfam10.
14138
14139 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14140
14141         * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
14142         (x86_sse_unaligned_move_optimal): New variable.
14143
14144         * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for
14145         m_AMDFAM10.
14146         (ix86_expand_vector_move_misalign): Add code to generate movupd/movups
14147         for unaligned vector SSE double/single precision loads for AMDFAM10.
14148
14149 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14150
14151         * config/i386/i386.h (TARGET_AMDFAM10): New macro.
14152         (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
14153         Define TARGET_CPU_DEFAULT_amdfam10.
14154         (TARGET_CPU_DEFAULT_NAMES): Add amdfam10.
14155         (processor_type): Add PROCESSOR_AMDFAM10.
14156
14157         * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match
14158         processor_type in config/i386/i386.h.
14159         Enable imul peepholes for TARGET_AMDFAM10.
14160
14161         * config.gcc: Add support for --with-cpu option for amdfam10.
14162
14163         * config/i386/i386.c (amdfam10_cost): New variable.
14164         (m_AMDFAM10): New macro.
14165         (m_ATHLON_K8_AMDFAM10): New macro.
14166         (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
14167         x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop,
14168         x86_promote_QImode, x86_integer_DFmode_moves,
14169         x86_partial_reg_dependency, x86_memory_mismatch_stall,
14170         x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
14171         x86_sse_partial_reg_dependency, x86_sse_typeless_stores,
14172         x86_use_ffreep, x86_use_incdec, x86_four_jump_limit,
14173         x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns):
14174         Enable/disable for amdfam10.
14175         (override_options): Add amdfam10_cost to processor_target_table.
14176         Set up PROCESSOR_AMDFAM10 for amdfam10 entry in
14177         processor_alias_table.
14178         (ix86_issue_rate): Add PROCESSOR_AMDFAM10.
14179         (ix86_adjust_cost): Add code for amdfam10.
14180
14181 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14182
14183         * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
14184         instruction set feature flag. Add new (-mpopcnt) flag for popcnt
14185         instruction. Add new SSE4A (-msse4a) instruction set feature flag.
14186         * config/i386/i386.h: Add builtin definition for SSE4A.
14187         * config/i386/i386.md: Add support for ABM instructions
14188         (popcnt and lzcnt).
14189         * config/i386/sse.md: Add support for SSE4A instructions
14190         (movntss, movntsd, extrq, insertq).
14191         * config/i386/i386.c: Add support for ABM and SSE4A builtins.
14192         Add -march=amdfam10 flag.
14193         * config/i386/ammintrin.h: Add support for SSE4A intrinsics.
14194         * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt
14195         and amdfam10.
14196         * doc/extend.texi: Add documentation for SSE4A builtins.
14197
14198 2007-02-05  Bob Wilson  <bob.wilson@acm.org>
14199
14200         * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
14201
14202 2007-02-05  Richard Guenther  <rguenther@suse.de>
14203
14204         * tree-vectorizer.h (vectorizable_function): Add argument type
14205         argument, change return type.
14206         * tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller.
14207         * tree-vect-transform.c (vectorizable_function): Handle extra
14208         argument, return vectorized function decl.
14209         (build_vectorized_function_call): Remove.
14210         (vectorizable_call): Handle calls with result and argument types
14211         differing.  Handle loop vectorization factor correctly.
14212         * targhooks.c (default_builtin_vectorized_function): Adjust for
14213         extra argument.
14214         * targhooks.h (default_builtin_vectorized_function): Likewise.
14215         * target.h (builtin_vectorized_function): Add argument type
14216         argument.
14217         * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
14218         extra argument, allow vectorizing of lrintf.
14219         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust
14220         documentation of target hook.
14221
14222 2007-02-05  Hans-Peter Nilsson  <hp@axis.com>
14223
14224         PR target/30665
14225         * config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu")
14226         ("*andhi_clear", andu (casesi+45)): For size-changed operand where
14227         memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P.
14228
14229 2007-02-05  Roger Sayle  <roger@eyesopen.com>
14230
14231         * fold-const.c (fold_unary) <REAL_PART>: Test for availability of
14232         BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
14233         <IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
14234         * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
14235         before canonicalizing sincos to cexpi.
14236         (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.
14237
14238 2007-02-05  Roger Sayle  <roger@eyesopen.com>
14239
14240         * config/alpha/alpha.c (alpha_add_builtins): New Helper function.
14241         Set TREE_READONLY and TREE_NOTHROW directly, not via attributes.
14242         (alpha_init_builtins): Use alpha_add_builtins to process tables.
14243
14244 2007-02-05  Roger Sayle  <roger@eyesopen.com>
14245
14246         * mips-tfile.c (initialize_init_file): Correct endianness test.
14247
14248 2007-02-05  Kazu Hirata  <kazu@codesourcery.com>
14249
14250         * config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use
14251         the 'y' constraint.
14252
14253 2007-02-05  Richard Sandiford  <richard@codesourcery.com>
14254
14255         * dwarf2out.c (dwarf2out_frame_debug_expr): Record the register
14256         saves in a PARALLEL before the register assignments.
14257
14258 2007-02-05  Richard Sandiford  <richard@codesourcery.com>
14259
14260         * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require
14261         DWARF_FRAME_RETURN_COLUMN to be a general register.
14262         * dwarf2out.c (init_return_column_size): New function, split from...
14263         (expand_builtin_init_dwarf_reg_sizes): ...here.  Allow both
14264         DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN
14265         to be nongeneral registers.
14266         * config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and
14267         integer registers.
14268         (DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define.
14269         (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
14270
14271 2007-02-04  Zdenek Dvorak <dvorakz@suse.cz>
14272
14273         * cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR.
14274
14275 2007-02-04  Zdenek Dvorak <dvorakz@suse.cz>
14276
14277         * cfgloopmanip.c (loop_delete_branch_edge): Removed.
14278         (remove_path): Use can_remove_branch_p and remove_branch instead
14279         of loop_delete_branch_edge.
14280         * tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function.
14281         (tree_transform_and_unroll_loop): Remove dead branches immediately.
14282         Update profile using scale_dominated_blocks_in_loop.
14283         * cfghooks.c (can_remove_branch_p, remove_branch): New functions.
14284         * cfghooks.h (struct cfg_hooks): Add can_remove_branch_p.
14285         (can_remove_branch_p, remove_branch): Declare.
14286         * tree-cfg.c (tree_can_remove_branch_p): New function.
14287         (tree_cfg_hooks): Add tree_can_remove_branch_p.
14288         * cfgrtl.c (rtl_can_remove_branch_p): New function.
14289         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p.
14290
14291 2007-02-05  Jan Hubicka  <jh@suse.cz>
14292
14293         PR middle-end/30696
14294         * ipa-inline.c (cgraph_clone_inlined_nodes): When there are unanalyzed
14295         nodes in cgraph, don't remove offline copy of the function.
14296
14297 2007-02-04  Jan Hubicka  <jh@suse.cz>
14298
14299         * tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into
14300         vectors might cause maybe_lookup_element_for_expr to be called
14301         on non-sra-candidate.
14302
14303 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
14304
14305         * config/bfin/bfin-modes.def, config/bfin/bfin.c,
14306         config/bfin/bfin.md, config/bfin/predicates.md: Follow
14307         spelling conventions.
14308
14309 2007-02-04  Richard Guenther  <rguenther@suse.de>
14310
14311         PR middle-end/30636
14312         * fold-const.c (try_move_mult_to_index): Make sure to not
14313         overflow one dimension of a multi-dimensional array access.
14314
14315 2007-02-04  Jan Hubicka  <jh@suse.cz>
14316
14317         * passes.c (init_optimization_passes): Reindent.
14318
14319 2007-02-04  Jan Hubicka  <jh@suse.cz>
14320             Eric Botcazou  <ebotcazou@adacore.com>
14321
14322         * tree-optimize.c (has_abnormal_outgoing_edge_p): Move to...
14323         (execute_fixup_cfg): Break out the abnormal goto code.
14324         * tree-inline.c (has_abnormal_outgoing_edge_p): ...here.
14325         (make_nonlocal_label_edges): Move here from execute_fixup_cfg.
14326         (optimize_inline_calls): Call make_nonlocal_label_edges.
14327
14328 2007-02-04  Jan Hubicka  <jh@suse.cz>
14329
14330         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Return
14331         true when something was changed.
14332         (rename_ssa_copies): When something was changed, do
14333         TODO_remove_unused_locals.
14334         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
14335         add TODO_remove_unused_locals when instruction was removed.
14336
14337 2007-02-04  Jan Hubicka  <jh@suse.cz>
14338
14339         * ipa-inline.c (try_inline): Improve debug output; work on already
14340         inline edges too.
14341         (cgraph_decide_inlining_incrementally): Indent; improve debug output;
14342         call try_inline for already inlined edges too when flattening;
14343         inline also functions that make callee growth but overall unit size
14344         reduce.
14345
14346 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
14347
14348         * config/m32c/bitops.md, config/m32c/jump.md,
14349         config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c,
14350         config/m32r/m32r.h, config/m32r/m32r.md,
14351         config/m32r/predicates.md, config/m68hc11/larith.asm,
14352         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14353         config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md,
14354         config/mips/mips-protos.h, config/mips/mips.c,
14355         config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S,
14356         config/mn10300/mn10300.h, config/mn10300/predicates.md,
14357         config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow
14358         spelling conventions.
14359
14360         * config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
14361         Follow spelling conventions.
14362
14363 2007-02-03  Douglas Gregor  <doug.gregor@gmail.com>
14364
14365         * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
14366         warn about C++0x compatibility.
14367
14368 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
14369
14370         * config/h8300/h8300.c, config/h8300/h8300.h,
14371         config/h8300/h8300.md: Follow spelling conventions.
14372
14373 2007-02-03  Uros Bizjak  <ubizjak@gmail.com>
14374
14375         PR middle-end/30667
14376         * combine.c (try_combine): Do not substitute source operand
14377         with constants wider than 2 * HOST_BITS_PER_WIDE_INT.
14378
14379 2007-02-03  Jan Hubicka  <jh@suse.cz>
14380
14381         PR gcov-profile/30650
14382         * value-prof.c (stringop_block_profile): Fix handling of size counter;
14383         do not divide by zero for never executed counters.
14384         (tree_find_values_to_profile): Fix counters.
14385         * gcov-ui.h (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): Fix comments.
14386
14387 2007-02-03  Ian Lance Taylor  <iant@google.com>
14388
14389         * lower-subreg.c (simple_move_operand): New static function,
14390         broken out of simple_move.  Reject LABEL_REF, SYMBOL_REF, and HIGH
14391         operands.
14392         (simple_move): Call simple_move_operand.
14393         (find_decomposable_subregs): Add special handling of MEMs.
14394         (can_decompose_p): Rename from cannot_decompose_p.  Reverse
14395         meaning of return value.  If we see a hard register, test whether
14396         it can store a word_mode value.  Change all callers.
14397
14398 2007-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14399
14400         * pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New
14401         ftrapv insns and expanders.
14402         (subdi3): Change define_expand operand 1 to arith11_operand, and
14403         operand 2 to reg_or_0_operand.  Change constraints of 64-bit insn
14404         pattern to handle reg_or_0 operands.  Revise 32-bit insn pattern to
14405         handle 11-bit constants and reg_or_0 operands in operands 1 and 2,
14406         respectively.
14407
14408         PR middle-end/30174
14409         * varasm.c (notice_global_symbol): Treat global objects as weak when
14410         flag_shlib is true.
14411
14412 2007-02-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14413
14414         * emit-rtl.c (dconstpi): Delete.
14415         (dconstsqrt2): New.
14416         (init_emit_once): Delete dconstpi and init dconstsqrt2.
14417         * real.h (dconstpi): Delete.
14418         (dconstsqrt2): New.
14419         * builtins.c (fold_builtin_cabs): Use dconstsqrt2.
14420         (fold_builtin_hypot): Likewise.
14421
14422 2007-02-03  Tom Tromey  <tromey@redhat.com>
14423
14424         PR driver/30246
14425         * gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3,
14426         -gcoff3, -gxcoff3, -gvms3 implies -dD.
14427
14428 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
14429
14430         * c-decl.c, config/avr/avr.c, config/avr/avr.h,
14431         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
14432         config/mn10300/mn10300.c, config/pdp11/pdp11.h,
14433         config/rs6000/cell.md, config/rs6000/darwin.h,
14434         config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
14435         config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
14436         jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
14437         tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
14438         typos.  Follow spelling conventions.
14439         * doc/invoke.texi: Follow spelling conventions.
14440
14441 2007-02-03  Roger Sayle  <roger@eyesopen.com>
14442
14443         * simplify-rtx.c (simplify_relational_operation_1): Implement some
14444         canonicalization transformations that attempt to simplify integer
14445         constant comparisons to become comparisons against zero.
14446
14447 2007-02-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14448
14449         * builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into
14450         fabs(x)*sqrt(2).
14451         * fold-const.c (fold_binary): Fix comment typos.  Fold complex
14452         (x,0)-(0,y) into (x,-y).  Likewise (0,y)-(x,0) into (-x,y).
14453
14454 2007-02-02  Mike Stump  <mrs@apple.com>
14455
14456         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add.
14457         * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
14458         (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
14459         generate a branch island.
14460
14461 2007-02-02  Bob Wilson  <bob.wilson@acm.org>
14462
14463         * config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P.
14464         (xtensa_legitimate_address_p): New.
14465         (xtensa_legitimize_address): New.
14466         (xtensa_output_addr_const_extra): New.
14467         * config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define.
14468         (BASE_REG_P): New.
14469         (REG_OK_FOR_BASE_P): Use BASE_REG_P.
14470         (GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p.
14471         (LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address.
14472         (OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra.
14473         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New.
14474         (xtensa_legitimize_address): New.
14475         (xtensa_output_addr_const_extra): New.
14476
14477 2007-02-02  Steve Ellcey  <sje@cup.hp.com>
14478
14479         * config/ia64/ia64.c (ia64_print_operand): Fix compare strings.
14480
14481 2007-02-02  Ian Lance Taylor  <iant@google.com>
14482
14483         * expmed.c (expand_divmod): Add comment.
14484
14485 2007-02-02  Kazu Hirata  <kazu@codesourcery.com>
14486
14487         * emit-rtl.c (renumber_insns): Remove.
14488         * flags.h: Remove the extern for flag_renumber_insns.
14489         * rtl.h: Remove the prototype for renumber_insns.
14490         * toplev.c (flag_renumber_insns): Remove.
14491
14492 2007-02-02  Hui-May Chang  <hm.chang@apple.com>
14493
14494         Revert for x86 darwin:
14495         2005-06-19  Uros Bizjak  <uros@kss-loka.si>
14496
14497         * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
14498         code before the following patch under TARGET_MACHO.
14499         (ix86_function_value_regno_p): Likewise.
14500
14501 2007-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14502
14503         * fold-const.c (negate_expr_p, fold_negate_expr): Handle
14504         COMPLEX_EXPR.
14505
14506 2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
14507
14508         PR target/29682
14509         * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory loads to
14510         general or fp registers.  Add comments.
14511         * config/ia64/ia64.md (reg_pred_prefix): Add comment.
14512
14513 2007-02-02  Paolo Bonzini  <bonzini@gnu.org>
14514
14515         * pointer-set.c (insert_aux): Only return insertion slot.
14516         (pointer_set_insert): Adjust.
14517         (pointer_set_traverse, struct pointer_map_t, pointer_map_create,
14518         pointer_map_destroy, pointer_map_insert, pointer_map_contains,
14519         pointer_map_traverse): New.
14520         * pointer-set.h (pointer_set_traverse, struct pointer_map_t,
14521         pointer_map_create,  pointer_map_destroy, pointer_map_insert,
14522         pointer_map_contains, pointer_map_traverse): Declare.
14523
14524 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
14525
14526         PR middle-end/30473
14527         * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
14528         sprintf (str, "%s").  Do not optimize sprintf (str, "nopercent", p++).
14529
14530 2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
14531
14532         * sched-int.h (ds_to_dk, dk_to_ds): Declare functions.
14533
14534         (struct _dep): New type.
14535         (dep_t): New typedef.
14536         (DEP_PRO, DEP_CON, DEP_KIND): New access macros.
14537         (DEP_STATUS): New access macro.  The macro with the same name was
14538         renamed to DEP_LINK_STATUS.
14539         (dep_init): Declare function
14540
14541         (struct _dep_link): New type.
14542         (dep_link_t): New typedef.
14543         (DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros.
14544         (DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros.
14545         (DEP_LINK_STATUS): New macro.
14546         (debug_dep_links): New debug function.
14547
14548         (struct _deps_list): New type.
14549         (deps_list_t): New typedef.
14550         (DEPS_LIST_FIRST): New access macro.
14551         (FOR_EACH_DEP_LINK): New cycle macro.
14552         (create_deps_list, free_deps_list, delete_deps_list): Declare
14553         functions.
14554         (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
14555         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
14556         (copy_deps_list_change_con): Ditto.
14557
14558         (move_dep_link): Declare function.
14559
14560         (struct _dep_node): New type.
14561         (dep_node_t): New typedef.
14562         (DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros.
14563
14564         (struct haifa_insn_data.back_deps): New field to hold backward
14565         dependencies of the insn.
14566         (struct haifa_insn_data.depend): Rename to forw_deps.  Change its type
14567         to deps_list_t.
14568         (struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps.
14569         Change its type to deps_list_t.
14570         (INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS.
14571         (INSN_DEPEND): Rename to INSN_FORW_DEPS.
14572         (RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.
14573
14574         (INSN_COST): Move to haifa-sched.c.  Use insn_cost () instead.
14575
14576         (DEP_STATUS): Rename to DEP_LINK_STATUS.  Fix typo in the comment.
14577
14578         (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration and
14579         all callers.
14580         (dep_cost): Declare.
14581
14582         * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
14583         (ds_to_dk, dk_to_ds): New functions.
14584
14585         (init_dep_1): New static function.
14586         (init_dep): New function.
14587         (copy_dep): New static function.
14588
14589         (dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
14590         functions.
14591         (detach_dep_link): New static function.
14592         (move_dep_link): New function.
14593
14594         (dep_links_consistent_p, dump_dep_links): New static functions.
14595         (debug_dep_links): New debugging function.
14596
14597         (deps_obstack, dl_obstack, dn_obstack): New static variables.
14598
14599         (alloc_deps_list, init_deps_list): New static functions.
14600         (create_deps_list): New function.
14601         (clear_deps_list): New static function.
14602         (free_deps_list, delete_deps_list, deps_list_empty_p): New functions.
14603         (deps_list_consistent_p, dump_deps_list): New static functions.
14604         (debug_deps_list): New function.
14605         (add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New
14606         functions.
14607         (find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto.
14608
14609         (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to
14610         use new scheduler dependencies lists.
14611         (add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto.
14612         (sched_analyze): Ditto.  Initialize dependencies lists.
14613         (add_forw_dep, compute_forward_dependences): Update to use new
14614         scheduler dependencies lists.
14615
14616         (init_dependency_caches): Init deps_obstack.
14617         (free_dependency_caches): Free deps_obstack.
14618
14619         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
14620         new scheduler dependencies lists.
14621         (delete_forw_dep, add_or_update_back_forw_dep): Ditto.
14622         (add_back_forw_dep, delete_back_forw_dep): Ditto.
14623
14624         * sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree):
14625         Update to use new scheduler dependencies lists.
14626         (is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
14627         (debug_dependencies): Ditto.
14628         (schedule_region): Update comments.
14629
14630         * sched-ebb.c (earliest_block_with_similiar_load): Update to use new
14631         scheduler dependencies lists.
14632         (schedule_ebb): Update comments.
14633
14634         * rtl.def (DEPS_LIST): Remove.
14635
14636         * lists.c (unused_deps_list): Remove.
14637         (free_list): Update assertions.
14638
14639         (alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
14640         (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
14641
14642         * rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
14643         (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
14644
14645         * haifa-sched.c (comments): Update.
14646         (insn_cost1): Remove.  Inline the code into insn_cost ().
14647         (insn_cost): Update to use new scheduler dependencies lists.  Move
14648         processing of the dependency cost to dep_cost ().
14649         (dep_cost): New function.  Use it instead of insn_cost () when
14650         evaluating cost of the dependency.  Use compatible interface to
14651         interact with the target.
14652         (priority): Update to use new scheduler dependencies lists.
14653         (rank_for_schedule): Ditto.  Optimize heuristic that prefers the insn
14654         with greater number of insns that depend on the insn.
14655         (schedule_insn): Update to use new scheduler dependencies lists.  Add
14656         code to free backward dependencies lists.  Inline and optimize code
14657         from resolve_dep () - see PR28071.
14658         (ok_for_early_queue_removal): Update to use new scheduler dependencies
14659         lists.  Update call to targetm.sched.is_costly_dependence hook.
14660
14661         (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
14662         scheduler dependencies lists.
14663
14664         (resolve_dep): Remove.  Move the logic to schedule_insn ().
14665         (init_h_i_d): Initialize dependencies lists.
14666
14667         (process_insn_depend_be_in_spec): Rename to
14668         process_insn_forw_deps_be_in_spec.  Update to use new scheduler
14669         dependencies lists.
14670         (add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
14671         Update to use new scheduler dependencies lists.
14672         (clear_priorities, calc_priorities, add_jump_dependencies): Ditto.
14673
14674         * ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
14675         new scheduler dependencies lists.
14676         (build_intra_loop_deps): Ditto.
14677
14678         * target.h (struct _dep): Declare to use in
14679         gcc_target.sched.is_costly_dependence.
14680         (struct gcc_target.sched.adjust_cost): Fix typo.
14681         (struct gcc_target.sched.is_costly_dependence): Change signature to use
14682         single dep_t parameter instead of an equivalent triad.
14683         (struct gcc_target.sched.adjust_cost_2): Remove.
14684
14685         * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.
14686
14687         * reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments.
14688
14689         * doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update
14690         documentation.
14691         (TARGET_SCHED_ADJUST_COST_2): Remove documentation.
14692
14693         * doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
14694         (REG_DEP_TRUE): Document.
14695
14696         * config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
14697         Change signature to correspond to the targetm.sched.adjust_cost hook.
14698         Update use in TARGET_SCHED_ADJUST_COST_2.
14699         (TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
14700         (ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
14701         new scheduler dependencies lists.
14702         (ia64_gen_check): Ditto.
14703
14704         * config/mips/mips.c (vr4130_swap_insns_p): Update to use new scheduler
14705         dependencies lists.
14706
14707         * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
14708         signature to correspond to the targetm.sched.is_costly_dependence hook.
14709         (is_costly_group): Update to use new scheduler dependencies lists.
14710
14711         * config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function
14712         instead of INSN_COST () macro.
14713
14714 2007-02-01  Ian Lance Taylor  <iant@google.com>
14715
14716         * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn.
14717
14718 2007-02-01  Guy Martin  <gmsoft@gentoo.org>
14719
14720         * pa.md (tp_load): Correct mfctl instruction syntax.
14721
14722 2007-02-01  Geoffrey Keating  <geoffk@apple.com>
14723
14724         * config/rs6000/rs6000.c (rs6000_stack_info): Correct
14725         altivec_padding_size calculation on AIX.  Improve comment, add
14726         assert to verify that it's right.
14727
14728         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
14729         64-bit.
14730
14731 2007-2-01  Seongbae Park  <seongbae.park@gmail.com>
14732
14733         PR inline-asm/28686
14734         * global.c (global_alloc): Add mising initialization of
14735         ELIMINABLE_REGSET.
14736
14737 2007-02-01  Roger Sayle  <roger@eyesopen.com>
14738
14739         * alias.c (init_alias_analysis): Correct whitespace.
14740         * bb-reorder.c (fix_edges_for_rarely_executed_code,
14741         partition_hot_cold_basic_blocks): Likewise.
14742         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
14743         expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
14744         maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
14745         fold_builtin_snprintf_chk, fold_builtin_printf,
14746         fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
14747         do_mpfr_arg3, do_mpfr_sincos): Likewise.
14748         * cfgcleanup.c (cleanup_cfg): Likewise.
14749         * cfgexpand.c (tree_expand_cfg): Likewise.
14750         * fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
14751         * function.c (get_next_funcdef_no): Likewise.
14752         * gengtype.c (main): Likewise.
14753         * genmodes.c (main): Likewise.
14754         * gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
14755         * haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
14756         * ifcvt.c (noce_emit_move_insn): Likewise.
14757         * modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
14758         Likewise.
14759         * stor-layout.c (get_best_mode): Likewise.
14760         * tree-ssa-loop-niter.c (get_val_for): Likewise.
14761         * tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
14762         scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
14763         perform_var_substitution, solve_graph): Likewise.
14764         * tree-vrp.c (vrp_finalize): Likewise.
14765
14766 2007-02-01  Ian Lance Taylor  <iant@google.com>
14767
14768         * lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
14769         high part of a paradoxical subreg, return a constant zero.
14770
14771 2007-02-01  Zdenek Dvorak <dvorakz@suse.cz>
14772
14773         * toplev.c (lang_dependent_init): Call init_set_costs.
14774         * loop-init.c (loop_optimizer_init): Do not call init_set_costs.
14775
14776 2007-02-01  Richard Guenther  <rguenther@suse.de>
14777
14778         PR middle-end/30656
14779         * fold-const.c (fold_negate_expr): Allow negating a
14780         constant if overflow does not change.
14781
14782 2007-02-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14783
14784         * doc/c-tree.texi (Expression trees): Improve markup.
14785         * doc/tm.texi (Register Classes, Addressing Modes)
14786         (Floating Point): Fix spacing after abbreviations.  Fix some
14787         typos.
14788
14789 2007-02-01  Ben Elliston  <bje@au.ibm.com>
14790
14791         * doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
14792         * doc/contrib.texi: Likewise.
14793         * doc/install.texi: Likewise.
14794
14795 2007-01-31  Richard Henderson  <rth@redhat.com>
14796             Ian Lance Taylor  <iant@google.com>
14797
14798         * lower-subreg.c: New file.
14799         * rtl.def (CONCATN): Define.
14800         * passes.c (init_optimization_passes): Add pass_lower_subreg and
14801         pass_lower_subreg2.
14802         * emit-rtl.c (update_reg_offset): New static function, broken out
14803         of gen_rtx_REG_offset.
14804         (gen_rtx_REG_offset): Call update_reg_offset.
14805         (gen_reg_rtx_offset): New function.
14806         * regclass.c: Revert patch of 2006-03-05, restoring
14807         reg_scan_update.
14808         (clear_reg_info_regno): New function.
14809         * dwarf2out.c (concatn_loc_descriptor): New static function.
14810         (loc_descriptor): Handle CONCATN.
14811         * common.opt (fsplit_wide_types): New option.
14812         * opts.c (decode_options): Set flag_split_wide_types when
14813         optimizing.
14814         * timevar.def (TV_LOWER_SUBREG): Define.
14815         * rtl.h (gen_reg_rtx_offset): Declare.
14816         (reg_scan_update): Declare.
14817         * regs.h (clear_reg_info_regno): Declare.
14818         * tree-pass.h (pass_lower_subreg): Declare.
14819         (pass_lower_subreg2): Declare.
14820         * doc/invoke.texi (Option Summary): List -fno-split-wide-types.
14821         (Optimize Options): Add -fsplit-wide-types to -O1 list.  Document
14822         -fsplit-wide-types.
14823         * doc/rtl.texi (Regs and Memory): Document concat and concatn.
14824         * Makefile.in (OBJS-common): Add lower-subreg.o.
14825         (lower-subreg.o): New target.
14826
14827 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
14828
14829         * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.
14830
14831 2007-01-31  Anatoly Sokolov <aesok@post.ru>
14832
14833         PR target/19087
14834         * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
14835
14836 2007-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14837
14838         PR middle-end/29335
14839         * builtins.c (fold_builtin_sqrt): Use MPFR for constant args.
14840
14841 2007-01-31  Zdenek Dvorak <dvorakz@suse.cz>
14842
14843         * cfgloop.h: Include vec-prim.h.
14844         (enum li_flags): Remove LI_ONLY_OLD.
14845         (loop_iterator): Changed.
14846         (fel_next, fel_init): Iterate over loop tree.
14847         (FOR_EACH_LOOP_BREAK): New macro.
14848         * loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
14849         FOR_EACH_LOOP.
14850         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
14851         * modulo-sched.c (sms_schedule): Ditto.
14852         * tree-vectorizer.c (vectorize_loops): Ditto.
14853         * doc/loop.texi: Update information on loop numbering and behavior of
14854         FOR_EACH_LOOP wrto new loops.
14855         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
14856         add_to_evolution_1): Test nestedness of loops instead of comparing
14857         their numbers.
14858         * tree-chrec.c (chrec_fold_plus_poly_poly,
14859         chrec_fold_multiply_poly_poly, chrec_evaluate,
14860         hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
14861         reset_evolution_in_loop): Ditto.
14862         * Makefile.in (CFGLOOP_H): Add vecprim.h dependency.
14863
14864 2007-01-31  Dirk Mueller  <dmueller@suse.de>
14865
14866         * c-common.c (warn_about_parentheses): Separate warning about
14867         un-parenthized sequence of comparison operators from the one
14868         which is supposed to warn about x <= y <= z.
14869
14870 2007-01-31  Uros Bizjak  <ubizjak@gmail.com>
14871
14872         * optabs.h (enum optab_index): Add new OTI_isinf.
14873         (isinf_optab): Define corresponding macro.
14874         * optabs.c (init_optabs): Initialize isinf_optab.
14875         * genopinit.c (optabs): Implement isinf_optab using isinf?f2
14876         patterns.
14877         * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
14878         (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
14879         using isinf_optab.
14880         (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
14881         expand_builtin_interclass_mathfn.
14882         * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
14883         * config/i386/i386.md (UNSPEC_FXAM): New constant.
14884         (fxam<mode>2_i387): New insn pattern.
14885         (isinf<mode>2) New expander to implement isinf, isinff and isinfl
14886         built-in functions as x87 inline asm.
14887
14888 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
14889
14890         * config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.
14891
14892 2007-01-30  Eric Christopher  <echristo@apple.com>
14893
14894         * config.gcc: Add geode.
14895
14896 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
14897
14898         * cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
14899         ipa-inline.c, tree-profile.c, tree-ssa-live.c,
14900         tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
14901         value-prof.c: Fix comment typos.
14902
14903 2007-01-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14904
14905         PR c++/24745
14906         * doc/invoke.texi (Wpointer-arith): Document warning.
14907
14908 2007-01-30  Janis Johnson  <janis187@us.ibm.com>
14909
14910         * doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
14911         the list of discrepancies from the draft TR.
14912
14913 2007-01-30  Dirk Mueller  <dmueller@suse.de>
14914
14915         PR c++/30601
14916         * doc/invoke.texi (-Wreturn-type): Update description to
14917         match new behavior.
14918
14919 2007-01-30  Richard Sandiford  <richard@codesourcery.com>
14920
14921         * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
14922
14923 2007-01-30  Uros Bizjak  <ubizjak@gmail.com>
14924
14925         * builtins.c (expand_builtin_int_interclass_roundingfn): New function
14926         to handle optabs that operate on floating point input argument and
14927         output to integer output.
14928         (expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
14929         (expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
14930         (expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
14931         expand_builtin_interclass_mathfn ().
14932         * config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
14933         (ilogbsi2): Remove.
14934         (ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
14935         ilogbl built-in functions as x87 intrinsics.
14936
14937 2007-01-30  Richard Guenther  <rguenther@suse.de>
14938
14939         PR middle-end/27657
14940         * dwarf2out.c (reference_to_unused): Query varpool if the
14941         variable was output.
14942
14943 2007-01-30  Richard Guenther  <rguenther@suse.de>
14944
14945         PR middle-end/30313
14946         * passes.c (execute_one_pass): Reset in_gimple_form to not
14947         confuse non-unit-at-a-time mode.
14948
14949 2007-01-29  Roger Sayle  <roger@eyesopen.com>
14950             Richard Guenther  <rguenther@suse.de>
14951
14952         * fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
14953         avoid undefined behaviour on overflow.  Use force_fit_type_double
14954         to construct the constant with the specified TREE_OVERFLOW.
14955
14956 2007-01-29  Janis Johnson  <janis187@us.ibm.com>
14957
14958         * config/dfp-bit.c: Add parameterized support for fp exceptions.
14959         * config/dfp-bit.h: Ditto.
14960
14961 2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14962
14963         * c-decl.c (pop_scope): Replace warnings with call to
14964         warn_for_unused_label.
14965         * c-common.h (warn_for_unused_label): Declare.
14966         * c-common.c (warn_for_unused_label): Define.
14967
14968 2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14969
14970         * tree-optimize.c (update_inlined_to_pointers): Delete unused
14971         function.
14972
14973 2007-01-29  Janis Johnson  <janis187@us.ibm.com>
14974
14975         * Makefile.in (USER_H): Remove decfloat.h.
14976         * ginclude/decfloat.h: Delete, moving contents to ...
14977         * ginclude/float.h: Add support for decimal floating point,
14978         guarded by __STDC_WANT_DEC_FP__.
14979
14980 2007-01-29  Mike Stump  <mrs@apple.com>
14981
14982         * doc/gccint.texi (Top): Rename Loop Representation to Loop
14983         Analysis and Representation to resolve case insensitive conflict.
14984         * doc/loop.texi (Loop Analysis and Representation): Likewise.
14985
14986 2007-01-28  Daniel Berlin  <dberlin@dberlin.org>
14987
14988         * tree.h (struct tree_memory_tag): Add aliases member.
14989         (MTAG_ALIASES): New macro.
14990         * tree-ssa-alias.c (alias_bitmap_obstack): New variable.
14991         (add_may_alias): Remove pointer-set. Update for may_aliases being
14992         a bitmap.
14993         (mark_aliases_call_clobbered): Update for may_aliases being a
14994         bitmap.
14995         (compute_tag_properties): Ditto.
14996         (create_partition_for): Ditto.
14997         (compute_memory_partitions): Ditto.
14998         (dump_may_aliases_for): Ditto.
14999         (is_aliased_with): Ditto.
15000         (add_may_alias_for_new_tag): Ditto.
15001         (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
15002         (compute_is_aliased): New function.
15003         (compute_may_aliases): Call compute_is_aliased).
15004         (init_alias_info): Initialize alias_bitmap_obstack.
15005         (union_alias_set_into): New function.
15006         (compute_flow_sensitive_aliasing): Use union_aliases_into.
15007         (have_common_aliases_p): Rewrite to take two bitmaps and use
15008         intersection.
15009         (compute_flow_insensitive_aliasing): Stop using pointer-sets.
15010         Update for bitmaps.
15011         (finalize_ref_all_pointers): Update for add_may_alias changes.
15012         (new_type_alias): Ditto.
15013         * tree-flow-inline.h (may_aliases): Return a bitmap.
15014         * tree-dfa.c (dump_variable): Check for MTAG_P'ness.
15015         * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
15016         may_aliases being a bitmap.
15017         * tree-flow.h (struct var_ann_d): Remove may_aliases member.
15018         may_aliases now returns a bitmap.
15019         * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
15020         being a bitmap.
15021         * tree-ssa-operands.c (add_virtual_operand): Update for
15022         may_aliases being a bitmap.
15023
15024 2007-01-29  Daniel Berlin  <dberlin@dberlin.org>
15025
15026         PR tree-optimization/30630
15027         * tree-ssa-structalias.c (do_complex_constraint): Mark correct
15028         variable as changed.
15029
15030 2007-01-29  Simon Martin  <simartin@users.sourceforge.net>
15031
15032         PR c++/28266
15033         * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
15034         expanded only once even if an error occurs.
15035
15036 2007-01-29  Ben Elliston  <bje@au.ibm.com>
15037
15038         * gcov-io.h (__gcov_indirect_call_profiler): Declare.
15039         (__gcov_average_profiler): Likewise.
15040         (__gcov_ior_profiler): Likewise.
15041         (__gcov_merge_ior): Likewise.
15042
15043 2007-01-28  Jan Hubicka  <jh@suse.cz>
15044
15045         * builtins.c (expand_builtin_memset): Fix typo in my last patch.
15046         * value-prof.c (stringop_block_profile): Likewise.
15047
15048 2007-01-28  Jan Hubicka  <jh@suse.cz>
15049
15050         * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall): Add
15051         variant handling histograms; add wrapper.
15052         (clear_storage_via_libcall): Export.
15053         (emit_block_move_hints): Break out from ...; add histograms.
15054         (emit_block_move): ... this one.
15055         (clear_storage_hints): Break out from ...; add histograms.
15056         (clear_storage): ... this one.
15057         (set_storage_via_memset): Handle histogram.
15058         * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
15059         (clear_storage_hints, clear_storage_via_libcall): Declare.
15060         (set_storage_via_setmem): Update prototype.
15061         * doc/md.texi (movmem, setmem): Document new arguments.
15062
15063         * value-prof.c (dump_histogram_value, tree_find_values_to_profile): Add
15064         new histograms.
15065         (stringop_block_profile): New global function.
15066         (tree_stringops_values_to_profile): Profile block size and alignment.
15067         * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
15068         HIST_TYPE_IOR.
15069         (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
15070         (stringop_block_profile): Declare.
15071         * builtins.c: Include value-prof.h.
15072         (expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
15073         * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
15074         (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
15075         (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
15076         * profile.c (instrument_values): Add new counters.
15077         * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
15078         calls.
15079         * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
15080         (tree_init_edge_profiler): Build new profilers.
15081         (tree_gen_average_profiler, tree_gen_ior_profiler): New.
15082         (pass_tree_profile): Add dump.
15083         (tree_profile_hooks): Update.
15084         * Makefile.in (LIBGCOV): Add new constants.
15085         * libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
15086         __gcov_ior_profiler): New.
15087         * i386.md (movmem/setmem expanders): Add new optional arguments.
15088
15089 2007-01-28  David Edelsohn  <edelsohn@gnu.org>
15090
15091         * doc/md.texi (Standard Pattern Names): Document blockage pattern.
15092
15093 2007-01-28  Zdenek Dvorak <dvorakz@suse.cz>
15094
15095         * tree-ssa-loop-unswitch.c: Include tree-inline.h.
15096         (tree_unswitch_single_loop): Pass eni_size_weights to
15097         tree_num_loop_insns.
15098         * tree-ssa-loop-manip.c: Include tree-inline.h.
15099         (can_unroll_loop_p): Pass eni_size_weights to
15100         tree_num_loop_insns.
15101         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
15102         Pass eni_size_weights to estimate_num_insns.
15103         * tree.h (init_inline_once): Export.
15104         * toplev.c (backend_init): Call init_inline_once.
15105         * cgraphunit.c (cgraph_process_new_functions,
15106         cgraph_analyze_function): Pass eni_inlining_weights to
15107         estimate_num_insns.
15108         * ipa-inline.c (compute_inline_parameters): Ditto.
15109         * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
15110         to estimate_num_insns.
15111         (try_unroll_loop_completely): Pass eni_size_weights to
15112         tree_num_loop_insns.
15113         * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
15114         ot estimate_num_insns.
15115         * tree-ssa-loop-prefetch.c: Include tree-inline.h.
15116         (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
15117         * tree-inline.c (eni_inlining_weights, eni_size_weights,
15118         eni_time_weights): New variables.
15119         (init_inline_once): Initialize them.
15120         (struct eni_data): Mew.
15121         (estimate_num_insns_1, estimate_num_insns): Use weights.
15122         * tree-inline.h (struct eni_weights_d): New.
15123         (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
15124         (estimate_num_insns): Declaration changed.
15125         * cfgloop.h (tree_num_loop_insns): Declaration changed.
15126         * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
15127         tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
15128
15129 2007-01-28  Zdenek Dvorak <dvorakz@suse.cz>
15130
15131         * tree-data-ref.c (conflict_fn): Assert that the number of affine
15132         relations in the conflict function is valid.
15133
15134 2007-01-27  Ian Lance Taylor  <iant@google.com>
15135
15136         * common.opt: Add fstrict-overflow.
15137         * opts.c (decode_options): Set flag_strict_overflow if -O2.
15138         * flags.h (TYPE_OVERFLOW_WRAPS): Define.
15139         (TYPE_OVERFLOW_UNDEFINED): Define.
15140         (TYPE_OVERFLOW_TRAPS): Define.  This replaces TYPE_TRAP_SIGNED.
15141         Replace all uses.
15142         * tree.h (TYPE_TRAP_SIGNED): Don't define.
15143         * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
15144         (fold_negate_expr): Likewise.
15145         (make_range): Likewise.
15146         (extract_muldiv_1): Likewise.
15147         (maybe_canonicalize_comparison): Likewise.
15148         (fold_comparison): Likewise.
15149         (fold_binary): Likewise.
15150         (tree_expr_nonnegative_p): Likewise.
15151         (tree_expr_nonzero_p): Likewise.
15152         * tree-vrp.c (compare_values): Likewise.
15153         (extract_range_from_binary_expr): Likewise.
15154         (extract_range_from_unary_expr): Likewise.
15155         * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
15156         Likewise.
15157         (nowrap_type_p): Likewise.
15158         * tree-scalar-evolution.c (simple_iv): Likewise.
15159         * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
15160         (build_range_check): Likewise.
15161         (extract_muldiv_1): Likewise.
15162         (fold_comparison): Likewise.
15163         * tree-vrp.c (vrp_int_const_binop): Likewise.
15164         (extract_range_from_unary_expr): Likewise.
15165         * convert.c (convert_to_integer): Likewise.
15166         * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
15167         (fold_comparison): Likewise.
15168         (fold_binary): Likewise.
15169         * optabs.c (optab_for_tree_code): Likewise.
15170         * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
15171         * simplify-rtx.c (simplify_const_relational_operation): Check
15172         flag_strict_overflow and flag_trapv.
15173         (simplify_const_relational_operation): Likewise.
15174         * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
15175         (Optimize Options): Add -fstrict-overflow to -O2 list.  Document
15176         -fstrict-overflow.
15177
15178 2007-01-27  Roger Sayle  <roger@eyesopen.com>
15179
15180         * tree.c (tree_fold_gcd): Delete.
15181         * tree.h (tree_fold_gcd): Remove prototype.
15182         * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
15183         test whether one constant integer is a multiple of another.  Instead
15184         call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
15185         * fold-const.c (multiple_of_p):  We've determined both TOP and
15186         BOTTOM are integer constants so we can call int_const_binop directly
15187         instead of the more generic const_binop.
15188
15189 2007-01-27  Roger Sayle  <roger@eyesopen.com>
15190
15191         * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
15192         1*X check that the constant hasn't overflowed, to preserve the
15193         TREE_OVERFLOW bit.
15194         (round_up): Provide an efficient implementation when rouding-up an
15195         INTEGER_CST to a power-of-two.
15196
15197 2007-01-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15198
15199         * doc/sourcebuild.texi: Add comma for clarity.
15200         * doc/extend.texi: Fix some typos.
15201         * doc/passes.texi: Likewise.
15202         * doc/cppinternals.texi: Likewise.
15203         * doc/c-tree.texi: Likewise.
15204         * doc/tree-ssa.texi: Likewise.
15205         * doc/install.texi: Likewise.
15206
15207 2007-01-27  Jan Hubicka  <jh@suse.cz>
15208
15209         * tree-sra.c (sra_walk_function): Don't rely on aliases being build.
15210         (pass_sra): Do not require alias information.
15211         * passes.c (init_optimization_passes): Add SRA
15212
15213 2007-01-27  Steven Bosscher  <steven@gcc.gnu.org>
15214
15215         * tracer.c (rest_of_handle_tracer): We already cleaned
15216         up the CFG in tracer() so don't do it here again.
15217         * cfgcleanup.c (rest_of_handle_jump2): Don't repeat
15218         cleanup_cfg here, either.  And don't call renumber_insns.
15219
15220         * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
15221         and BB_HEAD are in the insn stream here.  Instead make sure
15222         that BB_INSN is valid on all insns.  Also, do check here that
15223         there are no pending branch predictions...
15224         (rtl_verify_flow_info): ...instead of doing it here.  Checks
15225         for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
15226         here.
15227
15228 2007-01-26  Roger Sayle  <roger@eyesopen.com>
15229
15230         * config/i386/i386.c (ix86_swap_binary_operands_p): New helper
15231         function to simplify/factorize operand order canonicalization.
15232         (ix86_fixup_binary_operands): Reorganize using the above function.
15233         (ix86_binary_operator_ok): Likewise.
15234
15235 2007-01-27  Jakub Jelinek  <jakub@redhat.com>
15236
15237         * genattrtab.c (struct attr_value_list, insn_code_values): Move to
15238         file scope from optimize_attrs.
15239         (simplify_test_exp): If insn_code_values is not NULL, use it to speed
15240         up search.
15241         (optimize_attrs): Clear insn_code_values after freeing it.
15242
15243 2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>
15244
15245         * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
15246         a parts.base assignment.
15247
15248 2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>
15249
15250         * tree-data-ref.c (dump_subscript): Use dump_conflict_function.
15251         (compute_subscript_distance, initialize_data_dependence_relation,
15252         finalize_ddr_dependent, analyze_ziv_subscript,
15253         analyze_siv_subscript_cst_affine,
15254         compute_overlap_steps_for_affine_univar,
15255         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
15256         analyze_siv_subscript, analyze_miv_subscript,
15257         analyze_overlapping_iterations, subscript_dependence_tester_1,
15258         compute_self_dependence, free_dependence_relation): Work
15259         with affine_fn instead of chrecs.
15260         (dump_affine_function, dump_conflict_function, affine_function_equal_p,
15261         common_affine_function, affine_function_base,
15262         affine_function_constant_p, affine_fn_op, affine_fn_plus,
15263         affine_fn_minus, affine_fn_free, conflict_fn_not_known,
15264         conflict_fn_no_dependence, free_conflict_function, free_subscripts,
15265         conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
15266         (all_chrecs_equal_p): Removed.
15267         * tree-data-ref.h (affine_fn, conflict_function): New types.
15268         (struct subscript): Change type of conflicting_iterations_in_a
15269         and conflicting_iterations_in_b.
15270
15271 2007-01-26  Steve Ellcey  <sje@cup.hp.com>
15272
15273         PR other/30182
15274         * config/pa/pa.h (TARGET_HPUX_11): New.
15275         * config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
15276         * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.
15277
15278 2007-01-26  Daniel Berlin  <dberlin@dberlin.org>
15279         Richard Guenther  <rguenther@suse.de>
15280
15281         * tree-ssa-structalias.c (solve_graph): Handle case
15282         we merged the variable to another.
15283
15284 2007-01-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15285
15286         * builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even'
15287         functions.
15288
15289         * fold-const.c (negate_mathfn_p): Treat casin, casinh, catan,
15290         catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions.
15291
15292 2007-01-25  DJ Delorie  <dj@redhat.com>
15293
15294         * config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't
15295         allow changes to modes which don't fit in those registers.
15296
15297         * reload1.c (choose_reload_regs): Check for invalid subregs before
15298         computing their locations, not after.
15299
15300 2007-01-25  Geoffrey Keating  <geoffk@apple.com>
15301
15302         PR 25127
15303         * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
15304         save Altivec registers in an eh_return function.
15305         (compute_vrsave_mask): Likewise.
15306         (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
15307         for saving Altivec registers.
15308         (rs6000_emit_prologue): Don't allocate stack twice in
15309         eh_return function.  Correct expected value of altivec_save_offset
15310         when using save_world.  Describe save of R0 to stack when using
15311         save_world.  Describe stack pointer adjustment when using
15312         save_world.  Remove duplicated eh_return parameter register saving.
15313         Update sp_offset variable after save_world.
15314         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
15315         darwin-world.asm.
15316         (LIB2FUNCS_EXTRA): Add darwin-world.asm.
15317         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
15318         implies Altivec.
15319
15320 2007-01-25  Steve Ellcey  <sje@cup.hp.com>
15321
15322         * config.gcc (ia64*-*-hpux*): Make posix threads the default.
15323
15324 2007-01-25  Steve Ellcey  <sje@cup.hp.com>
15325
15326         PR other/30182
15327         * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
15328         * config/ia64/ia64.c (ia64_init_builtins):  Ditto.
15329
15330 2007-01-25  Richard Guenther  <rguenther@suse.de>
15331
15332         * doc/invoke.texi (-Wcoverage-mismatch): Document.
15333         * common.opt (-Wcoverage-mismatch): New warning option.
15334         * coverage.c (get_coverage_counts): Ignore coverage mismatch
15335         if -Wcoverage-mismatch is given.
15336
15337 2007-01-25  Razya Ladelsky  <razya@il.ibm.com>
15338
15339         * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
15340         (ipcp_driver): Change to static definition.
15341         Add dumping of the ifunctions.
15342         (constant_val_insert): Remove unused parameter. Support for SSA.
15343         (ipcp_propagate_const): Support for SSA.
15344         (ipcp_profile_bb_print): Print only analyzed nodes.
15345         (ipcp_replace_map_create): Remove support for Fortran constant
15346         for now.
15347         * ipa-prop.c (ipa_method_modify_stmt,
15348         ipa_callsite_compute_param): Support for SSA.
15349         * ipa-prop.h (ipcp_driver): Remove declaration.
15350         (IS_VALID_TREE_MAP_INDEX): Add define.
15351
15352 2007-01-24  Geoffrey Keating  <geoffk@apple.com>
15353
15354         * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
15355
15356 2007-01-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15357
15358         PR middle-end/30447
15359         * builtins.c (fold_builtin_cabs): Use MPFR to evaluate a
15360         constant argument to cabs and do it without checking for
15361         -funsafe-math-optimizations.
15362
15363 2007-01-24  Douglas Gregor  <dgregor@osl.iu.edu>
15364
15365         * c-common.h (RID_FIRST_CXX0X): New.
15366         (RID_LAST_CXX0X): New.
15367         * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered
15368         by -Wall.
15369         * c.opt (Wc++0x-compat): New.
15370         * doc/invoke.texi (-Wc++0x-compat): Document.
15371
15372 2007-01-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15373
15374         * builtins.c (fold_builtin_carg): New.
15375         (fold_builtin_1): Use it.
15376
15377 2007-01-24  Jan Hubicka  <jh@suse.cz>
15378
15379         * ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns.
15380
15381         * ipa-inline.c (initial_insns, max_insns): Delete.
15382         (compute_max_insns): New function.
15383         (cgraph_decide_inlining_of_small_function): Use it; take minimal amount
15384         of insns as base for code growth.
15385         (cgraph_decide_inlining): Make initial_insns local; do not compute
15386         max_insns.
15387         * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
15388         * doc/invoke.texi (inline-unit-growth): Update docs.
15389
15390 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
15391
15392         * config/i386/i386.h (x86_cmpxchg16b): Remove const.
15393         (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b.
15394         * config/i386/i386.c (x86_cmpxchg16b): Remove const.
15395         (override_options): Add PTA_CX16 flag.  Set x86_cmpxchg16b
15396         for CPUs that have PTA_CX16 set.
15397
15398         PR middle-end/27416
15399         * gimplify.c (omp_check_private): New function.
15400         (gimplify_scan_omp_clauses): Use it for
15401         firstprivate/lastprivate/reduction.
15402
15403         PR middle-end/30494
15404         * gimplify.c (omp_add_variable): Don't call omp_notice_variable
15405         on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
15406
15407         PR middle-end/30421
15408         * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
15409         If lower_lastprivate_clauses emits some statements, append them
15410         to dlist rather than body_p and to body_p append an initializer.
15411         (lower_omp_for): Adjust caller.
15412
15413 2007-01-24  Steve Ellcey  <sje@cup.hp.com>
15414
15415         * target.h (globalize_decl_name): New.
15416         * target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
15417         * output.h (default_globalize_decl_name): New.
15418         * varasm.c (asm_output_bss): Use globalize_decl_name instead of
15419         globalize_label.
15420         (globalize_decl): Ditto.
15421         (default_globalize_decl_name): New.
15422         * config/ia64/ia64.c (ia64_globalize_decl_name): New.
15423         (ia64_handle_version_id_attribute): New.
15424         (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
15425         (ia64_asm_output_external): Use globalize_decl_name instead
15426         of globalize_label.
15427         * doc/extend.texi (version_id): New pragma.
15428         * doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook.
15429
15430 2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
15431
15432         * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
15433         _uleb128_t and _Unwind_SWord with _sleb128_t.
15434         * unwind-dw2.c (extract_cie_info, execute_stack_op, execute_cfa_program,
15435         uw_frame_state_for, uw_update_context_1): Likewise.
15436         * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
15437         * unwind-pe.h (read_uleb128, read_sleb128,
15438         read_encoded_value_with_base): Likewise.
15439         * unwind-generic.h: Define _sleb128_t and _uleb128_t types.
15440
15441 2007-01-24  Richard Guenther  <rguenther@suse.de>
15442
15443         * builtins.c (expand_builtin_cexpi): Get the fndecl
15444         for cexp in the correct way.
15445
15446 2007-01-24  Jan Hubicka  <jh@suse.cz>
15447
15448         * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS of calls.
15449
15450 2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
15451
15452         * c-cppbuiltin.c (builtin_define_type_sizeof): New function.
15453         (c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__,
15454         __SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__,
15455         __SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__,
15456         __SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and
15457         __SIZEOF_PTRDIFF_T__.
15458         * doc/cpp.texi: Documentation for the new builtin macros added.
15459
15460 2007-01-24  Uros Bizjak  <ubizjak@gmail.com>
15461
15462         * config/i386/i386.md (tanxf2, tan<mode>2, atan<mode>2, log<mode>2,
15463         log10<mode>2, log2<mode>2, expxf2, exp10xf2, exp2xf2): Use op2
15464         instead of operands[2] to avoid access past the end of array.
15465
15466 2007-01-24  Richard Sandiford  <richard@codesourcery.com>
15467
15468         * reload1.c (emit_reload_insns): Pass the reload register
15469         for a non-spill output reload through forget_old_reloads_1.
15470
15471 2007-01-23  Joseph Myers  <joseph@codesourcery.com>
15472
15473         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
15474         _SOFT_DOUBLE if doubles use software floating-point.
15475         * config/rs6000/libgcc-ppc-glibc.ver: Export additional long
15476         double functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
15477         * config/rs6000/darwin-ldouble.c: Also compile functions for
15478         hard-float without FPRs.  Use fmsub function for all __NO_FPRS__
15479         cases.  Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
15480         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove
15481         commented-out long double override.
15482         (CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise.
15483         * config/rs6000/eabispe.h: Likewise.
15484         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
15485         long double for non-SPE.
15486         (rs6000_handle_option): Likewise.
15487         (invalid_e500_subreg): Disallow more subregs involding DImode,
15488         DFmode, TImode or TFmode.
15489         (rs6000_legitimate_offset_address_p): Check TFmode offsets for
15490         E500 double.
15491         (legitimate_lo_sum_address_p): Also check for TFmode for E500
15492         double.
15493         (rs6000_legitimize_address): Also handle TFmode for E500 double.
15494         (rs6000_legitimize_reload_address): Also handle TFmode for E500
15495         double.
15496         (rs6000_legitimate_address): Also check for TFmode for E500
15497         double.
15498         (rs6000_emit_move): Use DFmode subregs of TFmode for E500 double.
15499         (spe_build_register_parallel): Handle TFmode and TCmode.
15500         (rs6000_spe_function_arg): Handle TFmode and TCmode for E500
15501         double.
15502         (function_arg): Handle TFmode and TCmode for E500 double.
15503         (rs6000_init_libfuncs): Initialize extra libfuncs for soft double
15504         in general.
15505         (print_operand): Handle TFmode and TImode for %y.
15506         (rs6000_generate_compare): Handle TFmode comparisons for E500
15507         double.
15508         (spe_func_has_64bit_regs_p): Check for TFmode for E500 double.
15509         (rs6000_function_value): Handle TFmode and TCmode for E500 double.
15510         (rs6000_libcall_value): Handle TFmode and TCmode for E500 double.
15511         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for
15512         TFmode for E500 double.
15513         * config/rs6000/rs6000.md (FP): Allow TF for E500 double.
15514         (floatsidf2): Enable for E500 double.
15515         (movtf_softfloat): Use rs6000_nonimmediate_operand.
15516         (extenddftf2): Change to extenddftf2_fprs.
15517         (extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs
15518         depending on TARGET_E500_DOUBLE.
15519         (extendsftf2): Enable for E500 double.
15520         (trunctfdf2): Enable for E500 double.
15521         (trunctfsf2): Change to trunctfsf2_fprs.
15522         (trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs
15523         depending on TARGET_E500_DOUBLE.
15524         (floatsitf2): Enable for E500 double.
15525         (fix_trunctfsi2): Change to fix_trunctfsi2_fprs.
15526         (fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or
15527         gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE.
15528         (negtf2): Change to negtf2_internal.
15529         (negtf2): New expander.
15530         (abstf2): Enable for E500 double.  Call gen_spe_abstf2_tst,
15531         gen_spe_abstf2_cmp or gen_abstf2_internal depending on
15532         TARGET_E500_DOUBLE and flag_unsafe_math_optimizations.
15533         (movdi_internal32): Use rs6000_nonimmediate_operand.
15534         (unnamed splitter): Likewise.
15535         * config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR,
15536         TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs.
15537         (SPE64TF, DITI): New mode macros.
15538         (frob_df_di): Change to frob_<SPE64:mode>_<DITI:mode>; allow more
15539         modes.
15540         (frob_tf_ti): New.
15541         (frob_<mode>_di_2): New.
15542         (frob_tf_di_8_2): New.
15543         (frob_di_df): Change to frob_di_<mode>; allow more modes.
15544         (frob_ti_tf): New.
15545         (frob_di_df_2): Change to frob_<DITI:mode>_<SPE64:mode>_2; allow
15546         more modes.
15547         (frob_ti_<mode>_8_2): New.
15548         (frob_ti_tf_2): New.
15549         (mov_si<mode>_e500_subreg0, mov_si<mode>_e500_subreg0_2,
15550         mov_si<mode>_e500_subreg4, mov_si<mode>_e500_subreg4_2): Allow
15551         TFmode.
15552         (mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2,
15553         mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New.
15554         (spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2,
15555         spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal,
15556         spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New.
15557         (cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr,
15558         tsttflt_gp): New.
15559
15560 2007-01-23  Ian Lance Taylor  <iant@google.com>
15561
15562         * Makefile.in (OBJS-common): Reformat, alphabetize, but put
15563         insn-*.o first.
15564         (OBJS-archive): Reformat, alphabetize.
15565         (OBJS): Change out_object_file to OBJS-md.
15566
15567 2007-01-23  Uros Bizjak  <ubizjak@gmail.com>
15568
15569         * config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
15570         JUMP_P and CALL_P predicates where applicable.
15571         * config/i386/i386.c: Ditto.
15572         * config/i386/i386.md: Ditto.
15573         * config/i386/mmx.md: Ditto.
15574         * config/i386/predicates.md: Ditto.
15575
15576 2007-01-22  Andreas Schwab  <schwab@suse.de>
15577
15578         * config/m68k/m68k.h: Fix comment.
15579
15580 2007-01-22  Jan Hubicka  <jh@suse.cz>
15581
15582         * passes.c (init_optimization_passes): Do not rerun
15583         pass_early_warn_uninitialized.
15584
15585 2007-01-22  Richard Guenther  <rguenther@suse.de>
15586
15587         PR tree-optimization/30038
15588         * tree-ssa-math-opts.c (maybe_record_sincos): New static helper
15589         function.
15590         (execute_cse_sincos_1): Likewise.
15591         (execute_cse_sincos): Likewise.
15592         (gate_cse_sincos): Likewise.
15593         (pass_cse_sincos): New pass CSEing sin() and cos() calls using
15594         the cexpi() canonicalization of sincos().
15595         * tree-pass.h (pass_cse_sincos): Declare.
15596         * passes.c (init_optimization_passes): New pass pas_cse_sincos.
15597
15598 2007-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
15599
15600         PR rtl-optimization/29329
15601         * combine.c (replaced_rhs_insn): Rename to i2mod.
15602         (replaced_rhs_value): Rename to i2mod_new_rhs.
15603         (i2mod_old_rhs): New global variable.
15604         (combine_instructions): Adjust for above change.  Save a copy of
15605         the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
15606         note are substituted in the second instruction.
15607         (distribute_notes) <REG_DEAD>: Adjust for above change.  Do not
15608         ditch the note if it pertains to the second eliminated register
15609         and this register is mentioned in i2mod_old_rhs.
15610
15611         Revert:
15612         2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
15613
15614         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
15615         the insn to which the note was originally attached.
15616
15617 2007-01-21  Jan Hubicka  <jh@suse.cz>
15618
15619         * ipa-inline.c (inlining_mode): Comment, move up.
15620         (cgraph_decide_inlining_incrementally): Do not perform inlining
15621         itself; fix handling of flattening of self recursive functions.
15622         (cgraph_find_cycles): Remove.
15623         (cgraph_flatten_node): Remove.
15624         (cgraph_decide_inlining): Use incremental inliner to handle flattening.
15625         (try_inline): New function.
15626         (cgraph_early_inlining): Update call of
15627         cgraph_decide_inlining_incrementally.  Apply inlining here.
15628         (apply_inline): Update call of cgraph_decide_inlining_incrementally.
15629
15630 2007-01-21  Dirk Mueller  <dmueller@suse.de>
15631
15632         PR bootstrap/30511
15633         * tree-vrp.c (check_array_bounds): do not warn
15634         about ADDR_EXPR's of ARRAY_REF's which are immediately
15635         used in binary expressions.
15636
15637 2007-01-21  Ira Rosen  <irar@il.ibm.com>
15638
15639         * tree-vectorizer.h (struct _stmt_vec_info): Add new field
15640         read_write_dep and macros for its access.
15641         * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
15642         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
15643         argument, call vect_check_interleaving for every independent pair of
15644         data-refs. Mark loads that access the same memory location as a store
15645         in the loop.
15646         (vect_check_dependences): Remove.
15647         (vect_analyze_data_ref_dependences): Remove  vect_check_dependences
15648         call, fix the call to vect_analyze_data_ref_dependence.
15649         (vect_analyze_data_ref_access): For statements that access the same
15650         data-ref, check that they are not stores; for loads, check that there
15651         is no store that access the same location.
15652
15653 2007-01-20  Roger Sayle  <roger@eyesopen.com>
15654             Joseph Myers  <joseph@codesourcery.com>
15655
15656         * doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox.
15657         (-fdump-rtl-stack): Likewise.
15658         (-fno-signed-zeros): Use @minus{} for a minus sign.  Correct typo.
15659         (-mcheck-zero-division, -mcpu): Fix under/overfull hbox.
15660         (-mpt-fixed): Use @minus{} for minus sign.
15661         (Using Precompiled Headers): Fix under/overfull hbox.
15662
15663 2007-01-20  Jan Hubicka  <jh@suse.cz>
15664
15665         * tree-flow.h (struct stmt_ann_d): Move references_memory to proper
15666         place within annotation.
15667
15668 2007-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15669
15670         * pa.c (output_move_double): Change array size of xoperands to 4.
15671
15672 2007-01-20  Jan Hubicka  <jh@suse.cz>
15673
15674         * tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
15675         as temporary.
15676
15677 2007-01-19  Ian Lance Taylor  <iant@google.com>
15678
15679         * expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
15680         constant to unsigned HOST_WIDE_INT before negating.
15681
15682 2007-01-19  Ian Lance Taylor  <iant@google.com>
15683
15684         * tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
15685         to unsigned.
15686         (VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
15687         (VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
15688         (SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
15689         (SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
15690         (SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
15691         (realloc_vdef, realloc_vuse): Change second parameter to
15692         unsigned.
15693         (ssa_operand_iterator_d): Change vuse_index and mayuse_index
15694         fields to unsigned.
15695         * tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
15696         unsigned. Change x and lim locals to unsigned.
15697         (realloc_vdef, realloc_vuse): Change num_elem parameter to
15698         unsigned.
15699         (finalize_ssa_vuse_ops): Change old_i local to unsigned.
15700         (copy_virtual_operands): Change i and n locals to unsigned.
15701
15702 2007-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15703
15704         PR middle-end/29335
15705         * builtins.c (fold_builtin_1): Handle builtin fdim.
15706
15707 2007-01-20  Jan Hubicka  <jh@suse.cz>
15708
15709         * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
15710         * tree-ssa-structalias.c (compute_points_to_sets): Do call
15711         init_alias_heapvars.
15712         (init_alias_heapvars): Initialize only when not already initialized.
15713         (delete_alias_heapvars): Set heapvar_for_stmt to NULL.
15714
15715 2007-01-19  Roger Sayle  <roger@eyesopen.com>
15716
15717         * common.opt (fsigned-zeros): New command line option.
15718         * flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
15719         of flag_unsafe_math_optimizations.
15720         * opts.c (set_fast_math_flags): The -ffast-math command line option
15721         implies -fno-signed-zeros.
15722         (fast_math_flags_set_p): Likewise.
15723
15724         * doc/invoke.texi: Document new -fno-signed-zeros option, and update
15725         the documentation of -ffast-math appropriately.  Wrap long lines.
15726
15727 2007-01-19  Steve Ellcey  <sje@cup.hp.com>
15728
15729         * system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
15730         * varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef.
15731
15732 2007-01-19  Tomas Bily  <tbily@suse.cz>
15733
15734         * cgraphunit.c (cgraph_finalize_function): Updating of pid
15735         * tree-profile.c:
15736         (tree_init_ic_make_global_vars): New function
15737         (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
15738         (tree_gen_ic_profiler): New function
15739         (tree_gen_ic_func_profiler): New function
15740         (tree_profiling): Added calling of tree_gen_ic_func_profiler
15741         (tree_profile_hooks): Added hook for indirec/virtual calls
15742         * value-prof.c (tree_find_values_to_profile): New case for
15743         indirect calls
15744         (tree_values_to_profile): Call for determining indirect/virtual
15745         counters
15746         (tree_indirect_call_to_profile): New function
15747         (tree_ic_transform): New function
15748         (tree_ic): New function
15749         (find_func_by_pid): New function
15750         (init_pid_map): New function
15751         (tree_value_profile_transformations): Added check for
15752         indirect/virtual call transformation
15753         * value-prof.h (enum hist_type): New counter type for
15754         indirect/virtual calls
15755         (profile_hooks): Added new hook for profiling indirect/virtual
15756         calls
15757         * profile.c (instrument_values): New case for indirect/virtual
15758         call added
15759         * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
15760         (GCOV_COUNTER_V_INDIR): New counter type
15761         (GCOV_COUNTER_NAMES): New name of counter "indirect" added
15762         (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
15763         call added
15764         * cgraph.c: Definition of cgraph_max_pid
15765         (cgraph_create_node): Default init of pid attribute
15766         * cgraph.h: Declaration of cgraph_max_pid
15767         (struct cgraph_node): Added pid attribute
15768         * libgcov.c (__gcov_indirect_call_profiler): New function
15769         (__gcov_one_value_profiler_body): New function
15770         (__gcov_one_value_profiler): Body was moved to
15771         __gcov_one_value_profiler_body and calls it
15772
15773 2007-01-19  Basile Starynkevitch  <basile@starynkevitch.net>
15774
15775         * doc/gty.texi (Options): Document the mark_hook option to GTY.
15776         * gengtype.c (write_types_data, write_func_for_structure,
15777         write_types, ggc_wtd, pch_wtd): Add skip_hooks to
15778         write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
15779         (walk_type, write_func_for_structure): Generate the mark_hook if
15780         needed.
15781
15782 2007-01-19  Jan Hubicka  <jh@suse.cz>
15783
15784         * ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of
15785         'early' argument take inlining mode argument specifying whether to
15786         inline for size/speeed or all functions; add support for flattening;
15787         improve dumpting.
15788         (cgraph_early_inlining): Update call of decide_inlining_incrementally.
15789
15790 2007-01-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15791
15792         PR c++/17947
15793         * toplev.c (warn_deprecated_use): Use %qD instead of %qs to print
15794         the name of the declared identifier.
15795
15796 2007-01-19  Dirk Mueller  <dmueller@suse.de>
15797
15798         * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
15799         result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
15800         duplicate evaluation.
15801
15802 2007-01-19  Uros Bizjak  <ubizjak@gmail.com>
15803
15804         * config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
15805         Macroize expander using X87MODEF12 mode macro.  Extend operand 1
15806         to XFMode, use acosxf2 and truncate result to requested mode.
15807         Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
15808         (asin<mode>2): Similarly, with asin expanders.
15809         (*fscalexf4_i387): Rename from *fscalexf4.
15810         (expNcorexf3): New expander.
15811         (expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
15812         (exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
15813         X87MODEF12 mode macro.  Extend operand 1 to XFMode, use expxf2 and
15814         truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
15815         patterns for SSE math.
15816         (exp10<mode>2): Similarly, with exp10 expanders.
15817         (exp2<mode>2): Similarly, with exp2 expanders.
15818         (expm1<mode>2): Similarly, with expm1 expanders.
15819         (ldexp<mode>3): Similarly, with ldexp expanders.
15820         (log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
15821         Use gen_truncxf<mode>2_i387_noop to truncate result.
15822
15823 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
15824
15825         * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
15826         for ColdFire targets.
15827
15828 2007-01-19  Nathan Sidwell  <nathan@codesourcery.com>
15829             Richard Sandiford  <richard@codesourcery.com>
15830
15831         * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
15832         (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
15833         (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
15834         * config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
15835         (M68K_STATIC_CHAIN_REG_NAME): Likewise.
15836         * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
15837
15838 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
15839
15840         * config/m68k/m68k.md (adddi_dilshr32): Rename to...
15841         (*adddi_dilshr32): ...this.  Fix formatting.  Remove commented-out
15842         non-canonical pattern.  Restrict to !TARGET_COLDFIRE.
15843         (*adddi_dilshr32_cf): New pattern.
15844         (adddi3, subdi3): Remove first alternatives.
15845
15846 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
15847
15848         * config/m68k/m68k.c (notice_update_cc): If an SFmode move is
15849         implemented using move.l, do not use its cc result for floating-point
15850         comparisons.
15851
15852 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
15853
15854         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
15855         from accepting 's' constraints if flag_pic.
15856
15857 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
15858
15859         * config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
15860         (bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
15861         (bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
15862         condition from TARGET_68881 to TARGET_HARD_FLOAT.
15863
15864 2007-01-19  Sandra Loosemore  <sandra@codesourcery.com>
15865
15866         * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
15867         ColdFire alternatives.
15868         * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
15869         * config/m68k/m68k.md (clzsi2):  Define for ColdFire
15870         architectures that support ff1 instruction.
15871
15872 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
15873             Julian Brown  <julian@codesourcery.com>
15874
15875         * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
15876         * config/m68k/m68k.md (*movsi_cfv4): Fold into...
15877         (*movsi_cf): ...here.  Remove unnecessary 'R' from 'Rg'.
15878         Add commentary.
15879
15880 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
15881
15882         * config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
15883         and return a bool.
15884         (output_move_const_into_data_reg, output_move_simode_const): Delete.
15885         * config/m68k/m68k.c (const_method, const_int_cost): Take a
15886         HOST_WIDE_INT instead of an rtx.
15887         (m68k_rtx_costs): Update call accordingly.
15888         (output_move_const_into_data_reg): Likewise.  Fix formatting.
15889         (valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
15890         Return a bool.
15891         (output_move_simode_const): Update calls after above changes.
15892         Rework to use automatic variables and predicates like MEM_P.
15893         * config/m68k/m68k.md (pushexthisi_const): Update call to
15894         valid_mov3q_const.
15895
15896 2007-01-19  Dirk Mueller  <dmueller@suse.de>
15897
15898         * tree-ssa-alias.c (perform_var_substitution): Fix typo
15899         in dump_flags test.
15900
15901 2007-01-19  Richard Guenther  <rguenther@suse.de>
15902
15903         * builtins.c (expand_builtin_cexpi): Fall back to expanding
15904         via cexp in case sincos is not available.
15905
15906 2007-01-19  Richard Guenther  <rguenther@suse.de>
15907
15908         * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
15909         * defaults.h (TARGET_HAS_SINCOS): Default to off.
15910         * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
15911         * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
15912         * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
15913         * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
15914         * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
15915         * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
15916
15917 2007-01-19  Uros Bizjak  <ubizjak@gmail.com>
15918
15919         * config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
15920         New insn patterns.
15921         (atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
15922         (atan2xf3): Directly generate RTL pattern.
15923         (atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
15924         patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
15925         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
15926         disable patterns for SSE math.
15927         (atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
15928         patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
15929         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
15930         disable patterns for SSE math.
15931
15932 2007-01-19  Alexandre Oliva  <aoliva@redhat.com>
15933
15934         * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0.
15935
15936 2007-01-18  Roger Sayle  <roger@eyesopen.com>
15937
15938         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
15939         VIEW_CONVERT_EXPR to the same type as it's operand.
15940
15941 2007-01-18  David Edelsohn  <edelsohn@gnu.org>
15942
15943         * config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
15944         configured for long double 128.
15945
15946 2007-01-18  Mike Stump  <mrs@apple.com>
15947
15948         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build
15949         error.
15950
15951 2007-01-18  Michael Meissner  <michael.meissner@amd.com>
15952
15953         * i386.c (ix86_compute_frame_layout): Make fprintf's in #if 0 code
15954         type correct.
15955
15956 2007-01-18  Jan Hubicka  <jh@suse.cz>
15957
15958         * tree-ssa-operands.c (vop_free_bucket_size): Never return value
15959         greater than NUM_VOP_FREE_BUCKETS.
15960
15961 2007-01-18  Daniel Berlin  <dberlin@dberlin.org>
15962
15963         * tree-ssa-structalias.c: Update comments.
15964         (ptabitmap_obstack): Removed.
15965         (pta_obstack): New.
15966         (oldpta_obstack): Ditto.
15967         (stats): Add a few members.
15968         (struct variable_info): Remove node, complex, address_taken, and
15969         indirect_target members. Add oldsolution member.
15970         (new_var_info): Do not initialize removed members.
15971         (constraint_expr_type): Remove INCLUDES.
15972         (constraint_graph): Add size, implicit_preds, rep,
15973         indirect_cycles, eq_rep, label, direct_nodes, and complex members.
15974         (FIRST_REF_NODE): New macro.
15975         (LAST_REF_NODE): Ditto.
15976         (FIRST_ADDR_NODE): Ditto.
15977         (find): New function.
15978         (unite): Ditto.
15979         (dump_constraint): Do not handle INCLUDES.
15980         (insert_into_complex): Do not insert duplicate constraints.
15981         (condense_varmap_nodes): Renamed and rewritten into ...
15982         (merge_node_constraints): This. Also fix bug in handling of
15983         offseted copy constraints.
15984         (clear_edges_for_node): No longer need to deal with preds at all,
15985         or removing associated preds/succs.
15986         (merge_graph_nodes): Deal with indirect_cycles.
15987         Don't deal with predecessors.
15988         (add_implicit_graph_edge): New function.
15989         (add_pred_graph_edge): Ditto.
15990         (add_graph_edge): Don't deal with predecessors.
15991         (build_constraint_graph): Removed.
15992         (build_pred_graph): New function.
15993         (build_succ_graph): Ditto.
15994         (struct scc_info): Removed in_component. Added roots, dfs, and
15995         node_mapping. Remove visited_index, unification_queue.
15996         (scc_visit): Deal with union-find we do now.
15997         Deal with cycles with REF nodes.
15998         (collapse_nodes): Renamed and rewritten to ...
15999         (unify_nodes): This.
16000         (process_unification_queue): Removed.
16001         (topo_visit): Cleanup
16002         (do_da_constraint): Use find.
16003         (do_sd_constraint): Ditto.
16004         (do_ds_constraint): Ditto.
16005         (do_complex_constraint): Ditto.
16006         (init_scc_info): Update for removed and added members.
16007         (find_and_collapse_graph_cycles): Renamed and rewritten into ...
16008         (find_indirect_cycles): This.
16009         (equivalence_class): New variable.
16010         (label_visit): New function.
16011         (perform_variable_substitution): Rewritten.
16012         (free_var_substitution_info): New function.
16013         (find_equivalent_node): Ditto.
16014         (move_complex_constraints): Ditto.
16015         (eliminate_indirect_cycles): Ditto.
16016         (solve_graph): Only propagate changed bits.
16017         Use indirect cycle elimination.
16018         Use find.
16019         (tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
16020         (tree_id_eq): Renamed to ...
16021         (tree_vi_eq): This. Update for member change
16022         (insert_id_for_tree): Renamed and rewritten to ...
16023         (insert_vi_for_tree): This.
16024         (lookup_id_for_tree): Renamed and rewritten to ...
16025         (lookup_vi_for_tree): This.
16026         (get_id_for_tree): Renamed and rewritten to ...
16027         (get_vi_for_tree): Ditto.
16028         (get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
16029         (process_constraint): Don't handle INCLUDES.
16030         Remove special ADDRESSOF case.
16031         (find_func_aliases): Rewrite to use vi functions instead of id
16032         ones.
16033         (create_function_info_for): Ditto.
16034         (create_variable_info_for): Ditto.
16035         (intra_create_variable_infos): Ditto.
16036         (merge_smts_into): Ditto.
16037         (find_what_p_points_to): Ditto.
16038         (init_base_vars): Ditto.
16039         (init_alias_vars): Ditto.
16040         (remove_preds_and_fake_succs): New function.
16041         (dump_sa_points_to_info): Dump new stats.
16042         (dump_solution_for_var): Use find.
16043         (set_used_smts): Fix formatting.
16044         (compute_points_to_sets): Updated for new functions.
16045         (ipa_pta_execute): Ditto.
16046
16047 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
16048             Richard Sandiford  <richard@codesourcery.com>
16049
16050         * doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
16051         parallels.
16052         * calls.c (expand_call): If the return value is a PARALLEL,
16053         extract its first member.
16054         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
16055         * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
16056         use FUNCTION_EXTRA_EPILOGUE.
16057         (m68k_function_value): Return a PARALLEL if the return value
16058         is of a pointer type.
16059         * config/m68k/netbsd-elf.h (current_function_returns_pointer)
16060         (FUNCTION_EXTRA_EPILOGUE): Remove.
16061         * config/m68k/m68k.md (D0_REG): New constant.
16062
16063 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
16064
16065         * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
16066         output a NOP for empty epilogues.
16067
16068 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16069
16070         * config/m68k/m68k.c (m68k_use_return_insn): Update comments
16071         before function.  Extend register save check to include all
16072         registers, not just integer ones.
16073
16074 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
16075
16076         * config/m68k/m68k-protos.h (use_return_insn): Rename to...
16077         (m68k_use_return_insn): ...this.
16078         * config/m68k/m68k.h (USE_RETURN_INSN): Delete.
16079         * config/m68k/m68k.c (use_return_insn): Rename to...
16080         (m68k_use_return_insn): ...this.
16081         * config/m68k/m68k.md (return): Use m68k_use_return_insn instead
16082         of USE_RETURN_INSN.
16083
16084 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
16085
16086         * config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
16087         nearest even, fix denormal rounding overflow.
16088
16089 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16090
16091         * config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
16092         f%$smove and f%$move.
16093         (movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
16094         (extendsfdf2_cf): Use fdmove instead of f%&move.
16095         (truncdfsf2_cf): Use fsmove instead of f%$smove.
16096         (add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.
16097
16098 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16099
16100         * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
16101         GPR<-GPR moves.
16102
16103 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16104
16105         * real.h (real_format): Add a canonical_nan_lsbs_set field.
16106         (coldfire_single_format): Declare.
16107         (coldfire_double_format): Likewise.
16108         * real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
16109         of qnan_msb_set to determine the lower bits of a canonical
16110         NaN significand.
16111         (encode_ieee_double): Likewise.
16112         (encode_ieee_quad): Likewise.
16113         (ieee_single_format): Initialize canonical_nan_lsbs_set.
16114         (mips_single_format): Likewise.
16115         (ieee_double_format): Likewise.
16116         (mips_double_format): Likewise.
16117         (ieee_extended_motorola_format): Likewise.
16118         (ieee_extended_intel_96_format): Likewise.
16119         (ieee_extended_intel_128_format): Likewise.
16120         (ieee_extended_intel_96_round_53_format): Likewise.
16121         (ibm_extended_format): Likewise.
16122         (mips_extended_format): Likewise.
16123         (ieee_quad_format): Likewise.
16124         (mips_quad_format): Likewise.
16125         (vax_f_format): Likewise.
16126         (vax_d_format): Likewise.
16127         (vax_g_format): Likewise.
16128         (i370_single_format): Likewise.
16129         (i370_double_format): Likewise.
16130         (decimal_single_format): Likewise.
16131         (decimal_double_format): Likewise.
16132         (decimal_quad_format): Likewise.
16133         (c4x_single_format): Likewise.
16134         (c4x_extended_format): Likewise.
16135         (real_internal_format): Likewise.
16136         (coldfire_single_format): New real_format.
16137         (coldfire_double_format): Likewise.
16138         * config/pdp11/pdp11.c (pdp11_f_format): Initialize
16139         canonical_nan_lsbs_set.
16140         (pdp11_d_format): Likewise.
16141         * config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
16142         if TARGET_COLDFIRE_CPU.
16143
16144 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16145
16146         * config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
16147         (output_call, m68k_legitimize_call_address): Declare.
16148         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
16149         parenthesees.  Add support for a 'W' constraint.
16150         (LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
16151         (PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
16152         (m68k_symbolic_call, m68k_symbolic_jump): Declare.
16153         * config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
16154         variables.
16155         (override_options): Initialize them.  Do not set flag_no_function_cse
16156         for TARGET_ID_SHARED_LIBRARY.
16157         (m68k_output_pic_call): Delete.
16158         (m68k_legitimize_call_address): New function.
16159         (print_operand): Remove the %o prefix.  Handle the %p prefix.
16160         (output_call): New function.
16161         (m68k_output_mi_thunk): Use m68k_symbolic_jump.  Always load the
16162         target address from the GOT if symbolic jumps are not allowed.
16163         * config/m68k/m68k.md (call, general_operand): Do not set
16164         SYMBOL_REF_FLAG.  Use m68k_legitimize_call_address instead.
16165         Merge separate flag_pic and !flag_pic define_insns into...
16166         (*call, *call_value): ...these new patterns.  Match the address
16167         rather than the containing MEM and require it to be a call_operand.
16168         Use output_call to generate the asm template.
16169         * config/m68k/predicates.md (const_call_operand): New predicate.
16170         (call_operand): Likewise.
16171
16172 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
16173
16174         * config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
16175         (STACK_GROWS_DOWNWARD): Define to 1.
16176         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
16177         comments, emphasizing that these values are only defaults.
16178         * config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
16179         * config/m68k/m68k.c (const_method): Remove trailing whitespace.
16180
16181 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16182
16183         * config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.
16184
16185 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
16186             Richard Sandiford  <richard@codesourcery.com>
16187
16188         * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
16189         (FP_REGNO_P): New macros.
16190         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
16191         (REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
16192         (EH_RETURN_STACKADJ_RTX): Use A0_REG.
16193         * config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.
16194
16195 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
16196
16197         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
16198         (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
16199         to $tmake_file.
16200         * config/m68k/t-floatlib: New file, extracting common code from...
16201         * config/m68k/t-m68kbare, config/m68k/t-m68kelf,
16202         * config/m68k/t-uclinux: Here.
16203         * config/m68k/fpgnulib.c: Do not compile extendeed precision
16204         routines on ColdFire targets.
16205
16206 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
16207
16208         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
16209         (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
16210         (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
16211         (m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
16212         explicitly set MOTOROLA to 1.
16213         * config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.
16214
16215 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16216             Nathan Sidwell  <nathan@codesourcery.com>
16217
16218         * config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
16219         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
16220         * config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
16221         * config/m68k/m68020-elf.h (LIB_SPEC): Delete.
16222         * config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
16223         * config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
16224         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
16225         (NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
16226         (BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
16227         * config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
16228         * config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
16229         (WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
16230         (TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
16231         (DBX_REGISTER_NUMBER): Delete.
16232         * config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
16233         (PCC_STATIC_STRUCT_RETURN): Don't undefine.
16234         * config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.
16235
16236 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16237
16238         * config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
16239         * config/flat.h: New file.
16240         * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
16241         OBJECT_FORMAT_FLAT.
16242         * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
16243         indirect references for -msep-data or -mid-shared-library.
16244         Do not use PC-relative code addresses either.
16245         * config/m68k/m68k.c (override_options): Restrict -fPIC error
16246         to -mpcrel.
16247         * config/m68k/uclinux.h (STARTFILE_SPEC): Define.  Use Scrt1.o
16248         for shared libraries and crt1.o for executables.  Use crti.o and
16249         crtbegin.o.
16250         (ENDFILE_SPEC): Use crtend.o and crtn.o.
16251         (LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
16252         Do not add -elf2flt or -shared-lib-id options here.
16253         (LINK_SPEC): Define.  Pass -elf2flt if no -elf2flt option is given.
16254         Pass -shared-lib-id if -mid-shared-library, taking the library
16255         identifier from -mshared-library-id if given, otherwise
16256         defaulting to 0.
16257         (EH_FRAME_IN_DATA_SECTION): Do not undefine.
16258         (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
16259         (TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
16260         and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
16261         (DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
16262         * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
16263         and crtend.o.
16264         * config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
16265         jump sequence for ISA A and ISA A+.
16266         (PICJUMP): Likewise.
16267
16268 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16269
16270         * config.gcc (m68k-*-uclinux*): Base the port on the common
16271         and m68k GNU/Linux files rather than on the generic ELF ones.
16272         * config/m68k/uclinux.h (TARGET_VERSION): Override.
16273         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
16274
16275 2007-01-18  Julian Brown  <julian@codesourcery.com>
16276             Richard Sandiford  <richard@codesourcery.com>
16277
16278         * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
16279         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
16280         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
16281         before redefining.
16282         * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
16283         80 unconditionally.
16284         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
16285
16286 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16287
16288         * doc/install.texi: Document m68k-uclinuxoldabi.
16289         * config.gcc (m68k-*-uclinuxoldabi): New configuration.
16290         * config/m68k/uclinux-oldabi.h: New file, copied from
16291         config/m68k/uclinux.h.
16292
16293 2007-01-18  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
16294
16295         * config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
16296         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
16297         (m32r_compute_frame_size): Use unsigned for regno.
16298         (m32r_reload_lr): Use gen_frame_mem.
16299         (pop): New.
16300         (m32r_output_function_epilogue): Don't output the function epilogue
16301         textually here.
16302         (m32r_expand_epilogue): New.
16303         (direct_return): Return false if the function has the interrupt
16304         attribute.
16305         (m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
16306         * config/m32r/m32r.md (epilogue): New expander.
16307         (return_lr, return_rte): New insns.
16308         (return): Make it expander.
16309         (return_normal): New expander.
16310
16311 2007-01-18  Josh Conner  <jconner@apple.com>
16312
16313         PR target/30485
16314         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
16315         support for UNLE, UNLT, UNGE, and UNGT.
16316
16317 2007-01-18  Jan Hubicka  <jh@suse.cz>
16318
16319         * tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
16320         * tree-tailcall (add_virtual_phis): Likewise.
16321         (optimize_tail_call): Return TODOs.
16322         (execute_tail_calls): Return TODOs.
16323         * tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
16324         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
16325         changed.
16326         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
16327         Cleanup cfg using TODO.
16328         * tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
16329         * passes.c (execute_function_todo): When cleanup did something, remove
16330         unused locals.
16331         * tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
16332         (make_edges): Don't cleanup_cfg.
16333
16334 2007-01-18  Uros Bizjak  <ubizjak@gmail.com>
16335
16336         * reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
16337         UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
16338         operate on the top of stack.
16339         [UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
16340         register handling of instructions that output to the second
16341         stack slot.
16342         [UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
16343         (move_for_stack_reg): Special-case check for dead destination
16344         stack slot for constant load of 1.0 inside UNSPEC_TAN.
16345
16346         * config/i386/i386.md (UNSPEC_TAN): New constant.
16347         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
16348         (fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
16349         to correctly model move of constant 1.0 to top stack slot.
16350         (*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
16351         (unnamed peephole2 pattern): Remove corresponding peephole2
16352         pattern that optimizes tan insn and loading of constant 1.0.
16353         (tanxf2): Use fptanxf4_i387.
16354         (tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
16355         patterns using X87MODEF12 mode macro.  Use fptan_extend<mode>xf4_i387
16356         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
16357         disable patterns for SSE math.
16358         (sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
16359         (fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.
16360
16361 2007-01-18  Dirk Mueller  <dmueller@suse.de>
16362             Richard Guenther <rguenther@suse.de>
16363
16364         PR diagnostic/8268
16365         * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
16366         * common.opt (Warray-bounds): Add new warning option.
16367         * c-opts.c (c_common_handle_option): Define -Warray-bounds
16368         if -Wall is given.
16369         * Makefile.in: make tree-vrp.o depend on toplev.h
16370         * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
16371         is enabled.
16372         (check_array_refs, check_array_bounds, check_array_ref): New.
16373
16374 2007-01-18  Jan Hubicka  <jh@suse.cz>
16375
16376         * tree-ssa-ccp.c (ccp_finalize): Return if something changed.
16377         (execute_ssa_ccp): Return flags conditionally.
16378         * tree-ssa-propagate.c (substitue_and_fold): Return if something was
16379         changed.
16380         * tree-ssa-propagate.h (substitute_and_fold): Update prototype.
16381
16382 2007-01-18  Steven Bosscher  <steven@gcc.gnu.org>
16383
16384         * cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
16385         the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
16386
16387         * Makefile.c (GTFILES): Add cfglayout.h.
16388         * gengtype.c (open_base_files): Likewise.
16389         * cfglayout.c (cfg_layout_function_footer,
16390         cfg_layout_function_header) Reindent to make gengtype happy.
16391         * cfglayout.h (cfg_layout_function_footer,
16392         cfg_layout_function_header): Add GTY(()) marker.
16393
16394         * ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.
16395
16396 2007-01-18  Ben Elliston  <bje@au.ibm.com>
16397
16398         * genautomata.c (write_automata): Include xstrerror output in the
16399         error message if writing the DFA description file fails.
16400
16401 2007-01-17  H.J. Lu  <hongjiu.lu@intel.com>
16402
16403         * config/mips/mips-protos.h (mips_output_external): Make it
16404         return void.
16405         * config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
16406         * config/mips/mips.c (irix_output_external_libcall): Likewise.
16407         (extern_list): Likewise.
16408         (extern_head): Likewise.
16409         (TARGET_ASM_FILE_END): Likewise.
16410         (mips_file_end): Likewise.
16411         (mips_output_external): Rewritten.
16412
16413 2007-01-18  Ben Elliston  <bje@au.ibm.com>
16414
16415         * genpreds.c (write_insn_preds_c): Only write out the function
16416         body for regclass_for_constraint if we have register constraints.
16417
16418 2007-01-17  Tom Tromey  <tromey@redhat.com>
16419
16420         * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
16421         * doc/install.texi (Testing): Use sourceware.org.
16422         (Binaries): Likewise.
16423         (Specific): Likewise.
16424         * doc/contrib.texi (Contributors): Use sourceware.org.
16425
16426 2007-01-17  Anatoly Sokolov <aesok@post.ru>
16427
16428         * config/avr/avr.h (AVR_HAVE_LPMX): New macro.
16429         (AVR_ENHANCED): Rename to ...
16430         (AVR_HAVE_MUL): ... new.
16431         (avr_enhanced_p): Rename to ...
16432         (avr_have_mul_p): ... new.
16433         (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of
16434         'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
16435         * config/avr/avr.c (avr_enhanced_p): Rename to ...
16436         (avr_have_mul_p): ... new.
16437         (base_arch_s): Rename 'enhanced' to 'have_mul'.
16438         (avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
16439         'avr_enhanced_p' and 'enhanced'.
16440         (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use
16441         AVR_HAVE_MUL instead of AVR_ENHANCED.
16442         * avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
16443         (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3,
16444         *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL
16445         instead of AVR_ENHANCED.
16446         (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
16447         * libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
16448         (__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.
16449
16450 2007-01-17  Ian Lance Taylor  <iant@google.com>
16451
16452         * vec.h (VEC_reserve_exact): Define.
16453         (vec_gc_p_reserve_exact): Declare.
16454         (vec_gc_o_reserve_exact): Declare.
16455         (vec_heap_p_reserve_exact): Declare.
16456         (vec_heap_o_reserve_exact): Declare.
16457         (VEC_OP (T,A,reserve_exact)): New static inline function, three
16458         versions.
16459         (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
16460         negative parameter.
16461         (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
16462         (VEC_OP (T,A,copy)) [all versions]: Likewise.
16463         (VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
16464         * vec.c (calculate_allocation): Add exact parameter.  Change all
16465         callers.
16466         (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
16467         (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
16468         (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
16469         (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
16470         (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
16471         (vec_heap_p_reserve_exact): New function.
16472         (vec_heap_o_reserve_exact): New function.
16473
16474 2007-01-17  Jan Hubicka  <jh@suse.cz>
16475
16476         * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p.
16477
16478 2007-01-17  Eric Christopher  <echristo@apple.com>
16479
16480         * config.gcc: Support core2 processor.
16481
16482 2007-01-16  Jan Hubicka  <jh@suse.cz>
16483
16484         * tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
16485         the names, just unlink the chain so we don't crash on dangling pointers
16486         to dead SSA names.
16487
16488 2007-01-16  Jan Hubicka  <jh@suse.cz>
16489
16490         * cgraph.h (cgraph_decide_inlining_incrementally): Kill.
16491         * tree-pass.h: Reorder to make IPA passes appear toegher.
16492         (pass_early_inline, pass_inline_parameters, pass_apply_inline): Declare.
16493         * cgraphunit.c (cgraph_finalize_function): Do not compute inling
16494         parameters, do not call early inliner.
16495         * ipa-inline.c: Update comments.  Include tree-flow.h
16496         (cgraph_decide_inlining): Do not compute inlining parameters.
16497         (cgraph_decide_inlining_incrementally): Return TODOs; assume to
16498         be called with function context set up.
16499         (pass_ipa_inline): Remove unreachable functions before pass.
16500         (cgraph_early_inlining): Simplify assuming to be called from the
16501         PM as local pass.
16502         (pass_early_inline): New pass.
16503         (cgraph_gate_ipa_early_inlining): New gate.
16504         (pass_ipa_early_inline): Turn into simple wrapper.
16505         (compute_inline_parameters): New function.
16506         (gate_inline_passes): New gate.
16507         (pass_inline_parameters): New pass.
16508         (apply_inline): Move here from tree-optimize.c
16509         (pass_apply_inline): New pass.
16510         * ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after
16511         transforming.
16512         * tree-inline.c (optimize_inline_calls): Return TODOs rather than
16513         doing them by hand.
16514         (tree_function_versioning): Do not allocate dummy struct function.
16515         * tree-inline.h (optimize_inline_calls): Update prototype.
16516         * tree-optimize.c (execute_fixup_cfg): Export.
16517         (pass_fixup_cfg): Remove
16518         (tree_rest_of_compilation): Do not apply inlines.
16519         * tree-flow.h (execute_fixup_cfg): Declare.
16520         * Makefile.in (gt-passes.c): New.
16521         * passes.c: Include gt-passes.h
16522         (init_optimization_passes): New passes.
16523         (nnodes, order): New static vars.
16524         (do_per_function_toporder): New function.
16525         (execute_one_pass): Dump current pass here.
16526         (execute_ipa_pass_list): Don't dump current pass here.
16527
16528 2007-01-16  Janis Johnson  <janis187@us.ibm.com>
16529
16530         * config/dfp-bit.c (dfp_compare_op): Return separate value for NaN.
16531         (DFP_NE, DFP_LE, DFP_GE): Return false for NaN.
16532
16533 2007-01-16  David Edelsohn  <edelsohn@gnu.org>
16534
16535         * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
16536         (strong_alias): Define.
16537         (__gcc_qmul): Provide non-FMA for soft-float.
16538         (__gcc_qdiv): Same.
16539         (__gcc_qneg): New.
16540         (__gcc_qeq): New.
16541         (__gcc_qle): New.
16542         (__gcc_qge): New.
16543         (__gcc_qunord): New.
16544         (__gcc_stoq): New.
16545         (__gcc_dtoq): New.
16546         (__gcc_qtos): New.
16547         (__gcc_qtod): New.
16548         (__gcc_qtoi): New.
16549         (__gcc_qtou): New.
16550         (__gcc_itoq): New.
16551         (__gcc_utoq): New.
16552         (fmsub): New.
16553         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
16554         soft-float functions.
16555         * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
16556         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
16557         about long double soft float.
16558
16559 2007-01-16  Dorit Nuzman  <dorit@il.ibm.com>
16560             Tehila Meyzels  <tehila@il.ibm.com>
16561
16562         * tree-vectorizer.h (is_pattern_stmt_p): New.
16563         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix
16564         formatting (tabs instead of spaces). Cleanup and clarify setting
16565         of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p.
16566         * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo.
16567         (vectorizable_type_demotion): Check that types are integral.
16568         (vectorizable_type_promotion): Likewise.
16569         (vectorizable_store): Fix typo.  Eliminate new-line at end of
16570         comments.
16571
16572 2007-01-16  Jan Hubicka  <jh@suse.cz>
16573
16574         * tree-ssanames.c (release_dead_ssa_names): Remove invalidated
16575         cgraph edges too.
16576
16577 2007-01-15  Eric Christopher  <echristo@apple.com>
16578
16579         * ifcvt.c: Include vec.h, vecprim.h.
16580         (check_cond_move_block): New argument regs.
16581         Reorganize. Add registers used to regs.
16582         (cond_move_process_if_block): Use regs set above as
16583         loop bounds.
16584
16585 2007-01-15  Eric Christopher  <echristo@apple.com>
16586
16587         * config/darwin.h: Update copyright.
16588         (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
16589         (LINK_COMMAND_SPEC): Add -u.
16590         (LINK_SPEC): Fix umbrella for above.
16591
16592 2007-01-15  Joseph S. Myers  <joseph@codesourcery.com>
16593
16594         * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
16595         glibc CVS.
16596
16597 2007-01-15  Tom Tromey  <tromey@redhat.com>
16598
16599         * doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
16600         * doc/install.texi (Testing): Don't mention jacks.
16601         (Configuration): Document --enable-java-maintainer-mode.  Move
16602         --with-java-home to libgcj-specific section.  Document
16603         --with-ecj-jar.
16604         (Prerequisites): Mention --enable-java-maintainer-mode, ecj1.
16605
16606 2007-01-15  Jan Hubicka  <jh@suse.cz>
16607
16608         * tree-ssa-dce.c (DCE_TODOs): New.
16609         (propagate_necessity): Return if something changed.
16610         (eliminate_unnecessary_stmts): Likewise.
16611         (perform_tree_ssa_dce): Return TODO flags when needed.
16612         (pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags.
16613
16614 2007-01-15  Uros Bizjak  <ubizjak@gmail.com>
16615
16616         * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
16617         (fyl2x_extend<mode>xf3_i387): New insn pattern.
16618         (log<mode>2): Rename from logsf2 and logdf2 and macroize insn
16619         patterns using X87MODEF12 mode macro.  Extend operand 1
16620         to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
16621         (log10<mode>2): Ditto.
16622         (log2<mode>2): Ditto.
16623         (log1p<mode>2): Ditto.
16624         (logb<mode>2): Ditto.
16625         (fyl2xp1xf3_i387): Rename from fyl2xp1_xf3.
16626         (fyl2xp1_extend<mode>xf3_i387): New insn pattern.
16627         (*fxtractxf3_i387): Rename from *fxtractxf3.
16628         (fxtract_extend<mode>xf3_i387): New insn pattern.
16629         (ilogbsi2): Use match_dup 3, not match_operand:XF 3.
16630         * config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
16631         and gen_fyl2xxf3_i387().
16632
16633 2007-01-14  Zdenek Dvorak <dvorakz@suse.cz>
16634
16635         * loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
16636         * cfgloopmanip.c (fix_loop_placement): Made static.  Use
16637         get_loop_exit_edges.  Changed return type to bool.
16638         * cfgloop.h (fix_loop_placement): Declaration removed.
16639
16640 2007-01-14  Dorit Nuzman  <dorit@il.ibm.com>
16641
16642         * param.h (MIN_VECT_LOOP_BOUND): New.
16643         * params.def (MIN_VECT_LOOP_BOUND): New.
16644         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
16645         argument - minimum threshold for number of iterations.
16646         * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
16647         argument to declaration.
16648         * tree-vect-analyze.c (vect_analyze_operations): Check value of
16649         MIN_VECT_LOOP_BOUND.
16650         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
16651         slpeel_tree_peel_loop_to_edge with additional argument.
16652         (vect_do_peeling_for_alignment): Likewise.
16653         * doc/invoke.texi (min-vect-loop-bound): Document new param option.
16654
16655 2007-01-14  Uros Bizjak  <ubizjak@gmail.com>
16656
16657         PR target/30413
16658         * config/i386/i386.c (print_operand) ['z']: Output 'b' for
16659         operands of size 1.
16660
16661 2007-01-14  Jan Hubicka  <jh@suse.cz>
16662
16663         * tree-dfa.c (remove_referenced_var): New function.
16664         * tree-ssa-live.c (remove_unused_locals): Walk referenced vars and
16665         prune referenced vars list too.
16666         * tree-flow.h (remove_referenced_var): Declare.
16667
16668 2007-01-14  Jan Hubicka  <jh@suse.cz>
16669
16670         * tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs
16671         separately.
16672         (remove_stmt_from_eh_region_fn): Do not remove call_exprs.
16673         (verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill.
16674         * except.h (verify_eh_throw_table_statements): Kill prototype.
16675         * cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions
16676         into call exrepssions.
16677         * tree-optimize.c (execute_free_cfg_annotatiosn): Do not call
16678         eh trhow verifier.
16679         * tree-cfg.c: Include pointer-set.h.
16680         (verify_node_sharing): Work on pointer set.
16681         (verify_eh_throw_stmt_node): New.
16682         (verify_stmts): Use pointers sets, verify throw_stmt.
16683
16684 2007-01-13  Zdenek Dvorak <dvorakz@suse.cz>
16685
16686         * ipa-reference.c (analyze_function): Consider also addresses taken
16687         in phi nodes.
16688
16689 2007-01-12  Roger Sayle  <roger@eyesopen.com>
16690
16691         * c-typeck.c (null_pointer_constant_p): Replace use of
16692         TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
16693         (build_c_cast): Likewise.
16694
16695 2007-01-12  Roger Sayle  <roger@eyesopen.com>
16696
16697         * tree.h (force_fit_type_double): Remove unused final argument.
16698         * c-common.c (constant_expression_warning): Replace use of
16699         TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
16700         (convert_and_check): Likewise.
16701         (shorten_compare): Update call to force_fit_type_double.
16702         (c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop.
16703         * convert.c (convert_to_pointer): Update call to
16704         force_fit_type_double.
16705         * fold-const.c (force_fit_type_double): Remove overflowed_const
16706         argument.
16707         (int_const_binop, fold_convert_const_int_from_int,
16708         fold_convert_const_int_from_real, fold_div_compare,
16709         fold_sign_changed_comparison, fold_unary, fold_negate_const,
16710         fold_abs_const, fold_not_const): Remove the final argument from
16711         calls to force_fit_type_double.
16712
16713 2007-01-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16714
16715         * configure.ac: Set insn to "nop" for spu-*-* also.
16716         * configure: Regenerate.
16717
16718 2007-01-12  Olga Golovanevsky  <olga@il.ibm.com>
16719
16720         * builtins.def : Add BUILT_IN_FREE.
16721
16722 2007-01-12  Jan Hubicka  <jh@suse.cz>
16723
16724         PR tree-optimization/30443
16725         * tree-inline.c (tree_function_versioning): Do not optimize when
16726         cloning for inlining.
16727
16728 2007-01-12  Zdenek Dvorak <dvorakz@suse.cz>
16729
16730         * doc/loop.texi: Document recording of loop exits.
16731         * cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
16732         (update_single_exits_after_duplication,
16733         update_single_exit_for_duplicated_loop,
16734         update_single_exit_for_duplicated_loops): Removed.
16735         (duplicate_loop_to_header_edge): Do not call
16736         update_single_exits_after_duplication and
16737         update_single_exit_for_duplicated_loops.
16738         (loop_version): Do not update single_exit information.
16739         (fix_loop_structure): Use record_loop_exits instead of
16740         mark_single_exit_loops.
16741         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
16742         the lists of loop exits.
16743         * cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
16744         split_edge, merge_blocks): Update the lists of loop exits.
16745         * modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
16746         loop_optimizer_init.
16747         * loop-init.c (loop_optimizer_init): Call record_loop_exits instead
16748         of mark_single_exit_loops.
16749         (loop_optimizer_finalize): Call release_recorded_exits.
16750         * tree-ssa-loop.c (tree_loop_optimizer_init): Pass
16751         LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
16752         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
16753         update single exit information.
16754         * lambda-code.c (perfect_nestify): Ditto.
16755         * cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
16756         (mark_single_exit_loops): Removed.
16757         (alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
16758         get_exit_descriptions, rescan_loop_exit, record_loop_exits,
16759         dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
16760         functions.
16761         (get_loop_exit_edges, single_exit): Use recorded exit lists.
16762         (add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
16763         (verify_loop_structure): Verify consistency of the exit lists.
16764         (flow_loops_find): Use alloc_loop.  Initialize exits hash.
16765         (set_single_exit): Removed.
16766         * cfgloop.h (struct loop_exit): New function.
16767         (struct loop): single_exit_ field replaced by exits field.
16768         (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by LOOPS_HAVE_RECORDED_EXITS.
16769         (struct loops): Added exits hash.
16770         (mark_single_exit_loops, set_single_exit): Declaration removed.
16771         (release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.
16772
16773 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
16774
16775         * doc/invoke.texi: Avoid use of @headitem.
16776
16777 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
16778
16779         * cse.c (cse_insn): Move HAVE_CC0 code after declarations.
16780
16781 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
16782
16783         * doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the
16784         list of targets.
16785
16786 2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
16787             Richard Sandiford  <richard@codesourcery.com>
16788
16789         * doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short.
16790         * config/m68k/m68k.opt: Resort options.
16791         (mbitfield, mrtd, mshort): Remove RejectNegative properties.
16792
16793 2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
16794             Richard Sandiford  <richard@codesourcery.com>
16795
16796         * doc/invoke.texi: Document the macros that are defined by
16797         m68k's -mtune and -mhard-float options.
16798         * config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare.
16799         (m68k_cpp_cpu_family): Likewise.
16800         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set
16801         of __ucfv*__ macros.  Define __mcffpu__ if generating code for
16802         ColdFire FPUs.  Define __mcf_cpu_* and __mcf_family_* macros.
16803         * config/m68k/m68k.c (m68k_cpp_cpu_ident): New function.
16804         (m68k_cpp_cpu_family): Likewise.
16805
16806 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
16807
16808         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68*
16809         macros besides mc68000 as tuning macros.  Use a switch statement
16810         to set them and mcpu32.
16811
16812 2007-01-12  Julian Brown  <julian@codesourcery.com>
16813
16814         * config/m68k/m68k.h: Use TARGET_68040 instead of TARGET_68040_ONLY.
16815         (TARGET_68040_ONLY): Rename to...
16816         (TARGET_68040): ...this.
16817         * config/m68k/m68k.c: Use TARGET_68040 instead of TARGET_68040_ONLY.
16818         * config/m68k/m68k.md: Likewise.
16819
16820 2007-01-12  Julian Brown  <julian@codesourcery.com>
16821             Nathan Sidwell  <nathan@codesourcery.com>
16822             Richard Sandiford  <richard@codesourcery.com>
16823
16824         * config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to
16825         the -mcpu= argument associated with the --with-cpu setting.
16826         Define M68K_DEFAULT_TUNE to the default -mtune= option,
16827         if different from the one implied by the -mcpu setting.
16828         Accept --with-cpu=FOO if FOO is listed in m68k-devices.def,
16829         using mcpu=FOO as the default CPU option.  Set target_cpu_default2.
16830         * doc/invoke.texi: Mention ColdFire in the introduction to the
16831         m68k options.  Document the new -march, -mcpu, -mtune, -mdiv,
16832         -mno-div and -mhard-float options.  Make -m68881 a synonym for
16833         -mhard-float.  Document the previously-undocumented -m5206e,
16834         -m528x, -m5307 and -m5407 options.  Tweak the existing option
16835         documentation for consistency.
16836         * doc/install.texi: Mention new --with-cpu arguments.
16837         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the
16838         default CPU if neither -mcpu nor -march are specified.
16839         (ASM_CPU_SPEC): Pass down -mcpu and -march options.
16840         (TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from
16841         TARGET_ISA*.  Set the legacy __mcf*__ cpu macros in the same way,
16842         using m68k_tune to decide between families that implement the
16843         same ISA.  Use m68k_tune to set __mcfv4e__.
16844         (FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC)
16845         (FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000)
16846         (FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B)
16847         (FL_ISA_C, FL_ISA_MMU): New macros.
16848         (MASK_COLDFIRE): Delete.
16849         (TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE)
16850         (TARGET_ISAB): Redefine in terms of m68k_cpu_flags.
16851         (TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu.
16852         (TARGET_HARD_FLOAT): Do not define here.
16853         (TARGET_ISAAPLUS, TARGET_ISAC): New macros.
16854         (TUNE_68000): New macro.
16855         (TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010.
16856         (TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32)
16857         (TUNE_CFV2): Redefine in terms of m68k_tune.
16858         (uarch_type, target_device, fpu_type): New enums.
16859         (m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare.
16860         * config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881.
16861         (FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40)
16862         (FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b)
16863         (FL_FOR_isa_c): New macros.
16864         (m68k_isa): New enum.
16865         (m68k_target_selection): New structure.
16866         (all_devices, all_isas, all_microarchs): New tables.
16867         (m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu)
16868         (m68k_tune, m68k_fpu, m68k_cpu_flags): New variables.
16869         (MASK_ALL_CPU_BITS): Delete.
16870         (m68k_find_selection): New function.
16871         (m68k_handle_option): Handle -mcpu=, -march= and -mtune=.
16872         Map the legacy target options to a combination of the new ones.
16873         (override_options): Set m68k_cpu, m68k_tune, m68k_fpu and
16874         m68k_cpu_flags.  Handle M68K_DEFAULT_TUNE.  Use m68k_cpu_flags
16875         to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT
16876         settings.
16877         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e)
16878         (m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask
16879         properties.
16880         (m68881, msoft-float): Change mask from 68881 to HARD_FLOAT.
16881         (march=, mcpu=, mdiv, mhard-float, mtune=): New options.
16882         * config/m68k/m68k-devices.def: New file.
16883
16884 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
16885             Nathan Sidwell  <nathan@codesourcery.com>
16886
16887         * config/m68k/m68k.h (ASM_CPU_SPEC, ASM_SPEC, EXTRA_SPECS)
16888         (SUBTARGET_EXTRA_SPECS): New macros.
16889         * config/m68k/linux.h (ASM_SPEC): Remove CPU flags;
16890         use %(asm_cpu_spec) instead.
16891         * config/m68k/m68k-none.h (ASM_SPEC): Likewise.
16892         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
16893         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
16894         (EXTRA_SPECS): Rename to...
16895         (SUBTARGET_EXTRA_SPECS): ...this.
16896
16897 2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
16898             Richard Sandiford  <richard@codesourcery.com>
16899             Julian Brown  <julian@codesourcery.com>
16900
16901         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
16902         (m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu
16903         to the configuration's default CPU.
16904         (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise.
16905         Remove default masks.
16906         (m680[012]0-*-*): Set the default with_cpu to the first part of
16907         the target name.
16908         (m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu.
16909         (m68k*-*-linux): Extend the --with-cpu handling to...
16910         (m680[012]0-*-*, m68k*-*-*): ...these configurations.  Allow m68000
16911         and m68010.  Don't set target_cpu_default2.
16912         * doc/install.texi: Document --with-cpu for m68k.
16913         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define.
16914         * config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k)
16915         (M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030)
16916         (M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT)
16917         (ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete.
16918         (ASM_SPEC): Remove use of %(asm_cpu_default).
16919         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete.
16920         * config/m68k/linux.h (TARGET_DEFAULT): Delete.
16921         (CPP_SPEC): Merge definitions.  Do not handle __HAVE_68881__ here.
16922         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
16923         __HAVE_FPU__ if TARGET_HARD_FLOAT.
16924         (TARGET_DEFAULT): Delete.
16925         (EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec,
16926         cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec.
16927         (CPP_CPU_SPEC): Delete.
16928         (TARGET_VERSION): Merge definitions, using TARGET_68010 to pick
16929         the appropriate string.
16930         (CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete.
16931         (CPP_SPEC): Define to NETBSD_CPP_SPEC.
16932         (ASM_SPEC): Don't use %(asm_default_spec).
16933         * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
16934         TARGET_DEFAULT and add MASK_68881.
16935         * config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments.
16936
16937 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
16938
16939         * config.gcc (m68010-*-netbsdelf*): Add MASK_68010.
16940         (m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add
16941         MASK_68010 alongside MASK_68020.
16942         * doc/invoke.texi: Document -m68010.
16943         * config/m68k/m68k.opt (m68010): New.
16944         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010
16945         if TUNE_68010.
16946         (TUNE_68010): New macro.
16947         * config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010)
16948         (M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040)
16949         (M68K_CPU_m68332): Add MASK_68010.
16950         * config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to
16951         fallback definition.
16952         * config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant
16953         defines.
16954         * config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010.
16955         (m68k_handle_option): Handle OPT_m68010.  Add MASK_68010
16956         to all entries that use MASK_68020.
16957         (output_move_simode_const, output_move_himode, output_move_qimode)
16958         (output_move_stricthi, output_move_strictqi): Use TARGET_68010
16959         instead of TARGET_68020 to select clr behavior.  Remove comment
16960         about there being no TARGET_68010.
16961         * config/m68k/m68k.md: Likewise throughout.
16962
16963 2007-01-12  Julian Brown  <julian@codesourcery.com>
16964
16965         * config/m68k/m68k.h (TARGET_ISAB): New macro.
16966         * config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4.
16967         * config/m68k/m68k.md: Likewise.
16968
16969 2007-01-12  Julian Brown  <julian@codesourcery.com>
16970
16971         * config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use
16972         TARGET_COLDFIRE_FPU instead of TARGET_CFV4E.
16973
16974 2007-01-12  Julian Brown  <julian@codesourcery.com>
16975
16976         * config/m68k/m68k.h (TUNE_68040_60): New macro.
16977         * config/m68k/m68k.c (standard_68881_constant_p): Use it.
16978         * config/m68k/m68k.md: Likewise.
16979
16980 2007-01-12  Julian Brown  <julian@codesourcery.com>
16981             Richard Sandiford  <richard@codesourcery.com>
16982
16983         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030
16984         instead of TARGET_68030, TUNE_68040 instead of TARGET_68040,
16985         TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of
16986         TARGET_CPU32.
16987         (TARGET_CPU32): Rename to...
16988         (TUNE_CPU32): ...this.
16989         (TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060)
16990         (TUNE_CFV2): New macros.
16991         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify;
16992         remove conditions that are implied by TARGET_68020.
16993         * config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040
16994         instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32.
16995         (m68k_output_function_epilogue): Likewise.
16996         (m68k_rtx_costs): Likewise.  Use TUNE_68060 instead of TARGET_68060
16997         and TUNE_CFV2 instead of TARGET_5200.  Use TUNE_68000_10 instead of
16998         "!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and
16999         non-68000 timings.  Refactor multiplication and division costs.
17000         (output_addsi3): Use TUNE_68040 instead of TARGET_68040 and
17001         TUNE_CPU32 instead of TARGET_CPU32.
17002         (standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040
17003         and TUNE_68060 instead of TARGET_68060.
17004         * config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040,
17005         TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of
17006         TARGET_CPU32.
17007         (movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020
17008         && !TARGET_COLDFIRE" to choose between moveq and clr.
17009         Likewise in the unnamed movsf pattern.
17010         (ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than
17011         "!TARGET_68020 && !TARGET_COLDFIRE".  Likewise the unnamed
17012         ashiftrt pattern.
17013
17014 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
17015
17016         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount
17017         of tabbing before backslashes.
17018
17019 2007-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17020
17021         * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
17022         * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
17023         (ASM_OUTPUT_INTERNAL_LABEL): Define.
17024
17025 2007-01-11  Zdenek Dvorak <dvorakz@suse.cz>
17026
17027         * tree-ssa-loop-ivopts.c (extract_cond_operands): Split from
17028         find_interesting_uses_cond.
17029         (find_interesting_uses_cond): Use extract_cond_operands.
17030         (rewrite_use_compare): Use extract_cond_operands and
17031         force_gimple_operand_bsi.  Do not call update_stmt.
17032         (determine_use_iv_cost_condition): Use extract_cond_operands.
17033         Return cheaper of using original bound and changing the exit bound.
17034
17035 2007-01-11  Zdenek Dvorak <dvorakz@suse.cz>
17036
17037         PR tree-optimization/29516
17038         * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
17039         most_expensive_mult_to_index, addr_to_parts,
17040         create_mem_ref, maybe_fold_tmr): Make the type of
17041         fields of TARGET_MEM_REF sizetype.
17042         (move_fixed_address_to_symbol, move_pointer_to_base):
17043         New functions.
17044         * tree.def (TARGET_MEM_REF): Add comment on types of
17045         the operands.
17046
17047 2007-01-11  Joseph Myers  <joseph@codesourcery.com>
17048
17049         * c-common.c (vector_types_convertible_p): Treat opaque types as
17050         always convertible if they have the same size, but not otherwise.
17051
17052 2007-01-11  Steven Bosscher  <steven@gcc.gnu.org>
17053
17054         * ifcvt.c (struct noce_if_info): Add comments to the fields.
17055         Remove the b_unconditional field.
17056         (noce_try_sign_mask): Do not look at b_unconditional.
17057         (noce_process_if_block): Do not use merge_if_blocks.  Update
17058         the CFG here.  Do not set b_unconditional.
17059         (cond_move_process_if_block): Likewise.
17060         (find_cond_trap): Likewise.
17061         (check_cond_move_block): Require simple jump insns at the end
17062         of the basic block.
17063
17064 2007-01-11  Jan Hubicka  <jh@suse.cz>
17065
17066         PR tree-optimization/1046
17067         * tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE
17068         when alias info is not ready.
17069         (pass_tail_recursion): Do not require aliasing.
17070         * tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise.
17071         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise.
17072         * tree-ssa-copy.c (pass_copy_prop): Likewise.
17073         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
17074         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise.
17075         * passes.c (init_optimization_passes): Execute rename_ssa_copies,
17076         ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion
17077         before inlining.
17078         * tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand):
17079         When aliasing is not build, mark statement as volatile.
17080
17081 2007-01-11  Tom Tromey  <tromey@redhat.com>
17082
17083         PR preprocessor/15185, PR preprocessor/20989:
17084         * doc/cppopts.texi <-MT>: Update description of algorithm for
17085         computing default target.
17086         <-M, -MD>: Reword "basename" text.
17087
17088 2007-01-11  Roger Sayle  <roger@eyesopen.com>
17089
17090         * builtins.c (expand_builtin_pow, expand_builtin_powi,
17091         fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc,
17092         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
17093         fold_builtin_int_int_roundingfn, fold_builtin_bitop,
17094         fold_builtin_bswap, real_constp, fold_builtin_pow,
17095         fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign,
17096         do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace
17097         uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
17098         * convert.c (convert_to_pointer): Likewise.
17099         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
17100         * fold-const.c (force_fit_type, fold_negate_expr, int_const_binop,
17101         const_binop, fold_convert_const_int_from_int,
17102         fold_convert_const_int_from_real,
17103         fold_convert_const_real_from_real, sign_bit_p,
17104         optimize_minmax_comparison, extract_muldiv_1, fold_div_compare,
17105         fold_sign_changed_comparison, fold_unary, fold_comparison,
17106         fold_binary, multiple_of_p, tree_Expr_non_zero_p,
17107         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
17108         * print-tree.c (print_node_brief, print_node): Likewise.
17109         * stor-layout.c (place_field, layout_type): Likewise.
17110         * tree-chrec.c (keep_cast): Likewise.
17111         * tree.c (build_vector, build_real, build_real_from_int_cst,
17112         build_complex): Likewise.
17113
17114 2007-01-11  Roger Sayle  <roger@eyesopen.com>
17115
17116         * tree.h (TREE_CONSTANT_OVERFLOW): Obsolete.  For the time being,
17117         treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW.
17118
17119 2007-01-11  Paolo Bonzini  <bonzini@gnu.org>
17120
17121         * configure.ac (strict1_warn): Rename to strict_warn.
17122         (WERROR, --enable-werror, symlink hacks, stage1_cflags,
17123         cc_set_by_configure, quoted_cc_set_by_configure,
17124         stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
17125         all_boot_languages, all_stagestuff): Remove.
17126         (target_list): Remove bootstrap targets.
17127         * Makefile.in (quickstrap): Unconditionally make a synonym of all.
17128         (BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
17129         REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
17130         SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
17131         VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
17132         STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
17133         stage1_copy, stage2_build, stage2_copy, stageprofile_build,
17134         stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
17135         stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
17136         bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
17137         bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
17138         unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
17139         restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
17140         cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
17141         *compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
17142         stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
17143         stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
17144         risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
17145         (ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
17146         (STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
17147         (mostlyclean): Adjust.
17148         (clean, distclean): Don't mention bootstrap stuff.
17149         * configure: Regenerate.
17150         * ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
17151         java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
17152         treelang/config-lang.in (stagestuff): Remove.
17153         * doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
17154         stageprofile, stagefeedback, stagestuff): Remove mention.
17155
17156 2007-01-11  Nick Clifton  <nickc@redhat.com>
17157
17158         * config/mcore/predicates.md (mcore_general_movesrc_operand):
17159         Accept CONSTs.
17160         (mcore_general_movdst_operand): Do not accept CONST_INTs.
17161         (mcore_arith_K_S_operand): Run the test for the S constraint not
17162         the test for the M constraint.
17163         (mcore_addsub_operand): Do not accept integer values that are
17164         larger than 32 bits.
17165         * config/mcore/mcore.md: Remove unused constraints from split.
17166         (andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL.
17167         (addsi3): Likewise.
17168         (allocate_stack): Likewise.
17169         * config/mcore/mcore.c (mcore_print_operand): Restrict output of P
17170         operands to 32 bits.
17171         (mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an
17172         INTVAL.
17173         (mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore,
17174         mcore_const_ok_for_inline, mcore_const_trick_uses_not,
17175         try_constant_tricks, mcore_num_ones, mcore_num_zeros,
17176         mcore_output_bclri, mcore_output_andn, output_inline_const,
17177         mcore_output_move, mcore_output_movedouble): Likewise.
17178         (mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N.
17179         (output_inline_const): Likewise.
17180         (output_inline_const): Fix format strings used in sprintf
17181         statements.
17182         * config/mcore/mcore-protos.h: Update prototypes for changed
17183         functions in mcore.c.
17184         * config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to
17185         HOST_WIDE_INT and not int.
17186         (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M,
17187         CONST_OK_FOR_N): Likewise.
17188         (LEGITIMATE_CONSTANT_P): Also check CONSTANT_P.
17189         (GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold
17190         an INTVAL.
17191
17192 2007-01-10  Jan Hubicka  <jh@suse.cz>
17193
17194         * tree-vrp.c (remove_range_assertions): Release defs.
17195         * tree-ssa-loop-ivopts.c (rmeove_statement): Likewise.
17196         * tree-ssa-dom.c (remove_stmt_or_phi): Likewise.
17197
17198 2007-01-10  Paul Brook  <paul@codesourcery.com>
17199
17200         * config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract.
17201         * config/arm/arm.md (mulsi3subsi): New insn.
17202
17203 2007-01-10  Zdenek Dvorak <dvorakz@suse.cz>
17204
17205         * tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ...
17206         (tree_transform_and_unroll_loop): New.
17207         * tree-flow.h (transform_callback, tree_transform_and_unroll_loop):
17208         Declare.
17209
17210 2007-01-10  Robert Kennedy <jimbob@google.com>
17211
17212         * fold-const.c (fold_comparison): Fold comparisons like (x *
17213         1000 < 0) to (x < 0).
17214
17215 2007-01-10  Ian Lance Taylor  <iant@google.com>
17216
17217         * tree-pretty-print.c (dump_generic_node): Print parentheses when
17218         operands have the same priority.
17219
17220 2007-01-10  Tom Tromey  <tromey@redhat.com>
17221
17222         * fold-const.c (fold_truthop): Don't check can_use_bit_fields_p.
17223         (fold_binary): Likewise.
17224         * langhooks.c (lhd_can_use_bit_fields_p): Removed.
17225         * langhooks-def.h (lhd_can_use_bit_fields_p): Removed.
17226         (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
17227         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P.
17228         * langhooks.h (struct lang_hooks): Removed field
17229         'can_use_bit_fields_p'.
17230
17231 2007-01-10  Ralf Corsépius <ralf.corsepius@rtems.org>
17232
17233         * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
17234
17235 2007-01-10  Razya Ladelsky  <razya@il.ibm.com>
17236
17237         * function.c (get_last_funcdef_no): New function.
17238         * function.h (get_last_funcdef_no): Declare.
17239         * tree-inline.c (initialize_cfun): Add initialization.
17240         (tree_function_versioning): Cleanup.
17241
17242 2007-01-10  Jan Hubicka  <jh@suse.cz>
17243
17244         * tree-inline.c (setup_one_parameter): Do not propagate into abnormal
17245         PHIs.
17246
17247 2007-01-10  Sa Liu  <saliu@de.ibm.com>
17248             Ben Elliston  <bje@au.ibm.com>
17249
17250         * spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode
17251         for SAVE_NONLOCAL and Pmode for any other save level.
17252         * spu-protos.h (spu_restore_stack_block): Declare.
17253         * spu.md (save_stack_block): Remove.
17254         (restore_stack_block): Call spu_restore_stack_block.
17255         * spu.c (spu_restore_stack_block): New function.
17256         (spu_expand_epilogue): Remove old comment.
17257
17258 2007-01-09  Zdenek Dvorak <dvorakz@suse.cz>
17259
17260         PR tree-optimization/30322
17261         * tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed.
17262         (cand_value_at): Return the value as aff_tree.
17263         (may_eliminate_iv): Convert the bound from aff_tree to tree.
17264         * tree-affine.c (aff_combination_add_cst, aff_combination_add_product,
17265         aff_combination_mult): New functions.
17266         (aff_combination_add): Use aff_combination_add_cst.
17267         (aff_combination_convert): Allow conversions to a wider type.
17268         (tree_to_aff_combination): Handle BIT_NOT_EXPR.
17269         * tree-affine.h (aff_combination_mult): Declare.
17270
17271 2007-01-09  Carlos O'Donell  <carlos@codesourcery.com>
17272
17273         * doc/tm.texi: Update documentation to reflect reality of exec
17274         and start file search behaviours. Update copyright year.
17275         * doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find
17276         header file directories.
17277
17278 2007-01-09  Uros Bizjak  <ubizjak@gmail.com>
17279
17280         * config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
17281         (*cosxf2): Rename to cosxf2_i387.
17282         (*sindf2, *sinsf2): Extend operand 1 to XFmode.  Macroize patterns
17283         using X87MODEF12 mode macro. Rename patterns to
17284         *sin_extend<mode>xf2_i387.  Use SSE_FLOAT_MODE_P to disable patterns
17285         for SSE math.
17286         (*cosdf2, *cossf2): Ditto.
17287         (sincosdf3, sincossf3): Ditto.  Rewrite corresponding splitters
17288         to match extended input operands.
17289         (sincos<mode>3): New expander.
17290         (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove
17291         insn patterns and corresponding splitters.
17292
17293 2007-01-09  Kaz Kojima  <kkojima@gcc.gnu.org>
17294
17295         * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
17296         (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.
17297
17298 2007-01-09  Nicolas Pitre  <nico@cam.org>
17299
17300         PR target/30173
17301         * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
17302
17303 2007-01-08  Geoffrey Keating  <geoffk@apple.com>
17304
17305         * target.h (struct gcc_target): New field library_rtti_comdat.
17306         * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
17307         (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
17308         * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
17309         * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
17310
17311 2007-01-08  Geoffrey Keating  <geoffk@apple.com>
17312
17313         * doc/invoke.texi (Optimize Options): Correct description of -O0.
17314
17315 2007-01-08  Richard Guenther  <rguenther@suse.de>
17316
17317         * tree.h (force_fit_type_double): Export.
17318         (force_fit_type): Remove.
17319         * fold-const.c (force_fit_type_double): New function.
17320         (force_fit_type): Remove.
17321         (int_const_binop): Use it.
17322         (fold_convert_const_int_from_int): Likewise.
17323         (fold_convert_const_int_from_real): Likewise.
17324         (fold_div_compare): Likewise.
17325         (fold_sign_changed_comparison): Likewise.
17326         (fold_unary): Likewise.
17327         (fold_negate_const): Likewise.
17328         (fold_abs_const): Likewise.
17329         (fold_not_const): Likewise.
17330         * c-common.c (shorten_compare): Use force_fit_type_double.
17331         * convert.c (convert_to_pointer): Likewise.
17332
17333 2007-01-08  Richard Guenther  <rguenther@suse.de>
17334
17335         * tree.h (build_int_cst_wide_type): Export.
17336         * tree.c (build_int_cst_wide_type): New function.
17337         (build_int_cst_wide): Fix comment.
17338         * builtins.c (fold_builtin_object_size): Use build_int_cst
17339         to build -1 or 0 of the correct type.  Use fit_double_type
17340         to check for overflow.
17341         * fold-const.c (optimize_bit_field_compare): Use build_int_cst_type
17342         to build the mask.
17343         (decode_field_reference): Likewise.
17344         (all_ones_mask_p): Likewise.
17345         (native_interpret_int): Use build_int_cst_wide_type.
17346         (fold_binary): Use build_int_cst_type to build an all-ones
17347         value.
17348         * stor-layout.c (set_sizetype): Use build_int_cst_wide_type.
17349
17350 2007-01-08  Daniel Jacobowitz  <dan@codesourcery.com>
17351
17352         * config/pa/t-pa64 (libgcc_stub.a): Use $(T).
17353
17354 2007-01-09  Ben Elliston  <bje@au.ibm.com>
17355
17356         * genautomata.c (STATS_OPTION): New option.
17357         (stats_flag): New flag.
17358         (gen_automata_option): Handle it.
17359         (initiate_automaton_gen): Ditto.
17360         (write_automata): Output statistics only if stats_flag is
17361         set. Likewise, output time statistics only if time_flag is set.
17362         * doc/md.texi (Processor pipeline description): Document new flag.
17363
17364 2007-01-08  Richard Guenther  <rguenther@suse.de>
17365
17366         * builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
17367         * tree.c (build_int_cst_type): Likewise.
17368         (size_in_bytes): Don't call force_fit_type on the result.
17369         (int_fits_type_p): Use fit_double_type.
17370         * fold-const.c (fit_double_type): New function.
17371         (force_fit_type): Use it.
17372         * tree.h (fit_double_type): Export.
17373
17374 2007-01-08  Jan Hubicka  <jh@suse.cz>
17375
17376         * tree-vectorizer.c (gate_increase_alignment): Fix return type.
17377         * ipa.c (function_and_variable_visibility): Fix return type.
17378
17379 2007-01-08  Richard Guenther  <rguenther@suse.de>
17380
17381         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
17382         of offset to build the index.
17383         * tree-pretty-print.c (dump_generic_node): Don't build negated
17384         const just for printing.
17385         * c-pretty-print.c (pp_c_integer_constant): Likewise.
17386         * builtins.c (fold_builtin_int_roundingfn): Check if result
17387         fits the type by using force_fit_type and comparing the result.
17388         * predict.c (predict_loops): Use compare_tree_int for comparison.
17389         * tree.c (build_int_cst): Fall back to integer_type_node for
17390         NULL_TREE type.
17391         (build_int_cst_wide): Assert type is non-null.
17392
17393 2007-01-08  Roberto Costa  <roberto.costa@st.com>
17394
17395         * tree-vrp.c (extract_range_from_cond_expr): New.
17396         (extract_range_from_expr): Handle COND_EXPR nodes used as expressions.
17397         * tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used
17398         as expressions.
17399         (fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs.
17400         * tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond,
17401         tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes
17402         used as expressions.
17403         * tree-object-size.c (cond_expr_object_size): New.
17404         (collect_object_sizes_for): Handle COND_EXPR nodes used as expressions.
17405
17406 2007-01-08  Jan Hubicka  <jh@suse.cz>
17407
17408         * tree-ssa-forwprop.c (forward_propagate_into_cond,
17409         tree_ssa_forward_propagate_single_use_va): Release defs of propagated
17410         statement.
17411
17412 2007-01-08  Richard Guenther  <rguenther@suse.de>
17413
17414         PR tree-optimization/23603
17415         * tree-vrp.c (set_value_range_to_truthvalue): New function.
17416         (extract_range_from_binary): Fall back to truthvalue instead of
17417         varying for TRUTH_*_EXPR.
17418         (extract_range_from_comparison): Fall back to truthvalue instead of
17419         varying.
17420         (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF
17421         if all visited PHI values were constant.
17422
17423 2007-01-08  Jan Hubicka  <jh@suse.cz>
17424
17425         * cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
17426         (cgraph_analyze_function): break out from ...
17427         (cgraph_finalize_compilation_unit): ... here.
17428         (cgraph_expand_function): Remove forgoten commented out line.
17429         (cgraph_optimize): Analyze functions.
17430
17431 2007-01-08  Jan Hubicka  <jh@suse.cz>
17432
17433         * tree-pas.h (TODO_remove_function): New flag.
17434         (TODO_update*): Renumber.
17435         (pass_ipa_increase_alignment,
17436         pass_ipa_function_and_variable_visibility): New passes.
17437         * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c
17438         (cgraph_function_and_variable_visibility): Move to ipa.c
17439         (cgraph_optimize): Don't call cgraph_function_and_variable_visibility,
17440         cgraph_increase_alignment.
17441         * ipa-inline.c (cgraph_decide_inlining): Don't push timevar.
17442         (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before
17443         calling tree-inline.
17444         (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes.
17445         (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions
17446         * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c
17447         (gate_increase_alignment): New function.
17448         (pass_ipa_increase_alignment): New pass.
17449         * ipa.c: Inline tree-pass.h and timevar.h
17450         (function_and_variable_visibility): Move here from cgraphunit.c
17451         * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions.
17452         * passes.c (init_optimization_passes): Add the two new passes.
17453         (execute_todo): Handle cgraph_remove_functions.
17454
17455 2007-01-08  Nick Clifton  <nickc@redhat.com>
17456
17457         * config/frv/predicates.md (reg_or_0_operand): Accept
17458         CONST_DOUBLEs.
17459
17460 2007-01-08  Ralf Corsépius <ralf.corsepius@rtems.org>
17461
17462         * config/bfin/rtems.h, config/bfin/t-rtems: New.
17463         * config.gcc: Add bfin*-rtems*.
17464
17465 2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>
17466
17467         * c.opt: Add -flax-vector-conversions.
17468         * c-typeck.c (convert_for_assignment): Pass flag to
17469         vector_types_convertible_p to allow emission of note.
17470         (digest_init): Likewise.
17471         * c-opts.c: Handle -flax-vector-conversions.
17472         * c-common.c (flag_lax_vector_conversions): New.
17473         (vector_types_convertible_p): Unless -flax-vector conversions
17474         has been passed, disallow conversions between vectors with
17475         differing numbers of subparts and/or element types.  If such
17476         a conversion is disallowed, possibly emit a note on the first
17477         occasion only to inform the user of -flax-vector-conversions.
17478         The new last argument specifies this.
17479         * c-common.h (flag_lax_vector_conversions): New.
17480         (vector_types_convertible_p): Add extra argument.
17481         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
17482         char_type_node for V*QI type vectors.
17483         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
17484         Update to satisfy new typechecking rules.
17485         * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
17486         C and C++ variants.
17487         * doc/invoke.texi (C Dialect Options): Document
17488         -flax-vector-conversions.
17489
17490 2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>
17491
17492         PR tree-optimization/29877
17493         * tree-ssa-ter.c (is_replaceable_p): Deem assignments with
17494         a register variable on the RHS to not be replaceable.
17495
17496 2007-01-08  Chen Liqin  <liqin@sunnorth.com.cn>
17497         * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
17498         * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
17499         const_simm15, const_pow2, const_npow2): Added.
17500         * config/score/misc.md (insv, extv, extzv, movmemsi,
17501         move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
17502         * config/score/score.c (score_address_cost, score_select_cc_mode):
17503         Added.
17504         Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
17505         Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
17506         Update score_print_operand.
17507         * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
17508         Adjust register allocate order and update some macro define.
17509         * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
17510         mdx_block_move_straight, mdx_block_move_loop_head,
17511         mdx_block_move_loop_body, mdx_block_move_loop_foot, mdx_block_move_loop,
17512         mdx_block_move): Added.
17513         (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
17514         mdp_limm): Updated and fix some bug and typo.
17515         * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
17516         (movsf, movdf, doloop_end): Added.
17517
17518 2007-01-08  Kazu Hirata  <kazu@codesourcery.com>
17519
17520         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
17521         config/arm/thumb2.md: Fix comment typos.
17522         * doc/extend.texi: Fix a typo.
17523
17524 2007-01-07  Eric Christopher  <echristo@apple.com>
17525
17526         * configure.ac: Check for __stack_chk_fail for darwin.
17527         * configure: Regenerate.
17528
17529 2007-01-07  Richard Guenther  <rguenther@suse.de>
17530
17531         * tree-vrp.c (extract_range_from_assert): CSE calls to
17532         compare_values where possible.
17533         (extract_range_from_unary_expr): Likewise.
17534
17535 2007-01-07  Anatoly Sokolov <aesok@post.ru>
17536
17537         * config/avr/avr-protos.h (call_insn_operand): Delete prototype.
17538         * config/avr/avr.c (call_insn_operand): Delete function.
17539         * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
17540         instead of register number. Use predicates.
17541         * config/avr/predicates.md (const0_operand, reg_or_0_operand,
17542         call_insn_operand): Add.
17543
17544 2007-01-06  Jan Hubicka  <jh@suse.cz>
17545
17546         * tree-pass.h (pass_build_cgraph_edges): Declare.
17547         * cgraphunit.c (record_refernece): Move to cgraphbuild.c
17548         (visited_nodes): Remove.
17549         (cgraph_create_edges): Move to cgraphbuild.c; rename to
17550         build_cgrpah_edges; make visited_nodes local.
17551         (cgraph_process_new_functions): DO not call initialize_inline_failed.
17552         (record_references_in_initializer): Move to cgraphbuild.c
17553         (initialize_inline_failed, rebuild_cgraph_edges,
17554         pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
17555         (verify_cgraph_node): Make visited_nodes local.
17556         (cgraph_analyze_function): Do not call cgraph_create_edges and
17557         initialize_inline_failed.
17558         (cgraph_expand_function): Do not call cgraph_lower_function;
17559         assert that function is already lowered.
17560         * Makefile.in (cgraphbuild.o): New.
17561         * passes.c (init_optimization_passes): Add pass_build_cgraph_edges
17562         at the end of lowering passes.
17563
17564 2007-01-06  Steven Bosscher  <steven@gcc.gnu.org>
17565
17566         * ifcvt.c (cond_move_convert_if_block): New function, code
17567         factored out from...
17568         (cond_move_process_if_block): ...here.  Call the new function
17569         on the THEN and ELSE blocks.
17570         (merge_if_block): Do not copy global_live_at_end, merge_blocks
17571         already takes care of this.
17572
17573 2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17574
17575         PR c/19978
17576         * tree.h (TREE_OVERFLOW_P): New.
17577         * c-typeck.c (parser_build_unary_op): Warn only if result
17578         overflowed and operands did not.
17579         (parser_build_binary_op): Likewise.
17580         (convert_for_assignment): Remove redundant overflow_warning.
17581         * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.
17582
17583 2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17584
17585         * c-typeck.c (store_init_value): Split over two lines to follow
17586         the GNU coding style.
17587
17588 2007-01-05  Benjamin Kosnik  <bkoz@redhat.com>
17589
17590         * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
17591         __GXX_EXPERIMENTAL_CXX0X__.
17592         * doc/cpp.texi: Same.
17593
17594 2007-01-05  Richard Guenther  <rguenther@suse.de>
17595
17596         PR middle-end/27826
17597         * tree.c (get_narrower): Do not construct COMPONENT_REFs
17598         with mismatched types.  Instead explicitly build a
17599         conversion NOP_EXPR.
17600
17601 2007-01-05  Ian Lance Taylor  <iant@google.com>
17602
17603         * c-common.c (decl_with_nonnull_addr_p): New function.
17604         (c_common_truthvalue_conversion): Call it.
17605         * c-typeck.c (build_binary_op): Likewise.
17606         * c-common.h (decl_with_nonnull_addr_p): Declare.
17607
17608 2007-01-05  Jakub Jelinek  <jakub@redhat.com>
17609
17610         PR c/30360
17611         * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
17612         denom against 0.0.
17613
17614 2007-01-05  Joel Brobecker  <brobecker@adacore.com>
17615
17616         * doc/install.texi (Final install): Document the fact that
17617         the GNAT runtime should not be stripped.
17618
17619 2007-01-04  Jan Hubicka  <jh@suse.cz>
17620
17621         * tree-inline.c (fold_marked_statements): Update operand caches
17622         and EH after folding
17623
17624 2007-01-04  Ian Lance Taylor  <iant@google.com>
17625
17626         * c-common.c (check_function_nonnull): Whitespace fix.
17627
17628 2007-01-04  Jan Hubicka  <jh@suse.cz>
17629
17630         * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
17631         comitted older version of patch.
17632         (pass_fixup_cfg): Add TODOs to verify flow and statements, dump
17633         function, celanup cfg and collect garbage.
17634
17635 2007-01-04  Mike Stump  <mrs@apple.com>
17636
17637         * Makefile.in (mostlyclean): Don't remove libgcc anymore.
17638         (clean): Likewise.
17639
17640 2007-01-04  Eric Christopher  <echristo@apple.com>
17641
17642         * libgcc2.c (__bswapsi2): Use SItype.
17643         (__bswapdi2): Use DItype.
17644         * libgcc2.h: Update for above.
17645
17646 2007-01-04  Paul Brook  <paul@codesourcery.com>
17647
17648         * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
17649         mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0,
17650         mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3,
17651         umulsidi3, umulsidi3adddi, smulsi3_highpart,
17652         umulsi3_highpart): Make conditional on !arm_arch6.
17653         (arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6,
17654         mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6,
17655         mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6,
17656         umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6,
17657         umulsi3_highpart_v6): New insns.
17658
17659 2007-01-04  Roger Sayle  <roger@eyesopen.com>
17660
17661         * fold-const.c (fold_convert): When casting an expression to void,
17662         fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
17663         have a type.  Instead of attempting to build a NOP_EXPR, return
17664         these "special" trees directly.
17665
17666 2007-01-04  Joseph Myers  <joseph@codesourcery.com>
17667
17668         * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
17669         MULT inside MINUS as either argument.  Use rs6000_cost->dmul -
17670         rs6000_cost->fp not 0 as adjustment for outer NEG.
17671
17672 2007-01-04  Jan Hubicka  <jh@suse.cz>
17673
17674         * cgraph.c (cgraph_release_function_body): New function.
17675         (cgraph_remove_node): Use it.
17676         * cgraph.h (cgraph_release_function_body): Declare.
17677         * cgraphunit.c (cgraph_expand_function): Use it.
17678         * ipa.c (cgraph_remove_unreahchable_nodes): Use it.
17679         * tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing
17680         is initialized and while compilation of other function is running.
17681         * tree-optimize.c (execute_free_cfg_annotations): Move code to clear
17682         statement CFG annotations from here to ...
17683         * tree-cfg.c (delete_tree_cfg_annotations): ... here.
17684
17685 2007-01-04  Zdenek Dvorak <dvorakz@suse.cz>
17686
17687         * cfgloop.h (enum li_flags): Make the constants powers of two.
17688
17689 2007-01-04  Jan Hubicka  <jh@suse.cz>
17690
17691         * tree-inline.c (copy_bb): Insert new statements to statements_to_fold
17692         set.
17693         (fold_marked_statements): New function.
17694         (optimize_inline_calls, tree_function_versioning): Fold new statements.
17695         * tree-inline.h (copy_body_data): Add statements_to_fold.
17696
17697 2007-01-03  Daniel Jacobowitz  <dan@codesourcery.com>
17698
17699         * config.gcc: Mention libgcc/config.host.
17700         * Makefile.in: Update comments mentioning libgcc.
17701         (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
17702         (all.cross, start.encap, rest.encap, rest.cross): Update
17703         dependencies for libgcc move.
17704         (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
17705         (clean-target, clean-target-libgcc): Delete.
17706         (srcdirify, GCC_EXTRA_PARTS): New macros.
17707         (libgcc-support, libgcc.mvars): New rules.
17708         (distclean): Remove mention of mklibgcc.
17709         (install): Don't reference INSTALL_LIBGCC.
17710         (install-common): Don't reference EXTRA_PARTS.
17711         (install-libgcc, install-multilib): Delete rules.
17712         * mklibgcc.in: Delete file.
17713         * doc/configfiles.texi: Don't mention mklibgcc.
17714
17715         * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
17716         * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
17717         * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
17718         * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
17719         (mklibgcc, ldblspecs): Likewise.
17720
17721         * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
17722         (posixpre.def): Use $(T).
17723         (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
17724         (SHLIB_SRC, SHLIB_INSTALL): Delete.
17725         (SHLIB_LINK): Make dummy.
17726         * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.
17727
17728         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.
17729
17730         * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
17731         * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
17732         config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
17733         config/rs6000/t-newas, config/sparc/t-elf: Likewise.
17734
17735         * configure.ac (all_outputs): Remove mklibgcc.
17736         * configure: Regenerated.
17737
17738 2007-01-03  Josh Conner  <jconner@apple.com>
17739
17740         PR middle-end/29683
17741         * calls.c (compute_argument_addresses): Set stack and stack_slot
17742         for partial args, too.
17743         (store_one_arg): Use locate.size.constant for the size when
17744         generating a save_area.
17745
17746 2007-01-03  Robert Kennedy <jimbob@google.com>
17747
17748         * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
17749         whose definitions are deleted due to basic block merging.
17750
17751 2007-01-03  Paul Brook  <paul@codesourcery.com>
17752
17753         PR target/16634
17754         * config/arm/arm.c (output_return_instruction): Pop PC in interrupt
17755         functions.
17756         (use_return_insn): Return 0 for Thumb interrupt functions.
17757         (print_multi_reg): Add rfe argument for IRQ returns.
17758         (arm_output_epilogue): Pop interrupt return address directly into PC.
17759         (arm_expand_prologue): Only adjust IRQ return address in Arm mode.
17760
17761 2007-01-03  Paul Brook  <paul@codesourcery.com>
17762
17763         Merge from sourcerygxx-4_1.
17764         * config/arm/thumb2.md: New file.
17765         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
17766         Thumb-2.
17767         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
17768         * config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
17769         (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
17770         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
17771         tables.
17772         (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
17773         * config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
17774         comptibility.
17775         * config/arm/ieee754-sf.S: Ditto.
17776         * config/arm/arm.c (thumb_base_register_rtx_p): Rename...
17777         (thumb1_base_register_rtx_p): ... to this.
17778         (thumb_index_register_rtx_p): Rename...
17779         (thumb1_index_register_rtx_p): ... to this.
17780         (thumb_output_function_prologue): Rename...
17781         (thumb1_output_function_prologue): ... to this.
17782         (thumb_legitimate_address_p): Rename...
17783         (thumb1_legitimate_address_p): ... to this.
17784         (thumb_rtx_costs): Rename...
17785         (thumb1_rtx_costs): ... to this.
17786         (thumb_compute_save_reg_mask): Rename...
17787         (thumb1_compute_save_reg_mask): ... to this.
17788         (thumb_final_prescan_insn): Rename...
17789         (thumb1_final_prescan_insn): ... to this.
17790         (thumb_expand_epilogue): Rename...
17791         (thumb1_expand_epilogue): ... to this.
17792         (arm_unwind_emit_stm): Rename...
17793         (arm_unwind_emit_sequence): ... to this.
17794         (thumb2_legitimate_index_p, thumb2_legitimate_address_p,
17795         thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
17796         thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
17797         arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
17798         thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
17799         thumb2_output_casesi): New functions.
17800         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
17801         (FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
17802         FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
17803         THUMB2_WORK_REGS): Define.
17804         (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
17805         arm_condexec_mask, arm_condexec_masklen)): New variables.
17806         (all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
17807         (arm_override_options): Check new CPU capabilities.
17808         Set new architecture flag variables.
17809         (arm_isr_value): Handle v7m interrupt functions.
17810         (user_return_insn): Return 0 for v7m interrupt functions.  Handle
17811         Thumb-2.
17812         (const_ok_for_arm): Handle Thumb-2 constants.
17813         (arm_gen_constant): Ditto.  Use movw when available.
17814         (arm_function_ok_for_sibcall): Return false for v7m interrupt
17815         functions.
17816         (legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
17817         (thumb_find_work_register, arm_load_pic_register,
17818         legitimize_tls_address, arm_address_cost, load_multiple_sequence,
17819         emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
17820         print_multi_reg, output_mov_long_double_fpa_from_arm,
17821         output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
17822         output_mov_double_fpa_from_arm, output_move_double,
17823         arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
17824         output_return_instruction, arm_output_function_prologue,
17825         arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
17826         arm_output_mi_thunk, thumb_set_return_address): Ditto.
17827         (arm_expand_prologue): Handle Thumb-2.  Use arm_save_coproc_regs.
17828         (arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
17829         (arithmetic_instr, shift_op): Use arm_shift_nmem.
17830         (arm_print_operand): Use arm_print_condition.  Handle '(', ')', '.',
17831         '!' and 'L'.
17832         (arm_final_prescan_insn): Use extract_constrain_insn_cached.
17833         (thumb_expand_prologue): Use thumb_set_frame_pointer.
17834         (arm_file_start): Output directive for unified syntax.
17835         (arm_unwind_emit_set): Handle stack alignment instruction.
17836         * config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
17837         Add v6t2, v7, v7a, v7r and v7m.
17838         (RETLDM): Add Thumb-2 code.
17839         (do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
17840         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
17841         (TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
17842         TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
17843         THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
17844         ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
17845         THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
17846         CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
17847         ADJUST_INSN_LENGTH): Define.
17848         (TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
17849         STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
17850         BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
17851         PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
17852         SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
17853         TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
17854         HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
17855         HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
17856         REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
17857         REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
17858         LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
17859         GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
17860         ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
17861         FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
17862         PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
17863         (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
17864         * config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
17865         cortex-m3.
17866         * config/arm/arm-tune.md: Regenerate.
17867         * config/arm/arm-protos.h: Update prototypes.
17868         * config/arm/vfp.md: Enable patterns for Thumb-2.
17869         (arm_movsi_vfp): Add movw alternative.  Use output_move_vfp.
17870         (arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
17871         (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
17872         thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
17873         * config/arm/libunwind.S: Add Thumb-2 code.
17874         * config/arm/constraints.md: Update include Thumb-2.
17875         * config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
17876         * config/arm/ieee754-df.S: Ditto.
17877         * config/arm/bpabi.S: Ditto.
17878         * config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
17879         * config/arm/predicates.md (low_register_operand,
17880         low_reg_or_int_operand, thumb_16bit_operator): New.
17881         (thumb_cmp_operand, thumb_cmpneg_operand): Rename...
17882         (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
17883         * config/arm/t-arm-elf: Add armv7 multilib.
17884         * config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
17885         Include thumb2.md.
17886         (UNSPEC_STACK_ALIGN, ce_count): New.
17887         (arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
17888         arm_zero_extendsidi2, arm_zero_extendqidi2): New
17889         insns/expanders.
17890         * config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
17891         (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
17892         thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
17893         * config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
17894         (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
17895         thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
17896         insns.
17897         * doc/extend.texi: Document ARMv7-M interrupt functions.
17898         * doc/invoke.texi: Document Thumb-2 new cores+architectures.
17899
17900 2007-01-03  Jakub Jelinek  <jakub@redhat.com>
17901
17902         * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
17903         (struct _Unwind_Context): Rename args_size to flags, remove
17904         signal_frame field, add a new args_size field and version field.
17905         (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
17906         _Unwind_IsExtendedContext): New inline functions.
17907         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
17908         Assume by_value array is only present if _Unwind_IsExtendedContext.
17909         (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
17910         _Unwind_IsSignalFrame.
17911         (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
17912         (uw_update_context_1): Use _Unwind_SetSignalFrame.
17913         (uw_init_context_1): Initialize context->flags to
17914         EXTENDED_CONTEXT_BIT.
17915         * config/rs6000/linux-unwind.h (frob_update_context): Use
17916         _Unwind_SetSignalFrame.
17917
17918 2007-01-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17919
17920         PR middle-end/30353
17921         * gimplify.c (gimplify_modify_expr_complex_part): Move below
17922         tree_to_gimple_tuple.  Call tree_to_gimple_tuple when we need
17923         the value.
17924
17925 2007-01-03  Kazu Hirata  <kazu@codesourcery.com>
17926
17927         * config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P,
17928         REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER,
17929         RET, AT_SP): Remove.
17930         * config/i386/i386.md (*sse_prologue_save_insn): Use return
17931         instead of RET.
17932
17933         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
17934         * cfgbuild.c (find_basic_blocks): Likewise.
17935         * cfgrtl.c (rtl_create_basic_block): Likewise.
17936         * function.c (temp_slots_at_level): Likewise.
17937         * reg-stack.c (stack_regs_mentioned): Likewise.
17938         * regclass.c (allocate_reg_info): Likewise.
17939         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
17940         set_bb_for_stmt, move_block_to_fn): Likewise.
17941         * tree-complex.c (tree_lower_complex): Likewise.
17942         * vec.h (VEC_safe_grow_cleared): New.
17943
17944         * cgraphunit.c, tree-ssa-alias.c: Fix comment typos.
17945
17946 2007-01-03  Zdenek Dvorak <dvorakz@suse.cz>
17947
17948         * loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
17949         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities
17950         to loop_version.
17951         * cfgloopmanip.c (scale_loop_frequencies): Export.
17952         (loopify): Scale the frequencies by prescribed coefficients.
17953         (set_zero_probability): New function.
17954         (duplicate_loop_to_header_edge): Improve updating of frequencies.
17955         (lv_adjust_loop_entry_edge, loop_version): Set probabilities
17956         and frequencies according to arguments.
17957         * tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities
17958         correctly.
17959         * cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up.
17960         * modulo-sched.c (sms_schedule): Set probabilities for entering
17961         versioned loop correctly.
17962         * tree-vect-transform.c (vect_transform_loop): Ditto.
17963         * cfgloop.h (loopify, loop_version): Declaration changed.
17964         (scale_loop_frequencies): Declared.
17965
17966 2007-01-02  Jan Hubicka  <jh@suse.cz>
17967
17968         * cgraph.c: Include tree-flow.h
17969         (cgraph_add_new-function): Handle IPA_SSA mode; execute
17970         early_local_passes.
17971         * cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
17972         * tree-pass.h (pass_all_early_optimizations): Declare.
17973         * cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
17974         early_local_passes.
17975         (cgraph_analyze_function): Do early_local_passes.
17976         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
17977         Do not add referenced vars.
17978         * tree-optimize.c (gate_all_optimizations): Do not execute when not in
17979         SSA form.
17980         (gate_all_early_local_passes): New gate.
17981         (pass_early_local_passes): Use new gate.
17982         (execute_early_local_optimizations): New functions.
17983         (gate_all_early_optimizations): New gate.
17984         (pass_all_early_optimizations): New pass.
17985         (execute_free_datastructures): Free SSA only when initialized.
17986         (gate_init_datastructures): Init only when optimizing.
17987         (tree_lowering_passes): Do early local passes when called late.
17988         * tree-profile.c (do_tree_profiling): Don't profile functions added
17989         late.
17990         (do_early_tree_profiling, pass_early_tree_profile): Kill.
17991         * tree-cfg.c (update_modified_stmts): Do not update when operands are
17992         not active.
17993         * passes.c (init_optimizations_passes): Reorder so we go into SSA
17994         during early_local_passes.
17995         * Makefile.in (cgraph.o): Add dependency on tree-flow.h.
17996
17997
17998 2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>
17999
18000         * Makefile.in: Update copyright year.
18001
18002 2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>
18003
18004         * Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST)
18005         in $(lang_checks) and check-consistency targets.
18006
18007 2007-01-02  Jan Hubicka  <jh@suse.cz>
18008
18009         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
18010         Do not add referenced vars.
18011         * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
18012         are not active.
18013         * passes.c (init_optimization_passes): Put mudflap_2 after
18014         free_datastructures.
18015
18016 2007-01-02  Jan Hubicka  <jh@suse.cz>
18017
18018         * tree-optimize (execute_fixup_cfg): Set after_inlining flag.
18019         Set NOTHROW flag on call statements proved to be nothrow.
18020         Update statement of local calls so new pure/const functions are
18021         updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal
18022         goto receivers.
18023         (tree_rest_of_compilation): Register hooks and initialize bitmap
18024         early. Do not set after_inlining flag.
18025
18026 2007-01-02  Steve Ellcey  <sje@cup.hp.com>
18027
18028         * sbitmap.c (HOST_BITS_PER_LONG_LONG):  Change to
18029         HOST_BITS_PER_LONGLONG
18030
18031 2007-01-02  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18032
18033         PR c/19977
18034         * c-typeck.c (store_init_value): Don't emit pedantic overflow
18035         warning for non-static initializers.
18036
18037 2007-01-02  Steven Bosscher  <steven@gcc.gnu.org>
18038
18039         * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
18040         m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
18041         rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
18042         Always use set_unique_reg_note to add REG_EQUAL notes.
18043
18044 2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
18045
18046         Revert:
18047         2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
18048
18049         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
18050         * cfgbuild.c (find_basic_blocks): Likewise.
18051         * cfgrtl.c (rtl_create_basic_block): Likewise.
18052         * function.c (temp_slots_at_level): Likewise.
18053         * reg-stack.c (stack_regs_mentioned): Likewise.
18054         * regclass.c (allocate_reg_info): Likewise.
18055         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
18056         set_bb_for_stmt, move_block_to_fn): Likewise.
18057         * tree-complex.c (tree_lower_complex): Likewise.
18058         * vec.h (VEC_safe_grow_cleared): New.
18059
18060 2007-01-02  Ian Lance Taylor  <iant@google.com>
18061
18062         * c-common.c (c_common_truthvalue_conversion): When warning about
18063         using an assignment as a truth value, set TREE_NO_WARNING.
18064
18065 2007-01-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18066
18067         PR middle-end/7651
18068         * c.opt (Wold-style-declaration): New.
18069         * doc/invoke.texi (C-only Warning Options): New.
18070         (Wold-style-declaration): Document it.
18071         (Wextra): Enabled by -Wextra.
18072         * c-opts.c (c_common_post_options): Enabled by -Wextra.
18073         * c-decl.c (declspecs_add_scspec): Replace -Wextra with
18074         -Wold-style-declaration.
18075
18076 2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
18077
18078         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
18079         * cfgbuild.c (find_basic_blocks): Likewise.
18080         * cfgrtl.c (rtl_create_basic_block): Likewise.
18081         * function.c (temp_slots_at_level): Likewise.
18082         * reg-stack.c (stack_regs_mentioned): Likewise.
18083         * regclass.c (allocate_reg_info): Likewise.
18084         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
18085         set_bb_for_stmt, move_block_to_fn): Likewise.
18086         * tree-complex.c (tree_lower_complex): Likewise.
18087         * vec.h (VEC_safe_grow_cleared): New.
18088
18089 2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
18090
18091         * c-common.c (c_common_nodes_and_builtins): Since variants of
18092         void_type_node get built before it is given a name, we need to
18093         give those variants the name, too.
18094         (complete_array_type): We need to work with the canonical main
18095         type of the array, from which we will build the qualified version.
18096         * params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
18097         * print-tree.c (print_node): Display canonical type information
18098         for each type.
18099         * stor-layout.c (layout_type): When we don't know the
18100         alignment of a type for which we're building an array, we end up
18101         guessing wrong, so make the type require structural equality.
18102         * tree.c (make_node_stat): When we build a new type, it is its
18103         own canonical type.
18104         (build_type_attribute_qual_variant): When building an attribute
18105         variant, its canonical type is the non-attribute variant. However,
18106         if the attributes are target-dependent and they differ, we need to
18107         use structural equality checks for this type.
18108         (build_qualified_type): A qualified type is not equivalent to its
18109         unqualified variant; set the canonical type appropriately.
18110         (build_distinct_type_copy): When building a distinct type from
18111         another type, the new type is its own canonical type.
18112         (build_variant_type_copy): When building a new type variant, we
18113         assume that it is equivalent to the original type.
18114         (build_pointer_type_for_mode): When building a pointer type, also
18115         build a canonical type pointer.
18116         (build_reference_type_for_mode): When building a reference type,
18117         also build a canonical type reference.
18118         (build_index_type): When we can't hash an index type (e.g.,
18119         because its maximum value is negative), the index type requires
18120         structural equality tests.
18121         (build_array_type): Build the canonical form of an array type.
18122         (build_function_type): Function types require structural equality,
18123         because they contain default arguments, attributes, etc.
18124         (build_method_type_directly): Ditto for method types.
18125         (build_offset_type): Build the canonical offset type.
18126         (build_complex_type): Build the canonical vector type.
18127         (make_vector_type): Build the canonical vector type.
18128         * tree.h (TYPE_CANONICAL): New.
18129         (TYPE_STRUCTURAL_EQUALITY_P): New.
18130         (SET_TYPE_STRUCTURAL_EQUALITY): New.
18131         (struct tree_type): Added "canonical" field.
18132         * params.h (VERIFY_CANONICAL_TYPES): New.
18133         * doc/c-tree.texi (TYPE_CANONICAL): Document.
18134         (TYPE_STRUCTURAL_EQUALITY_P): Document.
18135         (SET_TYPE_STRUCTURAL_EQUALITY): Document.
18136         * doc/invoke.texi (verify-canonical-types): Document --param
18137         parameter for verifying canonical types.
18138
18139 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
18140
18141         * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
18142         powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*,
18143         powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae,
18144         powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to
18145         tm_file.
18146         * config/rs6000/e500.h: New.
18147         * config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500,
18148         TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE):
18149         Remove.
18150         * config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE,
18151         TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE,
18152         TARGET_E500_DOUBLE): Remove.
18153         * config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE,
18154         TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove.
18155         * config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define.
18156         * config/rs6000/rs6000.c (rs6000_override_options): Use
18157         CHECK_E500_OPTIONS.
18158
18159 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
18160
18161         * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
18162         TARGET_E500_DOUBLE), not TARGET_E500, for %y.
18163         (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
18164         rs6000_emit_cmove): Don't check TARGET_E500.
18165         * config/rs6000/rs6000.md (bunordered, bordered, sunordered,
18166         sordered): Don't check TARGET_E500.
18167
18168 2007-01-01  Eric Christopher  <echristo@apple.com>
18169
18170         * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use
18171         HARD_REGISTER_NUM_P.
18172
18173 2007-01-01  Roger Sayle  <roger@eyesopen.com>
18174
18175         * fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
18176         "X eq/ne (C1^C2)".  Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
18177         has no side-effects.  Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
18178         eq/ne Y".
18179
18180 2007-01-01  Mike Stump  <mrs@apple.com>
18181
18182         * configure.ac: Remove support for building with Apple's gcc-3.1.
18183
18184 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
18185
18186         PR middle-end/30311
18187         * caller-save.c (add_stored_regs): Only handle SUBREGs if inner
18188         REG is a hard register.  Do not modify REG before calling
18189         subreg_nregs.
18190         * rtlanal.c (subreg_get_info): Don't assert size of XMODE is a
18191         multiple of the size of YMODE for certain lowpart cases.
18192
18193 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
18194
18195         PR middle-end/30253
18196         * gimplify (voidify_wrapper_expr): Update for
18197         GIMPLE_MODIFY_STMT.
18198
18199 2007-01-01  Andreas Schwab  <schwab@suse.de>
18200
18201         PR target/29166
18202         * config/ia64/ia64.c (ia64_compute_frame_size): Account space for
18203         save of BR0 in extra_spill_size instead of spill_size.
18204         (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
18205         area.
18206         (ia64_expand_epilogue): Restore BR0 from its new location.
18207
18208 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
18209
18210         * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
18211         Use a temporary variable if the left hand side is not a gimple
18212         register.
18213
18214 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
18215
18216         * gimplify.c (gimplify_return_expr): Make the temporary variable
18217         for the return expression, a gimple register variable.
18218
18219 2007-01-01  Jan Hubicka  <jh@suse.cz>
18220
18221         * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
18222         INSN_LIST.
18223
18224 2007-01-01  Mike Stump  <mrs@apple.com>
18225
18226         * configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
18227         .literal16.
18228         * config/darwin.c (machopic_select_rtx_section): Use
18229         HAVE_GAS_LITERAL16.
18230         (darwin_mergeable_constant_section): Likewise.
18231         * configure: Regenerate.
18232         * config.in: Regenerate.
18233
18234 2007-01-01  Jan Hubicka  <jh@suse.cz>
18235             Andrew Pinski  <pinskia@gmail.com>
18236
18237         * cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
18238         before starting IPA passes.