OSDN Git Service

2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
2             David Ung  <davidu@mips.com>
3
4         Add support for SmartMIPS ASE.
5
6         * optabs.c (expand_binop_directly): New, broken out from...
7         (expand_binop): Here.  Make it try rotating in the other
8         direction even when the second operand isn't constant.
9         * config/mips/mips.md (*lwxs): New.
10         * config/mips/mips.opt (msmartmips): New.
11         * config/mips/mips.c (mips_lwxs_address_p): New.
12         (mips_rtx_costs): Make it recognize scaled indexed addressing.
13         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
14         __mips_smartmips when compiling for TARGET_SMARTMIPS.
15         (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
16         (ISA_HAS_LWXS): New.
17         (ASM_SPEC): Add -msmartmips/-mno-smartmips.
18         * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
19         * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
20         * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
21         * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
22         * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
23         * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
24
25 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
26
27         * tree-vectorizer.c (new_loop_vec_info): Initialize
28         LOOP_VINFO_COST_MODEL_MIN_ITERS.
29         * tree-vectorizer.h (_loop_vec_info): Added new filed
30         min_profitable_iters.
31         (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
32         (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
33         * tree-vect-analyze.c (vect_analyze_operations): Set
34         LOOP_VINFO_COST_MODEL_MIN_ITERS.
35         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
36         VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
37         Fix calculation of peel_iters_prologue. Move consideration of epilogue
38         and prologue cost to after they are computed.
39         (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
40         TARG_VEC_STMT_COST.
41         (vect_model_simple_cost): Takes additional argument dt. Consider cost
42         of creating vectors from scalars according to dt.
43         (vect_model_store_cost): Likewise.
44         (vectorizable_call): Use dt array instead of scalar dt. Call
45         vect_model_simple_cost with additional argument dt.
46         (vectorizable_assignment): Likewise.
47         (vectorizable_operation): Likewise.
48         (vectorizable_type_demotion): Likewise.
49         (vectorizable_type_promotion): Likewise.
50         (vectorizable_store): Use dt array instead of scalar dt. Call
51         vect_model_store_cost with additional argument dt.
52         (vect_do_peeling_for_loop_bound): Don't call
53         vect_estimate_min_profitable_iters. Instead, lookup
54         LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
55         "may not be profitable".        
56
57 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
58
59         PR testsuite/32014
60         * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
61         (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
62         (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
63         (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns. 
64
65 2007-07-05  Zdenek Dvorak  <dvorakz@suse.cz>
66
67         * config/i386/i386.c (ix86_address_cost): Do not consider more complex
68         addressing modes cheaper.
69
70 2007-07-05  Alexandre Oliva  <aoliva@redhat.com>
71
72         * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
73         (dw_ranges_struct): Rename block_num to num.  Adjust.
74         (dw_ranges_by_label_struct): New.
75         (ranges_by_label, ranges_by_label_allocated,
76         ranges_by_label_in_use): New variables.
77         (add_ranges_num): Factored most of the code out of...
78         (add_ranges): ... this one.  Rewrite in terms of the former.
79         (add_ranges_by_labels): New.
80         (output_ranges): Output by-label ranges.
81         (dwarf2out_finish): Output range for multiple-section
82         compile_unit.  Output standard DW_AT_low_pc in addition to
83         unexpected DW_AT_entry_pc.
84
85 2007-07-04  Daniel Berlin  <dberlin@dberlin.org>
86
87         PR tree-optimization/32604
88         PR tree-optimization/32606
89         
90         * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
91         (compute_antic_safe): Removed.
92         (ANTIC_SAFE_LOADS): Ditto.
93         (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
94         (execute_pre): Don't call compute_antic_safe.
95         (vuse_equiv): New function.
96         (make_values_for_stmt): Use it
97         * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
98         not always true.
99
100 2007-07-04 Anatoly Sokolov <aesok@post.ru>
101
102         PR target/31331
103         * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
104         rather than a decl. 
105         (avr_attribute_table): Make "naked" attribute apply to function types
106         rather than to decls.
107         (avr_handle_fntype_attribute): New function.
108
109 2007-07-04  Joseph Myers  <joseph@codesourcery.com>
110
111         * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
112         after \.
113
114 2007-07-04  David Ung  <davidu@mips.com>
115             Joseph Myers  <joseph@codesourcery.com>
116
117         * config/mips/mips.md (type): Add logical, signext and move.
118         (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
119         *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
120         *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
121         combinations", *zero_extend<SHORT:mode><GPR:mode>2,
122         *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
123         *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
124         *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
125         *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
126         *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
127         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
128         movv2sf_hardfloat_64bit): Use the new types.
129         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
130         *movdf_softfloat, *movdf_mips16): Use "multi".
131         (extendqihi2): Replace with a define_expand.
132         (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
133         Based on extend<SHORT:mode><GPR:mode>2 patterns.
134         * config/mips/74k.md (r74k_int_logical): New reservation and
135         bypasses.
136         (r74k_int_arith): Remove "slt".
137         * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
138         config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
139         config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
140         config/mips/sb1.md, config/mips/sr71k.md: Add new types to
141         reservations for "arith".
142
143 2007-07-04  Richard Guenther  <rguenther@suse.de>
144
145         * tree-ssa.c (useless_type_conversion_p): Add handling for
146         scalar float and vector types.  Only call the types_compatible_p
147         langhook for aggregate types as last resort.  Follow the
148         rules.
149
150 2007-07-04  Richard Guenther  <rguenther@suse.de>
151
152         * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
153         the same as NOP_EXPR.
154
155 2007-07-04  Nick Clifton  <nickc@redhat.com>
156
157         * target.h (struct gcc_target): Add target_help field.
158         * target-def.h (TARGET_HELP): New.
159         (TARGET_INITIALIZER): Use TARGET_HELP.
160         * opts.c (command_handle_option): Invoke target_help function, if
161         defined, when the user has specified --target-help on the command
162         line.
163         * doc/invoke.texi: Mention that --target-help might print
164         additional information.
165         * doc/tm.texi: Document TARGET_HELP hook.
166
167         * arm.c (TARGET_HELP): Override default definition.
168         (arm_target_help): New - display a wrapped list of cores and
169         architectures supported.
170
171 2007-07-04  Rask Ingemann Lambertsen  <rask@sygehus.dk>
172
173         * config/gcc/v850/v850.c (expand_prologue): Make sure
174         GEN_INT() argument is sign extended rather than zero extended.
175         (expand_epilogue): Likewise.
176         (output_move_double): Delete.
177         * config/gcc/v850/v850-protos.h (output_move_double): Delete.
178         * config/gcc/v850/v850.md (movdi): Delete.
179         (*movdi_internal): Delete.
180         (movdf): Delete.
181         (*movdf_internal): Delete.
182
183 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
184
185         * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
186         unless compiling RTP PIC.
187
188 2007-07-04  Richard Guenther  <rguenther@suse.de>
189
190         PR tree-optimization/32482
191         * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
192         original ssa name if we didn't find a shift expression.
193         Fix shift constant for bit zero test.
194
195 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
196
197         * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
198
199 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
200
201         * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
202         * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
203         * config/arm/vxworks.h (ASM_SPEC): Delete.
204         (SUBTARGET_EXTRA_ASM_SPEC): Define.
205
206 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
207
208         * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
209         (DDR_REVERSED_P): New.
210         * tree-data-ref.c (initialize_data_dependence_relation,
211         build_classic_dist_vector): Set DDR_REVERSED_P.
212
213 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
214
215         PR middle-end/32457
216         * tree-data-ref.c (analyze_siv_subscript_cst_affine,
217         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
218         init_omega_for_ddr_1): Use non conservative number of iterations
219         estimations.
220         (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
221         (analyze_siv_subscript): Remove FIXME and reinitialization of 
222         last_conflicts to chrec_dont_know.
223         * testsuite/gfortran.dg/vect/pr32457.f90: New.
224
225 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
226
227         * tree.c (maybe_canonicalize_argtypes): Improve description.
228
229 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
230
231         * tree.c (maybe_canonicalize_argtypes): New.
232         (build_function_type): Set canonical type.
233         (build_method_type_directly): Ditto.
234         (reconstruct_complex_type): Rebuild the METHOD_TYPE node
235         properly.
236
237 2007-07-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
238
239         * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
240         like PLUS_EXPR.
241         (rewrite_use_nonlinear_expr): Likewise.
242
243 2007-07-03  Seongbae Park  <seongbae.park@gmail.com>
244
245         * rtl.def (UNSPEC, USE, CLOBBER): More comments.
246
247 2007-07-04  Ben Elliston  <bje@au.ibm.com>
248
249         * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
250         of this file.
251
252         * c-objc-common.c (c_types_compatible_p): Fix indentation.
253
254         * doc/tm.texi (Run-time Target): Capitalise "CPU".
255         (Exception Handling): Likewise.
256
257 2007-07-03  Jan Hubicka  <jh@suse.cz>
258
259         * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
260
261 2007-07-03  Eric Christopher  <echristo@apple.com>
262
263         * doc/cppopts.texi: Add conflicting option note to -dM.
264         * doc/invoke.texi: Add note about possible conflicts with
265         -E for -dCHARS and note that -dM will not produce
266         any results if there is no machine dependent reorg.
267         
268 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
269
270         * tree.h (DECL_ALIGN): Back out previous change.
271
272 2007-07-03  Joseph Myers  <joseph@codesourcery.com>
273
274         * configure.ac: Test for .dtprelword support on MIPS.
275         * configure, config.in: Regenerate.
276         * config/mips/mips.c (mips_output_dwarf_dtprel): New.
277         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
278
279 2007-07-03  Julian Brown  <julian@codesourcery.com>
280
281         * config.gcc (with_fpu): Allow --with-fpu=vfp3.
282         * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
283         * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
284         * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
285         capability.
286         (all_fpus): Add FPUTYPE_VFP3.
287         (fp_model_for_fpu): Add VFPv3 field.
288         (arm_rtx_costs_1): Give cost to VFPv3 constants.
289         (vfp3_const_double_index): New function. Return integer index of
290         VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
291         isn't suitable.
292         (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
293         and argument represents a valid RTX for a VFPv3 constant.
294         (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
295         two instructions.
296         (vfp_emit_fstmd): Similar, for fstmd.
297         (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
298         constants, represented as integer indices.
299         (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
300         VFP_REGNO_OK_FOR_DOUBLE macros.
301         (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
302         (arm_file_start): Set float-abi attribute for VFPv3, and output
303         correct ".fpu" assembler directive.
304         (arm_dbx_register_numbering): Add FIXME.
305         * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
306         (fputype): Add FPUTYPE_VFP3.
307         (FIXED_REGISTERS): Add 32 registers for D16-D31.
308         (CALL_USED_REGISTERS): Likewise.
309         (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
310         of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
311         (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
312         (D7_VFP_REGNUM): New.
313         (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
314         (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
315         (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
316         (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
317         (REG_ALLOC_ORDER): Adjust for VFPv3.
318         (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
319         (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
320         VFP_LO_REGS, VFP_HI_REGS.
321         (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
322         (IS_VFP_CLASS): Define macro.
323         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
324         IS_VFP_CLASS.
325         (REGISTER_MOVE_COST): Likewise.
326         * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
327         * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
328         (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
329         (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
330         (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
331         (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
332         (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
333         (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
334         (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
335         (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
336         (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
337         where appropriate for single-word registers.
338         (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
339         As above. Fix type attributes.
340         * config/arm/constraints.md (register_contraint "t"): Define.
341         (register_constraint "w"): Change to D0-D15, or D0-D31 for
342         VFPv3/NEON.
343         (register_constraint "x"): Define.
344         (constraint "Dv"): Define.
345
346 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
347
348         * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
349
350 2007-07-03  Tom Tromey  <tromey@redhat.com>
351
352         * c-parser.c (objc_pq_context): Removed.
353         (objc_need_raw_identifier): Likewise.
354         (c_parser) <objc_pq_context>: New field.
355         <objc_need_raw_identifier>: Likewise.
356         (OBJC_NEED_RAW_IDENTIFIER): Removed.
357         (c_lex_one_token): Update.
358         (c_parser_objc_protocol_definition): Update.
359         (c_parser_objc_method_definition): Update.
360         (c_parser_objc_methodproto): Update.
361         (c_parser_declspecs): Update.
362
363 2007-07-03  David Ung  <davidu@mips.com>
364
365         * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
366
367 2007-07-03  David Ung  <davidu@mips.com>
368             Richard Sandiford  <richard@codesourcery.com>
369
370         * doc/invoke.texi: Document -march=74kf3_2.
371         * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
372         (TUNE_74K): Check for it.
373         * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
374         (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
375         * config/mips/mips.md (cpu): Add 74kf3_2.
376         * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
377         (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
378         (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
379         (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
380         74kf3_2 to the CPU list.
381         (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
382         (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
383         (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
384         (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
385         (r74kf3_2_fxfer_from_c1): New insn reservations.
386
387 2007-07-03  Richard Sandiford  <richard@codesourcery.com>
388             David Ung  <davidu@mips.com>
389
390         * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
391         -march=24kx with -march=24kf1_1.  Likewise 24ke[fx], 34k[fx]
392         and 74k[fx].  Document aliases for the new options.
393         * config/mips/mips.h (PROCESSOR_24KF): Rename to...
394         (PROCESSOR_24KF2_1): ...this.
395         (PROCESSOR_24KX): Rename to...
396         (PROCESSOR_24KF1_1): ...this.
397         (PROCESSOR_74KF): Rename to...
398         (PROCESSOR_74KF2_1): ...this.
399         (PROCESSOR_74KX): Rename to...
400         (PROCESSOR_74KF1_1): ...this.
401         (TUNE_74K): Update PROCESSOR_* names.
402         * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
403         for 24kf.  Add 24kf1_1 and 24kfx as synonyms for 24kx.  Likewise
404         the 24ke*, 34k* and 74k* processors.  Update PROCESSOR_* names.
405         (mips_rtx_cost_data): Update processor names in comments.
406         (mips_issue_rate): Update PROCESSOR_* names.
407         * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
408         24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
409         * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
410         to r24kf2_1_*.  Rename r24kx_* insn reservations to r24kf1_1_*.
411         Update cpu attribute names.
412         (r24k_fpu_iss): Rename this reservation to...
413         (r24kf2_1_fpu_iss): ...this and update all uses.
414         (r24kx_fpu_iss): Rename this reservation to...
415         (r24kf1_1_fpu_iss): ...this and update all uses.
416         * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
417         to r74kf2_1_*.  Rename r74kx_* insn reservations to r74kf1_1_*.
418         Update cpu attribute names.
419
420 2007-07-01  Kaz Kojima  <kkojima@gcc.gnu.org>
421
422         * config/m32r/constraints.md: New file.
423         * config/m32r/m32r.c: Include tm-constrs.h.
424         (small_data_operand): Use satisfies_constraint_* instead of macro.
425         (addr24_operand, gen_compare): Likewise.
426         * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
427         (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
428         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
429         EXTRA_CONSTRAINT): Likewise.
430         * config/m32r/m32r.md: Include constraints.md.
431         (*movsi_insn): Use satisfies_constraint_* instead of macro.
432         (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
433         * config/m32r/predicates.md (conditional_move_operand): Likewise.
434         (two_insn_const_operand, int8_operand, uint16_operand,
435         reg_or_int16_operand, reg_or_uint16_operand,
436         reg_or_cmp_int16_operand, cmp_int16_operand,
437         seth_add3_operand): Likewise.
438
439 2007-07-03  Eric Christopher  <echristo@gmail.com>
440
441         * libgcc2.h: Conditionally declare __bswapsi2 and
442         __bswapdi2.
443         
444 2007-07-03  H.J. Lu  <hongjiu.lu@intel.com>
445
446         * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
447         defined.
448
449 2007-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
450
451         PR target/28307
452         * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
453         (__gthrw_pragma): Provide default definition.
454         (__gthrw2): Use it.
455         * gthr-posix.c (__gthrw_pragma): Define.
456
457 2007-07-03  Daniel Berlin  <dberlin@dberlin.org>
458
459         * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
460         before declaring inequality.
461
462 2007-07-03  Rask Ingemann Lambertsen  <rask@sygehus.dk>
463
464         * combine.c (recog_for_combine): Log the success or failure of
465           matching new insn patterns against the machine description in
466           detailed dumps.
467
468 2007-07-03  Revital Eres  <eres@il.ibm.com>
469
470         * ddg.c (print_sccs): New function.
471         (check_sccs): New function.
472         (create_ddg_all_sccs): Use it.
473         * ddg.h (print_sccs): Declare.
474         * modulo-sched.c (sms_order_nodes): Call print_sccs.
475
476 2007-07-03  Uros Bizjak  <ubizjak@gmail.com>
477
478         * targhooks.h (default_mode_for_suffix): New function declaration.
479         * targhooks.c (default_mode_for_suffix): New default target hook.
480         * target.h (struct c): New structure in the targetm struct.
481         (mode_for_suffix): New target hook as part of struct c.
482         target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
483         default_mode_for_suffix.
484         (TARGET_C): New define.
485         * c-lex.c: Include "target.h".
486         (interpret_float): Use targetm.c.mode_for_suffix to determine
487         the mode for a given non-standard suffix.
488         Makefile.in (c-lex.o): Depend on $(TARGET_H).
489
490         * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
491         (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
492
493         * doc/extend.texi (Floating Types): New node.  Document __float80 and
494         __float128 types.  Document 'w', 'W', 'q' and 'Q' suffixes.
495
496 2007-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
497
498         PR target/32506
499         * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
500         predicate instead of target_operand.
501         (divsi3_i1_media, divsi3_media_2): Likewise.
502
503 2007-07-02  Eric Botcazou  <ebotcazou@adacore.com>
504
505         * tree.h (alias_sets_might_conflict_p): Rename into
506         alias_sets_must_conflict_p.
507         * alias.c (alias_sets_might_conflict_p): Likewise.
508         (alias_sets_conflict_p): Use it.
509         (objects_must_conflict_p): Likewise.
510         * c-common.c (strict_aliasing_warning): Adjust.
511
512 2007-07-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
513
514         * rtlhooks.c (gen_lowpart_if_possible): Check for
515         invalid subreg before calling gen_lowpart_SUBREG.
516
517 2007-07-02  Geoffrey Keating  <geoffk@apple.com>
518
519         * config/darwin9.h: Add copyright notice.
520         (LINK_COMMAND_SPEC): Add comment.
521         (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
522         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
523         DARWIN_LIBSYSTEM_HAS_UNWIND.
524
525 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
526
527         PR libgomp/32468
528         * omp-low.c (check_combined_parallel): New function.
529         (lower_omp_parallel): Call it via walk_stmts, set
530         OMP_PARALLEL_COMBINED if appropriate.
531         (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
532         isn't the only statement in WS_ENTRY_BB or OMP_RETURN
533         the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
534         don't consider it as combined parallel.
535
536 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
537
538         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
539         (gcc_tooldir): Likewise.
540         * configure: Regenerate.
541         * Makefile.in (libsubdir_to_prefix): New variable, based on the
542         old configure.ac gcc_tooldir setting.
543         (prefix_to_exec_prefix): New variable.
544         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
545         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
546
547 2007-07-02  Daniel Berlin  <dberlin@dberlin.org>
548
549         Fix PR tree-optimization/32583
550         Fix PR tree-optimization/32584
551         * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
552         (phi_translate_set): Use phi_translate directly now.
553         (make_values_for_stmt): Don't value number RHS if we already know
554         it is constant.
555
556 2007-07-02  Steve Ellcey  <sje@cup.hp.com>
557             Jim Wilson <wilson@specifix.com>
558
559         PR target/31684
560         * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
561         copy_insn.
562
563 2007-07-02  Sandra Loosemore  <sandra@codesourcery.com>
564             Richard Sandiford  <richard@codesourcery.com>
565             Nigel Stephens  <nigel@mips.com>
566
567         * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
568         (mips16e_output_save_restore): Declare.
569         (mips16e_save_restore_pattern_p): Likewise.
570         * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
571         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
572         for GENERATE_MIPS16E_SAVE_RESTORE.  Return 0x400 for TARGET_MIPS16
573         && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
574         (BITSET_P): New global macro, extracted from...
575         (mips_for_each_saved_reg): ...here.
576         (mips16e_save_restore_info): New struct.
577         (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
578         (mips16e_save_restore_regs): New variable.
579         (mips_split_plus, mips16e_find_first_register): New functions.
580         (mips16e_mask_registers): New function.
581         (compute_frame_size): Expand the commentary before the function.
582         Enforce the MIPS16e save and restore register range restrictions.
583         Pad the general register save area at the low end.
584         (mips16e_save_restore_reg, mips16e_build_save_restore)
585         (mips16e_save_restore_pattern_p, mips16e_add_register_range)
586         (mips16e_output_save_restore, mips16e_collect_propagate_value)
587         (mips16e_collect_argument_save, mips16e_collect_argument_saves):
588         New functions.
589         (mips_expand_prologue, mips_expand_epilogue): Handle
590         GENERATE_MIPS16E_SAVE_RESTORE.
591         * config/mips/mips.md (*mips16e_save_restore): New pattern.
592
593 2007-07-02  Uros Bizjak  <ubizjak@gmail.com>
594
595         PR tree-optimization/31966
596         PR tree-optimization/32533
597         * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
598         "basic_block" description as its third argument.  Update function
599         calls to get destination bb from "edge" argument.  Save "cond" into
600         aux field of the edge.  Update prototype for changed arguments.
601         (if_convertible_loop_p): Clear aux field of incoming edges if bb
602         contains phi node.
603         (find_phi_replacement_condition): Operate on incoming edges, not
604         on predecessor blocks.  If there is a condition saved in the
605         incoming edge aux field, AND it with incoming bb predicate.
606         Return source bb of the first edge.
607         (clean_predicate_lists): Clean aux field of outgoing node edges.
608         (tree_if_conversion): Do not initialize cond variable. Move
609         variable declaration into the loop.
610         (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
611         initializations of new_stmt, arg0 and arg1 variables.
612
613 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
614
615         * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
616         SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
617
618 2007-07-02  Richard Guenther  <rguenther@suse.de>
619
620         * tree-ssa.c (useless_type_conversion_p): Document
621         future intent as defining the middle-end type system.
622         Re-structure to call langhook last, group by type class,
623         mark questionable parts.
624
625 2007-07-02  Richard Guenther  <rguenther@suse.de>
626
627         * tree-flow.h (types_compatible_p): Declare.
628         * tree-ssa.c (types_compatible_p): New function.
629         * ipa-type-escape.c (discover_unique_type): Use
630         types_compatible_p instead of lang_hooks.types_compatible_p.
631         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
632         * tree-vn.c (expressions_equal_p): Likewise.
633         * tree.c (fields_compatible_p): Likewise.
634         * tree-ssa-dom.c (avail_expr_eq): Likewise.
635         (cprop_operand): Use useless_type_conversion_p instead of
636         lang_hooks.types_compatible_p.
637         * tree-inline.c (setup_one_parameter): Likewise.
638         (declare_return_variable): Likewise.
639         * tree-nrv.c (tree_nrv): Likewise.
640         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
641         (maybe_fold_offset_to_component_ref): Likewise.
642         (maybe_fold_offset_to_reference): Likewise.
643         * tree-ssa-copy.c (may_propagate_copy): Likewise.
644         (merge_alias_info): Likewise.
645         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
646         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
647         * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
648         * tree-tailcall.c (find_tail_calls): Likewise.
649         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
650         * gimplify.c (canonicalize_addr_expr): Likewise.
651         (fold_indirect_ref_rhs): Likewise.
652         (gimplify_addr_expr): Likewise.  Swap parameters to cpt_same_type.
653         (cpt_same_type): Likewise.
654         (check_pointer_types_r): Swap parameters to cpt_same_type
655         where appropriate.
656         * fold-const.c (fold_convert): Revert fix for PR15988.
657         * tree-inline.c (setup_one_parameter): Instead fix it here by
658         using fold_build1 instead of fold_convert and checking for
659         error_mark_node.  Convert only if the conversion is necessary.
660
661 2007-07-02  Joseph Myers  <joseph@codesourcery.com>
662
663         * configure.ac: Check for .gnu_attribute on Power.
664         * configure: Regenerate.
665         * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
666         attribute for floating-point ABI.
667
668 2007-07-02  Ira Rosen  <irar@il.ibm.com>
669
670         PR tree-optimization/32230
671         PR tree-optimization/32477
672         * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base 
673         address is a constant.
674
675 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
676
677         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
678         (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
679         (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
680         stanzas.  Use the first part of the triplet to set MIPS_ISA_DEFAULT.
681         Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
682         64-bit targets.  Add support for *-elfoabi*.
683         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
684         different settings if $(tm_defines) does not select the EABI.
685         (MULTILIB_EXCLUSIONS): Define in those circumstances.
686         * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
687         (MIPS_ARCH_OPTION_SPEC): Likewise.
688         (MIPS_ISA_LEVEL_SPEC): Likewise.
689         (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
690         * config/mips/elfoabi.h: New file.
691
692 2007-07-02  Richard Guenther  <rguenther@suse.de>
693
694         * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
695         (useless_type_conversion_p): ... this.
696         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
697         (useless_type_conversion_p): ... this.
698         * builtins.c (fold_builtin_memory_op): Rename
699         tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
700         * tree-cfg.c (verify_expr): Likewise.
701         * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
702         * tree-ssa-ccp.c (ccp_fold): Likewise.
703         * tree-ssa-copy.c (may_propagate_copy): Likewise.
704         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
705         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
706         * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
707         * tree-ssa-pre.c (eliminate): Likewise.
708         * tree-ssa.c (delete_tree_ssa): Likewise.
709         (tree_ssa_useless_type_conversion): Likewise.
710         * tree.c (build2_stat): Likewise.
711
712 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
713
714         Fix PR tree-optimization/32571
715         * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
716         simplifying them.
717
718 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
719
720         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
721         and other expected operations explicitly, change default to
722         gcc_unreachable. 
723
724 2007-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
725
726         * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
727         PARALLEL.
728         * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
729         (tls_load_dot_plus_eight): Move the label number into the unspec.
730         * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
731
732 2007-07-01  Andreas Schwab  <schwab@suse.de>
733
734         * dwarf2out.c (initial_return_save): Define only if used.
735
736 2007-07-01  Kenneth Zadeck <zadeck@naturalbridge.com>
737
738         Unreverting Richard's Revert of:
739
740         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
741
742         * dce.c (deletable_insn_p_1): New function, split out from...
743         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
744         specially, not those inside PARALLELs.  Remove BODY argument
745         and adjust recursive call accordingly.
746         (prescan_insns_for_dce): Update call to delete_insn_p.
747
748 2007-07-01  Vladimir Yanovsky  <yanov@il.ibm.com>
749             Revital Eres  <eres@il.ibm.com>
750
751         * ddg.c (create_ddg_all_sccs): Fix missed
752         initialization of scc_nodes.
753
754 2007-07-01  Uros Bizjak  <ubizjak@gmail.com>
755
756         PR middle-end/32559
757         * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
758         X + ~X to 1 only for INTEGRAL_TYPE_P type.
759
760 2007-06-30  Joseph Myers  <joseph@codesourcery.com>
761
762         * configure.ac: Check for .gnu_attribute on MIPS.
763         * configure, config.in: Regenerate.
764         * config/mips/mips.c (mips_file_start): If supported, output
765         attribute for floating-point ABI.
766
767 2007-06-30  Uros Bizjak  <ubizjak@gmail.com>
768
769         PR target/32433
770         * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
771         (ffs_cmove): New expander to expand using ctz pattern.
772         (*ffs_cmove): Remove pattern.
773         (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
774         (ffsdi2): Expand using ctz pattern.
775         (*ffs_rex64): Remove pattern.
776
777 2007-06-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
778
779         PR rtl-optimization/32296
780         * pa.md (return): Delete pattern.
781         (return_internal): Remove "(const_int 1)" from pattern.
782         (epilogue): Use return_internal pattern for trivial returns.
783         * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
784         * pa.c (hppa_can_use_return_insn_p): Delete function.  Include "df.h".
785
786 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
787
788         * tree-ssa-pre.c (is_exception_related): New function
789         (can_value_number_operation): Use it.
790
791 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
792         
793         Fix PR tree-optimization/32540
794         Fix PR tree-optimization/31651
795
796         * tree-ssa-sccvn.c: New file.
797
798         * tree-ssa-sccvn.h: Ditto.
799         
800         * tree-vn.c: Include tree-ssa-sccvn.h
801         (val_expr_paid_d): Removed.
802         (value_table): Ditto.
803         (vn_compute): Ditto.
804         (val_expr_pair_hash): Ditto.
805         (val_expr_pair_expr_eq): Ditto.
806         (copy_vuses_from_stmt): Ditto.
807         (vn_delete): Ditto.
808         (vn_init): Ditto.
809         (shared_vuses_from_stmt): Ditto.
810         (print_creation_to_file): Moved up.
811         (sort_vuses): Ditto.
812         (sort_vuses_heap): Ditto.
813         (set_value_handle): Make non-static.
814         (make_value_handle): Ditto.
815         (vn_add): Rewritten to use sccvn lookups.
816         (vn_add_with_vuses): Ditto.
817         (vn_lookup): Ditto (and second argument removed).
818         (vn_lookup_with_vuses): Ditto.
819         (vn_lookup_or_add): Ditto (and second argument removed);
820         (vn_lookup_or_add_with_vuses): Ditto.
821         (vn_lookup_with_stmt): New.
822         (vn_lookup_or_add_with_stmt): Ditto.
823         (create_value_handle_for_expr): Ditto.
824
825         * tree-ssa-pre.c: Include tree-ssa-sccvn.h.
826         (seen_during_translate): New function.
827         (phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
828         (phi_trans_add): Ditto.
829         (constant_expr_p): FIELD_DECL is always constant.
830         (phi_translate_1): Renamed from phi_translate, add seen bitmap.
831         Use constant_expr_p.
832         Avoid infinite recursion on mutually valued expressions.
833         Change callers of vn_lookup_or_add.
834         (phi_translate): New function.
835         (compute_antic_safe): Allow phi nodes.
836         (create_component_ref_by_pieces): Update for FIELD_DECL change.
837         (find_or_generate_expression): Rewrite slightly.
838         (create_expression_by_pieces): Updated for vn_lookup_or_add
839         change.
840         Update VN_INFO for new names.
841         (insert_into_preds_of_block): Update for new names.
842         (add_to_exp_gen): New function.
843         (add_to_sets): Use vn_lookup_or_add_with_stmt.
844         (find_existing_value_expr): Rewrite to changed vn_lookup.
845         (create_value_expr_from): Ditto, and use add_to_exp_gen.
846         (try_look_through_load): Removed.
847         (try_combine_conversion): Ditto.
848         (get_sccvn_value): New function.
849         (make_values_for_phi): Ditto.
850         (make_values_for_stmt): Ditto.
851         (compute_avail): Rewritten for vn_lookup_or_add changes and to use
852         SCCVN.
853         (init_pre): Update for SCCVN changes.
854         (fini_pre): Ditto.
855         (execute_pre): Ditto.
856
857         * tree-flow.h (make_value_handle): Declare.
858         (set_value_handle): Ditto.
859         (sort_vuses_heap): Ditto.
860         (vn_lookup_or_add_with_stmt): Ditto.
861         (vn_lookup_with_stmt): Ditto.
862         (vn_compute): Remove.
863         (vn_init): Ditto.
864         (vn_delete): Ditto.
865         (vn_lookup): Update arguments.
866
867         * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
868         (tree-vn.o): Ditto.
869         (tree-ssa-sccvn.o): New.
870         (OBJS-common): Add tree-ssa-sccvn.o
871         
872 2007-06-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
873
874         PR c/4076
875         * c-typeck.c (build_external_ref): Don't mark as used if called
876         from itself.
877         * calls.c (rtx_for_function_call): Likewise.
878         
879 2007-06-30  Richard Sandiford  <richard@codesourcery.com>
880
881         Revert:
882
883         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
884
885         * dce.c (deletable_insn_p_1): New function, split out from...
886         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
887         specially, not those inside PARALLELs.  Remove BODY argument
888         and adjust recursive call accordingly.
889         (prescan_insns_for_dce): Update call to delete_insn_p.
890
891 2007-06-30  Rask Ingemann Lambertsen <rask@sygehus.dk>
892
893         * combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
894         (try_combine): Move potential calls to undo_all() so they happen
895         before we commit to using the combined insns.
896
897 2006-06-30  Jan Hubicka  <jh@suse.cz>
898
899         * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
900         code.
901
902 2006-06-30  Thomas Neumann  <tneumann@users.sourceforge.net>
903
904         * ipa.c (cgraph_postorder): Cast according to the coding conventions.
905         (cgraph_remove_unreachable_nodes): Likewise.
906         * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
907         * ipa-inline.c (update_caller_keys): Cast according to the coding
908         conventions.
909         (cgraph_decide_recursive_inlining): Likewise.
910         (cgraph_decide_inlining_of_small_function): Likewise.
911         (try_inline): Likewise.
912         (cgraph_decide_inlining_incrementally): Likewise.
913         * ipa-pure-const.c (get_function_state): Likewise.
914         (scan_function): Likewise.
915         (analyze_function): Likewise.
916         (static_execute): Likewise.
917         * gcc/ipa-reference.c (scan_for_static_refs): Likewise.
918         (merge_callee_local_info): Likewise.
919         (analyze_function): Use type safe memory macros.
920         (static_execute): Likewise. Cast according to the coding conventions.
921         * ipa-type-escape.c (scan_for_regs): Cast according to the coding
922         conventions.
923         * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
924         names.
925         (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
926         * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
927         variable names.
928
929 2007-06-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
930
931         PR middle-end/30024
932         * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
933         for complex modes (both int and real).
934
935 2007-06-29  Jan Hubicka  <jh@suse.cz>
936
937         * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
938
939 2007-06-29  Jan Hubicka  <jh@suse.cz>
940
941         PR middle-end/32372
942         * cse.c (cse_insn): Avoid invalid sharing in between register note and
943         the insn pattern.
944
945 2007-06-29  Anatoly Sokolov <aesok@post.ru>
946
947         PR target/32335
948         * config/avr/avr.c: Include dataflow header file.
949         (expand_prologue): Adjust for prologue insn change.
950         * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
951         inside a insn.
952
953 2007-06-29  Richard Guenther  <rguenther@suse.de>
954
955         PR middle-end/32493
956         * gimplify.c (gimplify_call_expr): Ignore variable argument parts
957         during type verification.
958
959 2007-06-29  Jan Hubicka  <jh@suse.cz>
960
961         * recog.c (validate_change_rtx_1): Unshare TO argument.
962
963 2007-06-29  Uros Bizjak  <ubizjak@gmail.com>
964
965         PR tree-optimization/24659
966         * tree-vect-transform.c (vectorizable_call): Handle
967         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
968
969         * config/i386/sse.md (vec_pack_sfix_v2df): New expander.
970         * config/i386/i386.c (enum ix86_builtins)
971         [IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
972         (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
973         description.
974         (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
975         const using def_builtin_const.
976         (ix86_expand_binop_builtin): Remove bogus assert() that insn wants
977         input operands in the same modes as the result.
978         (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.
979
980 2007-06-29  Richard Sandiford  <rsandifo@nildram.co.uk>
981
982         * df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
983         (df_set_dead_notes_for_mw): Likewise.
984
985 2007-06-29  Eric Botcazou  <ebotcazou@adacore.com>
986
987         * c-common.c (pointer_int_sum): Do the negation in sizetype.
988
989 2007-06-28  DJ Delorie  <dj@redhat.com>
990
991         * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.
992
993 2007-06-28  Geoffrey Keating  <geoffk@apple.com>
994
995         * doc/invoke.texi (C++ Dialect Options): Document
996         fvisibility-ms-compat.
997         * c.opt (fvisibility-ms-compat): New.
998
999 2007-06-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1000
1001         PR tree-opt/32417
1002         * tree-affine.c (aff_combination_add_elt): Handle
1003         pointer addition specially.
1004
1005 2007-06-28  Jakub Jelinek  <jakub@redhat.com>
1006
1007         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
1008         decl is non-external for AIX ABI.
1009
1010 2007-06-28  David Edelsohn  <edelsohn@gnu.org>
1011
1012         * config/rs6000/predicates.md (current_file_function_operand):
1013         Ensure the symbol is non-external for AIX ABI.
1014
1015 2007-06-28  Nick Clifton  <nickc@redhat.com>
1016
1017         * common.opt (fipa-matrix-reorg): Add Optimization attribute.
1018         (fdce, fdse, fpredictive-commoning): Likewise.
1019
1020 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1021
1022         PR other/31400
1023         * gcc.c (process_command): Recognize the new -static-libgfortran
1024         option.
1025
1026 2007-06-27  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1027
1028         PR target/32418
1029         * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix:
1030         Use a call clobbered hard reg instead of a pseudo reg.
1031
1032 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1033
1034         * config/sh/sh.md (load_gbr): Use correct operand constraint.
1035
1036 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1037
1038         PR target/32479
1039         * config/sh/sh.md (udivsi3): Don't wrap the sequence with
1040         REG_LIBCALL and REG_RETVAL notes.
1041         (divsi3, mulsi3): Likewise.
1042         (mulhisi3): Likewise.  Use emit_libcall_block.
1043         (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.
1044
1045 2007-06-27  Seongbae Park  <seongbae.park@gmail.com>
1046
1047         PR rtl-optimization/32481
1048         * combine.c (adjust_for_new_dest): Rescan the changed insn.
1049
1050 2007-06-27  Richard Sandiford  <richard@codesourcery.com>
1051
1052         * dce.c (deletable_insn_p_1): New function, split out from...
1053         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
1054         specially, not those inside PARALLELs.  Remove BODY argument
1055         and adjust recursive call accordingly.
1056         (prescan_insns_for_dce): Update call to delete_insn_p.
1057
1058 2007-06-27  Richard Guenther  <rguenther@suse.de>
1059
1060         PR middle-end/32492
1061         * tree.h (fold_convertible_p): Declare.
1062         * fold-const.c (fold_convertible_p): New function.
1063         * gimplify.c (gimplify_call_expr): Use fold_convertible_p
1064         instead of lang_hooks.types_compatible_p.
1065
1066 2007-06-26  Jan Hubicka  <jh@suse.cz>
1067
1068         * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
1069         * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
1070         early use validate_unshare_change.
1071         (reload_combine): Likewise.
1072         * recog.c (change_t): New field unshare.
1073         (validate_change_1): Rename from validate_change; add argument unshare.
1074         (validate_change): Turn into wrapper of validate_change_1; update
1075         prototype for bools.
1076         (validate_unshare_change): New.
1077         (confirm_change_group): Unshare changes if asked for; avoid unnecesary
1078         calls of df_insn_rescan.
1079         * recog.h (validate_change): Replace ints by bools.
1080         (validate_unshare_change): Declare.
1081
1082 2007-06-26  Kenneth Zadeck <zadeck@naturalbridge.com>
1083
1084         * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
1085         
1086 2007-06-26  Steve Ellcey  <sje@cup.hp.com>
1087
1088         * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
1089
1090 2007-06-25  Jan Hubicka  <jh@suse.cz>
1091
1092         * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
1093         uninlinable call.
1094         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
1095         cgraph_decide_inlining_incrementally): Move uninlinability checks to
1096         places other call site specific checks are performed.
1097
1098 2007-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1099
1100         PR tree-opt/32421
1101         * tree-vect-transform.c (vectorizable_operation): Convert
1102         POINTER_PLUS_EXPR over to PLUS_EXPR.
1103
1104 2007-06-25  Chao-ying Fu  <fu@mips.com>
1105
1106         * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
1107         UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
1108         Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
1109         Document GET_MODE_IBIT, and GET_MODE_FBIT.
1110
1111         * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
1112         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1113         (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
1114         SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
1115         SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
1116         ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
1117         ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
1118         SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
1119         ALL_FIXED_POINT_MODE_P): New define.
1120         (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1121         MODE_UACCUM.
1122         (GET_MODE_IBIT, GET_MODE_FBIT): New define.
1123
1124         * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
1125         MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
1126         MODE_VECTOR_UACCUM): New mode classes.
1127
1128         * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
1129         UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
1130         Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
1131         USA, UDA, and UTA.
1132
1133         * genmodes.c (struct mode_data): Add ibit and fbit fields.
1134         (blank_mode): Initialize ibit and fbit.
1135         (adj_ibit, adj_fbit): New to adjust ibit and fbit.
1136         (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1137         MODE_UACCUM.
1138         (new_adjust): Change required_class to required_class_from and
1139         required_class_to for testing within a range.
1140         (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1141         MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
1142         MODE_VECTOR_UACCUM.
1143         (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
1144         (make_fixed_point_mode): New.
1145         (_ADD_ADJUST): Change C to C1 and C2.
1146         (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
1147         use a range for machine classes.
1148         (ADJUST_IBIT, ADJUST_FBIT): New.
1149         (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
1150         CONST_MODE_FBIT.
1151         (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
1152         MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1153         Emit adjustment for ibit and fbit.
1154         (emit_mode_ibit, emit_mode_fbit): New.
1155         (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
1156
1157 2007-06-25  Nathan Froyd  <froydnj@codesourcery.com>
1158
1159         * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
1160         as the source of the set.
1161
1162 2007-06-25  Roman Zippel <zippel@linux-m68k.org>
1163
1164         * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
1165         FP_REGNO_P): Use IN_RANGE.
1166         (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
1167         (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
1168         (DATA_REG_P): Use DATA_REGNO_P.
1169         (FP_REG_P): Use FP_REGNO_P.
1170         (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
1171         * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
1172         REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
1173
1174 2007-06-24  Jan Hubicka  <jh@suse.cz>
1175
1176         PR middle-end/30563
1177         * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
1178
1179 2007-06-24  Sebastian Pop  <sebpop@gmail.com>
1180
1181         PR middle-end/32461
1182         * fold-const.c (fold_binary): Strip nops of operand 0
1183         of BIT_NOT_EXPR before calling operand_equal_p.
1184         * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
1185         * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
1186
1187 2007-06-23  Mark Mitchell  <mark@codesourcery.com>
1188
1189         * doc/extend.texi: Document that dllimport and dllexport imply
1190         default visibility.
1191         * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
1192         imported or exported declaration, including type declarations.
1193         * c-common.c (handle_visibility_attribute): Check for conflicts
1194         with dllimport/dllexport.
1195         (c_determine_visibility): Handle dllimport/dllexport as an
1196         explicit visibility atttribute.
1197
1198 2007-06-23  Richard Guenther  <rguenther@suse.de>
1199
1200         PR tree-optimization/16876
1201         PR middle-end/29478
1202         * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
1203         for CALL_EXPRs.
1204         * tree-inline.c (initialize_inlined_parameters): Do not call
1205         lang_hooks.tree_inlining.convert_parm_for_inlining.
1206         * cgraphbuild.c (initialize_inline_failed): Set inline failed
1207         reason for mismatched types.
1208         * gimplify.c (gimplify_call_expr): Verify the call expression
1209         arguments match the called function type signature.  Otherwise
1210         mark the call expression to be not considered for inlining
1211         using CALL_CANNOT_INLINE_P flag.
1212         * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
1213         edges call expression.
1214         (cgraph_decide_inlining_of_small_function): Likewise.
1215         (cgraph_decide_inlining): Likewise.
1216         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
1217         Remove define.
1218         * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
1219         * c-typeck.c (c_convert_parm_for_inlining): Remove.
1220         * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
1221         Remove declaration.
1222         (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
1223         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
1224         Remove.
1225         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
1226         convert_parm_for_inlining member.
1227
1228 2007-06-23  Richard Earnshaw  <rearnsha@arm.com>
1229
1230         PR target/31152
1231         * arm.md (negscc): Match the correct operand for optimized LT0 test.
1232         Remove optimization for GT.
1233
1234 2007-06-23  Kenneth Zadeck <zadeck@naturalbridge.com>
1235
1236         PR middle-end/32437
1237         * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
1238         is a PARALLEL.
1239         (prescan_insns_for_dce): Add extra parameter.
1240         
1241 2007-06-23  Jan Hubicka  <jh@suse.cz>
1242
1243         PR middle-end/31541
1244         * gimplify.c (mark_addressable): New function.
1245         (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
1246
1247 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
1248
1249         PR middle-end/32374
1250         * expr.c (store_constructor): Do not clobber non-zeroed memory. 
1251
1252 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
1253
1254         PR target/32413
1255         * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
1256         moves between MMX/SSE registers to at least 8 units to prevent
1257         ICE caused by non-tieable SI/HI/QImodes in SSE registers. 
1258
1259 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
1260
1261         * config/i386/i386.c (override_options): Correct x86_sahf
1262         setting condition.
1263
1264 2007-06-21  David Daney  <ddaney@avtrex.com>
1265
1266         PR target/32406
1267         * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
1268         to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
1269         (exception_receiver): Renamed to ...
1270         (nonlocal_goto_receiver): ... this.
1271
1272 2007-06-22  Roman Zippel <zippel@linux-m68k.org>
1273
1274         * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
1275         (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
1276         partial register accesses.
1277
1278 2007-06-21  Adam Nemet  <anemet@caviumnetworks.com>
1279
1280         * fold-const.c (debug_fold_checksum): Move it under
1281         ENABLE_FOLD_CHECKING.
1282
1283 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
1284
1285         PR middle-end/20623
1286         * tree.h (debug_fold_checksum): Declared.
1287         * fold-const.c (build_fold_addr_expr_with_type_1): New.
1288         (build_fold_addr_expr_with_type, build_fold_addr_expr): Use 
1289         build_fold_addr_expr_with_type_1.
1290         (fold_addr_expr, debug_fold_checksum): New.
1291         (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
1292         (fold_unary, fold_comparison, split_address_to_core_and_offset):
1293         Use fold_addr_expr.
1294         
1295 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
1296
1297         PR tree-optimization/19590
1298         * tree-vrp.c (adjust_range_with_scev): Set the range when the result
1299         of scev is a constant.
1300         * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
1301
1302 2007-06-21  Kenneth Zadeck <zadeck@naturalbridge.com>
1303
1304         * df-problems.c (df_note_bb_compute): Made computation of live
1305         info consistent with df_lr.
1306
1307 2007-06-21  Richard Guenther  <rguenther@suse.de>
1308
1309         PR tree-optimization/32453
1310         * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
1311         for pointer anti-range.
1312
1313 2007-06-21  H.J. Lu  <hongjiu.lu@intel.com>
1314
1315         * config/i386/i386.c (processor_target_table): Increase maximum
1316         skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
1317         default 64bit.
1318
1319         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
1320         byte alignment if > 8 byte alignment is preferred.
1321         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1322
1323 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
1324
1325         PR tree-optimization/31866
1326         * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
1327         if ASM_EXPR's input is not a SSA_NAME.
1328
1329         PR middle-end/32362
1330         * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
1331         but decl is a global var, instead return decl.
1332         * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
1333         even for is_global_var decls, if they are private in some outer
1334         context.
1335
1336 2007-06-21  Richard Guenther  <rguenther@suse.de>
1337
1338         PR tree-optimization/32451
1339         * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
1340
1341 2007-06-21  Christian Bruel  <christian.bruel@st.com>
1342
1343         * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
1344         * config/sh/sh.c (sh_loads_bankedreg_p): New function.
1345         (push_regs): Changed saving order or banked registers.
1346         (sh_expand_epilogue): Likewise.
1347         * config/sh/sh.h (BANKED_REGISTER_P): New macro.
1348         (FIRST_BANKED_REG): Likewise.
1349         (LAST_BANKED_REG): Likewise.
1350         * config/sh/sh.md (banked) New attribute.
1351         (in_delay_slot): Check banked attribute.
1352         
1353 2007-06-20  Sebastian Pop  <sebpop@gmail.com>
1354
1355         PR tree-optimization/32075
1356         * tree-data-ref.c (subscript_dependence_tester_1, 
1357         analyze_miv_subscript, analyze_overlapping_iterations,
1358         add_distance_for_zero_overlaps, build_classic_dist_vector,
1359         subscript_dependence_tester_1, analyze_overlapping_iterations,
1360         subscript_dependence_tester, access_functions_are_affine_or_constant_p,
1361         compute_affine_dependence, compute_all_dependences): Pass loop_nest 
1362         to evolution_function_is_affine_multivariate_p.
1363
1364 2007-06-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
1365
1366         * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
1367
1368 2007-06-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1369
1370         PR target/32335
1371         * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
1372         for TARGET_A16.
1373         * config/m32c/prologue.md (epilogue_exitd_16): New.
1374         (epilogue_reit_16): New.
1375         (epilogue_exitd): Rename to epilogue_exitd_24.
1376         (epilogue_reit): Rename to epilogue_reit_24.
1377
1378 2007-06-20  Seongbae Park  <seongbae.park@gmail.com>
1379             Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1380
1381         * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
1382         New counters.
1383         * haifa-sched.c (queue_to_ready): Don't requeue next insn
1384         if dbg_cnt (sched_insn) reaches the limit.
1385         (choose_ready): New parameter INSN_PTR and new return value.
1386         (schedule_block): Handle dbg_cnt (sched_insn). Handle
1387         the new return value from choose_ready.
1388         * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
1389         (rest_of_handle_global_alloc): New global_alloc_at_func.
1390
1391 2007-06-20  Adam Nemet  <anemet@caviumnetworks.com>
1392
1393         PR tree-optimization/25737
1394         * tree.h (struct tree_struct_field_tag): Add new field alias_set.
1395         (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
1396         * tree-flow.h (struct fieldoff): Add new field alias_set.
1397         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
1398         argument addressable_type.  Set alias_set of fieldoff.
1399         * tree-ssa-alias.c (create_sft): Add new argument alias_set.
1400         (create_overlap_variables_for): Pass alias_set from fieldoff to
1401         create_sft.
1402         * alias.c (get_alias_set): Use alias_set from SFT if set.
1403
1404 2007-06-20  Hui-May Chang  <hm.chang@apple.com>
1405
1406         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
1407         of a variable as an unsigned HOST_WIDE_INT integer.
1408
1409 2007-06-20  Zdenek Dvorak  <dvorakz@suse.cz>
1410
1411         PR rtl-optimization/32405
1412         * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
1413
1414 2007-06-20  Jakub Jelinek  <jakub@redhat.com>
1415
1416         * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
1417
1418         PR middle-end/31959
1419         * builtins.c: Include diagnostic.h.
1420         (expand_builtin_expect): Make gcc_assert more permissive.
1421         * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
1422
1423         PR inline-asm/32109
1424         * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
1425         and !allows_mem.
1426
1427         PR middle-end/32285
1428         * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
1429         if ACCUMULATE_OUTGOING_ARGS.
1430
1431 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1432
1433         * config/m68hc11/m68hc11.c: Include dataflow header file.
1434         (m68hc11_reorg): Port to dataflow.
1435
1436 2007-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
1437
1438         * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
1439         (struct df_problem.free_blocks_on_set_blocks): New field.
1440         (struct dataflow.optional_p): New field.
1441         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
1442         (df_live_set_all_dirty): New function.
1443         * df-scan.c (df_scan_alloc): Initialize optional_p.
1444         (problem_SCAN): Initialize free_blocks_on_set_blocks.
1445         * df-core.c (df_set_blocks): Removed use of
1446         DF_FIRST_OPTIONAL_PROBLEM.  Now uses
1447         df_problem.free_blocks_on_set_blocks to determine which blocks are
1448         recycled.
1449         (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
1450         (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM.  Now
1451         uses dataflow.optional_p to determine if problem should be
1452         deleted.
1453         (rest_of_handle_df_initialize): Only start live problem if 
1454         -02 or above.
1455         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
1456         * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
1457         df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
1458         (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
1459         problem_NOTE):  Initialize free_blocks_on_set_blocks.
1460         (df_lr_bb_local_compute): Recompute luids if df_live problem is
1461         not active.
1462         (df_live_set_all_dirty, df_note_alloc): New function.
1463         * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
1464         df_get_live_*.
1465         * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
1466         * postreload.c (reload_combine): Ditto.
1467         * cse.c (cse_extended_basic_block): Ditto.
1468         * regmove.c (mark_flags_life_zones): Ditto.
1469         * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
1470         erase_matching_seqs): Ditto.
1471         * bt-load.c (compute_defs_uses_and_gen): Ditto.
1472         * integrate (allocate_initial_values): Ditto.
1473         * combine.c (reg_dead_at_p): Ditto.
1474         * resource.c (mark_target_live_regs): Ditto.
1475         * sched-rgn.c (check_live_1, update_live_1): Ditto.
1476         * config/sh/sh.c (find_r0_life_regions): Ditto.
1477         * global.c (rest_of_handle_global_alloc): Only add back df_live
1478         for -O > 1.
1479         * local-alloc.c (rest_of_handle_local_alloc): Only remove
1480         df_live for -O > 1.
1481         * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
1482         df_get_live_*.
1483         (if_convert): Make sure df_live is there at -O == 1.
1484         (pass_if_after_combine): Cleanup flags.
1485         * init-regs.c (initialize_uninitialized_regs): Make sure df_live
1486         is there at -O == 1.
1487         
1488 2007-06-19  Seongbae Park  <seongbae.park@gmail.com>
1489
1490         * config/arm/arm.c (arm_get_frame_offsets): Set
1491         offsets->locals_base to avoid negative stack size.
1492         (thumb1_expand_prologue): Assert on negative stack size.
1493
1494 2007-04-19  Sebastian Pop  <sebpop@gmail.com>
1495
1496         PR tree-optimization/32367
1497         * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side 
1498         of the chrec has no evolution in that loop.
1499         * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
1500
1501 2007-06-19  Bob Wilson  <bob.wilson@acm.org>
1502
1503         * config/xtensa/xtensa.c: Include "df.h".
1504         (xtensa_builtin_saveregs): Use adjust_address instead of
1505         change_address.
1506         (xtensa_va_start): Invoke make_tree with sizetype for
1507         expand_builtin_saveregs and then convert the result to a pointer.
1508         Use POINTER_PLUS_EXPR.  Use size_int instead of build_int_cst.
1509         (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
1510         Subtract argument size from index value as integers and then use
1511         POINTER_PLUS_EXPR to add the result to the array address.
1512         
1513 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1514
1515         PR target/32335
1516         * config/m32c/m32c.c: Include dataflow header file.
1517         (m32c_emit_prologue): Adjust for prologue insn change.
1518         * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
1519         once inside a PARALLEL. Assume frame size passed in operand 0
1520         includes space to save the fb register.
1521         (prologue_enter_24): Likewise.
1522         (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
1523
1524 2007-06-19  David Daney  <ddaney@avtrex.com
1525
1526         PR target/32313
1527         * config/mips/mips.md (cprestore): Mark $gp as used.
1528
1529 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1530
1531         PR target/32369
1532         * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
1533         (frv_ifcvt_modify_insn): Likewise.
1534
1535 2007-06-19  Richard Guenther  <rguenther@suse.de>
1536
1537         * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
1538         only handle positive offsets that fit in a HOST_WIDE_INT.
1539
1540 2007-06-19  Uros Bizjak  <ubizjak@gmail.com>
1541
1542         * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
1543         result of rsqrt insn for zero input argument to avoid NaN.
1544
1545 2007-06-19  Richard Guenther  <rguenther@suse.de>
1546
1547         PR middle-end/31950
1548         * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
1549
1550 2007-06-19  Jakub Jelinek  <jakub@redhat.com>
1551
1552         PR tree-optimization/32353
1553         * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
1554
1555 2007-06-19  Nick Clifton  <nickc@redhat.com>
1556
1557         * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
1558
1559 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
1560
1561         PR target/32389
1562         * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
1563         * config/i386/i386.c (assign_386_stack_local): Assert that
1564         SLOT_VIRTUAL is valid only before virtual regs are instantiated.
1565         (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
1566         Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
1567         * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
1568
1569 2007-06-18  Steve Ellcey  <sje@cup.hp.com>
1570
1571         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
1572
1573 2007-06-18  Seongbae Park  <seongbae.park@gmail.com>
1574
1575         PR rtl-optimization/32321
1576         * gcse.c (replace_store_insn): Update the note before
1577         calling emit_insn_after.
1578
1579 2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>
1580
1581         PR middle-end/32355
1582         * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
1583         cse_main.
1584         * df-problems.c (df_note_bb_compute): Fix dumping info.
1585         
1586 2007-06-18  Kazu Hirata  <kazu@codesourcery.com>
1587
1588         * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
1589         insn with emit_jump_insn.
1590
1591 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
1592
1593         PR tree-optimization/32383
1594         * targhooks.c (default_builtin_reciprocal): Add new bool argument.
1595         * targhooks.h (default_builtin_reciprocal): Update prototype.
1596         * target.h (struct gcc_target): Update builtin_reciprocal.
1597         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
1598         * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
1599         where arg1 is not SSA_NAME.  Pass true to targetm.builtin_reciprocal
1600         when fndecl is in BUILT_IN_MD class.
1601         (execute_convert_to_rsqrt): Ditto.
1602
1603         * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
1604         argument.  Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
1605         Convert BUILT_IN_SQRTF code only  when md_fn is false.
1606
1607 2007-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1608
1609         * bt-load.c (move_btr_def): Fix the order of arguments
1610         to validate_replace_rtx.
1611
1612 2007-06-18  Nathan Sidwell  <nathan@codesourcery.com>
1613
1614         * config/m68k/m68k-devices.def: Add 54450..54455.
1615
1616 2007-06-17  Uros Bizjak  <ubizjak@gmail.com>
1617
1618         PR rtl-optimization/32366
1619         * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
1620         FLOAT_EXTEND]: Prevent non-scalar modes from entering
1621         significand_size.
1622
1623 2007-06-17  Kenneth Zadeck <zadeck@naturalbridge.com>
1624
1625         PR middle-end/32349
1626         * modulo-sched (generate_reg_moves): Added rescan parameter and if
1627         this is true, rescan insn being modified.
1628         (sms_schedule): Added rescan parameter.
1629         (rest_of_handle_sms): Moved freeing of dominance info to before
1630         getting out of cfg_layout.
1631         
1632 2007-06-17  Nathan Sidwell  <nathan@codesourcery.com>
1633
1634         * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
1635         * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
1636         appropriate.
1637
1638         * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
1639         FL_CF_EMAC from the entry for isac.
1640
1641         * config/m68k/predicates.md (const_call_operand): Adjust comment.
1642         (const_sibcall_operand): New.
1643         (sibcall_operand): Use it.
1644         * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
1645         (m68k_isas): ISAC does not imply FPU or EMAC.
1646         (override_options): Add ISA_C logic for symbolic jump & call.
1647
1648 2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
1649
1650         * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
1651         return mode from the builtin itself.
1652         (sparc_fold_builtin): Fix cast of zero constant.
1653
1654 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
1655
1656         * targhooks.c (default_builtin_reciprocal): New default target hook.
1657         * targhooks.h (default_builtin_reciprocal): Add prototype.
1658         * hooks.c (hook_tree_tree_bool_null): Remove hook.
1659         * hooks.h (hook_tree_tree_bool_null): Remove prototype.
1660         * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
1661         default_builtin_reciprocal.
1662
1663 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
1664
1665         PR middle-end/31723
1666         * hooks.c (hook_tree_tree_bool_null): New hook.
1667         * hooks.h (hook_tree_tree_bool_null): Add prototype.
1668         * tree-pass.h (pass_convert_to_rsqrt): Declare.
1669         * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
1670         * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
1671         and convert it to reciprocal a*rfunc(b).
1672         (execute_convert_to_rsqrt): New function.
1673         (gate_convert_to_rsqrt): New function.
1674         (pass_convert_to_rsqrt): New pass definition.
1675         * target.h (struct gcc_target): Add builtin_reciprocal.
1676         * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
1677         (TARGET_INITIALIZER): Initialize builtin_reciprocal with
1678         TARGET_BUILTIN_RECIPROCAL.
1679         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
1680
1681         * config/i386/i386.h (TARGET_RECIP): New define.
1682         * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
1683         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1684         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1685         and not optimizing for size.
1686         (*rcpsf2_sse): New insn pattern.
1687         (*rsqrtsf2_sse): Ditto.
1688         (rsqrtsf2): New expander.  Expand by calling ix86_emit_swsqrtsf
1689         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1690         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1691         and not optimizing for size.
1692         (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
1693         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1694         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1695         and not optimizing for size.
1696         * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
1697         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1698         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1699         and not optimizing for size.
1700         (*sse_rsqrtv4sf2): Do not export.
1701         (sqrtv4sf2): Ditto.
1702         (sse_rsqrtv4sf2): New expander.  Expand by calling ix86_emit_swsqrtsf
1703         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1704         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1705         and not optimizing for size.
1706         (sqrtv4sf2): Ditto.
1707         * config/i386/i386.opt (mrecip): New option.
1708         * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
1709         (ix86_emit_swsqrtsf): Ditto.
1710         * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
1711         (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
1712         builtin definition.
1713         (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
1714         ix86_expand_unop1_builtin.
1715         (ix86_emit_swdivsf): New function.
1716         (ix86_emit_swsqrtsf): Ditto.
1717         (ix86_builtin_reciprocal): New function.
1718         (TARGET_BUILTIN_RECIPROCAL): Use it.
1719         (ix86_vectorize_builtin_conversion): Rename from
1720         ix86_builtin_conversion.
1721         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
1722         * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
1723         "i386 and x86_64 Options" section.
1724         (Intel 386 and AMD x86_64 Options): Document -mrecip.
1725
1726 2007-06-15  Andrew Pinski <andrew_pinski@playstation.sony.com>
1727             Zdenek Dvorak <dvorakz@suse.cz>
1728             Richard Guenther  <rguenther@suse.de>
1729             Kaz Kojima  <kkojima@gcc.gnu.org>
1730
1731         * tree-vrp.c (compare_values_warnv): Convert val2 to
1732         the type of val1.
1733         (extract_range_from_assert): Create
1734         POINTER_PLUS_EXPR for pointer types.
1735         (extract_range_from_binary_expr): Handle
1736         only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
1737         for pointer types.
1738         * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
1739         * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
1740         POINTER_PLUS_EXPR as PLUS_EXPR.
1741         (number_of_iterations_lt_to_ne):
1742         For pointer types, use sizetype when
1743         creating MINUS_EXPR/PLUS_EXPRs.
1744         (assert_loop_rolls_lt): For pointer types, use sizetype when
1745         creating MINUS_EXPR/PLUS_EXPRs.
1746         (number_of_iterations_le): Likewise.
1747         (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
1748         (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
1749         like PLUS_EXPR and MINUS_EXPR.
1750         * tree-pretty-print.c (dump_generic_node): Handle
1751         POINTER_PLUS_EXPR.
1752         (op_prio): Likewise.
1753         (op_symbol_1): Likewise.
1754         * optabs.c (optab_for_tree_code): Likewise.
1755         * tree-ssa-loop-manip.c (create_iv): Handle pointer base
1756         specially.
1757         * tree-tailcall.c (process_assignment): Mention
1758         POINTER_PLUS_EXPR in a TODO comment.
1759         * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or 
1760         MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
1761         not used with a pointer and an integer type.
1762         * tree-scalar-evolution.c (add_to_evolution_1): Convert the
1763         increment using chrec_convert_rhs instead of chrec_convert.
1764         (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
1765         PLUS_EXPR except for the right hand side's type will be
1766         sizetype.
1767         (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
1768         (fold_used_pointer_cast): Kill.
1769         (pointer_offset_p): Kill.
1770         (fold_used_pointer): Kill.
1771         (pointer_used_p): Kill.
1772         (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
1773         call fold_used_pointer.
1774         (instantiate_parameters_1): Convert the increment
1775         using chrec_convert_rhs instead of chrec_convert.
1776         Handle POINTER_PLUS_EXPR as PLUS_EXPR.
1777         * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
1778         instead of PLUS_EXPR.
1779         (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
1780         PLUS_EXPR for pointers.
1781         (std_gimplify_va_arg_expr): Likewise.
1782         (fold_builtin_memory_op): Likewise.
1783         (fold_builtin_strstr): Likewise.
1784         (fold_builtin_strchr): Likewise.
1785         (fold_builtin_strrchr): Likewise.
1786         (fold_builtin_strpbrk): Likewise.
1787         (expand_builtin_memory_chk): Likewise.
1788         (fold_builtin_memory_chk): Likewise.
1789         (std_expand_builtin_va_start): Use
1790         sizetype for the call to make_tree and then convert
1791         to the pointer type.
1792         (fold_builtin_memchr): Use POINTER_PLUS_EXPR
1793         instead of PLUS_EXPR for adding to a pointer.
1794         (std_gimplify_va_arg_expr): Use fold_build2 for
1795         the creating of POINTER_PLUS_EXPR.  For the BIT_AND_EXPR, cast
1796         the operands to sizetype first and then cast the BIT_AND_EXPR
1797         back to the pointer type.
1798         * fold-const.c (build_range_check): Handle pointer types
1799         specially.
1800         (extract_array_ref): Look for POINTER_PLUS_EXPR instead
1801         of PLUS_EXPR's. Make sure the offset is converted to
1802         sizetype.
1803         (try_move_mult_to_index): Strip the NOPs from the offset.
1804         Remove code argument and replace all uses with PLUS_EXPR.
1805         (fold_to_nonsharp_ineq_using_bound): Handle pointer types
1806         specially. Don't use a pointer type for MINUS_EXPR.
1807         (fold_unary): Handle for (T1)(X op Y),
1808         only p+ as that is the only as that can be handled for
1809         binary operators now.
1810         (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
1811         POINTER_PLUS_EXPR.
1812         <case PLUS_EXPR>: Add folding of PTR+INT into
1813         PTR p+ INT.
1814         Don't call try_move_mult_to_index.
1815         <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
1816         into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
1817         (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
1818         Don't call try_move_mult_to_index.
1819         (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
1820         (tree_expr_nonzero_p): Likewise.
1821         (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
1822         of PLUS_EXPR for the complex expression folding.
1823         * tree-chrec.c (chrec_fold_plus_poly_poly): If the
1824         first chrec is a pointer type, then the second should
1825         be sizetype and not the first's type.
1826         For POINTER_PLUS_EXPR, use a different right hand side type.
1827         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
1828         (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
1829         different right hand side type.
1830         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
1831         (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
1832         instead of PLUS_EXPR.
1833         When either operand is zero, convert the other operand.
1834         (chrec_apply): Use chrec_convert_rhs
1835         on the argument x instead of chrec_convert.
1836         (reset_evolution_in_loop): For pointer types, the new_evol
1837         should be sizetype.
1838         (convert_affine_scev): For POINTER_PLUS_EXPR, use a
1839         different right hand side type.
1840         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
1841         (chrec_convert_rhs): New function.
1842         (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
1843         different right hand side type.
1844         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
1845         * tree-chrec.h (chrec_convert_rhs): New prototype.
1846         (build_polynomial_chrec): For pointer types, the right hand
1847         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
1848         POINTER_PLUS_EXPR instead of PLUS_EXPR's.
1849         Remove subtraction case as it is always addition now.
1850         Make sure the offset is converted to sizetype.
1851         (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
1852         Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
1853         * tree-ssa-loop-ivopts.c (determine_base_object): Abort for 
1854         PLUS_EXPR in pointer type.
1855         Handle POINTER_PLUS_EXPR.
1856         (tree_to_aff_combination): Likewise.
1857         (force_expr_to_var_cost): Likewise.
1858         (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
1859         instead of PLUS_EXPR for pointers.
1860         * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
1861         instead of PLUS_EXPR of pointer types.
1862         * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
1863         as PLUS_EXPR.
1864         (check_va_list_escapes): Likewise.
1865         (check_all_va_list_escapes): Likewise.
1866         * dwarf2out.c (loc_descriptor_from_tree_1):
1867         Handle POINT_PLUS_EXPR as a PLUS_EXPR.
1868         * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
1869         (string_constant): Likewise.
1870         * tree-ssa-address.c (tree_mem_ref_addr): When adding
1871         the offset to the base, use POINTER_PLUS_EXPR.
1872         (add_to_parts): Convert the index to sizetype.
1873         (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
1874         * matrix-reorg.c (collect_data_for_malloc_call): Stmt
1875         will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
1876         Offset only holds something for PLUS_EXPR.
1877         (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
1878         a PLUS_EXPR.
1879         (analyze_transpose): POINTER_PLUS_EXPR will only show up now
1880         and not PLUS_EXPR.
1881         (analyze_accesses_for_modify_stmt): Likewise.
1882         Remove comment about the type being integral type as it is
1883         wrong now.
1884         (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
1885         PLUS_EXPR.
1886         (transform_access_sites): POINTER_PLUS_EXPR will only show up now
1887         and not PLUS_EXPR.
1888         Correct the type which the artimentic is done in (is now
1889         sizetype).
1890         Reindent one loop.
1891         * tree-data-ref.c (split_constant_offset): Handle
1892         POINTER_PLUS_EXPR
1893         * tree-affine.c (tree_to_aff_combination): Likewise.
1894         * c-typeck.c (build_unary_op): For pointers create the increment
1895         as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
1896         for pointers.
1897         * gimplify.c (gimplify_self_mod_expr): Create a
1898         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
1899         (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
1900         * tree.def (POINTER_PLUS_EXPR): New tree code.
1901         * tree-predcom.c (ref_at_iteration): If we have a pointer
1902         type do the multiplication in sizetype.
1903         * tree-mudflap.c (mf_xform_derefs_1): Create a
1904         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
1905         * tree-ssa-forwprop.c 
1906         (forward_propagate_addr_into_variable_array_index):
1907         Don't expect there to be a cast for the index as that
1908         does not exist anymore.
1909         (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
1910         instead of PLUS_EXPR.
1911         Don't check for the first operand of the POINTER_PLUS_EXPR
1912         was the index as it cannot be.
1913         Call forward_propagate_addr_into_variable_array_index with
1914         the SSA_NAME instead of the statement.
1915         * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
1916         (compare_constant): Likewise.
1917         (copy_constant): Likewise.
1918         (compute_reloc_for_constant): Likewise.
1919         (output_addressed_constants): Likewise.
1920         (initializer_constant_valid_p): Likewise.
1921         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1922         Convert the MIN/MAX of the inner type to the outer
1923         type before comparing them.
1924         * tree-ssa-loop-prefetch.c (idx_analyze_ref):  Handle
1925         POINTER_PLUS_EXPR instead of PLUS_EXPR.
1926         (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
1927         of PLUS_EXPR for pointers.
1928         * tree-inline.c (estimate_num_insns_1): Handle
1929         POINTER_PLUS_EXPR.
1930         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): 
1931         Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
1932         (bump_vector_ptr): Create a POINTER_PLUS_EXPR
1933         instead of PLUS_EXPR for the pointer increment statement.
1934         (vect_update_ivs_after_vectorizer): For pointer types, create
1935         POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
1936         MULT_EXPR in sizetype.
1937         (vect_gen_niters_for_prolog_loop): Add a cast when creating
1938         byte_misalign.
1939         * tree-object-size.c (plus_expr_object_size): Handle
1940         POINTER_PLUS_EXPR instead of PLUS_EXPR.  Removing all the extra
1941         code which is trying to figure out which side is a pointer and 
1942         is the index.
1943         (check_for_plus_in_loops_1): Likewise.
1944         (check_for_plus_in_loops): Likewise.
1945         * c-common.c (pointer_int_sum): Create a
1946         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
1947         * tree-ssa-structalias.c (handle_ptr_arith): Handle
1948         only POINTER_PLUS_EXPR.  Removing all the extra
1949         code which is trying to figure out which side is a pointer and 
1950         is the index.
1951         * tree-cfg.c (verify_expr): Add extra checking for pointers and
1952         PLUS_EXPR and MINUS_EXPR.
1953         Also add checking to make sure the operands of POINTER_PLUS_EXPR
1954         are correct.
1955         * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
1956         with make_tree, instead of a pointer type.
1957         * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
1958         for pointers instead of PLUS_EXPR.
1959         (s390_gimplify_va_arg): Likewise.
1960         * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
1961         instead of PLUS_EXPR when doing addition on pointer
1962         types.  Use sizetype for the second operand.
1963         (spu_gimplify_va_arg_expr): Likewise.
1964         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use 
1965         POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
1966         a pointer.  Don't create a BIT_AND_EXPR for pointer types.
1967         * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
1968         for the pointer addition and also use size_int/sizetype
1969         for the offset.
1970         (ix86_gimplify_va_arg): Likewise.
1971         Perform BIT_AND_EXPR on sizetype arguments.
1972         * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
1973         and convert its result to a pointer type.  Use POINTER_PLUS_EXPR
1974         for the pointer additions and also use size_int for the offsets.
1975         (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
1976         additions and also use size_int for the offsets.  Perform
1977         BIT_AND_EXPR on sizetype arguments.
1978         * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
1979         POINTER_PLUS_EXPR for pointers and create the
1980         BIT_AND_EXPR in sizetype.
1981         * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
1982         instead of PLUS_EXPR for pointer addition.
1983         (rs6000_va_start): Likewise.
1984         Also use sizetype for the offset.
1985         * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
1986         as PLUS_EXPR/MINUS_EXPR.
1987         (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
1988         PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
1989         Don't use BIT_AND_EXPR on a pointer type, convert the
1990         expression to sizetype first.
1991         * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
1992         for pointers.
1993         (mips_gimplify_va_arg_expr): Likewise.
1994         Don't create BIT_AND_EXPR in a pointer type.
1995
1996 2007-06-15  Eric Christopher  <echristo@apple.com>
1997
1998         * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
1999         (x86_64-*-darwin*): Ditto.
2000         * config/i386/darwin.h (CRTEND_SPEC): New. Add support
2001         for above.
2002
2003 2007-06-15  Matthew Wilcox <matthew@wil.cx>
2004
2005         * doc/extend.texi: Document behavior of __attribute__((aligned))
2006         on typedefs.
2007
2008 2007-06-15  Mark Mitchell  <mark@codesourcery.com>
2009
2010         * rtlanal.c (note_stores): Improve documentation.
2011
2012 2007-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2013
2014         * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
2015         LOCAL_LABEL_PREFIX): Delete.
2016         * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
2017         (bfin_internal_label): Delete.
2018
2019 2007-06-15  Uros Bizjak  <ubizjak@gmail.com>
2020
2021         * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
2022         define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
2023         otherwise define to LIBGCC2_TF_CEXT.
2024         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
2025         (LIBGCC_TF_CEXT): Ditto.
2026         (TF_SIZE): Ditto.
2027
2028 2007-06-14  Seongbae Park  <seongbae.park@gmail.com>
2029
2030         PR rtl-optimization/32339
2031         * df-scan.c (df_uses_record): Don't modify flags but just add to
2032         it for df_ref_record.
2033
2034 2007-06-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2035
2036         * tree-mudflap.c: Fix whitespace issues.
2037
2038 2007-06-15  Kazu Hirata  <kazu@codesourcery.com>
2039
2040         * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
2041
2042 2007-06-14  Eric Christopher  <echristo@apple.com>
2043
2044         * config/i386/sse.md (movdi_to_sse): Rewrite body.
2045         (movv4sf): Use gcc_unreachable instead of abort.
2046
2047 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
2048
2049         PR target/32268
2050         * config/i386/sfp-machine.h (CMPtype): New define.
2051         (mach stubs): Use CMPtype instead of int as a return type.
2052
2053 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
2054
2055         * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
2056         config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
2057         config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
2058         config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
2059         config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
2060         config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
2061         config/soft-fp/soft-fp.h: Update from glibc CVS.
2062
2063 2007-06-14  Bernd Schmidt  <bernd.schmidt@analog.com>
2064
2065         * config/bfin/uclinux.h (MFWRAP_SPEC): New.
2066
2067 2007-06-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2068
2069         PR target/32341
2070         * config/v850/v850.c: Include dataflow header file.
2071         (substitute_ep_register): Fix typo.
2072
2073 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
2074
2075         * configure.ac: Fix earlier checkin.
2076         * configure: Regenerated.
2077
2078 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
2079
2080         * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
2081         * aclocal.m4: Regenerate.
2082         * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
2083         ACX_PROG_CC_WARNINGS_ARE_ERRORS,
2084         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
2085         * configure: Regenerate.
2086         * Makefile.in (LOOSE_WARN): Subst loose_warn.
2087
2088         * Makefile.in (quickstrap): Build libgcc too.
2089
2090 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
2091
2092         * configure.ac: Add --enable-checking=df.  Explicitly mention that
2093         the variables are initialized as for "release".
2094         * df-core.c: Use it.
2095         * configure: Regenerate.
2096         * config.in: Regenerate.
2097
2098 2007-06-14  Bob Wilson  <bob.wilson@acm.org>
2099
2100         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
2101         validate_replace_rtx instead of replace_rtx.
2102         (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
2103
2104 2007-06-14  Danny Smith  <dannysmith@users.sourceforge.net>
2105
2106         * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
2107         (DWARF2_UNWIND_INFO): Override default if configured with
2108         SJLJ EH disabled.
2109         * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
2110         (ENDFILE_SPEC): Add crtend.o.
2111         * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
2112         (ENDFILE_SPEC): Add crtend.o.
2113         (TARGET_USE_JCR_SECTION): Define.
2114         (MD_UNWIND_SUPPORT): Define for 32-bit target.
2115
2116         * config/i386/cygming-crtbegin.c: New file.
2117         * config/i386/cygming-crtend.c: New file.
2118
2119 2007-06-14  Pascal Obry Pascal Obry  <obry@adacore.com>
2120
2121         * config/i386/w32-unwind.h: New file.
2122
2123 2007-06-13  Eric Christopher  <echristo@apple.com>
2124
2125         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
2126         the user set a value below STACK_BOUNDARY.
2127
2128 2007-06-13  Thiemo Seufer  <ths@networkno.de>
2129
2130         * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
2131         imply -lpthread for -pthread.
2132
2133 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
2134
2135         * basic-block.h: Remove the prototype for
2136         free_basic_block_vars.
2137         * cfglayout.h: Remove the prototype for
2138         insn_locators_initialize.
2139         * tree.h: Remove the prototype for emit_line_note.
2140
2141         * tree-ssa-pre.c (mergephitemp): Remove.
2142         (init_pre): Don't use mergephitemp.
2143
2144 2007-06-13  Eric Christopher  <echristo@apple.com>
2145
2146         * config/i386/i386.c (override_options): If we've specified
2147         an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
2148
2149 2007-06-13  Bob Wilson  <bob.wilson@acm.org>
2150
2151         * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
2152         is defined.
2153
2154 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2155
2156         * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
2157         * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
2158         (eh_store_handler): New pattern.
2159         (eh_return): Emit it instead of a plain move.
2160
2161 2007-06-13  Uros Bizjak  <ubizjak@gmail.com>
2162
2163         * config/i386/i386.c (ix86_init_mmx_sse_builtins)
2164         [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
2165         [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
2166         def_builtin_const.
2167
2168 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2169
2170         * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
2171         (find_next_insn_start, find_load): New functions.
2172         (bfin_reorg): Use them to deal with the fact that parallel insns are
2173         no longer represented as a SEQUENCE.
2174
2175 2007-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2176
2177         * config/sparc/sparc.c (sparc_override_options): Initialize
2178         fpu mask correctly.
2179
2180 2007-06-13  Dave Korn  <dave.korn@artimi.com>
2181
2182         * config/i386/i386.c (ix86_eax_live_at_start_p): Use
2183         df_get_live_out.
2184
2185 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
2186
2187         * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
2188         config/sh/divcost-analysis, dbgcnt.def, df-core.c,
2189         df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
2190         tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
2191         tree-vect-transform.c: Fix comment typos.  Follow spelling
2192         conventions.
2193
2194 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
2195
2196        * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
2197        to the exit block use set.
2198        (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring". 
2199        * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
2200        * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
2201
2202 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
2203
2204         * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
2205         * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
2206         to indicate an error.
2207         (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters):
2208         New functions.
2209         (dbg_cnt_process_opt): Print an error on a bad argument.
2210         * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
2211         * common.opt (-fdbg-cnt-list): New.
2212         * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
2213
2214 2007-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2215
2216         * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
2217         flag on ref-all pointers.
2218
2219 2007-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2220
2221         PR middle-end/31579
2222         * expr.c (expand_expr_addr_expr_1): Call expand_expr
2223         for the offset with the modifier as EXPAND_INITIALIZER
2224         if the modifier is EXPAND_INITIALIZER.
2225         (expand_expr_real_1 <case INTEGER_CST>): Don't force to
2226         a register if we had an overflow.
2227
2228 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2229
2230         * real.c (real_isfinite): New.
2231         (real_sqrt): Use it.
2232         * real.h (real_isfinite): New.
2233         * builtins.c: Use it.
2234
2235 2007-06-12  Ian Lance Taylor  <iant@google.com>
2236             Daniel Berlin  <dberlin@dberlin.org>
2237
2238         PR libstdc++/29286
2239         * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
2240         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
2241         (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
2242         (DECL_NO_TBAA_P): Define.
2243         (struct tree_decl_common): Add no_tbaa_flag field.
2244         * tree-ssa-structalias.c (struct variable_info): Add
2245         no_tbaa_pruning field.
2246         (new_var_info): Initialize no_tbaa_pruning field.
2247         (unify_nodes): Copy no_tbaa_pruning field.
2248         (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
2249         (dump_solution_for_var): Print no_tbaa_pruning flag.
2250         (set_uids_in_ptset): Add no_tbaa_pruning parameter.  Change all
2251         callers.
2252         (compute_tbaa_pruning): New static function.
2253         (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
2254         Call compute_tbaa_pruning.
2255         * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
2256         * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
2257         * gimple-low.c (lower_stmt): Likewise.
2258         * tree-gimple.c (is_gimple_stmt): Likewise.
2259         * tree-ssa-operands.c (get_expr_operands): Likewise.
2260         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2261         * tree-inline.c (estimate_num_insns_1): Likewise.
2262         (copy_result_decl_to_var): Likewise.
2263         * expr.c (expand_expr_real_1): Likewise.
2264         * tree-pretty-print.c (dump_generic_node): Likewise.
2265         * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
2266         * omp-low.c (omp_copy_decl_2): Likewise.
2267         * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
2268         * doc/c-tree.texi (Expression trees): Document
2269         CHANGE_DYNAMIC_TYPE_EXPR.
2270
2271 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2272
2273         * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
2274         with !HONOR_NANS and !HONOR_INFINITIES.
2275         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2276
2277 2007-06-12  Tristan Gingold  <gingold@adacore.com>
2278
2279         * gcov.c: Comments updated.
2280         (source_info): Add file_time field.
2281         (source_index): New variable.
2282         (mutiple_files): New variable.
2283         (generate_results): New function extracted from process_file.
2284         (process_file): Save and restore chain of functions, generate
2285         results and free structures only if not merging results.
2286         (release_structures): File names are now freed in create_file_names
2287         (create_file_names): Free previous file names.
2288         (find_source): File date is now read here and modifications in
2289         source files is checked here.
2290         (read_graph_file): Only reverse order of functions for the current
2291         object file.
2292         (make_gcov_file_name): Do not generate long names if input_name is
2293         NULL.
2294         (output_lines): If merging results do not display graph, data and
2295         runs informations.
2296         Checking source file modification is done in find_source.
2297
2298         * doc/gcov.texi: Append an s to sourcefile.
2299
2300 2007-06-12  Bernd Schmidt  <bernd.schmidt@analog.com>
2301
2302         * config/bfin/bfin.md (UNSPEC_NOP): New constant.
2303         (forced_nop): New pattern.
2304         * config/bfin/bfin.c: Include "df.h".
2305         (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
2306         (bfin_discover_loop): Use df_get_live_in instead of
2307         global_live_at_start.
2308         (bfin_reorder_loops): Pass 0 to cfg_layout_initialize.  Call
2309         df_analyze when done.
2310         (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
2311         the insns.  Use QImode for the final insn in a bundle.  Call
2312         df_insn_rescan on generated NOPs; use gen_forced_nop instead of
2313         gen_nop.
2314         (reorder_var_tracking_notes): New function.
2315         (bfin_reorg): Pass no argument to split_all_insns.  Don't call
2316         update_life_info.  Call df_analyze after scheduling and bundle
2317         generation.  Call reorder_var_tracking_notes if generating these
2318         notes.  Call df_finish_pass at the end.
2319
2320 2007-06-12  Dirk Mueller  <dmueller@suse.de>
2321
2322         * optabs.c (debug_optab_libfuncs): fix gcc_assert to
2323         a comparison, not an assignment.
2324
2325 2007-06-12  Olivier Hainque  <hainque@adacore.com>
2326
2327         * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
2328         Request walking the subtrees only, leaving the current is_lhs/val_only
2329         untouched.
2330         (convert_non_local_reference): Likewise.
2331
2332 2007-06-12  Nathan Sidwell  <nathan@codesourcery.com>
2333
2334         * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
2335
2336 2007-06-12  Richard Guenther  <rguenther@suse.de>
2337
2338         PR tree-optimization/15353
2339         PR tree-optimization/31657
2340         * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
2341         * timevar.def: Add TV_TREE_IFCOMBINE.
2342         * tree-pass.h (pass_tree_ifcombine): Declare.
2343         * tree-ssa-ifcombine.c: New file.
2344         * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
2345         * tree-flow.h (blocks_in_phiopt_order): Declare.
2346         * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
2347         (tree-ssa-ifcombine.o): New dependencies.
2348
2349 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
2350
2351         PR rtl-optimization/32293
2352         * combine.c (simplify_if_then_else): Truncate return from
2353         nonzero_bits() to correct mode.
2354
2355 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
2356
2357         * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
2358         into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
2359
2360 2007-06-11  Diego Novillo  <dnovillo@google.com>
2361
2362         * Makefile.in (reload1.o-warn): Remove.
2363
2364 2007-06-11  Seongbae Park <seongbae.park@gmail.com>
2365
2366         * combine.c (subst): Use reg_overlap_mentioned_p
2367         instead of comparing register numbers directly.
2368
2369 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2370
2371         * reload1.c (mark_home_live_1): Use the mode parameter.
2372
2373 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2374
2375         * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
2376         df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
2377         word "deferred".
2378         * df-core.c: Ditto.
2379
2380 2007-06-11  Daniel Berlin  <dberlin@dberlin.org>
2381
2382         * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
2383
2384 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
2385
2386         * config/i386/i386.md ("*movtf_internal): Penalize moves to and
2387         from integer registers.
2388         (FP mode splitters): Handle TFmode.
2389
2390 2007-06-11  Eric Botcazou  <ebotcazou@adacore.com>
2391
2392         * tree-ssa-structalias.c (find_what_p_points_to): Return false
2393         for ref-all pointers that point-to anything.
2394
2395 2007-06-11  Joseph Myers  <joseph@codesourcery.com>
2396
2397         * config/arm/arm.c (arm_output_dwarf_dtprel,
2398         TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
2399
2400 2007-06-11  Bernd Schmidt  <bernd.schmidt@analog.com>
2401
2402         * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
2403         movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
2404         to memory moves.
2405
2406 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
2407
2408         * gcc/tree.c (signed_or_unsigned_type_for): New.
2409         (unsigned_type_for): Use signed_or_unsigned_type_for.
2410         (signed_type_for): Use signed_or_unsigned_type_for.
2411         * gcc/tree.h (signed_or_unsigned_type_for): New.
2412         (get_signed_or_unsigned_type): Remove.
2413         * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
2414         lang_hooks.types.signed_type
2415         (size_diffop): Likewise.
2416         (all_ones_mask_p): Likewise.
2417         (build_range_check): Likewise.
2418         (fold_cond_expr_with_comparison): Likewise.
2419         (fold_cond_expr_with_comparison): Likewise.
2420         (unextend): Likewise.
2421         (extract_muldiv_1): Likewise.
2422         (fold_single_bit_test_into_sign_test): Likewise.
2423         (fold_binary): Likewise.
2424         (fold_ternary): Likewise.
2425         (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
2426         instead of get_signed_or_unsigned_type.
2427         * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
2428         (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
2429         * gcc/expr.c (signed_or_unsigned_type_for): Use
2430         signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
2431         * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
2432         (lhd_signed_or_unsigned_type): Remove.
2433         * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
2434         signed_or_unsigned_type.
2435         (lhd_signed_or_unsigned_type): Remove.
2436         * gcc/expmed.c (make_tree): Use signed_type_for instead of
2437         lang_hooks.types.signed_type.
2438         * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
2439         c_common_signed_type instead of lang_hooks.types.signed_type.
2440         (c_common_unsigned_type): New.
2441         (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
2442         (shorten_compare): Use c_common_unsigned_type instead of
2443         c_common_signed_or_unsigned_type.
2444         (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
2445         unsigned_type_for.
2446         * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
2447         lang_hooks.types.signed_type.
2448         * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
2449         (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
2450         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
2451         * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
2452         instead of unsigned_type_for.
2453         * gcc/c-decl.c (groakdeclarator): Likewise.
2454         * gcc/c-typeck.c (convert_for_assignment): Likewise.
2455         * gcc/c-common.h (c_common_unsigned_type): New.
2456
2457 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
2458
2459         PR target/32280
2460         * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
2461         * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
2462
2463 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
2464
2465         PR middle-end/32279
2466         * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
2467         into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
2468
2469 2007-06-10  Jan Sjodin  <jan.sjodin@amd.com>
2470             Sebastian Pop  <sebpop@gmail.com>
2471
2472         * lambda-code.c (remove_iv): New.
2473         (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
2474
2475 2007-06-10  Zdenek Dvorak  <dvorakz@suse.cz>
2476
2477         * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
2478         * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
2479         * tree-ssa-loop-prefetch.c: Include optabs.h.
2480         (FENCE_FOLLOWING_MOVNT): New macro.
2481         (struct mem_ref): Add independent_p and storent_p fields.
2482         (record_ref): Initalize the new fields.
2483         (gather_memory_references_ref): Return true if the reference
2484         could be analysed.
2485         (gather_memory_references): Check whether all memory accesses
2486         in loop were recorded.
2487         (should_issue_prefetch_p): Return false for nontemporal stores.
2488         (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
2489         may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
2490         (determine_loop_nest_reuse): Detect independent memory references.
2491         (loop_prefetch_arrays): Call mark_nontemporal_stores.
2492         * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
2493         * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
2494         * config/i386/i386.h (x86_mfence): Declare.
2495         (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
2496         * config/i386/i386.c (x86_mfence): New variable.
2497         (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
2498
2499         * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
2500         * optabs.c (init_optabs): Initialize storent_optab.
2501         * optabs.h (enum optab_index): Add OTI_storent.
2502         (storent_optab): Declare.
2503         * genopinit.c (optabs): Add initialization for storent_optab.
2504         * tree.h (MOVE_NONTEMPORAL): New macro.
2505         * expr.c (expand_assignment, store_expr, store_constructor_field,
2506         store_constructor, store_field, expand_expr_real_1): Propagate
2507         nontemporality of the expanded store.
2508         (emit_storent_insn): New function.
2509         * expr.h (expand_assignment, store_expr): Declaration changed.
2510         * function.c (assign_parm_setup_reg): Pass false as nontemporality
2511         to expand_assignment.
2512         * stmt.c (expand_asm_expr): Ditto.
2513         * calls.c (initialize_argument_information): Pass false as
2514         nontemporality to store_expr.
2515         * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
2516         storentsi): New.
2517
2518 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
2519
2520         * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
2521         parameter, use it.
2522         (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
2523
2524 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
2525
2526         * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
2527         and allow DECL_P here.
2528
2529 2007-06-09  Zdenek Dvorak  <dvorakz@suse.cz>
2530
2531         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
2532         follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
2533         track of the size of the expression.
2534         * cfghooks.c (merge_blocks): Remove block from loops structure only
2535         after call of the merge_blocks hook.
2536
2537 2007-06-09  Tom Tromey  <tromey@redhat.com>
2538
2539         * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
2540         (deprecated_state): Removed.
2541         (start_decl): Update.
2542         (enum deprecated_states): Moved earlier.
2543         (groktypename): Update.
2544         (push_parm_decl): Likewise.
2545         (grokfield): Likewise.
2546         (start_function): Likewise.
2547
2548 2007-06-09  Ian Lance Taylor  <iant@google.com>
2549
2550         PR tree-optimization/32169
2551         * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
2552         CONVERT_EXPR, check whether min and max both converted to an
2553         overflow infinity representation.
2554
2555 2007-06-08  Eric Botcazou  <ebotcazou@adacore.com>
2556
2557         * reload1.c (fixup_abnormal_edges): Clear bb field for insns
2558         not inserted on the edge.
2559
2560 2007-06-08  Bob Wilson  <bob.wilson@acm.org>
2561
2562         * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
2563         instructions if they are supported.
2564         (__divsi3, __umodsi3, __modsi3): Likewise.
2565         (__ashldi3, __ashrdi3, __lshrdi3): New.
2566         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
2567
2568 2007-06-08  Harsha Jagasia <harsha.jagasia@amd.com>
2569             Tony Linthicum <tony.linthicum@amd.com>
2570
2571         * doc/extend.texi: Add fvect-cost-model flag.
2572         * common.opt (fvect-cost-model): New flag.
2573         * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
2574         cost fields in stmt_vec_info struct for STMT.
2575         * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
2576         fields in stmt_vec_info struct and access functions for the same.
2577         (TARG_COND_BRANCH_COST): Define cost of conditional branch.
2578         (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
2579         load, store and vector to scalar operation.
2580         (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
2581         (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
2582         (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
2583         (TARG_VEC_STORE_COST): Define cost of vector store.
2584         (vect_estimate_min_profitable_iters): Define new function.
2585         * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
2586         check to evaluate if loop iterations are less than minimum profitable
2587         iterations determined by cost model or minimum vect loop bound defined
2588         by user, whichever is more conservative.
2589         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
2590         run-time check to evaluate if loop iterations are less than minimum
2591         profitable iterations determined by cost model or minimum vect loop
2592         bound defined by user, whichever is more conservative.
2593         (vect_estimate_min_profitable_iterations): New function to estimate
2594         mimimimum iterartions required for vector version of loop to be
2595         profitable over scalar version.
2596         (vect_model_reduction_cost): New function.
2597         (vect_model_induction_cost): New function.
2598         (vect_model_simple_cost): New function.
2599         (vect_cost_strided_group_size): New function.
2600         (vect_model_store_cost): New function.
2601         (vect_model_load_cost): New function.
2602         (vectorizable_reduction): Call vect_model_reduction_cost during
2603         analysis phase.
2604         (vectorizable_induction): Call vect_model_induction_cost during
2605         analysis phase.
2606         (vectorizable_load): Call vect_model_load_cost during analysis phase.
2607         (vectorizable_store): Call vect_model_store_cost during analysis phase.
2608         (vectorizable_call, vectorizable_assignment, vectorizable_operation,
2609         vectorizable_promotion, vectorizable_demotion): Call
2610         vect_model_simple_cost during analysis phase.
2611
2612 2007-06-08  Simon Baldwin  <simonb@google.com>
2613
2614         * reg-stack.c (get_true_reg): Readability change.  Moved default case
2615         label into direct switch statement scope.
2616
2617 2007-06-08  Simon Baldwin  <simonb@google.com>
2618
2619         * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
2620         in gcc_assert() with '==' comparison.
2621
2622 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2623
2624         * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
2625         TARGET_ABM handling of x86_popcnt variable.
2626
2627 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2628
2629         * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
2630         __builtin_copysignq and __builtin_infq built-in functions.
2631
2632 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2633
2634         * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
2635         SSE4.2 section.  Correct built-in function names in SSE4A section.
2636
2637 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2638
2639         PR tree-optimization/32243
2640         * tree-vect-transform.c (vectorizable_type_promotion): Move check
2641         for ncopies after ratio check between nunits_out and nunits_in.
2642         (vectorizable_type_demotion): Remove single-use variable "scalar_type".
2643
2644 2007-06-08  Dorit Nuzman  <dorit@il.ibm.com>
2645
2646         PR tree-optimization/32224
2647         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
2648         vectorization upon a non GIMPLE_MODIFY_STMT.
2649
2650 2007-06-08  Christian Bruel  <christian.bruel@st.com>
2651
2652         PR target/29953
2653         * config/sh/sh.md (doloop_end): New pattern and splitter.
2654         * loop-iv.c (simple_rhs_p): Check for hardware registers.
2655
2656 2007-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
2657
2658         PR middle-end/32209
2659         * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
2660         functions.
2661         (verify_dominators): Do not change dominance tree.
2662
2663 2007-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2664
2665         * config/sh/constraints.md: New file.
2666         * config/sh/sh.c: Include tm-constrs.h.
2667         (reg_class_from_letter): Remove.
2668         (prepare_cbranch_operands): Use satisfies_constraint_*
2669         function instead of macro.
2670         (andcosts, broken_move, sh_secondary_reload): Likewise.
2671         * config/sh/predicates.md (trapping_target_operand): Likewise.
2672         (and_operand, arith_operand, arith_reg_or_0_operand,
2673         cmp_operand, logical_operand, target_operand,
2674         ua_address_operand, ua_offset, xor_operand): Likewise.
2675         * config/sh/sh.md: Include constraints.md.
2676         (*movsicc_t_false): Use satisfies_constraint_* function
2677         instead of macro.
2678         (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
2679         lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
2680         movdi_const_16bit+1, beq, bne, *ptb): Likewise.
2681         * config/sh/sh.h (reg_class_from_letter): Remove prototype.
2682         (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
2683         (REG_CLASS_FROM_CONSTRAINT): Remove.
2684         (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
2685         CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
2686         CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
2687         CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
2688         CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2689         (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
2690         function instead of macro.
2691         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
2692         (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
2693         EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
2694         EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
2695         (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
2696         (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
2697         (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
2698         (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
2699         (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
2700         EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
2701         EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
2702         EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
2703         EXTRA_CONSTRAINT_STR): Likewise.
2704         (GO_IF_LEGITIMATE_INDEX): Fix indentation.
2705
2706 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
2707
2708         * config/i386/darwin.h (STACK_BOUNDARY): Define.
2709
2710 2007-06-07  Simon Martin  <simartin@users.sourceforge.net>
2711
2712         PR c++/30759
2713         * c-common.h (flag_cpp0x): Replaced by...
2714         (cxx_dialect): ... this new variable specifying the C++ dialect that
2715         is used.
2716         * c-common.c (flag_cpp0x): Removed.
2717         (cxx_dialect): Defined.
2718         * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
2719         cxx_dialect.
2720         * c-opts.c (c_common_post_options): Likewise.
2721         (set_std_cxx98): Set cxx_dialect to cxx98.
2722         (set_std_cxx0x): Set cxx_dialect to cxx0x.
2723
2724 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
2725             Hui-May Chang <hm.chang@apple.com>
2726
2727         * doc/invoke.texi (Darwin Options): Update documentation for
2728         -mmacosx-version-min.
2729         * config.gcc (*-*-darwin*): Set extra_gcc_objs.
2730         * config/darwin-driver.c: New file.
2731         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
2732         * config/t-darwin (darwin-driver.o): New rule.
2733
2734         * config/darwin-c.c (version_as_macro): Ignore low digit.
2735
2736 2007-06-07  Uros Bizjak  <ubizjak@gmail.com>
2737
2738         * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
2739         (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
2740         (CSGNMODE): New mode macro.
2741         (CSGNVMODE): New mode attribute.
2742         (copysign<mode>3): Rename from copysingsf3 and copysigndf3.  Macroize
2743         expander using CSGNMODE mode macro.  Handle TFmode.
2744         (copysign<mode>3_const): Rename from copysignsf3_const and
2745         copysigndf3_const.  Macroize pattern using CSGNMODE mode macro.
2746         Handle TFmode.
2747         (copysign<mode>3_var): Rename from copysignsf3_var and
2748         copysigndf3_var.  Macroize pattern using CSGNMODE mode macro.
2749         Handle TFmode.
2750         (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
2751         mode macro.  Handle TFmode.
2752         * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
2753         (iortf3, *iortf3): Ditto.
2754         (xortf3, *xortf3): Ditto.
2755         * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
2756         TFmode and TImode masks.
2757         (ix86_expand_copysign): Expand TFmode copysign insn.
2758         (IX86_BUILTIN_INFQ): New.
2759         (IX86_BUILTIN_FABSQ): Ditto.
2760         (IX86_BUILTIN_COPYSIGNQ): Ditto.
2761         (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
2762         [__builtin_fabsq]: Ditto.
2763         [__builtin_copysignq]: Ditto.
2764         (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
2765         [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
2766         [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
2767         ix86_expand_binop_builtin().
2768
2769 2007-06-07  Bob Wilson  <bob.wilson@acm.org>
2770
2771         * config/xtensa/lib1funcs.asm: Clean up whitespace.
2772
2773 2007-06-07  Steve Ellcey  <sje@cup.hp.com>
2774
2775         PR target/31850
2776         * rtl.h (push_to_sequence2): New.
2777         * emit-rtl.c (push_to_sequence2): New.
2778         * function.c (assign_parm_data_all): Add new fields.
2779         (assign_parm_setup_block): Call push_to_sequence2 instead of
2780         push_to_sequence.
2781         (assign_parm_setup_reg): Ditto.
2782         (assign_parm_setup_stack): Ditto.
2783         (assign_parms_unsplit_complex): Ditto.
2784         (assign_parms): Change field name.
2785
2786 2007-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
2787
2788         PR tree-optimization/32220
2789         * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
2790         phi node is reached before defining statement.
2791
2792 2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2793
2794         PR tree-opt/32231
2795         * tree-vect-transform.c (vectorizable_call): Call update_stmt
2796         after changing the right hand side of the assignment.
2797
2798 2007-06-06  Eric Christopher  <echristo@apple.com>
2799
2800         * config.gcc (i?86-*-darwin*): Remove arch parameter.
2801         (x86_64-*-darwin*): Ditto.
2802         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
2803         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
2804
2805 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
2806
2807         * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
2808         coding conventions.
2809         (add_key): Likewise.
2810         * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
2811         * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
2812         variable names.
2813         * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory
2814         macros.
2815         (add_cost_one_coalesce): Likewise.
2816         * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
2817         variable names. Rename orig to orig_name for consistency.
2818         * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the
2819         coding conventions.
2820         (cprop_into_successor_phis): Avoid using C++ keywords as variable
2821         names.
2822         (record_equivalences_from_stmt): Likewise.
2823         * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
2824         the coding conventions.
2825         (memory_ssa_name_same): Likewise.
2826         (dse_optimize_stmt): Likewise.
2827         (dse_record_phis): Likewise.
2828         (dse_finalize_block): Likewise.
2829         * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
2830         keywords as variable names.
2831         (may_move_till): Cast according to the coding conventions.
2832         (force_move_till_expr): Avoid using C++ keywords as variable names.
2833         (force_move_till): Cast according to the coding conventions.
2834         (memref_hash): Likewise.
2835         (memref_eq): Likewise.
2836         (gather_mem_refs_stmt): Likewise.
2837         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid
2838         using C++ keywords as variable names.
2839         (idx_find_step): Cast according to the coding conventions.
2840         (idx_record_use): Likewise.
2841         (find_depends): Likewise.
2842         (prepare_decl_rtl): Likewise.
2843         (mbc_entry_hash): Likewise.
2844         (mbc_entry_eq): Likewise.
2845         * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
2846         (simplify_replace_tree): Avoid using C++ keywords as variable names.
2847         (idx_infer_loop_bounds): Cast according to the coding conventions.
2848         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
2849         * tree-ssa-math-opts.c (occ_new ): Likwise.
2850         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
2851         macros.
2852         * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as
2853         variable names.
2854         (add_use_op): Likewise.
2855         (add_vop): Likewise.
2856         (add_vuse_op): Likewise.
2857         (add_vdef_op): Likewise.
2858         (get_expr_operands): Likewise.
2859         (push_stmt_changes): Use type safe memory macros.
2860         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
2861         keywords as variable names.
2862         (conditional_replacement): Likewise.
2863         (minmax_replacement): Likewise.
2864         (abs_replacement): Likewise.
2865         * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
2866         coding conventions.
2867         (insert_fake_stores): Avoid using C++ keywords as variable names.
2868         * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
2869         conventions.
2870         * tree-ssa-structalias.c (heapvar_lookup): Likewise.
2871         (heapvar_insert): Use type safe memory macros.
2872         (new_var_info): Cast according to the coding conventions.
2873         (new_constraint): Likewise.
2874         (remove_preds_and_fake_succs): Use type safe memory macros.
2875         * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
2876         conventions.
2877         (thread_single_edge): Likewise.
2878         (thread_through_loop_header): Likewise.
2879
2880 2007-06-06  Eric Christopher  <echristo@apple.com>
2881
2882         * config/i386/i386.c (override_options): Move handling
2883         of TARGET_SUBTARGET* earlier.
2884
2885 2007-06-06  Paolo Bonzini  <bonzini@gnu.org>
2886
2887         * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
2888         use %n on printf.
2889
2890 2007-06-06  Zdenek Dvorak  <dvorakz@suse.cz>
2891
2892         * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
2893         emited outside of basic block.
2894         * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
2895         the created blocks.
2896         * rtl.h (delete_insn_chain): Declaration changed.
2897         * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
2898         non-removed insns.
2899         (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
2900         (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
2901         rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
2902         to delete_insn_chain.
2903         (rtl_verify_flow_info_1): Verify that the insns in header and footer
2904         do not have bb field set.
2905         (rtl_verify_flow_info): Verify that insns between basic blocks do not
2906         have bb field set.
2907         * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
2908         * cfgcleanup.c (try_optimize_cfg): Ditto.
2909
2910 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
2911
2912         * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
2913         (lambda_body_vector_new): Use type safe memory macros.
2914         (lambda_linear_expression_new): Likewise.
2915         (lambda_loopnest_new): Likewise.
2916         (lambda_lattice_new): Likewise.
2917         (replace_uses_equiv_to_x_with_y): Cast according to the coding
2918         conventions. Use type safe memory macros.
2919         * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
2920         (lambda_body_vector_s): Likewise.
2921         * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
2922         * lambda-trans.c (lambda_trans_matrix_new): Likewise.
2923
2924 2007-06-06  Richard Guenther  <rguenther@suse.de>
2925
2926         * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
2927         if we need to schedule cfg_cleanup.
2928         (tree_ssa_forward_propagate_single_use_vars): Do so.
2929
2930 2007-06-06  Ian Lance Taylor  <iant@google.com>
2931
2932         * fold-const.c (merge_ranges): If range_successor or
2933         range_predecessor fail, just return 0.
2934
2935 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
2936
2937         PR tree-optimization/32216
2938         * tree-vectorizer.c (supportable_widening_operation): Determine
2939         signedness of FIX_TRUNC_EXPR from output operand.
2940         (supportable_narrowing_operation): Ditto.
2941         * tree-vect-generic.c (expand_vector_operations_1): Determine
2942         signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
2943         from input operand.
2944
2945 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
2946
2947         * config/i386/i386.c (enum pta_flags): Move out of struct scope...
2948         (struct pta): ...from here. Change flags to unsigned to avoid
2949         excessive casting (as it is used as a bit mask).
2950         (override_options): Add casts according to the coding convenventions.
2951         (x86_64_elf_unique_section): Likewise.
2952         (examine_argument): Avoid using C++ keywords as variable names.
2953         (construct_container): Likewise.
2954         (legitimize_pic_address): Likewise.
2955         (get_dllimport_decl): Cast according to the coding conventions. Use
2956         type safe memory macros.
2957         (legitimize_address): Cast according to the coding conventions.
2958         (emit_i387_cw_initialization): Corrected the type of slot to enum
2959         ix86_stack_slot.
2960         (ix86_init_machine_status): Use type safe memory macros.
2961         (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
2962         (bdesc_pcmpistr): Likewise.
2963         (bdesc_crc32): Likewise.
2964         (bdesc_sse_3arg): Likewise.
2965         (bdesc_2arg): Likewise.
2966         (bdesc_1arg): Likewise.
2967         (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
2968         (ix86_expand_sse_pcmpistr): Likewise.
2969         (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
2970         (ix86_builtin_vectorized_function): Change the type of fn to unsigned
2971         int to match the langhook definition.
2972         (ix86_builtin_conversion): Change the type of code to unsigned init to
2973         match the langhook definition.
2974         (ix86_preferred_reload_class): Avoid using C++ keywords as variable
2975         names.
2976         (ix86_preferred_output_reload_class): Likewise.
2977         (ix86_cannot_change_mode_class): Likewise.
2978         (ix86_memory_move_cost): Likewise.
2979         (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
2980         avoid excessive casting later on.
2981         (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
2982
2983 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
2984
2985         * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
2986         as flags setting insn.
2987         (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
2988
2989 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
2990
2991         * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
2992         (UNSPEC_ROUND): New.
2993         ("sse4_1_round<mode>2"): New insn pattern.
2994         ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
2995         SSE4.1 targets.
2996         ("floor<mode>2"): Rename from floordf2 and floorsf2.  Macroize
2997         expander using SSEMODEF mode macro.  Expand using
2998         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
2999         ("ceil<mode>2"): Rename from ceildf2 and ceilsf2.  Macroize
3000         expander using SSEMODEF mode macro.  Expand using
3001         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
3002         ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2.  Macroize
3003         expander using SSEMODEF mode macro.  Expand using
3004         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
3005         * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
3006         UNSPEC_ROUND instead of UNSPEC_ROUNDP.
3007         ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
3008         UNSPEC_ROUNDS.
3009
3010 2007-06-06  Jan Sjodin  <jan.sjodin@amd.com>
3011             Sebastian Pop  <sebpop@gmail.com>
3012
3013         * lambda.h (build_linear_expr): New.
3014         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
3015         Use build_linear_expr, call fold and force_gimple_operand.
3016         (lambda_loopnest_to_gcc_loopnest): Check that there is
3017         something to insert.
3018         * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
3019
3020 2007-06-05  Joerg Wunsch  <j.gnu@uriah.heep.sax.de>
3021
3022         PR preprocessor/23479
3023         * doc/extend.texi: Document the 0b-prefixed binary integer
3024         constant extension.
3025
3026 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
3027
3028         PR tree-optimization/32215
3029         * tree-vectorizer.c (supportable_widening_operation): Return false
3030         for unsupported FIX_TRUNC_EXPR tree code.
3031         (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
3032
3033 2007-06-06  Nathan Froyd  <froydnj@codesourcery.com>
3034
3035         * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
3036         register on SPE targets.  Change documentation to reflect
3037         reality.
3038         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
3039         Change FIXED_SCRATCH to 14 and document why we're keeping r14
3040         out of the register allocation pool.
3041         (rs6000_reg_live_or_pic_offset_p): New function.
3042         (rs6000_emit_prologue): Move the actual saving of LR up to free
3043         r0 for holding r11.  Split saving of SPE 64-bit registers into
3044         its own case.  Ensure that offsets will always be in-range for
3045         'evstdd' by using r11 as a scratch register to point at the start
3046         of the SPE save area.  Save r11 if necessary, as it is the static
3047         chain register.
3048         (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
3049         into its own case.  Ensure that offsets will always be in-range
3050         for 'evldd' by using r11 as a scratch register to point at the
3051         start of the SPE save area.  Also adjust r11 when restoring
3052         the stack pointer to compensate for pre-loading r11.
3053
3054 2007-06-05  Thomas Neumann  <tneumann@users.sourceforge.net>
3055
3056         * cfg.c (init_flow): Use type safe memory macros.
3057         (alloc_block): Likewise.
3058         (unchecked_make_edge): Likewise.
3059         (dump_flow_info): Avoid using C++ keywords as variable names.
3060         (copy_original_table_clear): Cast according to the coding conventions.
3061         (copy_original_table_set): Likewise.
3062         * cfgexpand (label_rtx_for_bb): Likewise.
3063         (expand_gimple_basic_block): Likewise.
3064         * cfghooks.c (dump_bb): Likewise.
3065         (lv_adjust_loop_header_phi): Avoid using C++ keywords as
3066         variable names.
3067         (lv_add_condition_to_bb): Likewise.
3068         * cfglayout (relink_block_chain): Cast according to the coding
3069         conventions.
3070         (fixup_reorder_chain): Likewise.
3071         (fixup_fallthru_exit_predecessor): Likewise.
3072         * cfgloop.c (glb_enum_p): Likewise.
3073         (get_exit_description): Likewise.
3074         (dump_recorded_exit): Likewise.
3075         * cfgloop.h (enum loop_estimation): Move out of struct scope...
3076         (struct loop): ... from here.
3077         * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
3078         conventions.
3079         * cfgrtl.c (rtl_create_basic_block): Likewise.
3080         (rtl_split_block): Likewise.
3081         (rtl_dump_bb): Likewise.
3082         (cfg_layout_split_block): Likewise.
3083         (init_rtl_bb_info): Use typesafe memory macros.
3084
3085         * graphds.h (struct graph_edge): Renamed edge to graph_edge.
3086         * graphds.h: Updated all usages of edge to graph_edge.
3087         * graphds.c: Likewise.
3088         * cfgloopanal.c: Likewise.
3089
3090 2007-06-05  Ian Lance Taylor  <iant@google.com>
3091
3092         * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
3093         PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
3094         (extract_range_from_assert): Set TREE_NO_WARNING when creating an
3095         expression.
3096         (test_for_singularity): Likewise.
3097
3098 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
3099
3100         * config/i386/constraints.md ("Y2"): Replaced by ...
3101         ("Yt"): This.
3102         * config/i386/i386.md: Likewise.
3103         * config/i386/mmx.md: Likewise.
3104         * config/i386/sse.md: Likewise.
3105
3106 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
3107
3108         * config/i386/constraints.md ("z"): Replaced by ...
3109         ("Y0"): This.
3110         * config/i386/sse.md (sse4_1_blendvpd): Likewise.
3111         (sse4_1_blendvps): Likewise.
3112         (sse4_1_pblendvb): Likewise.
3113         (sse4_2_pcmpestr): Likewise.
3114         (sse4_2_pcmpestrm): Likewise.
3115         (sse4_2_pcmpestr_cconly): Likewise.
3116         (sse4_2_pcmpistr): Likewise.
3117         (sse4_2_pcmpistrm): Likewise.
3118         (sse4_2_pcmpistr_cconly): Likewise.
3119
3120 2007-06-05  Razya Ladelsky  <razya@il.ibm.com>
3121
3122         * matrix-reorg.c (transform_access_sites): Fix computation.
3123         (transform_allocation_sites): Same.
3124
3125 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
3126
3127         * config/i386/i386.c (override_options): Use
3128         TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
3129
3130 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
3131
3132         * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
3133         (nonimm_not_xmm0_operand): Ditto.
3134         * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
3135         as operand[0] and operand[1] predicate.  Use "nonimm_not_xmm0_operand"
3136         as operand[2] predicate.  Require "z" class XMM register for
3137         operand[3].  Adjust asm template.
3138         ("sse4_1_blendvpd"): Ditto.
3139         ("sse4_1_pblendvb"): Ditto.
3140         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
3141         force op2 into xmm0 register for variable blend instructions.
3142
3143 2007-06-04  Tom Tromey  <tromey@redhat.com>
3144
3145         * c-tree.h (start_enum): Update.
3146         (build_enumerator): Likewise.
3147         * c-decl.c (enum_next_value): Removed.
3148         (enum_overflow): Likewise.
3149         (start_enum): Add c_enum_contents argument.  Don't use globals.
3150         (build_enumerator): Likewise.
3151         * c-tree.h (struct c_enum_contents): New struct.
3152
3153 2007-06-04  Tom Tromey  <tromey@redhat.com>
3154
3155         * c-common.c (c_common_get_alias_set): Fix indentation.
3156
3157 2007-06-04  Ian Lance Taylor  <iant@google.com>
3158
3159         * tree-vrp.c (adjust_range_with_scev): When loop is not expected
3160         to overflow, reduce overflow infinity to regular infinity.
3161         (vrp_var_may_overflow): New static function.
3162         (vrp_visit_phi_node): Check vrp_var_may_overflow.
3163
3164 2007-06-04  Kazu Hirata  <kazu@codesourcery.com>
3165
3166         * stor-layout.c (layout_type): Remove duplicate code.
3167
3168 2007-06-04  Uros Bizjak  <ubizjak@gmail.com>
3169
3170         PR c/32191
3171         * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins ()
3172         before build_common_builtin_nodes ().
3173
3174 2007-06-04  Steve Ellcey  <sje@cup.hp.com>
3175
3176         PR target/31733
3177         * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
3178
3179 2007-06-04  Jan Hubicka  <jh@suse.cz>
3180
3181         * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
3182         reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
3183         instead of _stat version.
3184
3185 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
3186
3187         PR tree-optimization/32194
3188         * tree-predcom.c (determine_offset): Check that both references have
3189         the same type.
3190
3191 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
3192
3193         * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
3194         Change dom_bbs to vector.  Add argument to iterate_fix_dominators call.
3195         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
3196         * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
3197         Add argument to iterate_fix_dominators call.
3198         (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
3199         * gcse.c (hoist_code): Change domby to vector.
3200         * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
3201         Add argument to iterate_fix_dominators call.
3202         * loop-doloop.c (doloop_modify): Changed recount_dominator to
3203         recompute_dominator.
3204         * lambda-code.c (perfect_nestify): Ditto.
3205         * cfgloopanal.c: Include graphds.h.
3206         (struct edge, struct vertex, struct graph, dump_graph, new_graph,
3207         add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
3208         (mark_irreducible_loops): Use graphds_scc.  Remove argument from
3209         add_edge call.
3210         * graphds.c: New file.
3211         * graphds.h: New file.
3212         * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
3213         (get_dominated_by, get_dominated_by_region): Change return type to
3214         vector.
3215         (verify_dominators): Recompute all dominators and compare the results.
3216         (recount_dominator): Renamed to ...
3217         (recompute_dominator): ... this.  Do not check that the block is
3218         dominated by entry.
3219         (iterate_fix_dominators): Reimplemented.
3220         (prune_bbs_to_update_dominators, root_of_dom_tree,
3221         determine_dominators_for_sons): New functions.
3222         * et-forest.c (et_root): New function.
3223         * et-forest.h (et_root): Declare.
3224         * Makefile.in (graphds.o): Add.
3225         (cfgloopanal.o): Add graphds.h dependency.
3226         (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
3227         * basic-block.h (get_dominated_by, get_dominated_by_region,
3228         iterate_fix_dominators): Declaration changed.
3229         (recount_dominator): Renamed to ...
3230         (recompute_dominator): ... this.
3231         * tree-ssa-threadupdate.c (thread_block): Free dominance info.
3232         (thread_through_all_blocks): Do not free dominance info.
3233
3234 2007-06-03  Andreas Schwab  <schwab@suse.de>
3235
3236         * config/m68k/m68k.c (override_options): Don't override
3237         REAL_MODE_FORMAT.
3238         * config/m68k/m68k-modes.def (SF, DF): Define to use
3239         motorola_single_format and motorola_double_format, resp.
3240         * real.c (motorola_single_format): Renamed from
3241         coldfire_single_format.
3242         (motorola_double_format): Renamed from coldfire_double_format.
3243         (encode_ieee_extended): Generate a proper canonical NaN image
3244         respecting canonical_nan_lsbs_set.
3245         (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
3246         true.
3247         * real.h: Adjust declarations.
3248
3249 2007-06-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3250
3251         PR target/32163
3252         * config/sh/sh.md (symGOT_load): Don't schedule insns when
3253         the symbol is generated with the stack protector.
3254
3255 2007-06-03  Kazu Hirata  <kazu@codesourcery.com>
3256
3257         * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
3258         (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
3259         "interrupt".
3260         * doc/extend.texi (interrupt): Mention m68k.
3261
3262 2007-06-02  Uros Bizjak  <ubizjak@gmail.com>
3263
3264         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
3265         safe_vector_operand() if input operand is VECTOR_MODE_P operand.
3266         (ix86_expand_sse_pcmpestr): Do not check operands for
3267         "register_operand", when insn operand predicate is "register_operand".
3268         (ix86_expand_sse_pcmpistr): Ditto.
3269
3270 2007-06-02  H.J. Lu  <hongjiu.lu@intel.com>
3271             Uros Bizjak  <ubizjak@gmail.com>
3272
3273         * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
3274         (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
3275         (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
3276         (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
3277         * config/i386/constraints.md ("z"): New register constraint
3278         for members of SSE_FIRST_REG class.
3279         * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
3280         * config/i386/i386.c (regclass_map): Change class of %xmm0 to
3281         SSE_FIRST_REG class.
3282         (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
3283         (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
3284         (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
3285         (IX86_BUILTIN_PCMPESTRM128): Likewise.
3286         (IX86_BUILTIN_PCMPESTRA128): Likewise.
3287         (IX86_BUILTIN_PCMPESTRC128): Likewise.
3288         (IX86_BUILTIN_PCMPESTRO128): Likewise.
3289         (IX86_BUILTIN_PCMPESTRS128): Likewise.
3290         (IX86_BUILTIN_PCMPESTRZ128): Likewise.
3291         (IX86_BUILTIN_PCMPISTRI128): Likewise.
3292         (IX86_BUILTIN_PCMPISTRM128): Likewise.
3293         (IX86_BUILTIN_PCMPISTRA128): Likewise.
3294         (IX86_BUILTIN_PCMPISTRC128): Likewise.
3295         (IX86_BUILTIN_PCMPISTRO128): Likewise.
3296         (IX86_BUILTIN_PCMPISTRS128): Likewise.
3297         (IX86_BUILTIN_PCMPISTRZ128): Likewise.
3298         (struct builtin_description): Change "flag" field to unsigned.
3299         (bdesc_pcmpestr): New builtin description table.
3300         (bdesc_pcmpistr): Likewise.
3301         (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
3302         v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
3303         Initialize pcmp[ei]str[im] insns for SSE4.2.
3304         (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
3305         (ix86_expand_sse_pcmpistr): Likewise.
3306         (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
3307         * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
3308         (UNSPEC_PCMPISTR): Likewise.
3309         * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
3310         (sse4_2_pcmpestri):New isns pattern.
3311         (sse4_2_pcmpestrm): Likewise.
3312         (sse4_2_pcmpestr_cconly): Likewise.
3313         (sse4_2_pcmpistr): New insn patern and splitter.
3314         (sse4_2_pcmpistri):New isns pattern.
3315         (sse4_2_pcmpistrm): Likewise.
3316         (sse4_2_pcmpistr_cconly): Likewise.
3317         * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
3318         in SSE4.2.
3319
3320 2007-06-01  David Daney  <ddaney@avtrex.com>
3321
3322         * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
3323         LOADGP_ABSOLUTE and not binds_local_p.
3324
3325 2007-06-01  Geoffrey Keating  <geoffk@apple.com>
3326
3327         * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
3328
3329 2007-06-01  Ian Lance Taylor  <iant@google.com>
3330
3331         * tree-vrp.c (compare_name_with_value): Always set
3332         used_strict_overflow if we get a result from the variable itself.
3333
3334 2007-06-01  Ian Lance Taylor  <iant@google.com>
3335
3336         PR rtl-optimization/31455
3337         * lower-subreg.c (find_decomposable_subregs): Don't decompose
3338         subregs which have a cast between modes which are not tieable.
3339
3340 2007-06-01  Uros Bizjak  <ubizjak@gmail.com>
3341
3342         * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
3343         breaks after return statements.
3344
3345 2007-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
3346
3347         * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
3348         only after no_new_pseudos.
3349
3350 2007-05-31  Eric Christopher  <echristo@apple.com>
3351
3352         * expr.c (convert_move): Assert that we don't have a BLKmode
3353         operand.
3354         (store_expr): Handle BLKmode moves by calling emit_block_move.
3355
3356 2007-05-31  Daniel Berlin  <dberlin@dberlin.org>
3357
3358         * c-typeck.c (build_indirect_ref): Include type in error message.
3359         (build_binary_op): Pass types to binary_op_error.
3360         * c-common.c (binary_op_error): Take two type arguments, print out
3361         types with error.
3362         * c-common.h (binary_op_error): Update prototype.
3363
3364 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
3365
3366         * config/i386/i386.c: Correct coments on -mno-sse4.
3367
3368 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
3369
3370         * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
3371         (x86_64-*-*): Likewise.
3372         * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
3373         (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
3374         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
3375         (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
3376         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
3377         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
3378         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
3379         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
3380         (OPTION_MASK_ISA_SSE4): Likewise.
3381         (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
3382         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
3383         (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET.  Handle SSE4.2.
3384         (override_options): Support SSE4.2.
3385         (ix86_build_const_vector): Support SImode and DImode.
3386         (ix86_build_signbit_mask): Likewise.
3387         (ix86_expand_int_vcond): Support V2DImode.
3388         (IX86_BUILTIN_CRC32QI): New for SSE4.2.
3389         (IX86_BUILTIN_CRC32HI): Likewise.
3390         (IX86_BUILTIN_CRC32SI): Likewise.
3391         (IX86_BUILTIN_CRC32DI): Likewise.
3392         (IX86_BUILTIN_PCMPGTQ): Likewise.
3393         (bdesc_crc32): Likewise.
3394         (bdesc_sse_3arg): Likewise.
3395         (ix86_expand_crc32): Likewise.
3396         (ix86_init_mmx_sse_builtins): Support SSE4.2.
3397         (ix86_expand_builtin): Likewise.
3398         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
3399         __SSE4_2__ for -msse4.2.
3400         * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
3401         (CRC32MODE): Likewise.
3402         (crc32modesuffix): Likewise.
3403         (crc32modeconstraint): Likewise.
3404         (sse4_2_crc32<mode>): Likewise.
3405         (sse4_2_crc32di): Likewise.
3406         * config/i386/i386.opt (msse4.2): New for SSE4.2.
3407         (msse4): Likewise.
3408         * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
3409         * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
3410         * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
3411         (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
3412         (vcondu<mode>): Likewise.
3413         * doc/extend.texi: Document SSE4.2 built-in functions.
3414         * doc/invoke.texi: Document -msse4.2/-msse4.
3415
3416 2007-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
3417
3418         PR tree-optimization/32160
3419         * tree-predcom.c (predcom_tmp_var): New function.  Mark created
3420         variable as gimple reg.
3421         (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
3422
3423 2007-05-31  Kazu Hirata  <kazu@codesourcery.com>
3424
3425         * gcc.c (main): Don't consider linker options when issuing the
3426         warning about a linker input file not being used.
3427
3428 2007-05-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3429
3430         * tree-vrp.c (compare_names): Initialize sop.
3431
3432 2007-05-30  Dirk Mueller  <dmueller@suse.de>
3433
3434         * cgraphunit.c (cgraph_analyze_function): Remove
3435         computation of inline parameters.
3436
3437 2007-05-30  Uros Bizjak  <ubizjak@gmail.com>
3438
3439         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
3440
3441 2007-05-30  Richard Sandiford  <richard@codesourcery.com>
3442
3443         * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
3444         Add vx-common.h.  Include vxworks.h between vx-common.h and
3445         arm/vxworks.h.
3446         * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
3447         redefining.
3448         * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
3449         (TARGET_ASM_DESTRUCTOR): Likewise.
3450         * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
3451         instead of arm_is_xscale.  Use VXWORKS_OS_CPP_BUILTINS.
3452         (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
3453         (CC1_SPEC): Add -tstrongarm.  Line up backslashes.
3454         (VXWORKS_ENDIAN_SPEC): Define.
3455         (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
3456         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
3457         VXWORKS_* equivalents.
3458         (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
3459         (ASM_FILE_START): Delete.
3460         (TARGET_VERSION): Reformat.
3461         (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
3462         (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
3463         * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
3464         (FPBIT, DPBIT): Define.
3465         (fp-bit.c, dp-bit.c): New rules.
3466         (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
3467         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
3468         * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
3469         * config/arm/arm.h: Include vxworks-dummy.h.
3470         * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
3471         Mark with ATTRIBUTE_UNUSED.
3472         (arm_override_options): Do not allow VxWorks RTP PIC to be used
3473         for Thumb.  Force r9 to be the PIC register for VxWorks RTPs and
3474         make it incompatible with -msingle-pic-base.
3475         (arm_function_ok_for_sibcall): Return false for calls that might
3476         go through a VxWorks PIC PLT entry.
3477         (require_pic_register): New function, split out from...
3478         (legitimize_pic_address): ...here.  Do not use GOTOFF accesses
3479         for VxWorks RTPs.
3480         (arm_load_pic_register): Handle the VxWorks RTP initialization
3481         sequence.  Use pic_reg as a shorthand for cfun->machine->pic_reg.
3482         (arm_emit_call_insn): New function.
3483         (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
3484         * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
3485         (pic_offset_arm): New pattern.
3486         (call, call_value): Use arm_emit_call_insn.
3487         (call_internal, call_value_internal): New expanders.
3488         * config/arm/lib1funcs.asm (__PLT__): Define to empty for
3489         VxWorks unless __PIC__.
3490
3491 2007-05-30  Eric Christopher  <echristo@gmail.com>
3492
3493         * genrecog.c: Include regs.h in generated file.
3494         * genemit.c: Ditto. Fix up formatting.
3495         * config/mn10300/constraints.md: New.
3496         * config/mn10300/mn10300.md: Include.
3497         * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
3498         Fix up for removed macro.
3499         * config/mn10300/predicates.md (call_address_operand):  Ditto.
3500         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
3501         (CONST_OK_FOR_I): Ditto.
3502         (CONST_OK_FOR_J): Ditto.
3503         (CONST_OK_FOR_K): Ditto.
3504         (CONST_OK_FOR_L): Ditto.
3505         (CONST_OK_FOR_M): Ditto.
3506         (CONST_OK_FOR_N): Ditto.
3507         (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
3508         (OK_FOR_Q): Ditto.
3509         (OK_FOR_R): Ditto.
3510         (OK_FOR_T): Ditto.
3511         (EXTRA_CONSTRAINT): Ditto.
3512
3513 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
3514
3515         * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
3516         Remove defines.
3517         * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
3518         OPTION_MASK_ISA_64BIT.
3519         * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
3520
3521 2007-05-30  Richard Guenther  <rguenther@suse.de>
3522
3523         PR middle-end/32152
3524         * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
3525         types for comparison.
3526         * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
3527         with original typed arguments.
3528         * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
3529
3530 2007-05-30  Jakub Jelinek  <jakub@redhat.com>
3531
3532         PR tree-optimization/31769
3533         * except.c (duplicate_eh_regions): Clear prev_try if
3534         ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
3535
3536 2007-05-30  Zdenek Dvorak  <dvorakz@suse.cz>
3537
3538         * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
3539         * tree-ssa-sink.c (statement_sink_location): Return basic block and
3540         bsi of the location where statements should be inserted.
3541         (sink_code_in_bb): Take bsi from statement_sink_location.
3542         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
3543         instead of bsi_start.
3544         * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
3545         bsi_insert_after.
3546         * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
3547         (bsi_move_before): Document inconsistency with bsi_move_after.
3548         (tree_redirect_edge_and_branch): Do not create labels if not necessary.
3549
3550 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
3551
3552         * config/i386/i386.h (TARGET_ABM): New define.
3553         (TARGET_POPCNT): Ditto.
3554         (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
3555         New temporary defines to redefine from OPTION_ISA_* defines.
3556         (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
3557         New temporary defines to redefine from OPTION_MASK_ISA_* defines.
3558         (ix86_isa_flags): New extern int declaration.
3559         (TARGET_SUBTARGET_DEFAULT): New define.
3560         (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
3561         (TARGET_SUBTARGET32_DEFAULT): Ditto.
3562         (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
3563         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
3564         * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
3565         * config/i386/darwin.h: Change TARGET_64BIT define to
3566         OPTION_ISA_64BIT.
3567
3568         * config/i386/i386.opt (m3dnowa): Define as undocumented option
3569         using existing "ix86_isa_flags" varible.
3570         (m32, m64): Use existing "ix86_isa_flags" variable.
3571         (mmmx, m3dnow): Ditto.
3572         (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
3573         (mabm): Define as non-negative option using "x86_abm" variable.
3574         (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
3575
3576         * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
3577         Rewrite feature test bitmap.
3578         (ix86_isa_flags): New initialized global int varible.
3579         (ix86_isa_flags_explicit): New static int variable.
3580         (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
3581         msse, msse2, msse3, msse4.1 and msse4a option is processed.  Change
3582         i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
3583         target_flags_explicit.
3584         (override_options): Remove "target_enable" and "target_disable" fields
3585         from "struct ptt". Update processor_target_table accordingly. Remove
3586         PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
3587         defined and rearrange PTA_* bits.  Use "ix86_isa_flags" instead of
3588         "target_flags" and "ix86_isa_flags_explicit" instead of
3589         "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
3590         MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*.  Set "x86_abm" to true when
3591         PTA_ABM is set in processor_alias_table flags entry.  Set "x86_popcnt"
3592         to true when either of PTA_POPCNT or PTA_ABM is set in
3593         processor_alias_table flags entry.  Set "x86_prefetch_sse" to true
3594         when either of PTA_PREFETCH_SSE or PTA_SSE is set in
3595         processor_alias_table flags entry.  Remove handling of
3596         "target_enable" and "target_disable" fields of processor_target_table.
3597         Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
3598         targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
3599         Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
3600         targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
3601         (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
3602         "target_flags".
3603         (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
3604
3605 2007-05-29  David Daney  <ddaney@avtrex.com>
3606
3607         PR gcc/31975
3608         * config/mips/mips.c (mips_output_mi_thunk): Emit
3609         NOTE_INSN_PROLOGUE_END at beginning of the thunk.
3610
3611 2007-05-29  Hui-May Chang  <hm.chang@apple.com>
3612         * config/i386/i386.c (ix86_function_regparm): Added checking of
3613         ix86_force_align_arg_pointer to determine the number of
3614         register parameters.
3615
3616 2007-05-29  Zdenek Dvorak  <dvorakz@suse.cz>
3617
3618         * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
3619         (SET_DR_MISALIGNMENT): New.
3620         * tree-vect-analyze.c (vect_compute_data_ref_alignment,
3621         vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
3622         Use SET_DR_MISALIGNMENT.
3623         * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
3624         pointer.
3625         * tree-data-ref.c (create_data_ref, compute_all_dependences,
3626         find_loop_nest): Export.
3627         * tree-data-ref.h (struct data_reference): Change aux field to pointer.
3628         (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
3629         * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
3630         (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
3631         New macros.
3632         (struct mem_ref): Add field reuse_distance.
3633         (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
3634         Initialize reuse_distance field.
3635         (issue_prefetch_ref): Select temporality of prefetch according to
3636         reuse_distance.
3637         (volume_of_references, volume_of_dist_vector, add_subscript_strides,
3638         self_reuse_distance, determine_loop_nest_reuse): New functions.
3639         (loop_prefetch_arrays): Call determine_loop_nest_reuse.
3640         (tree_ssa_prefetch_arrays): Dump L2 cache size.
3641         * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
3642         dependency.
3643
3644 2007-05-29  Daniel Berlin  <dberlin@dberlin.org>
3645
3646         * tree-ssa-alias.c: Add aliasing overview.
3647
3648 2007-05-29  Zuxy Meng  <zuxy.meng@gmail.com>
3649             Danny Smith  <dannysmith@users.sourceforge.net>
3650
3651         PR target/29498
3652         * config/i386/t-crtfm: Compile crtfastmath.o with
3653         -minline-all-stringops.
3654         * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
3655         * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
3656
3657 2007-05-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3658
3659         * doc/md.texi: Document constraints on HP PA-RISC.
3660
3661         * pa/constraints.md: New file.
3662         * pa.md: Include constraints.md.
3663         * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
3664         (integer_store_memory_operand, ldil_cint_p): New functions.
3665         * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
3666         * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
3667         IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
3668         * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
3669         * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
3670
3671 2007-05-28  Andrew Pinski  <Andrew_pinski@playstation.sony.com>
3672
3673         PR c/31339
3674         * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
3675         case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
3676         case POSTDECREMENT_EXPR>): Return the error_mark_node
3677         if either the real or imaginary parts would an
3678         error_mark_node.
3679
3680 2007-05-28  Daniel Berlin  <dberlin@dberlin.org>
3681
3682         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
3683         name when we remove it from a call.
3684
3685 2007-05-28  Kazu Hirata  <kazu@codesourcery.com>
3686
3687         * targhooks.c (default_narrow_bitfield): Remove.
3688         * targhooks.h: Remove the prototype for
3689         default_narrow_bitfield.
3690
3691         * langhooks-def.h: Remove the prototype for
3692         hook_get_alias_set_0.
3693         * langhooks.c (hook_get_alias_set_0): Remove.
3694
3695         * global.c (EXECUTE_IF_CONFLICT): Remove.
3696
3697 2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3698
3699         PR tree-opt/32100
3700         * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
3701         return true when truth_value_p is true and the type
3702         is of signed:1.
3703
3704 2007-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
3705
3706         * doc/install.texi (Prerequisites): We no longer require Autoconf
3707         2.13 for the top-level.
3708
3709 2007-05-28  Uros Bizjak  <ubizjak@gmail.com>
3710
3711         * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
3712         memory access via x86_expand_vector_move_misalign() only for
3713         TImode values on 32-bit targets.
3714
3715 2007-05-28  Razya Ladelsky  <razya@il.ibm.com>
3716
3717         * matrix-reorg.c: New file. Implement matrix flattening and
3718         transposing optimization.
3719         * tree-pass.h: Add matrix reorg pass.
3720         * common.opt: Add fipa-mreorg flag.
3721         * Makefile.in: Add matrix-reorg.c.
3722         * passes.c: Add matrix reorg pass.
3723         * varpool.c (add_new_static_var): New function.
3724         * cgraph.h (add_new_static_var): Declare.
3725
3726 2007-05-27  Eric Christopher  <echristo@apple.com>
3727
3728         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
3729         sp_offset depending on stack size. Save r12 depending
3730         on registers we're saving later.
3731         (rs6000_emit_epilogue): Update sp_offset depending only
3732         on stack size.
3733
3734 2007-05-27  Zdenek Dvorak  <dvorakz@suse.cz>
3735
3736         * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
3737         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
3738         * ifcvt.c (if_convert): Ditto.
3739         * tree-ssa-threadupdate.c (thread_block): Ditto.
3740         (thread_through_all_blocks): Ditto.  Assert that loops were analysed.
3741         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
3742         verify_loop_closed_ssa): Check number_of_loops instead of
3743         current_loops.
3744         * predict.c (tree_estimate_probability): Ditto.
3745         * tree-if-conv.c (main_tree_if_conversion): Ditto.
3746         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
3747         * modulo-sched.c (sms_schedule): Ditto.
3748         * tree-scalar-evolution.c (scev_const_prop): Ditto.
3749         (scev_finalize): Do not do anything if scev analysis was not
3750         initialized.
3751         * cfgloopanal.c (mark_irreducible_loops): Do not check whether
3752         current_loops == NULL.
3753         (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
3754         * loop-init.c (loop_optimizer_init): Do not free current_loops when
3755         there are no loops.
3756         (loop_optimizer_finalize): Assert that loops were analyzed.
3757         (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
3758         rtl_doloop): Check number_of_loops instead of current_loops.
3759         * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
3760         current_loops == NULL.
3761         (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
3762         gate_tree_vectorize tree_linear_transform, check_data_deps,
3763         tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
3764         tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
3765         Check number_of_loops instead of current_loops.
3766         (tree_ssa_loop_done): Do not check whether current_loops == NULL.
3767         * tree-ssa-pre.c (fini_pre): Do not take do_fre argument.  Always
3768         free loops if available.
3769         (execute_pre): Do not pass do_fre to fini_pre.
3770
3771 2007-05-27  Tobias Burnus  <burnus@net-b.de>
3772
3773         PR middle-end/32083
3774         * real.c (mpfr_from_real): Fix sign of -Inf.
3775
3776 2007-05-27  H.J. Lu  <hongjiu.lu@intel.com>
3777
3778         * tree-vect-transform.c (vectorizable_conversion): Initialize
3779         tree_code variables to ERROR_MARK.
3780         (vectorizable_type_demotion): Likewise.
3781         (vectorizable_type_promotion): Likewise.
3782
3783 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
3784
3785         PR target/32065
3786         * config/i386/i386.md (movti): Handle push operands via
3787         ix86_expand_push().
3788
3789 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
3790
3791         * basic-block.h: Remove the prototype for merge_seq_blocks.
3792         * cfgcleanup.c (merge_seq_blocks): Remove.
3793
3794         * tree-flow.h: Remove the prototype for is_aliased_with.
3795         * tree-ssa-alias.c (is_aliased_with): Remove.
3796
3797 2007-05-26  H.J. Lu  <hongjiu.lu@intel.com>
3798
3799         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
3800
3801         * config/i386/i386.c (ix86_expand_sse4_unpack): New.
3802
3803         * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
3804         ix86_expand_sse4_unpack if SSE4.1 is enabled.
3805         (vec_unpacks_hi_v16qi): Likewise.
3806         (vec_unpacku_lo_v16qi): Likewise.
3807         (vec_unpacks_lo_v16qi): Likewise.
3808         (vec_unpacku_hi_v8hi): Likewise.
3809         (vec_unpacks_hi_v8hi): Likewise.
3810         (vec_unpacku_lo_v8hi): Likewise.
3811         (vec_unpacks_lo_v8hi): Likewise.
3812         (vec_unpacku_hi_v4si): Likewise.
3813         (vec_unpacks_hi_v4si): Likewise.
3814         (vec_unpacku_lo_v4si): Likewise.
3815         (vec_unpacks_lo_v4si): Likewise.
3816
3817 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
3818
3819         * c-typeck.c, config/arm/arm.c, config/darwin.c,
3820         config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
3821         omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
3822         follow spelling conventions in various
3823         warning/error/diagnostic messages.
3824
3825         * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
3826         df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
3827         fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
3828         tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
3829         tree-vrp.c: Fix comment typos.  Follow spelling conventions.
3830         * doc/tm.texi: Follow spelling conventions.
3831
3832 2007-05-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3833
3834         PR tree-opt/32090
3835         * tree-ssa-forwprop.c
3836         (forward_propagate_addr_into_variable_array_index): Remove
3837         the lhs argument.  Use the type of def_rhs instead of lhs.
3838         (forward_propagate_addr_expr_1): Update use of
3839         forward_propagate_addr_into_variable_array_index.
3840
3841 2007-05-25  Sandra Loosemore  <sandra@codesourcery.com>
3842             Nigel Stephens  <nigel@mips.com>
3843
3844         * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
3845         function attributes, "far" being an alias for "long_call".
3846         (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
3847         (mips_near_type_p, mips_far_type_p): New.
3848         (mips_comp_type_attributes): New function to check that attributes
3849         attached to a function type are compatible.
3850         (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
3851         TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
3852         to the target function of the thunk.
3853         (mips_encode_section_info): Check for "near" and "far" function
3854         attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
3855
3856         * config/mips/predicates.md (const_call_insn_operand): Test only
3857         SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
3858
3859         * doc/extend.texi (Function Attributes): Document MIPS "near" and
3860         "far" attributes.
3861
3862         * testsuite/gcc.target/mips/near-far-1.c:  New test case.
3863         * testsuite/gcc.target/mips/near-far-2.c:  New test case.
3864         * testsuite/gcc.target/mips/near-far-3.c:  New test case.
3865         * testsuite/gcc.target/mips/near-far-4.c:  New test case.
3866
3867 2007-05-25  Eric Christopher  <echristo@apple.com>
3868
3869         * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
3870         to x86-darwin configurations.
3871         * config/i386/t-darwin: Add softfp support.
3872         * config/i386/t-darwin64: Ditto.
3873         * config/i386/sfp-machine.h: If mach then don't use
3874         aliasing, emit a stub to call.
3875
3876 2007-05-25  Kazu Hirata  <kazu@codesourcery.com>
3877
3878         * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
3879         haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
3880         tree-predcom.c, tree-ssa-alias-warnings.c,
3881         tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
3882         comment typos.  Follow spelling conventions.
3883         * doc/cpp.texi, doc/invoke.texi: Fix typos.
3884
3885 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
3886
3887         PR target/32065
3888         * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
3889         constants into memory.  Expand unaligned memory references for
3890         SSE modes via x86_expand_vector_move_misalign() function.
3891
3892 2007-05-25  Uros Bizjak  <ubizjak@gmail.com>
3893
3894         * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
3895         "memory" attribute for "sseishft" type insn without operands[2].
3896
3897 2007-05-25  Dirk Mueller  <dmueller@suse.de>
3898             Marcus Meissner <meissner@suse.de>
3899
3900         * doc/extend.texi (alloc_size): New attribute.
3901         * c-common.c (handle_alloc_size_attribute): New.
3902         * tree-object-size.c (alloc_object_size): Use alloc_size
3903         attribute, if available.
3904
3905 2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
3906
3907         * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
3908         with MASK_SSE2.
3909         (__builtin_ia32_vec_ext_v2di): Likewise.
3910         (__builtin_ia32_vec_ext_v4si): Likewise.
3911         (__builtin_ia32_vec_ext_v8hi): Likewise.
3912         (__builtin_ia32_vec_ext_v16qi): Likewise.
3913         (__builtin_ia32_vec_set_v8hi): Likewise.
3914
3915 2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
3916
3917         * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
3918
3919 2007-05-25  Richard Sandiford  <richard@codesourcery.com>
3920
3921         * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
3922         (arm_is_longcall_p): Rename to...
3923         (arm_is_long_call_p): ...this.  Take a single tree argument and
3924         return a bool.
3925         * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
3926         (CUMULATIVE_ARGS): Remove call_cookie.
3927         (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
3928         (ENCODED_LONG_CALL_ATTR_P): Delete.
3929         (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
3930         LONG_CALL_FLAG_CHAR cases.
3931         (ARM_DECLARE_FUNCTION_SIZE): Delete.
3932         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
3933         ARM_DECLARE_FUNCTION_SIZE.
3934         * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
3935         (arm_function_arg): Return const0_rtx for VOIDmode arguments.
3936         (arm_encode_call_attribute, current_file_function_operand): Delete.
3937         (arm_function_in_section_p): New function.
3938         (arm_is_longcall_p): Rename to...
3939         (arm_is_long_call_p): ...this.  Take the target function as a single
3940         argument and return a bool.  Do not rely on call cookies.  Check
3941         whether the target symbol is in the same section as the current
3942         function, not just the same compilation unit.
3943         (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
3944         (arm_encode_section_info): Don't encode a call type.
3945         * config/arm/arm.md (call, call_value): Update calls to
3946         arm_is_long(_)call_p.  Simplify logic.
3947         (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
3948         Update calls to arm_is_long(_)call_p.
3949
3950 2007-05-25  Richard Guenther  <rguenther@suse.de>
3951
3952         PR tree-optimization/31982
3953         * tree-ssa-forwprop.c
3954         (forward_propagate_addr_into_variable_array_index): Handle arrays
3955         with element size one.
3956
3957 2007-05-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3958
3959         * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
3960         (umulsi3_highpart): Likewise.
3961
3962 2007-05-24  Ian Lance Taylor  <iant@google.com>
3963
3964         PR rtl-optimization/32069
3965         * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
3966         is NULL.
3967
3968 2007-05-24  Ollie Wild  <aaw@google.com>
3969
3970         * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
3971         description.
3972
3973 2007-05-24  Richard Sandiford  <rsandifo@nildram.co.uk>
3974
3975         * postreload-gcse.c (reg_changed_after_insn_p): New function.
3976         (oprs_unchanged_p): Use it to check all registers in a REG.
3977         (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
3978         (reg_set_between_after_reload_p): Delete.
3979         (reg_used_between_after_reload_p): Likewise.
3980         (reg_set_or_used_since_bb_start): Likewise.
3981         (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
3982         and reg_used_between_p instead of reg_set_or_used_since_bb_start.
3983         Use reg_set_between_p instead of reg_set_between_after_reload_p.
3984         * rtlanal.c (reg_set_p): Check whether REG overlaps
3985         regs_invalidated_by_call, rather than just checking the
3986         membership of REGNO (REG).
3987
3988 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
3989
3990         * doc/passes.texi: Document predictive commoning.
3991         * doc/invoke.texi (-fpredictive-commoning): Document.
3992         * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
3993         * tree-ssa-loop-im.c (get_lsm_tmp_name): Export.  Allow
3994         adding indices to the generated name.
3995         (schedule_sm): Pass 0 to get_lsm_tmp_name.
3996         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
3997         * tree-pretty-print.c (op_symbol_1): Renamed to ...
3998         (op_symbol_code): ... and exported.
3999         (dump_omp_clause, op_symbol): Use op_symbol_code
4000         instead of op_symbol_1.
4001         * tree-pass.h (pass_predcom): Declare.
4002         * timevar.def (TV_PREDCOM): New timevar.
4003         * tree-ssa-loop.c (run_tree_predictive_commoning,
4004         gate_tree_predictive_commoning, pass_predcom): New.
4005         * tree-data-ref.c (find_data_references_in_loop): Find the
4006         references in dominance order.
4007         (canonicalize_base_object_address): Ensure that the result has
4008         pointer type.
4009         (dr_analyze_innermost): Export.
4010         (create_data_ref): Code to fail for references with invariant
4011         address moved ...
4012         (find_data_references_in_stmt): ... here.
4013         * tree-data-ref.h (dr_analyze_innermost): Declare.
4014         * tree-affine.c: Include tree-gimple.h and hashtab.h.
4015         (aff_combination_find_elt, name_expansion_hash,
4016         name_expansion_eq, tree_to_aff_combination_expand,
4017         double_int_constant_multiple_p, aff_combination_constant_multiple_p):
4018         New functions.
4019         * tree-affine.h (aff_combination_constant_multiple_p,
4020         tree_to_aff_combination_expand): Declare.
4021         * tree-predcom.c: New file.
4022         * common.opt (fpredictive-commoning): New option.
4023         * tree-flow.h (op_symbol_code, tree_predictive_commoning,
4024         stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
4025         * Makefile.in (tree-predcom.o): Add.
4026         (tree-affine.o): Add TREE_GIMPLE_H dependency.
4027         * passes.c (init_optimization_passes):  Add dceloop after
4028         copy propagation in loop optimizer.  Add predictive commoning
4029         to loop optimizer passes.
4030
4031 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
4032
4033         * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
4034         default hook.
4035
4036 2007-05-24  Jan Hubicka  <jh@suse.cz>
4037
4038         * gengenrtl.c (gendecl, gendef): Output the gens annotated for
4039         statistics.
4040         (genheader): Include statistics.h.
4041
4042         * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
4043         notes are gone.
4044         * print-rtl.c (flag_dump_unnumbered): Update comments.
4045         (print_rtl): Fix my previous change.
4046         * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
4047         specific data.
4048
4049 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
4050
4051         PR middle-end/32018
4052         * tree-ssa-threadupdate.c (thread_through_loop_header): Use
4053         set_loop_copy.
4054         (thread_through_all_blocks): Call initialize_original_copy_tables
4055         and free_original_copy_tables.
4056         * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
4057         Use set_loop_copy.
4058         * tree-cfg.c (tree_duplicate_sese_region): Ditto.
4059         * cfghooks.c (duplicate_block): Use get_loop_copy.
4060         * cfg.c: Include cfgloop.h.
4061         (loop_copy): New hash table.
4062         (initialize_original_copy_tables): Initialize loop_copy table.
4063         (free_original_copy_tables): Free loop_copy table.
4064         (copy_original_table_clear, copy_original_table_set,
4065         set_loop_copy, get_loop_copy): New functions.
4066         (set_bb_original, set_bb_copy): Use copy_original_table_set.
4067         * cfgloop.h (struct loop): Remove copy field.
4068         * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
4069         * basic-block.h (set_loop_copy, get_loop_copy): Declare.
4070
4071 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
4072
4073         * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
4074         -msse/-msse2/-msse3.
4075
4076 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
4077
4078         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
4079         __builtin_ia32_vec_set_v2di with MASK_64BIT.
4080
4081 2007-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
4082
4083         PR target/27067
4084         * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
4085         * targhooks.h (default_mangle_decl_assembler_name): Declare
4086         default hook.
4087         * targhooks.c (default_mangle_decl_assembler_name): Define
4088         default hook.
4089         * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
4090         default hook.
4091         * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
4092         * langhooks.c (lhd_set_decl_assembler_name): Call
4093         targetm.mangle_decl_assembler_name for names with global scope.
4094
4095         * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
4096         default.
4097         (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
4098         * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
4099         Declare.
4100         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
4101         New. Factored out of i386_pe_encode_section_info.
4102         (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
4103         Move check for prior decoration of stdcall
4104         symbols to i386_pe_encode_section_info.
4105         (i386_pe_encode_section_info): Adjust call to
4106         gen_stdcall_or_fastcall_suffix.  Use
4107         i386_pe_maybe_mangle_decl_assembler_name, if needed.
4108         (i386_pe_mangle_decl_assembler_name): New. Wrap
4109         i386_pe_maybe_mangle_decl_assembler_name.
4110
4111 2007-05-16  Rafael Avila de Espindola  <espindola@google.com>
4112
4113         * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
4114         INTEGRAL_TYPE_P and TYPE_UNSIGNED.
4115         * langhooks.c (get_signed_or_unsigned_type): Don't check for
4116         INTEGRAL_TYPE_P or TYPE_UNSIGNED.
4117         (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
4118         TYPE_UNSIGNED.
4119
4120 2007-05-23  Sandra Loosemore  <sandra@codesourcery.com>
4121             Nigel Stephens  <nigel@mips.com>
4122             Richard Sandiford  <richard@codesourcery.com>
4123
4124         Fix up MIPS16 hard float and add support for complex.
4125
4126         * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
4127         (TARGET_SOFT_FLOAT_ABI): New.
4128         (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
4129         __mips_soft_float to reflect the ABI in use, not whether the
4130         FPU is directly accessible (e.g., in MIPS16 mode).
4131         (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
4132         (UNITS_PER_FPVALUE): Likewise.
4133
4134         * config/mips/mips.c (mips_expand_call): Remove redundant
4135         TARGET_MIPS16 check.
4136         (mips_arg_regno): New.
4137         (function_arg_advance): When setting bits in cum->fp_code for
4138         MIPS16, don't subtract 1 from cum->arg_number, since it is now
4139         zero-based.
4140         (function_arg): Use mips_arg_regno.
4141         (mips_return_mode_in_fpr_p): New.
4142         (mips16_call_stub_mode_suffix): New.
4143         (mips16_cfun_returns_in_fpr_p): New.
4144         (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
4145         (mips_output_function_prologue): Test mips16_hard_float, not
4146         !TARGET_SOFT_FLOAT, to decide when a function stub is required.
4147         (mips_expand_epilogue): Call MIPS16 helper routines to copy
4148         return value into a floating-point register.
4149         (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
4150         (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
4151         (mips16_fp_args): Handle MIPS32r2 ISA which supports
4152         TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
4153         word of double arguments from or to the high bits of 64-bit
4154         floating point registers.
4155         (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
4156         (mips16_fpret_double): New helper function.
4157         (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p.  Add
4158         support for complex modes.  Fill in DECL_RESULT for stubdecl.
4159         (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
4160
4161         * config/mips/mips16.S
4162         (RET, ARG1, ARG2): New.
4163         (MERGE_GPRf, MERGE_GPRt): New.
4164         (DELAYt, DELAYf): New.
4165         (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
4166         (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
4167         (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
4168         (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
4169         (SFOP): Renamed to...
4170         (OPSF3): This, and macro-ified.  Updated all uses.
4171         (SFOP2): Renamed to...
4172         (OPSF2): This, and macro-ified.  Updated all uses.
4173         (SFCMP): Renamed to...
4174         (CMPSF): This, and macro-ified.  Updated all uses.
4175         (SFREVCMP): Renamed to...
4176         (REVCMPSF): This, and macro-ified.  Updated all uses.
4177         (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
4178         (LDDBL1, LDDBL2, RETDBL): Deleted.
4179         (DFOP): Renamed to...
4180         (OPDF3): This, and macro-ified.  Updated all uses.
4181         (DFOP2): Renamed to...
4182         (OPDF2): This, and macro-ified.  Updated all uses.
4183         (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
4184         (DFCMP): Renamed to...
4185         (CMPDF): This, and macro-ified.  Updated all uses.
4186         (DFREVCMP): Renamed to...
4187         (REVCMPDF): This, and macro-ified.  Updated all uses.
4188         (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
4189         (RET_FUNCTION): New.
4190         (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
4191         (__mips16_ret_sc, __mips16_ret_dc): New.
4192         (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
4193         STUB_ARGS_6, STUB_ARGS_10): New.
4194         (CALL_STUB_NO_RET): New.
4195         (__mips16_call_stub_1): Macro-ified.
4196         (__mips16_call_stub_5): Macro-ified.
4197         (__mips16_call_stub_2): Macro-ified.
4198         (__mips16_call_stub_6): Macro-ified.
4199         (__mips16_call_stub_9): Macro-ified.
4200         (__mips16_call_stub_10): Macro-ified.
4201         (CALL_STUB_RET): New.
4202         (__mips16_call_stub_sf_0): Macro-ified.
4203         (__mips16_call_stub_sf_1): Macro-ified.
4204         (__mips16_call_stub_sf_5): Macro-ified.
4205         (__mips16_call_stub_sf_2): Macro-ified.
4206         (__mips16_call_stub_sf_6): Macro-ified.
4207         (__mips16_call_stub_sf_9): Macro-ified.
4208         (__mips16_call_stub_sf_10): Macro-ified.
4209         (__mips16_call_stub_df_0): Macro-ified.
4210         (__mips16_call_stub_df_1): Macro-ified.
4211         (__mips16_call_stub_df_5): Macro-ified.
4212         (__mips16_call_stub_df_2): Macro-ified.
4213         (__mips16_call_stub_df_6): Macro-ified.
4214         (__mips16_call_stub_df_9): Macro-ified.
4215         (__mips16_call_stub_df_10): Macro-ified.
4216         (__mips16_call_stub_sc_0): New.
4217         (__mips16_call_stub_sc_1): New.
4218         (__mips16_call_stub_sc_5): New.
4219         (__mips16_call_stub_sc_2): New.
4220         (__mips16_call_stub_sc_6): New.
4221         (__mips16_call_stub_sc_9): New.
4222         (__mips16_call_stub_sc_10): New.
4223         (__mips16_call_stub_dc_0): New.
4224         (__mips16_call_stub_dc_1): New.
4225         (__mips16_call_stub_dc_5): New.
4226         (__mips16_call_stub_dc_2): New.
4227         (__mips16_call_stub_dc_6): New.
4228         (__mips16_call_stub_dc_9): New.
4229         (__mips16_call_stub_dc_10): New.
4230
4231         * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
4232         * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
4233         * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
4234
4235 2007-05-23  Ian Lance Taylor  <iant@google.com>
4236
4237         * doc/invoke.texi (Invoking GCC): Document that the order of the
4238         -l option matters.
4239
4240 2007-05-23  Chen Liqin  <liqin@sunnorth.com.cn>
4241
4242         PR target/30987
4243         * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
4244         * config/score/predicate.md (const_pow2, const_npow2): Remove.
4245         * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
4246         undef.
4247
4248         PR target/30474
4249         * config/score/score.c (score_print_operand): Make sure that only
4250         lower bits are used.
4251
4252 2007-05-22  Ian Lance Taylor  <iant@google.com>
4253
4254         * tree-vrp.c (avoid_overflow_infinity): New static function,
4255         broken out of set_value_range_to_value.
4256         (set_value_range_to_value): Call avoid_overflow_infinity.
4257         (extract_range_from_assert): Likewise.
4258
4259 2007-05-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4260
4261         PR middle-end/31095
4262          * builtins.c (expand_builtin_memmove_args): Strip nops that don't
4263         change the type before looking for a COMPOUND_EXPR.
4264
4265 2007-05-22  Ian Lance Taylor  <iant@google.com>
4266
4267         * lower-subreg.c (decompose_multiword_subregs): If we change an
4268         insn, call remove_retval_note on it.
4269
4270 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
4271
4272         * regs.h (end_hard_regno): New function.
4273         (END_HARD_REGNO, END_REGNO): New macros.
4274         (add_to_hard_reg_set): New function.
4275         (remove_from_hard_reg_set): Likewise.
4276         (in_hard_reg_set_p): Likewise.
4277         (overlaps_hard_reg_set_p): Likewise.
4278         * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
4279         (note_btr_set): Use END_HARD_REGNO.
4280         * caller-save.c (setup_save_areas): Use end_hard_regno.
4281         (mark_set_regs): Use END_HARD_REGNO.
4282         (add_stored_regs): Use end_hard_regno.
4283         (mark_referenced_regs): Use add_to_hard_reg_set.
4284         * combine.c (update_table_tick): Use END_REGNO.
4285         (record_value_for_reg): Likewise.
4286         (record_dead_and_set_regs): Likewise.
4287         (get_last_value_validate): Likewise.
4288         (use_crosses_set_p): Likewise.
4289         (reg_dead_at_p_1): Likewise.
4290         (reg_dead_at_p): Likewise.
4291         (mark_used_regs_combine): Use add_to_hard_reg_set.
4292         (move_deaths): Use END_HARD_REGNO.
4293         (reg_bitfield_target_p): Use end_hard_regno.
4294         (distribute_notes): Use END_HARD_REGNO.
4295         * cse.c (mention_regs): Use END_REGNO.
4296         (insert): Use add_to_hard_reg_set.
4297         (invalidate): Use END_HARD_REGNO.
4298         (invalidate_for_call): Likewise.
4299         (exp_equiv_p): Use END_REGNO.
4300         (cse_insn): Likewise.
4301         * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
4302         * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
4303         * df-scan.c (df_ref_record): Use END_HARD_REGNO.
4304         * function.c (keep_stack_depressed): Use end_hard_regno.
4305         * global.c (global_alloc): Use end_hard_regno.
4306         (global_conflicts): Use add_to_hard_reg_set instead of
4307         mark_reg_live_nc.
4308         (find_reg): Likewise.
4309         (mark_reg_store): Likewise.
4310         (mark_reg_conflicts): Likewise.
4311         (mark_reg_death): Use remove_from_hard_reg_set.
4312         (mark_reg_live_nc): Delete.
4313         (set_preference): Use end_hard_regno.
4314         * local-alloc.c (mark_life): Use add_to_hard_reg_set and
4315         remove_from_hard_reg_set.
4316         (post_mark_life): Use add_to_hard_reg_set.
4317         * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
4318         (reg_becomes_live): Use add_to_hard_reg_set.
4319         * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
4320         (peep2_find_free_register): Use add_to_hard_reg_set.
4321         * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
4322         * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
4323         * regrename.c (note_sets): Use add_to_hard_reg_set.
4324         (clear_dead_regs): Use remove_from_hard_reg_set.
4325         (regrename_optimize): Use add_to_hard_reg_set.
4326         (find_oldest_value_reg): Use in_hard_reg_set_p.
4327         * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
4328         (hard_reg_set_here_p): Use end_hard_regno.
4329         (decompose): Likewise.
4330         (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
4331         (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
4332         * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
4333         (mark_home_live): Use end_hard_regno.
4334         (spill_hard_reg): Likewise.
4335         (clear_reload_reg_in_use): Likewise.
4336         * reorg.c (delete_prior_computation): Use END_REGNO.
4337         * resource.c (update_live_status): Use END_HARD_REGNO.
4338         (mark_referenced_resources): Use add_to_hard_reg_set.
4339         (mark_set_resources): Likewise.
4340         (mark_target_live_regs): Likewise.  Use remove_from_hard_reg_set.
4341         * rtlanal.c (refers_to_regno_p): Use END_REGNO.
4342         (reg_overlap_mentioned_p): Likewise.
4343         (dead_or_set_p): Likewise.  Use an exclusive upper loop bound.
4344         (covers_regno_no_parallel_p): Use END_REGNO.
4345         (find_regno_note): Likewise.
4346         (find_reg_fusage): Use END_HARD_REGNO.
4347         * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
4348         * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
4349
4350 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
4351
4352         * mode-switching.c (reg_dies): Change type of second argument to
4353         "HARD_REG_SET *".
4354         (optimize_mode_switching): Update accordingly.
4355
4356 2007-05-22  Richard Sandiford  <richard@codesourcery.com>
4357
4358         * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
4359         in favor of...
4360         (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
4361         (hard_reg_set_empty_p): ...these new functions.
4362         * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
4363         GO_IF_HARD_REG_SUBSET.
4364         * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
4365         instead of GO_IF_HARD_REG_EQUAL.
4366         * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
4367         instead of GO_IF_HARD_REG_EQUAL.
4368         * global.c (find_reg): Use hard_reg_set_empty_p instead of
4369         GO_IF_HARD_REG_SUBSET.
4370         (modify_reg_pav): Use hard_reg_set_empty_p instead of
4371         GO_IF_HARD_REG_EQUAL.
4372         * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
4373         of GO_IF_HARD_REG_SUBSET.
4374         * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
4375         instead of GO_IF_HARD_REG_EQUAL.
4376         * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
4377         hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
4378         (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
4379         of GO_IF_HARD_REG_SUBSET,
4380         * reload1.c (finish_spills): Use hard_reg_subset_p instead of
4381         GO_IF_HARD_REG_SUBSET.
4382         * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
4383         instead of GO_IF_HARD_REG_EQUAL.
4384         * config/sh/sh.c (push_regs, calc_live_regs): Use
4385         hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
4386         (hard_regs_intersect_p): Delete.
4387
4388 2007-05-22  Janis Johnson  <janis187@us.ibm.com>
4389
4390         * doc/sourcebuild.texi (Test Directives) Add dg-message.
4391
4392 2007-05-22  H.J. Lu  <hongjiu.lu@intel.com>
4393             Richard Henderson  <rth@redhat.com>
4394
4395         * config.gcc (i[34567]86-*-*): Add smmintrin.h to
4396         extra_headers.
4397         (x86_64-*-*): Likewise.
4398
4399         * i386/i386-modes.def (V2QI): New.
4400
4401         * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
4402         SSE4A.
4403         (override_options): Support SSE4.1.
4404         (IX86_BUILTIN_BLENDPD): New for SSE4.1.
4405         (IX86_BUILTIN_BLENDPS): Likewise.
4406         (IX86_BUILTIN_BLENDVPD): Likewise.
4407         (IX86_BUILTIN_BLENDVPS): Likewise.
4408         (IX86_BUILTIN_PBLENDVB128): Likewise.
4409         (IX86_BUILTIN_PBLENDW128): Likewise.
4410         (IX86_BUILTIN_DPPD): Likewise.
4411         (IX86_BUILTIN_DPPS): Likewise.
4412         (IX86_BUILTIN_INSERTPS128): Likewise.
4413         (IX86_BUILTIN_MOVNTDQA): Likewise.
4414         (IX86_BUILTIN_MPSADBW128): Likewise.
4415         (IX86_BUILTIN_PACKUSDW128): Likewise.
4416         (IX86_BUILTIN_PCMPEQQ): Likewise.
4417         (IX86_BUILTIN_PHMINPOSUW128): Likewise.
4418         (IX86_BUILTIN_PMAXSB128): Likewise.
4419         (IX86_BUILTIN_PMAXSD128): Likewise.
4420         (IX86_BUILTIN_PMAXUD128): Likewise.
4421         (IX86_BUILTIN_PMAXUW128): Likewise.
4422         (IX86_BUILTIN_PMINSB128): Likewise.
4423         (IX86_BUILTIN_PMINSD128): Likewise.
4424         (IX86_BUILTIN_PMINUD128): Likewise.
4425         (IX86_BUILTIN_PMINUW128): Likewise.
4426         (IX86_BUILTIN_PMOVSXBW128): Likewise.
4427         (IX86_BUILTIN_PMOVSXBD128): Likewise.
4428         (IX86_BUILTIN_PMOVSXBQ128): Likewise.
4429         (IX86_BUILTIN_PMOVSXWD128): Likewise.
4430         (IX86_BUILTIN_PMOVSXWQ128): Likewise.
4431         (IX86_BUILTIN_PMOVSXDQ128): Likewise.
4432         (IX86_BUILTIN_PMOVZXBW128): Likewise.
4433         (IX86_BUILTIN_PMOVZXBD128): Likewise.
4434         (IX86_BUILTIN_PMOVZXBQ128): Likewise.
4435         (IX86_BUILTIN_PMOVZXWD128): Likewise.
4436         (IX86_BUILTIN_PMOVZXWQ128): Likewise.
4437         (IX86_BUILTIN_PMOVZXDQ128): Likewise.
4438         (IX86_BUILTIN_PMULDQ128): Likewise.
4439         (IX86_BUILTIN_PMULLD128): Likewise.
4440         (IX86_BUILTIN_ROUNDPD): Likewise.
4441         (IX86_BUILTIN_ROUNDPS): Likewise.
4442         (IX86_BUILTIN_ROUNDSD): Likewise.
4443         (IX86_BUILTIN_ROUNDSS): Likewise.
4444         (IX86_BUILTIN_PTESTZ): Likewise.
4445         (IX86_BUILTIN_PTESTC): Likewise.
4446         (IX86_BUILTIN_PTESTNZC): Likewise.
4447         (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
4448         (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
4449         (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
4450         (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
4451         (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
4452         (bdesc_ptest): New.
4453         (bdesc_sse_3arg): Likewise.
4454         (bdesc_2arg): Likewise.
4455         (bdesc_1arg): Likewise.
4456         (ix86_init_mmx_sse_builtins): Support SSE4.1.  Handle SSE builtins
4457         with 3 args.
4458         (ix86_expand_sse_4_operands_builtin): New.
4459         (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
4460         smaller than 8 bits as the 2nd arg.
4461         (ix86_expand_sse_ptest): New.
4462         (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
4463         (ix86_expand_vector_set): Support SSE4.1.
4464         (ix86_expand_vector_extract): Likewise.
4465
4466         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
4467         __SSE4_1__ for -msse4.1.
4468
4469         * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
4470         (UNSPEC_INSERTPS): Likewise.
4471         (UNSPEC_DP): Likewise.
4472         (UNSPEC_MOVNTDQA): Likewise.
4473         (UNSPEC_MPSADBW): Likewise.
4474         (UNSPEC_PHMINPOSUW): Likewise.
4475         (UNSPEC_PTEST): Likewise.
4476         (UNSPEC_ROUNDP): Likewise.
4477         (UNSPEC_ROUNDS): Likewise.
4478
4479         * config/i386/i386.opt (msse4.1): New for SSE4.1.
4480
4481         * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
4482         (const_pow2_1_to_32768_operand): Likewise.
4483
4484         * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
4485         file.
4486
4487         * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
4488         SSE4.1.
4489         (sse4_1_insertps): Likewise.
4490         (*sse4_1_extractps): Likewise.
4491         (sse4_1_ptest): Likewise.
4492         (sse4_1_mulv2siv2di3): Likewise.
4493         (*sse4_1_mulv4si3): Likewise.
4494         (*sse4_1_smax<mode>3): Likewise.
4495         (*sse4_1_umax<mode>3): Likewise.
4496         (*sse4_1_smin<mode>3): Likewise.
4497         (*sse4_1_umin<mode>3): Likewise.
4498         (sse4_1_eqv2di3): Likewise.
4499         (*sse4_1_pinsrb): Likewise.
4500         (*sse4_1_pinsrd): Likewise.
4501         (*sse4_1_pinsrq): Likewise.
4502         (*sse4_1_pextrb): Likewise.
4503         (*sse4_1_pextrb_memory): Likewise.
4504         (*sse4_1_pextrw_memory): Likewise.
4505         (*sse4_1_pextrq): Likewise.
4506         (sse4_1_blendpd): Likewise.
4507         (sse4_1_blendps): Likewise.
4508         (sse4_1_blendvpd): Likewise.
4509         (sse4_1_blendvps): Likewise.
4510         (sse4_1_dppd): Likewise.
4511         (sse4_1_dpps): Likewise.
4512         (sse4_1_movntdqa): Likewise.
4513         (sse4_1_mpsadbw): Likewise.
4514         (sse4_1_packusdw): Likewise.
4515         (sse4_1_pblendvb): Likewise.
4516         (sse4_1_pblendw): Likewise.
4517         (sse4_1_phminposuw): Likewise.
4518         (sse4_1_extendv8qiv8hi2): Likewise.
4519         (*sse4_1_extendv8qiv8hi2): Likewise.
4520         (sse4_1_extendv4qiv4si2): Likewise.
4521         (*sse4_1_extendv4qiv4si2): Likewise.
4522         (sse4_1_extendv2qiv2di2): Likewise.
4523         (*sse4_1_extendv2qiv2di2): Likewise.
4524         (sse4_1_extendv4hiv4si2): Likewise.
4525         (*sse4_1_extendv4hiv4si2): Likewise.
4526         (sse4_1_extendv2hiv2di2): Likewise.
4527         (*sse4_1_extendv2hiv2di2): Likewise.
4528         (sse4_1_extendv2siv2di2): Likewise.
4529         (*sse4_1_extendv2siv2di2): Likewise.
4530         (sse4_1_zero_extendv8qiv8hi2): Likewise.
4531         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
4532         (sse4_1_zero_extendv4qiv4si2): Likewise.
4533         (*sse4_1_zero_extendv4qiv4si2): Likewise.
4534         (sse4_1_zero_extendv2qiv2di2): Likewise.
4535         (*sse4_1_zero_extendv2qiv2di2): Likewise.
4536         (sse4_1_zero_extendv4hiv4si2): Likewise.
4537         (*sse4_1_zero_extendv4hiv4si2): Likewise.
4538         (sse4_1_zero_extendv2hiv2di2): Likewise.
4539         (*sse4_1_zero_extendv2hiv2di2): Likewise.
4540         (sse4_1_zero_extendv2siv2di2): Likewise.
4541         (*sse4_1_zero_extendv2siv2di2): Likewise.
4542         (sse4_1_roundpd): Likewise.
4543         (sse4_1_roundps): Likewise.
4544         (sse4_1_roundsd): Likewise.
4545         (sse4_1_roundss): Likewise.
4546         (mulv4si3): Don't expand for SSE4.1.
4547         (smax<mode>3): Likewise.
4548         (umaxv4si3): Likewise.
4549         (uminv16qi3): Likewise.
4550         (umin<mode>3): Likewise.
4551         (umaxv8hi3): Rewrite.  Only enabled for SSE4.1.
4552
4553         * doc/extend.texi: Document SSE4.1 built-in functions.
4554
4555         * doc/invoke.texi: Document -msse4.1.
4556
4557 2007-05-22  Nathan Sidwell  <nathan@codesourcery.com>
4558
4559         * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
4560         * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
4561         * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
4562         (ASM_SPEC): Add asm_pcrel_spec.
4563         (EXTRA_SPECS): Add asm_pcrel_spec.
4564
4565 2007-05-21  David Daney  <ddaney@avtrex.com>
4566
4567         * doc/install.texi (Building a cross compiler): Add requirements
4568         for Java cross compiler.
4569
4570 2007-05-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4571
4572         PR middle-end/31995
4573         * tree-chrec.c (evolution_function_is_affine_multivariate_p):
4574         Add loopno argument.  Use evolution_function_is_invariant_rec_p
4575         instead of evolution_function_is_constant_p.
4576         Update calls to evolution_function_is_affine_multivariate_p.
4577         * tree-chrec.h (evolution_function_is_affine_multivariate_p):
4578         Add loopno argument.
4579         * tree-scalar-evolution.c (gather_chrec_stats): Call
4580         evolution_function_is_affine_multivariate_p with a loop
4581         number of 0.
4582         * tree-data-ref.c (analyze_miv_subscript): Likewise.
4583         (analyze_overlapping_iterations): Likewise.
4584         (access_functions_are_affine_or_constant_p): Likewise.
4585         (build_classic_dist_vector_1): If the access functions
4586         are equal, don't do anything.
4587
4588 2007-05-21  Paolo Bonzini  <bonzini@gnu.org>
4589             Paolo Carlini  <pcarlini@suse.de>
4590             Uros Bizjak  <ubizjak@gmail.com>
4591
4592         * c-cppbuiltin.c (c_cpp_builtins): Define
4593         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
4594         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
4595         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
4596         * doc/cpp.texi ([Standard Predefined Macros]): Document.
4597
4598 2007-05-21  Mike Stump  <mrs@apple.com>
4599
4600         * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
4601         handling as well.
4602         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
4603
4604 2007-05-21  Uros Bizjak  <ubizjak@gmail.com>
4605
4606         * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
4607         implementation if __OPTIMIZE__ is not defined.
4608         (_mm_alignr_pi8): Ditto.
4609         * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
4610         (_mm_inserti_si64): Ditto.
4611         * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
4612         (_mm_slli_epi16): Ditto.
4613         (_mm_slli_epi32): Ditto.
4614         (_mm_slli_epi64): Ditto.
4615         (_mm_srai_epi16): Ditto.
4616         (_mm_srai_epi32): Ditto.
4617         (_mm_srli_si128): Ditto.
4618         (_mm_slli_si128): Ditto.
4619         (_mm_srli_epi16): Ditto.
4620         (_mm_srli_epi32): Ditto.
4621         (_mm_srli_epi64): Ditto.
4622         (_mm_extract_epi16): Ditto.
4623         (_mm_insert_epi16): Ditto.
4624         (_mm_shufflehi_epi16): Ditto.
4625         (_mm_shufflelo_epi16): Ditto.
4626         (_mm_shuffle_epi32): Ditto.
4627         * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
4628         (_m_pextrw): Ditto.
4629         (_mm_insert_pi16): Ditto.
4630         (_m_pinsrw): Ditto.
4631         (_mm_shuffle_pi16): Ditto.
4632         (_m_pshufw): Ditto.
4633         (_mm_shufle_ps): Ditto.
4634         (_mm_prefetch): Ditto.
4635
4636 2007-05-21  Andreas Krebbel  <krebbel1@de.ibm.com>
4637
4638         * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
4639         * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
4640         * real.c (encode_i370_single, decode_i370_single,
4641         encode_i370_double, decode_i370_double): Functions removed.
4642         (i370_single_format, i370_double_format): Initializations removed.
4643         (real_maxval, round_for_format, exact_real_truncate, significand_size):
4644         Consider the log2_b field to always be one.
4645         (ieee_single_format, mips_single_format, coldfire_single_format,
4646         ieee_double_format, mips_double_format, coldfire_double_format,
4647         ieee_extended_motorola_format, ieee_extended_intel_96_format,
4648         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
4649         ibm_extended_format, mips_extended_format, ieee_quad_format,
4650         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
4651         decimal_single_format, decimal_double_format, decimal_quad_format,
4652         c4x_single_format, c4x_extended_format, real_internal_format): Remove
4653         initialization of log2_b.
4654         * real.h (i370_single_format, i370_double_format): Declarations
4655         removed.
4656         * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
4657         field to always be one.
4658
4659 2007-05-21  Andreas Schwab  <schwab@suse.de>
4660
4661         * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
4662         NOTE_INSN_BASIC_BLOCK_P.
4663         (process_for_unwind_directive): Likewise.
4664
4665 2007-05-21  Nathan Sidwell  <nathan@codesourcery.com>
4666
4667         * builtins.c (expand_builtin_setjmp_setup): Update comment.
4668         * function.h (struct function): Move va_list_gpr_size,
4669         va_list_fpr_size, function_frequency to front of bitfields.  Add
4670         calls_unwind_init.
4671         (current_function_calls_unwind_init): New.
4672         * except.c (expand_builtin_unwind_init): Set
4673         current_function_calls_unwind_init not
4674         current_function_has_nonlocal_label.
4675         * reload1.c (has_nonexceptional_receiver): New.
4676         (reload): Use it and current_function_calls_unwind_init to
4677         determine whether call-saved regs must be saved.
4678
4679 2007-05-20  Jan Hubicka  <jh@suse.cz>
4680
4681         * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
4682         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
4683         * ddg.c (create_ddg): LIkewise.
4684         * final.c (final): Remove hunk moving line number notes around since
4685         they are no longer present at this stage.
4686         (final_scan_insn): Use NOTE_KIND instead of
4687         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
4688         (output_asm_label): Likewise.
4689         * reorg.c (dbr_schedule): Likewise.
4690         * haifa-sched.c (unlink_other_notes): Likewise.
4691         * mode-switching.c (optimize_mode_switching): Likewise.
4692         * graph.c (start_bb): Likewise.
4693         * rtl.def (NOTE): Update description.
4694         * jump.c (squeeze_notes): Delete.
4695         (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
4696         NOTE_INSN_BASIC_BLOCK_P when possible.
4697         * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
4698         * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
4699         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
4700         (dwarf2out_var_location): Likewise.
4701         * cfgbuild.c (make_edges): Likewise.
4702         (find_basic_blocks_1): Likewise.
4703         * function.c (reorder_blocks_1): Likewise.
4704         (epilogue_done): Likewise.
4705         (reposition_prologue_and_epilogue_notes): Likewise.
4706         * print-rtl.c (print_rtx): Likewise; drop code for printing
4707         line number notes.
4708         (print_rtl): Likewise.
4709         (print_rtl_single): Likewise.
4710         * gcse.c (insert_insn_start_bb): Likewise.
4711         * alias.c (init_alias_analysis): Likewise.
4712         * calls.c (fixup_tail_calls): Likewise.
4713         * except.c (sjlj_emit_function_enter): Likewise.
4714         * emit-rtl.c (add_insn_after): Likeiwse.
4715         (emit_label_before): Likewise.
4716         (emit_label_after): Likewise.
4717         (emit_note_before, emit_note_after, emit_note): Update
4718         parameter to be enum insn_note; do not deal with source
4719         files.
4720         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
4721         Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
4722         when possible.
4723         (merge_blocks_move_successor_nojumps): Simplify now when
4724         we don't have BLOCK notes.
4725         (try_optimize_cfg): Likewise.
4726         * cfglayout.c (skip_insns_after_block): Likewise.
4727         (record_effective_endpoints): Likewise.
4728         (duplicate_insn_chain): Likewise.
4729         * varasm.c (output_constant_pool_1): Likewise.
4730         * sched-deps.c (sched_analyze): Likewise.
4731         * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
4732         Exterminate.
4733         (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
4734         * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
4735         (SET_INSN_DELETED): Simplify.
4736         (NOTE_LINE_NUMBER): Exterminate.
4737         (NOTE_LINE_KIND): New.
4738         (NOTE_INSN_BASIC_BLOCK_P): Update.
4739         (enum insn_note): Simplify.
4740         (GET_NOTE_INSN_NAME) Simplify.
4741         (emit_note_before, emit_note_after, emit_note): Update prototype.
4742         (squeeze_notes): Remove.
4743         * sched-int.h (NOTE_NOT_BB_P): Update.
4744         * resource.c (mark_target_live_regs): Update.
4745         * sched-rgn.c (debug_dependencies): Update.
4746         * sched-vis.c (print_insn): Update.
4747         * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
4748         * config/i386/i386.c (ix86_output_function_epilogue): Update.
4749         * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
4750         (TARGET_ADJUST_UNROLL_MAX): Likewise.
4751         (split_branches): Update.
4752         (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
4753         4.0.0.
4754         (sh_adjust_unroll_max): Exterminate.
4755         * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
4756         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
4757         (m68hc11_reorg): Likewise.
4758         * config/ia64/ia64.c (emit_insn_group_barriers): Update.
4759         (emit_predicate_relation_info): Update.
4760         (process_for_unwind_directive): Update.
4761         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
4762         (output_call): Update.
4763         * config/pa/pa.c (output_lbranch): Update.
4764         (output_millicode_call): Update.
4765         (output_call): Update.
4766         (pa_combine_instructions): Update.
4767         * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
4768         * config/bfin/bfin.c (gen_one_bundle): Update.
4769         * cfgrtl.c (can_delete_note_p): Update.
4770         (delete_insn): Update.
4771         (rtl_merge_blocks): Update.
4772         (commit_one_edge_insertion): Update.
4773         (rtl_verify_flow_info): Update.
4774         * stmt.c (expand_case): Do not call squeeze_notes.
4775
4776 2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4777
4778         PR middle-end/7651
4779         PR c++/11856
4780         PR c/12963
4781         PR c/23587
4782         PR other/29694
4783         * c.opt (Wtype-limits): New.
4784         * doc/invoke.texi (Wtype-limits): Document it.
4785         (Wextra): Enabled by -Wextra.
4786         * c-opts.c (c_common_post_options): Enabled by -Wextra.
4787         * c-common.c (shorten_compare): Warn with Wtype-limits.
4788
4789 2007-05-20  Uros Bizjak  <ubizjak@gmail.com>
4790
4791         * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
4792         inlined function, not as a macro.
4793         (_mm_alignr_pi8): Ditto.
4794         * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
4795         (_mm_inserti_si64): Ditto.
4796         * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
4797         (_mm_extract_epi16): Ditto.
4798         (_mm_insert_epi16): Ditto.
4799         (_mm_shufflehi_epi16): Ditto.
4800         (_mm_shufflelo_epi16): Ditto.
4801         (_mm_shuffle_epi32): Ditto.
4802         * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
4803         * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
4804         all functions.
4805         (_m_from_float): Add __extension__ to conversion.  Use 0.0f for
4806         float constant.
4807         (_m_to_float): Use C89 compatible assignment.
4808
4809 2007-04-20  Martin Michlmayr  <tbm@cyrius.com>
4810
4811         PR target/32007
4812         * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
4813
4814 2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4815
4816         PR middle-end/7651
4817         * doc/invoke.texi (Wreturn-type): Complete description.
4818         (Wextra): Delete item about return-type warning.
4819         * c-decl.c: Delete redundant Wextra warning.
4820
4821 2007-05-20  Uros Bizjak  <ubizjak@gmail.com>
4822
4823         PR target/31585
4824         * config/i386/pmmintrin.h: Do not include xmmintrin.h
4825         * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
4826         inlined function, not as a macro.
4827         (_mm_prefetch): Ditto.
4828         (_m_pextrw): Ditto.
4829         (_mm_insert_pi16): Ditto.
4830         (_m_pinsrw): Ditto.
4831         (_mm_shuffle_pi16): Ditto.  Add const to __N argument.
4832         (_m_pshufw): Ditto. Add const to __N argument.
4833         (_mm_shufle_ps): Ditto.  Add const to __mask argument.
4834         * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
4835         (_mm_slli_epi32): Ditto.
4836         (_mm_srli_si128): Implement as always inlined function, not as a
4837         macro.  Add __inline to function declaration.
4838         (_mm_slli_si128): Ditto.
4839
4840 2007-05-19  Uros Bizjak  <ubizjak@gmail.com>
4841
4842         * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
4843         FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
4844         New constants.
4845         (struct fenv): New structure.
4846         (FP_HANDLE_EXCEPTIONS): New define.
4847         (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
4848         (_FP_DECL_EXP): New define.
4849         (FP_INIT_ROUNDMODE): New define.
4850         (FP_ROUNDMODE): New define.
4851
4852 2007-05-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4853
4854         * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
4855         (Wconversion): Update description.
4856         (Wconversion-sign): New.
4857         * c.opt (Wconversion-sign): New.
4858         * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
4859         means disabled for C++. Otherwise, take the status of Wconversion.
4860         * c-common.c (conversion_warning): Warn with either Wconversion or
4861         Wconversion-sign.
4862         (warnings_for_convert_and_check): Conditions are already checked by
4863         conversion_warning.
4864         (convert_and_check): Don't check warnings if the conversion failed.
4865
4866 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
4867            Anatoly Sokolov <aesok@dol.ru>
4868
4869         * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
4870         avr_epilogue_uses) : Add declaration.
4871         * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
4872         * config/avr/constraints.md (R): New constraint.
4873         config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
4874         UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
4875         (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
4876         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
4877         (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
4878         call_prologue_saves, epilogue_restores, return_from_epilogue,
4879         return_from_main_epilogue, return_from_interrupt_epilogue,
4880         return_from_naked_epilogue, prologue, epilogue): New patterns.
4881         (jump): Handle symbol reference.
4882         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
4883         avr_output_function_prologue, avr_output_function_epilogue): Remove
4884         functions.
4885         (avr_init_machine_status, expand_prologue, expand_epilogue,
4886         avr_asm_function_end_prologue, avr_epilogue_uses,
4887         avr_asm_function_begin_epilogue): New functions.
4888         (prologue_size, epilogue_size, jump_tables_size): Remove global
4889         variables.
4890         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
4891         (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
4892         (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
4893         (avr_override_options): Initialise init_machine_status.
4894         (output_movhi): Handle all stack pointer loads.
4895         (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
4896         (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
4897         * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
4898         (EPILOGUE_USES) Redefine.
4899         (machine_function) Declare.
4900
4901 2007-05-19  Richard Sandiford  <richard@codesourcery.com>
4902
4903         * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
4904         Use a single return statement.
4905
4906 2007-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4907
4908         PR middle-end/30250
4909         * builtins.c (do_mpfr_lgamma_r): New.
4910         (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
4911         * tree.h (CASE_FLT_FN_REENT): New.
4912
4913 2007-05-18  Geoffrey Keating  <geoffk@apple.com>
4914
4915         * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
4916         (output_die): Use 'unsigned long' with %x.
4917         * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
4918         HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
4919         * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
4920
4921         * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
4922
4923 2007-05-18  H.J. Lu  <hongjiu.lu@intel.com>
4924
4925         PR target/31989
4926         PR target/31681
4927         PR target/31666
4928         * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
4929         true if function has no argument.
4930
4931 2007-05-18  DJ Delorie  <dj@redhat.com>
4932
4933         * config/mips/mips.c (mips_offset_within_alignment_p): New.
4934         (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
4935
4936 2007-05-18  Uros Bizjak  <ubizjak@gmail.com>
4937
4938         * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
4939         sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
4940         count_trailing_zeros.
4941         (__i386__): Implement count_leading_zeros using __builtin_clz().
4942         Implement count_trailing_zeros usign __builtin_ctz().
4943
4944 2007-05-18  Richard Sandiford  <richard@codesourcery.com>
4945
4946         * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
4947
4948 2007-05-18  Uros Bizjak  <ubizjak@gmail.com>
4949
4950         PR middle-end/31344
4951         * expr.c (emit_move_change_mode): Change mode of push operands here.
4952
4953 2007-05-17  Ian Lance Taylor  <iant@google.com>
4954
4955         PR tree-optimization/31953
4956         * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
4957         Change all callers.
4958         (set_value_range_to_null): Call set_value_range_to_value.
4959         (extract_range_from_comparison): Likewise.
4960
4961 2007-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4962
4963         * toplev.c (print_version): Output GMP/MPFR version info.
4964
4965         * builtins.c (CASE_MATHFN_REENT): New macro.
4966         (mathfn_built_in): Use it.
4967         * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
4968         BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
4969         BUILT_IN_LGAMMAL_R): New.
4970         * doc/extend.texi: Document new builtins.
4971
4972         PR middle-end/31796
4973         * builtins.c (do_mpfr_remquo): New.
4974         (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
4975         (fold_builtin_3): Handle BUILT_IN_REMQUO.
4976
4977         PR middle-end/30251
4978         * builtins.c (fold_builtin_1): Handle y0, y1.
4979         (fold_builtin_2): Handle yn.
4980
4981         PR middle-end/30251
4982         * builtins.c (do_mpfr_bessel_n): New.
4983         (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
4984         (fold_builtin_2): Handle BUILT_IN_JN.
4985
4986 2007-05-17  Danny Smith  <dannysmith@users.sourceforge.net>
4987
4988         PR target/31965
4989         * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
4990         TYPE_PRECISION (intmax_type_node).
4991
4992 2007-05-17  Steve Ellcey  <sje@cup.hp.com>
4993
4994         PR target/31850
4995         * reload.c (subst_reloads): Remove checking.
4996
4997 2007-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
4998
4999         PR rtl-optimization/31691
5000         * combine.c (simplify_set): Build a new src pattern instead of
5001         substituting its operands in the COMPARE case.
5002
5003 2007-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
5004
5005         * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
5006         (execute_vrp): Preserve loops through jump threading.
5007         * tree-ssa-threadupdate.c (thread_single_edge,
5008         dbds_continue_enumeration_p, determine_bb_domination_status,
5009         thread_through_loop_header): New functions.
5010         (create_edge_and_update_destination_phis,
5011         create_edge_and_update_destination_phis): Set loops for the new blocks.
5012         (prune_undesirable_thread_requests): Removed.
5013         (redirect_edges): Do not pretend that redirect_edge_and_branch can
5014         create new blocks.
5015         (thread_block): Do not call prune_undesirable_thread_requests.
5016         Update loops.
5017         (mark_threaded_blocks): Select edges to thread here.
5018         (thread_through_all_blocks): Take may_peel_loop_headers argument.
5019         Thread edges through loop headers independently.
5020         * cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
5021         * tree-pass.h (TODO_mark_first_instance): New.
5022         (first_pass_instance): Declare.
5023         * cfghooks.c (duplicate_block): Put the block to the original loop
5024         if copy is not specified.
5025         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
5026         jump threading.  Pass may_peel_loop_headers to
5027         thread_through_all_blocks according to first_pass_instance.
5028         * cfgloop.h (create_preheader): Declare.
5029         * tree-flow.h (thread_through_all_blocks): Declaration changed.
5030         * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
5031         * passes.c (first_pass_instance): New variable.
5032         (next_pass_1): Set TODO_mark_first_instance.
5033         (execute_todo): Set first_pass_instance.
5034
5035 2007-05-17  Uros Bizjak  <ubizjak@gmail.com>
5036
5037         PR tree-optimization/24659
5038         * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
5039         OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
5040         OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
5041         OTI_vec_pack_ufix_trunc.
5042         (vec_unpacks_float_hi_optab): Define new macro.
5043         (vec_unpacks_float_lo_optab): Ditto.
5044         (vec_unpacku_float_hi_optab): Ditto.
5045         (vec_unpacku_float_lo_optab): Ditto.
5046         (vec_pack_sfix_trunc_optab): Ditto.
5047         (vec_pack_ufix_trunc_optab): Ditto.
5048         * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
5049         and vec_pack_[s|u]fix_trunc_optab using
5050         vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
5051         * tree-vectorizer.c (supportable_widening_operation): Handle
5052         FLOAT_EXPR and CONVERT_EXPR.  Update comment.
5053         (supportable_narrowing_operation): New function.
5054         * tree-vectorizer.h (supportable_narrowing_operation): Prototype.
5055         * tree-vect-transform.c (vectorizable_conversion): Handle
5056         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
5057         (vect_gen_widened_results_half): Move before vectorizable_conversion.
5058         (vectorizable_type_demotion): Call supportable_narrowing_operation()
5059         to check for target support.
5060         * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
5061         for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
5062         for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
5063         for VEC_PACK_FIX_TRUNC_EXPR.
5064         (expand_binop): Special case mode of the result for
5065         vec_pack_[u|s]fix_trunc_optab.
5066         (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
5067         vec_pack_[u|s]fix_trunc_optab.
5068
5069         * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
5070         VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
5071         * tree-pretty-print.c (dump_generic_node): Handle
5072         VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
5073         VEC_PACK_FIX_TRUNC_EXPR.
5074         (op_prio): Ditto.
5075         * expr.c (expand_expr_real_1): Ditto.
5076         * tree-inline.c (estimate_num_insns_1): Ditto.
5077         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
5078
5079         * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
5080         (vec_unpacks_float_lo_v8hi): Ditto.
5081         (vec_unpacku_float_hi_v8hi): Ditto.
5082         (vec_unpacku_float_lo_v8hi): Ditto.
5083         (vec_unpacks_float_hi_v4si): Ditto.
5084         (vec_unpacks_float_lo_v4si): Ditto.
5085         (vec_pack_sfix_trunc_v2df): Ditto.
5086
5087         * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
5088         Document.
5089         [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
5090         [VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
5091         * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
5092         [vec_pack_ufix_trunc]: Ditto.
5093         [vec_unpacks_float_hi]: Ditto.
5094         [vec_unpacks_float_lo]: Ditto.
5095         [vec_unpacku_float_hi]: Ditto.
5096         [vec_unpacku_float_lo]: Ditto.
5097
5098 2007-05-16  Uros Bizjak  <ubizjak@gmail.com>
5099
5100         * soft-fp/README: Update for new files.
5101         * soft-fp/floattisf.c: New file.
5102         * soft-fp/floattidf.c: New file.
5103         * soft-fp/floattitf.c: New file.
5104         * soft-fp/floatuntisf.c: New file.
5105         * soft-fp/floatuntidf.c: New file.
5106         * soft-fp/floatuntitf.c: New file.
5107         * soft-fp/fixsfti.c: New file.
5108         * soft-fp/fixdfti.c: New file.
5109         * soft-fp/fixtfti.c: New file.
5110         * soft-fp/fixunssfti.c: New file.
5111         * soft-fp/fixunsdfti.c: New file.
5112         * soft-fp/fixunstfti.c: New file.
5113         * soft-fp/extendxftf.c: New file.
5114         * soft-fp/trunctfxf.c: New file.
5115
5116         * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
5117         (__trunctfxf2): Ditto.
5118
5119         * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
5120         __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
5121         __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
5122         __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
5123         __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
5124         __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.
5125
5126         * config/i386/t-fprules-softfp64: New file.
5127         * config/i386/sfp-machine.h: New file.
5128         * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
5129         x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
5130         and soft-fp/t-softfp to tmake_file.
5131         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
5132         i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
5133
5134         * config/i386/t-linux64 (softfp_wrap_start): New.
5135         (softfp_wrap_end): New.
5136         * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
5137         supported for TARGET_64BIT.
5138
5139 2007-05-16  Rafael Avila de Espindola  <espindola@google.com>
5140
5141         * c-common.c (c_common_signed_or_unsigned_type): Emulate
5142         c_common_unsigned_type behavior.
5143
5144 2007-05-16  Paolo Bonzini  <bonzini@gnu.org>
5145
5146         * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
5147         calls as pure.
5148
5149 2007-05-16  Eric Christopher  <echristo@apple.com>
5150
5151         * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
5152         saving after stack push. Set sp_offset whenever we push.
5153         (rs6000_emit_epilogue): Move altivec register restore before
5154         stack push.
5155
5156 2007-05-16  Richard Sandiford  <richard@codesourcery.com>
5157
5158         * configure.ac: Allow sysroots to be relocated under $prefix as
5159         well as $exec_prefix.
5160         * configure: Regenerate.
5161
5162 2007-05-16  Richard Sandiford  <richard@codesourcery.com>
5163
5164         Revert:
5165
5166         2007-05-12  Richard Sandiford  <richard@codesourcery.com>
5167
5168         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
5169         (gcc_tooldir): Likewise.
5170         * configure: Regenerate.
5171         * Makefile.in (libsubdir_to_prefix): New variable, based on the
5172         old configure.ac gcc_tooldir setting.
5173         (prefix_to_exec_prefix): New variable.
5174         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
5175         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
5176
5177 2007-05-14  Janis Johnson  <janis187@us.ibm.com>
5178
5179         * c-typeck.c (build_binary_op): Return early for error.
5180
5181 2007-05-15  Zdenek Dvorak  <dvorakz@suse.cz>
5182
5183         * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
5184         struct nb_iter_bound.
5185         (free_numbers_of_iterations_estimates_loop): Use ggc_free.
5186         * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
5187         * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
5188         * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
5189         (struct scev_info_str, scalar_evolution_info): Add GTY markers.
5190         (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
5191         (del_scev_info): Use ggc_free.
5192         (scev_initialize): Allocate scalar_evolution_info in gc memory.
5193         * loop-init.c: Include ggc.h.
5194         (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
5195         (loop_optimizer_finalize): Use ggc_free.
5196         * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
5197         pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
5198         pass_iv_optimize): Add TODO_ggc_collect.
5199         * function.h (struct function): Remove skip marker from
5200         x_current_loops.
5201         * cfgloop.c: Include ggc.h.
5202         (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
5203         memory.
5204         (establish_preds): Vector superloops is gc allocated.
5205         (alloc_loop): Allocate loop using GGC_CNEW.  Allocate head of
5206         loop->exits list.
5207         (flow_loops_find): Vector larray is gc allocated.
5208         (loop_exit_free): Use ggc_free.
5209         (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit.  Reflect
5210         that head of exits list is now not a part of struct loop.
5211         (record_loop_exits): Allocate exits table in gc memory.
5212         (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect
5213         that head of exits list is now not a part of struct loop.
5214         * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
5215         struct loop_exit): Add GTY marker.
5216         (struct loop): Add GTY marker.  Make superloops vector gc allocated.
5217         Add skip marker to aux field.  Make head of exits list a separate
5218         object.
5219         (struct loops): Add GTY marker.  Make larray vector gc allocated.
5220         Add param marker to exits table.
5221         (get_loops): Type changed.
5222         * Makefile.in (tree-scalar-evolution.o): Add
5223         gt-tree-scalar-evolution.h dependency.
5224         (cfgloop.o, loop-init.o): Add ggc.h dependency.
5225         (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
5226         * basic-block.h (struct basic_block_def): Remove skip marker from
5227         loop_father field.
5228
5229 2007-05-14  Uros Bizjak  <ubizjak@gmail.com>
5230
5231         * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
5232         of 0 in the call to expand_expr().
5233         (expand_builtin_mathfn_3): Ditto.
5234         (expand_builtin_interclass_mathfn): Ditto.
5235         (expand_builtin_cexpi): Ditto.
5236         (expand_builtin_int_roundingfn): Ditto.
5237         (expand_builtin_int_roundingfn_2): Ditto.
5238         (expand_builtin_pow): Ditto.
5239         (expand_builtin_powi): Ditto.
5240         (expand_builtin_bswap): Ditto.
5241         (expand_builtin_unop): Ditto.
5242         (expand_builtin_fabs): Ditto.
5243         (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
5244         the call to expand_expr().
5245         (expand_builtin_sync_operation): Ditto.
5246         (expand_builtin_compare_and_swap): Ditto.
5247         (expand_builtin_lock_test_and_set): Ditto.
5248         * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
5249         instead of 0 in the call to expand_expr().
5250         (expand_builtin_extract_return_addr): Ditto.
5251         (expand_builtin_eh_return): Ditto.
5252         (expand_eh_return): Ditto.
5253         * explow.c (expr_size): Ditto.
5254         * expr.c (optimize_bitfield_assignment_op): Ditto.
5255         (expand_assignement): Ditto.
5256         (store_expr): Ditto.
5257         (store_field): Ditto.
5258         (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
5259         the call to expand_expr().
5260         (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
5261         in the call to expand_expr().
5262         [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
5263         BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
5264         [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
5265         of expand_expr().
5266         * optabs.c (expand_vec_shift_expr): Ditto.
5267         (expand_vec_cond_expr): Ditto.
5268         (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
5269         call to expand_expr().
5270         * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
5271         in the call to expand_expr().
5272
5273 2007-05-14  Dave Korn  <dave.korn@artimi.com>
5274
5275         * genautomata.c (gen_regexp_el):  Allocate correct size for regexp.
5276
5277 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
5278
5279         * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
5280         instead of c_common_unsigned_type.
5281         (c_common_unsigned_type): Remove.
5282         (shorten_compare): Use c_common_signed_or_unsigned_type instead of
5283         c_common_unsigned_type.
5284         (c_common_nodes_and_builtins): Use unsigned_type_for instead of
5285         c_common_unsigned_type.
5286         * c-common.h (c_common_unsigned_type): Remove.
5287         * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
5288         c_common_unsigned_type.
5289         * c-format.c (check_format_types): Use unsigned_type_for instead of
5290         c_common_unsigned_type.
5291         * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
5292         * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead
5293         of c_common_unsigned_type.
5294         * convert.c (convert_to_integer): Use unsigned_type_for instead of
5295         lang_hooks.types.unsigned_type.
5296         * expmed.c (make_tree): Use unsigned_type_for instead of
5297         lang_hooks.types.unsigned_type.
5298         * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
5299         lang_hooks.types.unsigned_type.
5300         (build_range_check): Likewise.
5301         (fold_unary): Likewise.
5302         (fold_binary): Likewise.
5303         (fold_ternary): Likewise.
5304         * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
5305         * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
5306         * tree.c (get_unsigned_type): New.
5307         (unsigned_type_for): Use get_unsigned_type instead of
5308         lang_hooks.types.unsigned_type.
5309
5310 2007-05-14  Kazu Hirata  <kazu@codesourcery.com>
5311
5312         * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
5313         to m68k_get_function_kind.  Update its prototype.
5314         * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
5315         interrupt_thread.
5316         (m68k_interrupt_function_p): Return enum m68k_function_type
5317         instead of bool.  Rename to m68k_get_function_kind.
5318         (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
5319         target is not fido.
5320         (m68k_compute_frame_layout): Don't mark any register for save
5321         if an interrupt_thread attribute is specified.
5322         (m68k_hard_regno_rename_ok): Update a use of
5323         m68k_interrupt_function_p.
5324         * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
5325         m68k_interrupt_function_p.
5326         (m68k_function_type): New.
5327         * config/m68k/m68k.md (*return): Output a 'sleep' instruction
5328         for a function with an interrupt_thread attribute.
5329         * doc/extend.texi: Document the interrupt_thread attribute.
5330
5331 2007-05-13  Daniel Berlin  <dberlin@dberlin.org>
5332
5333         Fix PR tree-optimization/31911
5334         * tree-ssa-pre.c (phi_translate): Make sure to cache results even
5335         if they didn't change the expression.
5336
5337 2007-05-13  Zdenek Dvorak  <dvorakz@suse.cz>
5338
5339         * tree-scalar-evolution.c (resolve_mixers): Exported.
5340         * tree-scalar-evolution.h (resolve_mixers): Declare.
5341         * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
5342         ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
5343         record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
5344         base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
5345         init_array_ref, init_pointer_ref, analyze_indirect_ref,
5346         strip_conversion, analyze_offset_expr, address_analysis,
5347         object_analysis, analyze_offset): Removed.
5348         (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
5349         split_constant_offset, canonicalize_base_object_address,
5350         object_address_invariant_in_loop_p, disjoint_objects_p,
5351         dr_may_alias_p, dr_address_invariant_p): New functions.
5352         (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
5353         and dr_analyze_alias.
5354         (initialize_data_dependence_relation): Use dr_may_alias_p
5355         and object_address_invariant_in_loop_p.
5356         (compute_self_dependence): Handle the case when
5357         DDR_ARE_DEPENDENT (ddr) is chrec_dont_know.
5358         (find_data_references_in_stmt): Restrict the analysis of data
5359         references to the given loop nest.
5360         (find_data_references_in_loop): Made static.  Pass loop nest to
5361         find_data_references_in_stmt.
5362         (compute_data_dependences_for_loop): Use DR_VOPS.
5363         (free_data_ref): Free DR_VOPS.
5364         * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
5365         (struct innermost_loop_behavior): ... new.
5366         (struct base_object_info): Replaced by ...
5367         (struct indices): ... new.
5368         (struct dr_alias): New.
5369         (enum data_ref_type): Removed.
5370         (struct data_reference): Consist of struct innermost_loop_behavior,
5371         struct indices and struct dr_alias.
5372         (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
5373         (DR_MEMTAG): Renamed to ...
5374         (DR_SYMBOL_TAG): ... this.
5375         (find_data_references_in_loop): Declaration removed.
5376         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
5377         instead of DR_OFFSET_MISALIGNMENT.  DR_ALIGNED_TO is never NULL.
5378         (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
5379         * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
5380
5381 2007-05-13  Revital Eres  <eres@il.ibm.com>
5382
5383         * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
5384         which walks virtual def-use chains to find redundant stores.
5385         (dse_optimize_stmt): Call it.
5386
5387 2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
5388
5389         * gcse.c (gcse_main): Do jump bypassing in CPROP2.
5390         * passes.c (init_optimization_passes): Move pass_jump_bypass
5391         after loop2.
5392
5393         * basic-block.h (bb_has_eh_pred): Fix style issue.
5394
5395 2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
5396
5397         PR rtl-optimization/31848
5398         * loop-invariant.c (move_invariant_reg): If we move an insn
5399         with a REG_EQUAL note, and that insn is not always executed,
5400         remove the REG_EQUAL note.
5401
5402 2007-05-12  Richard Guenther  <rguenther@suse.de>
5403
5404         PR tree-optimization/31797
5405         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
5406         propagate into a stmt that has volatile ops.
5407
5408 2007-05-12  Richard Sandiford  <richard@codesourcery.com>
5409
5410         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
5411         (gcc_tooldir): Likewise.
5412         * configure: Regenerate.
5413         * Makefile.in (libsubdir_to_prefix): New variable, based on the
5414         old configure.ac gcc_tooldir setting.
5415         (prefix_to_exec_prefix): New variable.
5416         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
5417         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
5418
5419 2007-05-11  Silvius Rus  <rus@google.com>
5420
5421         * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
5422         * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
5423         * c-common.h (strict_aliasing_warning): Change return type.
5424         * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
5425         * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
5426         (build_c_cast): Condition call to strict_aliasing_warning.
5427         * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
5428         * flags.h (set_Wstrict_aliasing): Declare.
5429         * opts.c (set_Wstrict_alising): Define, add call to.
5430         * tree-flow.h (strict_aliasing_warning_backend): Declare.
5431         * tree-ssa-alias-warnings.c: New file.
5432         * tree-ssa-alias.c (compute_may_aliases): Add call to
5433         strict_aliasing_warning_backend.
5434
5435 2007-05-11  Zdenek Dvorak  <dvorakz@suse.cz>
5436
5437         * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
5438         Use loop_depth and loop_outer accessor functions.
5439         * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
5440         determine_invariantness_stmt, move_computations_stmt): Ditto.
5441         * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
5442         add_loop, loopify, unloop, fix_loop_structure): Ditto.
5443         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
5444         * tree-scalar-evolution.c (interpret_loop_phi,
5445         compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
5446         instantiate_parameters_1, scev_const_prop): Ditto.
5447         * cfghooks.c (make_forwarder_block): Ditto.
5448         * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
5449         * modulo-sched.c (loop_canon_p): Ditto.
5450         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
5451         slpeel_can_duplicate_loop_p): Ditto.
5452         * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
5453         * tree-cfg.c (tree_duplicate_sese_region): Ditto.
5454         * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
5455         cancel_loop, verify_loop_structure): Ditto.
5456         (flow_loop_nested_p, superloop_at_depth, flow_loop_free,
5457         add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
5458         superloops vector instead of "pred" array.
5459         (establish_preds): Take father loop as an argument.  Initialize the
5460         superloops vector.
5461         (flow_loop_tree_node_add): Pass father loop to establish_preds.
5462         Do not initialize loop->outer.
5463         (flow_loop_tree_node_remove): Truncate the superloops vector.
5464         * cfgloop.h (struct loop): Removed field "outer", fields "depth" and
5465         "pred" merged to "superloops" vector.
5466         (loop_depth, loop_outer): New.
5467         (fel_init): Use loop_outer.
5468
5469 2007-05-11  Jan Hubicka  <jh@suse.cz>
5470
5471         * cgraphunit.c: Include gt-cgraphunit.h
5472         (static_ctors, static_dtors): New static vars.
5473         (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
5474         based on implementation in c-common.c
5475         (cgraph_finalize_function): Call record_cdtor_fn.
5476         (cgraph_optimize): Call cgraph_build_cdtor_fns.
5477         * decl.c (finish_function): Do not call c_record_cdtor_fn.
5478         (c_write_global_declarations): Do not call c_build_cdtor_fns.
5479         * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
5480         build_cdtor, c_build_cdtor_fns): Remove.
5481         * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
5482         c_build_cdtor_fns): Remove prototype.
5483
5484 2007-05-11  Paolo Carlini  <pcarlini@suse.de>
5485
5486         PR other/31852
5487         * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
5488         * builtins.def: Add BUILT_IN_MEMCHR, use the latter.
5489         * builtins.c (fold_builtin_memchr): New.
5490         (expand_builtin_memchr): Call the latter.
5491         (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
5492         * doc/extend.texi ([Other built-in functions provided by GCC]):
5493         Document memchr.
5494
5495 2007-05-11  Andreas Krebbel  <krebbel1@de.ibm.com>
5496
5497         * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
5498         PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
5499         PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
5500         PFPO_OP1_TYPE_SHIFT): Constants added.
5501         (DFP_ALL): Mode macro defined.
5502         ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
5503         "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
5504         Insn definitions added.
5505         ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
5506         "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
5507         Expanders added.
5508
5509 2007-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
5510
5511         PR tree-optimization/31885
5512         * tree-chrec.c (chrec_contains_undetermined): Do not consider
5513         NULL_TREE to be undetermined.
5514         (automatically_generated_chrec_p): Return false for NULL.
5515
5516 2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>
5517
5518         * config/bfin/bfin.h (MOVE_RATIO): Define.
5519
5520 2007-05-10  Richard Sandiford  <richard@codesourcery.com>
5521
5522         * config.gcc (sparc-wrs-vxworks): New target.
5523         * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
5524         * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
5525         * config/sparc/sparc.h: Include vxworks-dummy.h.
5526         (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
5527         include LABEL_REFs too.
5528         * config/sparc/sparc.c (sparc_expand_move): Don't assume that
5529         _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
5530         VxWorks.
5531         (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
5532         on VxWorks.
5533         (load_pic_register): Use gen_vxworks_load_got for VxWorks.
5534         (sparc_emit_call_insn): New function.
5535         (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
5536         functions when generating VxWorks PIC.
5537         * config/sparc/sparc.md (vxworks_load_got): New pattern.
5538         (call, call_value): Use sparc_emit_call_insn instead of
5539         emit_call_insn.
5540
5541 2007-05-09  Bob Wilson  <bob.wilson@acm.org>
5542
5543         * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
5544
5545 2007-05-09  Bob Wilson  <bob.wilson@acm.org>
5546
5547         * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
5548         for floating-point values if HOST_BITS_PER_LONG > 32.  Use
5549         split_double instead of operand_subword.
5550
5551 2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>
5552
5553         * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
5554         * config/bfin/bfin.c (bfin_local_alignment): New function.
5555         * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.
5556
5557 2007-05-08  Chao-ying Fu  <fu@mips.com>
5558
5559         * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
5560         * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
5561         (smsub_widen_optab, umsub_widen_optab): Define.
5562         * optabs.c (init_optabs): Initialize smsub_widen_optab and
5563         umsub_widen_optab.
5564         * genopinit.c (optabs): Fill in smsub_widen_optab and
5565         umsub_widen_optab.
5566         * expr.c (expand_expr_real_1): Try to use smsub_widen_optab
5567         and umsub_widen_optab to implement multiply-subtract sequences.
5568         * config/mips/mips.md (*msac<u>_di): Rename to...
5569         (<u>msubsidi4): ...this.  Extend condition to include
5570         GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
5571         of operand 0 to "ka" and use the three-operand form of msub<u>
5572         for TARGET_DSPR2.
5573         * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
5574         to define_expands.
5575
5576 2007-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
5577
5578         PR rtl-optimization/28011
5579         * reload.c (push_reload): Set dont_share if IN appears in OUT
5580         also when IN is a PLUS rtx.
5581         (reg_overlap_mentioned_for_reload_p): Return true if X and IN
5582         are same PLUS rtx.
5583
5584 2007-05-08  Kazu Hirata  <kazu@codesourcery.com>
5585
5586         * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL.  Don't
5587         call unshare_all_decls.
5588         (unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
5589         (unshare_all_decls): Remove.
5590
5591 2007-05-08  Simon Martin  <simartin@users.sourceforge.net>
5592
5593         PR 31847
5594         * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
5595         dumps.
5596
5597 2007-05-08  Sandra Loosemore  <sandra@codesourcery.com>
5598             Nigel Stephens  <nigel@mips.com>
5599
5600         * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
5601         Update comments and all uses.
5602         (MIN_FPRS_PER_FMT): Define.
5603         * config/mips/mips.c (function_arg): Fix to correctly handle
5604         the -mips32r2 -mfp64 -mabi=32 case.
5605         (override_options): Enable use of odd-numbered registers for
5606         SFmode values on MIPS32.
5607         (mips_save_reg_p): Save whole floating-point register pair if
5608         either half is used.
5609         (compute_frame_size): Fix comment.
5610
5611 2007-05-08  Jie Zhang  <jie.zhang@analog.com>
5612
5613         * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
5614         argument of type bool.
5615         * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
5616         argument. Safely select temporary P register according to it.
5617         (do_link): Change call site of add_to_reg accordingly.
5618         (do_unlink): Add epilogue_p as a fourth argument and pass it
5619         to add_to_reg.
5620         (expand_interrupt_handler_epilogue): Change call of do_unlink
5621         accordingly.
5622         (bfin_expand_prologue): Add a third argument sibcall_p.
5623         * config/bfin/bfin.md (epilogue): Change call of
5624         bfin_expand_epilogue accordingly.
5625         (sibcall_epilogue): Likewise.
5626         (eh_return_internal): Likewise.
5627
5628         * config/bfin/bfin-protos.h (enum bfin_cpu): Add
5629         BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
5630         * config/bfin/bfin.c (bfin_handle_option): Handle
5631         -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
5632         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
5633         Support bf534, bf536 and bf561.
5634         * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
5635
5636 2007-05-08  Uros Bizjak  <ubizjak@gmail.com>
5637
5638         PR target/31854
5639         * config/i386/i386.c (ix86_function_regparm): Process local
5640         functions only when TREE_CODE (decl) equals FUNCTION_DECL.
5641
5642 2007-05-07  Mike Stump  <mrs@apple.com>
5643
5644         * doc/invoke.texi (Warning Options): Document that -Wempty-body
5645         also checks for and while statements in C++.
5646
5647 2007-05-07  Nathan Froyd  <froydnj@codesourcery.com>
5648
5649         * gcc.c (at_file_supplied): New variable.
5650         (main): Set it if we expanded argv.
5651         (do_spec_1): Pass an @-file to the linker if we were called with
5652         an @-file argument and HAVE_GNU_LD.
5653         * collect2.c (at_file_supplied): New variable.
5654         (response_file): New variable.
5655         (collect_exit): Unlink response_file if necessary.
5656         (handler): Likewise.
5657         (do_wait): Likewise.
5658         (main): Set at_file_supplied if we expanded argv.
5659         (collect_execute): Pass an @-file to subprocesses if we were called
5660         with an @-file argument.
5661         * configure.ac: Add define for HAVE_GNU_LD.
5662         * configure: Regenerate.
5663         * config.in: Regenerate.
5664
5665 2007-05-07  Naveen.H.S  <naveen.hs@kpitcummins.com>
5666
5667         * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
5668         operand to HI mode.
5669         (mulsi3): New.
5670         (divsi3): New.
5671         (udivsi3): New.
5672
5673 2007-05-07  Jayant Sonar  <jayants@kpitcummins.com>
5674
5675         * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
5676         (TARGET_ENCODE_SECTION_INFO): Re-define.
5677         (m32c_encode_section_info): New
5678         (function_vector_handler): New
5679         (current_function_special_page_vector): New
5680         (m32c_special_page_vector_p): New.
5681         * config/m32c/m32c-protos.h (m32c_special_page_vector_p):
5682         Prototype.
5683         * config/m32c/jump.md: Added instruction JSRS for functions
5684         with attribute "function_vector".
5685         * doc/extend.texi (function_vector): Added description
5686         for M16C, M32C targets.
5687
5688 2007-05-07  DJ Delorie  <dj@redhat.com>
5689
5690         PR 31794
5691         * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
5692         ashrpsi3, lshrpsi3): Update shift count constraint.
5693
5694 2007-05-07  Danny Smith  <dannysmith@users.sourceforge.net>
5695             Nathan Froyd  <froydnj@codesourcery.com>
5696
5697         PR 22133
5698         * c-incpath.c (add_path): Strip trailing path separators.
5699
5700 2007-05-07  Eric Botcazou  <ebotcazou@adacore.com>
5701
5702         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
5703         Free dominance info before purging EH edges.
5704         (eliminate_degenerate_phis): Likewise.
5705         (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
5706
5707 2007-05-07  Jan Hubicka  <jh@suse.cz>
5708
5709         * gimplify.c (gimplify_expr): Do not crash when folding
5710         (void *)(int)&a + 4.
5711
5712 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5713
5714         PR driver/31694
5715         * c-opts.c (lang_fortran): Make it non static.
5716         * c-common.h (lang_fortran): New prototype.
5717         * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
5718         -lang-fortran option was passed by the driver.
5719
5720 2007-05-06  Eric Botcazou  <ebotcazou@adacore.com>
5721
5722         * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
5723         of ASSERT_CHECKING.  Tweak message.
5724
5725 2007-05-06  Revital Eres  <eres@il.ibm.com>
5726
5727         PR 30957
5728         * loop-unroll.c (insert_var_expansion_initialization):
5729         Initialize the expansions with -zero instead of +zero.
5730
5731 2007-05-05  Aurelien Jarno  <aurelien@aurel32.net>
5732
5733         * config/pa/pa.md: Split tgd_load, tld_load and tie_load
5734         into pic and non-pic versions. Mark r19 as used for
5735         tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
5736         for tgd_load, tld_load and tie_load .
5737         * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
5738         version of tgd_load, tld_load and tie_load depending on the
5739         value of flag_pic.
5740
5741 2007-05-04  Ulrich Drepper  <drepper@redhat.com>
5742             Jakub Jelinek  <jakub@redhat.com>
5743
5744         * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
5745         (__do_global_dtors_aux): Use more paranoid loop to run
5746         destructors if HIDDEN_DTOR_LIST_END.
5747         (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
5748
5749 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
5750
5751         * varasm.c (align_variable): Don't increase alignment for
5752         DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
5753         DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
5754
5755 2007-05-04  Josh Conner  <jconner@apple.com>
5756
5757         * basic-block.h (cdi_direction): Assign values to all enumeration
5758         constants.
5759         (dom_computed): Remove.
5760         (dom_info_state): New.
5761         (set_dom_info_availability): New.
5762         * tree-ssa-loop-im.c (determine_invariantness): Initialize
5763         walk_data.dom_direction.
5764         * cfghooks.c (delete_basic_block): Use dom_info_available_p()
5765         instead of dom_computed[].
5766         (split_edge): Likewise.
5767         (create_basic_block): Likewise.
5768         (merge_blocks): Likewise.
5769         * ifcvt.c (find_if_header): Likewise.
5770         * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
5771         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
5772         * tree-ssa.c (verify_ssa): Likewise.
5773         * tree-cfg.c (tree_verify_flow_info): Likewise.
5774         (remove_edge_and_dominated_blocks): Likewise.
5775         * dominance.c (dom_computed): Make static.
5776         (calc_dfs_tree_nonrec): Change third param to a bool.
5777         (calc_dfs_tree): Change second param to a bool.
5778         (calc_idioms): Change second param to a bool.  Use
5779         dom_convert_dir_to_idx.
5780         (init_dom_info): Validate dir before using.
5781         (dom_convert_dir_to_idx): New.
5782         (calculate_dominance_info): Use dom_convert_dir_to_idx.  New
5783         variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
5784         (free_dominance_info): Use dom_convert_dir_to_idx.
5785         (get_immediate_dominator): Likewise.
5786         (set_immediate_dominator): Likewise.
5787         (get_dominated_by): Likewise.
5788         (redirect_immediate_dominators): Likewise.
5789         (nearest_common_denominator): Likewise.
5790         (dominated_by_p): Likewise.
5791         (bb_dom_dfs_in): Likewise.
5792         (bb_dom_dfs_out): Likewise.
5793         (recount_dominator): Likewise.
5794         (iterate_fix_dominators): Likewise.
5795         (add_to_dominance_info): Likewise.
5796         (delete_from_dominance_info): Likewise.
5797         (first_dom_son): Likewise.
5798         (next_dom_son): Likewise.
5799         (dom_info_available_p): Likewise.
5800         (dom_info_state): New.
5801         (set_dom_info_availability): New.
5802
5803 2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
5804
5805         * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
5806         Expander removed.
5807         ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
5808
5809 2007-05-04  Bob Wilson  <bob.wilson@acm.org>
5810
5811         * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
5812         (subdi3, subdi_carry): Delete.
5813
5814 2007-05-04  Jan Hubicka  <jh@suse.cz>
5815             Richard Guenther  <rguenther@suse.de>
5816
5817         * opts.c (decode_options): Do not fiddle with inlining
5818         parameters in case of optimizing for size.
5819         * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
5820         for size do nothing.
5821         (cgraph_decide_inlining_of_small_function): When optimizing for
5822         size never inline functions increasing caller size.
5823         (cgraph_early_inlining): Inline for size when optimizing for size.
5824
5825 2007-04-18  Bernd Schmidt  <bernd.schmidt@analog.com>
5826
5827         * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
5828         logical operations piecewise.
5829         (<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
5830         zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
5831         subdi_sesidi_di): Delete.
5832         (add_with_carry): Produce carry in CC instead of a DREG to shorten
5833         the generated sequence.  Allow three-reg add in constraints.  Rewrite
5834         the rtl expression for carry to avoid zero_extend of a constant.
5835         (sub_with_carry): New pattern.
5836         (adddi3, subdi3): Change into define_expand.  For subtract, generate a
5837         different sequence not involving jumps.
5838         (notbi): Now a named pattern.
5839
5840 2007-05-04  Bradley Lucier  <lucier@math.purdue.edu>
5841
5842         * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
5843         Add the note about a significant loss of accuracy of some
5844         mathematical routines when these options are used.
5845
5846 2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
5847
5848         * haifa-sched.c (rtx_vec_t): New typedef.
5849         (contributes_to_priority_p): Extract piece of priority () into new
5850         static function.
5851         (priority): Use the function.  Add assertion.
5852         (rank_for_schedule, set_priorities): Add assertion to check that
5853         insn's priority is initialized.
5854         (clear_priorities, calc_priorities): Change signature.  Make it update
5855         all relevant insns.  Update all callers ('add_to_speculative_block ()'
5856         and 'create_block_check_twin ()').
5857         * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
5858         Add new field 'priority_status'.
5859         (INSN_PRIORITY_STATUS): New macro.
5860         (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
5861
5862 2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
5863
5864         * sched-ebb.c (debug_ebb_dependencies): New static function.
5865         (init_ready_list): Use it.
5866
5867         * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
5868         with changed signature and 'debug_rgn_dependencies ()'.
5869         (debug_rgn_dependencies): New static function.
5870         (init_ready_list): Use it.
5871
5872         * sched-int.h (debug_dependencies): Declare.
5873
5874 2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
5875
5876         * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.
5877
5878 2007-05-04  Dirk Mueller  <dmueller@suse.de>
5879
5880         * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.
5881
5882 2007-05-03  Jan Hubicka  <jh@suse.cz>
5883
5884         * fold-const.c (fold_unary): Convert (T1)(X op Y) into
5885         ((T1)X op (T1)Y), for pointer type in more cases than before.
5886
5887         * gimplify.c (gimplify_expr): Fold (void *)&a + 4.
5888
5889         * tree-object-size.c (plus_expr_object_size): When operand size is
5890         unknown, return unknown.
5891
5892 2007-05-03  Dirk Mueller  <dmueller@suse.de>
5893
5894         * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.
5895
5896         * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
5897         options.
5898
5899         * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.
5900
5901 2007-05-03  Janis Johnson  <janis187@us.ibm.com>
5902
5903         * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.
5904
5905 2007-05-03  Joseph Myers  <joseph@codesourcery.com>
5906
5907         * config/soft-fp/double.h, config/soft-fp/extended.h,
5908         config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
5909         config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
5910         config/soft-fp/op-2.h, config/soft-fp/op-4.h,
5911         config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
5912         glibc CVS.
5913
5914 2007-05-03  Ian Lance Taylor  <iant@google.com>
5915
5916         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
5917         MASK_PPC_GFXOPT for 8540 or 8548.
5918
5919 2007-05-03  Uros Bizjak  <ubizjak@gmail.com>
5920
5921         * tree-vect-transform.c (vect_update_inits_of_drs): Use
5922         vect_print_dump_info() to output debug information.
5923
5924 2007-05-03  Uros Bizjak  <ubizjak@gmail.com>
5925
5926         PR target/31768
5927         * config/i386/i386.c (print_operand) ['z']: Output 'w' for
5928         operands of size 2 when operand is not MEM_P.
5929
5930 2007-05-03  Zdenek Dvorak  <dvorakz@suse.cz>
5931
5932         PR tree-optimization/30565
5933         * lambda-code.c (perfect_nestify): Fix updating of dominators.
5934
5935 2007-05-03  Bernd Schmidt  <bernd.schmidt@analog.com>
5936
5937         * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
5938         (umulsi3_highpart): Use them.
5939         * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
5940         for final accumulator to D regisster tranfser.
5941
5942 2007-05-03  Dorit Nuzman  <dorit@il.ibm.com>
5943
5944         PR tree-optimization/31699
5945         * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove
5946         wrong code.
5947         (vect_enhance_data_refs_alignment): Compute peel amount using
5948         TYPE_VECTOR_SUBPARTS instead of vf.
5949         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.
5950
5951 2007-05-02  Brooks Moses  <brooks.moses@codesourcery.com>
5952
5953         PR bootstrap/31776
5954         * system.h: Remove inclusion of double-int.h
5955         * tree.h: Include double-int.h
5956         * gengtype.c: Likewise
5957         * cfgloop.h: Likewise
5958         * Makefile.in: Adjust dependencies on double-int.h
5959
5960 2007-05-02  Eric Christopher  <echristo@apple.com>
5961
5962         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate
5963         -shared to -Zdynamiclib.
5964
5965 2007-05-02  Seongbae Park  <seongbae.park@gmail.com>
5966
5967         PR c++/31663
5968         * c-common.c (strip_pointer_or_array_types): New function.
5969         * c-common.h (strip_pointer_or_array_types): New function declaration.
5970
5971 2007-05-03  Zdenek Dvorak  <dvorakz@suse.cz>
5972
5973         PR tree-optimization/31771
5974         * tree-cfg.c (move_block_to_fn): Assign bb to the correct index.
5975
5976 2007-05-02  Paul Brook  <paul@codesourcery.com>
5977
5978         * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow.
5979
5980 2007-05-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5981
5982         PR middle-end/29715
5983         * fold-const.c (fold_comparision): Remove the "foo++ == CONST"
5984         transformation.
5985
5986 2007-05-02  Nick Clifton  <nickc@redhat.com>
5987
5988         * config/frv/predicates.md (symbolic_operand): Accept CONSTs.
5989
5990 2007-05-02  Richard Guenther  <rguenther@suse.de>
5991
5992         PR tree-optimization/31146
5993         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
5994         argument, single_use_p.  If we have a single use that is
5995         a conversion to the definition rhs type, propagate that rhs.
5996         (forward_propagate_addr_expr): Pass single_use_p argument
5997         to forward_propagate_addr_expr_1.
5998
5999 2007-05-01  H.J. Lu  <hongjiu.lu@intel.com>
6000
6001         * config/i386/i386.c (ix86_expand_sse_comi): Remove unused
6002         variable.
6003
6004 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6005
6006         * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of
6007         'AMD Family 10 core'.
6008
6009 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6010
6011         * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3
6012         and athlon64-sse3 as improved versions of k8, opteron and athlon64
6013         with SSE3 instruction set support.
6014         * doc/invoke.texi: Likewise.
6015
6016 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6017
6018         * config/i386/i386.c (override_options): Tuning 32-byte loop
6019         alignment for amdfam10 architecture. Increasing the max loop
6020         alignment to 24 bytes.
6021
6022 2007-05-01  Kazu Hirata  <kazu@codesourcery.com>
6023
6024         * config/m68k/constraints.md: New.
6025         * config/m68k/m68k.h (REG_CLASS_FROM_LETTER,
6026         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6027         EXTRA_CONSTRAINT): Remove.
6028         * config/m68k/m68k.md: Include constraints.md.
6029         * expr.c (expand_expr_real_1): Copy DECL_RTL before using it.
6030
6031 2007-05-01  Ian Lance Taylor  <iant@google.com>
6032
6033         PR tree-optimization/31739
6034         * tree-vrp.c (vrp_val_is_max): New static function.
6035         (vrp_val_is_min): New static function.
6036         (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
6037         copying the node.
6038         (set_value_range): Use vrp_val_is_{max,min}.
6039         (extract_range_from_assert): Likewise.
6040         (extract_range_from_binary_expr): Likewise.
6041         (extract_range_from_unary_expr): Likewise.
6042         (dump_value_range, vrp_meet): Likewise.
6043         (vrp_visit_phi_node): Likewise.
6044         * tree.c (build_distinct_type_copy): Revert change of 2007-04-27.
6045
6046 2007-05-01  Mark Mitchell  <mark@codesourcery.com>
6047
6048         * config/i386/gmon-sol2.c (size_t): New type.
6049         (intptr_t): Likewise.
6050         (s_textsize): Declare as size_t.
6051         (sbrk): Declare.
6052         (monstartup): Use size_t for sizes.
6053         (_mcount): Save and restore registers.
6054         (internal_mcount): Pass 0 as the first argument to monstartup
6055         in 64-bit mode.
6056         (moncontrol): Convert pointer to appropriately sized integer
6057         before passing to profil.
6058
6059 2007-05-01  Joseph Myers  <joseph@codesourcery.com>
6060
6061         * config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if
6062         __NO_FPRS__, not just if _SOFT_DOUBLE.
6063         * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise.
6064         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord
6065         also for E500 double.
6066         * config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt,
6067         suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT
6068         && !TARGET_FPRS).
6069
6070 2007-05-01  Richard Guenther  <rguenther@suse.de>
6071
6072         * tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt
6073         is NULL.
6074
6075 2007-05-01  Joseph Myers  <joseph@codesourcery.com>
6076
6077         * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
6078
6079 2007-05-01  Jan Hubicka  <jh@suse.cz>
6080
6081         * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is
6082         invariant.
6083
6084 2007-05-01  Jan Hubicka  <jh@suse.cz>
6085
6086         * tree.h (maybe_fold_offset_to_component_ref): Remove.
6087         (maybe_fold_offset_to_reference): Declare.
6088         * fold-const.c (fold_unary): Do not fold
6089         (type *)&A into &A->field_of_type_and_offset_0
6090         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type
6091         size is unknown, give up.
6092         (maybe_fold_offset_to_component_ref): Ignore firelds with unknown
6093         offsets.
6094         (maybe_fold_offset_to_reference): New.
6095         (maybe_fold_stmt_indirect): Use it.
6096         (fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset.
6097         * gimplify.c (gimplify_conversion): Canonicalize conversions to
6098         field references.
6099         (gimplify_expr): Likewise for plus_expr.
6100
6101 2007-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
6102
6103         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
6104         bsi_after_labels.  Always insert statements before bsi.
6105         * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
6106         * predict.c (apply_return_prediction): Check for empty blocks.
6107         * cfgexpand.c (lab_rtx_for_bb): New variable.
6108         (label_rtx_for_bb): Do not create new tree labels.
6109         (expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
6110         (tree_expand_cfg): Initialize lab_rtx_for_bb.
6111         * tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
6112         creating edges.
6113         (label_for_bb): Add field used.
6114         (update_eh_label, main_block_label): Mark the label used.
6115         (cleanup_dead_labels): Remove unused labels.
6116
6117 2007-05-01  Richard Guenther  <rguenther@suse.de>
6118
6119         * tree-vrp.c (set_value_range): Do not allocate equiv bitmap
6120         if it is not about to be set.
6121         (get_value_range): Do not pre-allocate equiv bitmap.
6122         (update_value_range): No need to clear equiv field.
6123         (add_equivalence): Change prototype to get bitmap pointer.
6124         Allocate bitmap here if it is not already.
6125         (extract_range_from_assert): Do not allocate bitmap here.
6126         Update callers to add_equivalence.
6127         (extract_range_from_ssa_name): Likewise.
6128         (get_vr_for_comparison): New static helper.
6129         (compare_name_with_value): Handle NULL equiv bitmap by
6130         peeling the first iteration of the comparison loop.
6131         Use get_vr_for_comparison.
6132         (compare_names): Handle NULL equiv bitmaps by using fake
6133         ones.  Use get_vr_for_comparison.
6134
6135 2007-04-30  Brooks Moses  <brooks.moses@codesourcery.com>
6136
6137         * double-int.c (mpz_set_double_int): Moved from
6138         tree-ssa-loop-niter.c.
6139         (mpz_get_double_int): Likewise; also, add option to wrap
6140         out-of-range integers.
6141         * double-int.h: New prototypes for above.
6142         * tree.c (get_static_type_bounds): Moved from
6143         tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and
6144         TYPE_MAX_VALUE if they exist..
6145         * tree.h: New prototype for above.
6146         * tree-ssa-loop-niter.c: Adjust mpz_to_double_int and
6147         get_type_bounds calls.
6148         (mpz_set_double_int): Move to double-int.c.
6149         (get_type_bounds): Move to tree.c, rename to
6150         get_static_type_bounds.
6151         (mpz_to_double_int): Move to double-int.c, rename to
6152         mpz_get_double_int.
6153
6154 2007-04-30  Bob Wilson  <bob.wilson@acm.org>
6155
6156         * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
6157         DIV0 exception can fall through to a normal return.
6158
6159 2007-04-30  Alexandre Oliva  <aoliva@redhat.com>
6160
6161         PR middle-end/22156
6162         Temporarily revert:
6163         2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
6164         * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
6165         2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
6166         * tree-sra.c (try_instantiate_multiple_fields): Needlessly
6167         initialize align to silence bogus warning.
6168         2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
6169         * tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
6170         all_no_warning.
6171         (struct sra_walk_fns): Remove use_all parameter from use.
6172         (sra_hash_tree): Handle BIT_FIELD_REFs.
6173         (sra_elt_hash): Don't hash bitfld blocks.
6174         (sra_elt_eq): Skip them in parent compares as well.  Handle
6175         BIT_FIELD_REFs.
6176         (sra_walk_expr): Don't maintain or pass down use_all_p.
6177         (scan_use): Remove use_all parameter.
6178         (scalarize_use): Likewise.  Re-expand assignment to
6179         BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
6180         output, and re-scalarize after output.  Don't mark anything
6181         for no warning.
6182         (scalarize_ldst): Adjust.
6183         (scalarize_walk_gimple_modify_statement): Likewise.
6184         (build_element_name_1): Handle BIT_FIELD_REFs.
6185         (instantiate_element): Don't warn for any element whose parent
6186         is used as a whole.
6187         (instantiate_missing_elements_1): Return the sra_elt.
6188         (canon_type_for_field): New.
6189         (try_instantiate_multiple_fields): New.
6190         (instantiate_missing_elemnts): Use them.
6191         (mark_no_warning): Removed.
6192         (generate_one_element_ref): Handle BIT_FIELD_REFs.
6193         (REPLDUP, sra_build_elt_assignment): New.
6194         (generate_copy_inout): Use them.
6195         (generate_element_copy): Likewise.  Handle bitfld differences.
6196         (generate_element_zero): Don't recurse for blocks.  Use
6197         sra_build_elt_assignment.
6198         (generate_one_element_int): Take elt instead of var.  Use
6199         sra_build_elt_assignment.
6200         (generate_element_init_1): Adjust.
6201         (scalarize_use, scalarize_copy): Use REPLDUP.
6202         (scalarize_ldst): Move assert before dereference.
6203         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
6204
6205 2007-04-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6206
6207         PR C++/31721
6208         * tree.c (reconstruct_complex_type): Reconstruct a reference
6209         correctly.
6210         Also use the same mode for the pointer as the old pointer type.
6211
6212 2007-04-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
6213
6214         * doc/trouble.texi (Interoperation): Remove note about Ultrix
6215         Fortran compiler.
6216
6217 2007-04-29  Zdenek Dvorak  <dvorakz@suse.cz>
6218
6219         PR rtl-optimization/31676
6220         * df-scan.c (record_nonlocal_goto_receiver_defs): New function.
6221         (df_refs_record): Call it.
6222
6223 2007-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
6224
6225         * rtl.def (SS_ABS): New code.
6226         * config/bfin/bfin.c (print_operand): New modifier 'v'.
6227         (enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32,
6228         BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32,
6229         BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32.
6230         (bfin_init_builtins): Define them.
6231         (bdesc_1arg, bdesc_2arg): Add some of them here, ...
6232         (bfin_expand_builtin): ... and handle the others here.
6233         * config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3,
6234         flag_mul_macv2hi_parts_acconly_andcc0): New patterns.
6235         (ss_absv2hi2): Renamed from absv2hi; use ss_abs code.
6236         (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count
6237         operand is only HImode.
6238
6239 2007-04-29  Steven Bosscher  <steven@gcc.gnu.org>
6240
6241         * regclass.c (scan_one_insn): Remove splitting of
6242         two address insns.
6243
6244 2007-04-28  Sandra Loosemore  <sandra@codesourcery.com>
6245             Nigel Stephens  <nigel@mips.com>
6246
6247         * config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16.
6248
6249 2007-04-28  Jan Hubicka  <jh@suse.cz>
6250
6251         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use
6252         insn_locators_alloc instead of insn_locators_initialize;
6253         call reset_block_changes.
6254         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
6255         * config/sh/sh.c (sparc_output_mi_thunk): Likewise.
6256         * config/is64/ia64.c (ia64_output_mi_thunk): Likewise.
6257         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
6258         * config/score/score.c (th_output_mi_thunk): Likewise.
6259         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
6260         * cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block):
6261         tolerate uninitialized locator info.
6262
6263         Re-apply:
6264         * function.c (init_function_start): Don't init line number info.
6265         (expand_function_end): Update.
6266         (reset_block_changes, record_block_change, finalize_block_changes,
6267         check_block_change, free_block_changes): Kill.
6268         * function.h (reset_block_changes, record_block_change,
6269         finalize_block_changes, check_block_change, free_block_changes):
6270         Remove prototypes.
6271         (struct function): Remove ib_boundaries_block.
6272         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
6273         Use curr_insn_locator to initialize locator.
6274         (emit_line_note): Remove.
6275         * cfgexpand.c (expand_gimple_cond_expr): Update.
6276         (construct_exit_block): Likewise.
6277         (tree_expand_cfg): Initialize/finalize locators.
6278         * expr.c (expand_expr_real): Update.
6279         * cfglayout.c (line_locators_locs, line_locators_lines,
6280         file_locators_locs, file_locators_files): Remove.
6281         (set_block_levels): Move to cfgexpand.c.
6282         (insn_locators_initialize): Remove.
6283         (pass_insn_locators_initialize): Remove.
6284         (locations_locators_locs, locations_locators_vals): New static vars.
6285         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
6286         Likewise.
6287         (insn_locators_alloc, insn_locators_finalize,
6288         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
6289         New functions.
6290         (locator_location): New.
6291         (locator_line, locator_file): Rewrite.
6292         * rtl.h (emit_line_note): Kill.
6293         (insn_locators_alloc, insn_locators_finalize,
6294         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
6295         Declare.
6296         * tree-inline.c (initialize_cfun): Do not initialize
6297         ib_boundaries_block.
6298         * passes.c (pass_insn_locators_initialize): Remove.
6299
6300 2007-04-28  Zdenek Dvorak  <dvorakz@suse.cz>
6301
6302         * tree-cfg.c (move_block_to_fn): Release bb from dominance
6303         info.  Update last_basic_block correctly.
6304
6305 2007-04-27  Kaz Kojima  <kkojima@gcc.gnu.org>
6306
6307         PR target/31701
6308         * config/sh/sh.c (output_stack_adjust): Avoid using the frame
6309         register itself to hold the offset constant.  Tell flow the use
6310         of r4 and r5 when they are used.
6311
6312 2007-04-27  Richard Guenther  <rguenther@suse.de>
6313
6314         * tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track
6315         if we simplified anything.
6316         (tree_ssa_forward_propagate_single_use_vars): Defer overflow
6317         warnings until we did a simplification and the stmt was not
6318         marked as TREE_NO_WARNING.
6319
6320 2007-04-27  Mike Stump  <mrs@apple.com>
6321
6322         * config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove.
6323
6324 2007-04-27  Ian Lance Taylor  <iant@google.com>
6325
6326         PR middle-end/31710
6327         * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
6328         TYPE_MAX_VALUE exist, convert them to the new type.
6329
6330 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
6331
6332         * tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info
6333         if it claims to be available.
6334         * tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when
6335         edge is redirected.
6336         (perform_tree_ssa_dce): Always free postdominators.
6337
6338 2007-04-27  Richard Henderson  <rth@redhat.com>
6339
6340         * config/alpha/predicates.md (aligned_memory_operand): Mark
6341         as define_special_predicate.
6342         (unaligned_memory_operand, normal_memory_operand): Likewise.
6343         (reg_or_unaligned_mem_operand): Remove.
6344         (any_memory_operand): Match the documentation and check for
6345         non-renumbered pseudos during reload.
6346         * config/alpha/alpha.c (alpha_secondary_reload): Rename from
6347         alpha_secondary_reload_class, update to new interface, make static.
6348         Handle CQImode like HImode.  Remove FP subreg check.
6349         (alpha_expand_mov): Use replace_equiv_address.
6350         (alpha_expand_mov_nobwx): Use any_memory_operand.
6351         (TARGET_SECONDARY_RELOAD): New.
6352         * config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove.
6353         (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
6354         * config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ...
6355         * config/alpha/alpha.md: ... here.
6356         (RELOAD12, reloadmode): New.
6357         (movcqi): New.
6358         (reload_in<RELOAD12>): Macro-ize from reload_inqi, reload_inhi.
6359         Don't handle the aligned case here.
6360         (reload_out<RELOAD12>): Macro-ize from reload_outqi, reload_outhi.
6361         (reload_in<I12MODE>_aligned): Macro-ize from reload_inqi_help,
6362         reload_inhi_help.  Don't expect a scratch register.
6363         (reload_out<I12MODE>_aligned): Macro-ize from reload_outqi_help,
6364         reload_outhi_help.
6365         * config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove.
6366
6367 2007-04-27  Richard Guenther  <rguenther@suse.de>
6368
6369         * tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo.
6370
6371 2007-04-27  Richard Guenther  <rguenther@suse.de>
6372
6373         PR tree-optimization/30965
6374         PR tree-optimization/30978
6375         * Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H).
6376         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove.
6377         (find_equivalent_equality_comparison): Likewise.
6378         (simplify_cond): Likewise.
6379         (get_prop_source_stmt): New helper.
6380         (get_prop_dest_stmt): Likewise.
6381         (can_propagate_from): Likewise.
6382         (remove_prop_source_from_use): Likewise.
6383         (combine_cond_expr_cond): Likewise.
6384         (forward_propagate_comparison): New function.
6385         (forward_propagate_into_cond): Rewrite to use fold for
6386         tree combining.
6387         (tree_ssa_forward_propagate_single_use_vars): Call
6388         forward_propagate_comparison to propagate comparisons.
6389
6390 2007-04-27  Richard Guenther  <rguenther@suse.de>
6391
6392         PR tree-optimization/31715
6393         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make
6394         sure to do computation on the offset in an appropriate
6395         signed type.
6396
6397 2007-04-27  Richard Sandiford  <richard@codesourcery.com>
6398
6399         * reload.h (elimination_target_reg_p): Declare.
6400         * reload.c (find_reloads): Don't apply the reg_rtx move
6401         optimization if the SET_DEST satisfies elimination_target_reg_p.
6402         * reload1.c (elimination_target_reg_p): New function.
6403         (gen_reload): In the move/add2 fallback, make sure that op0
6404         does not overlap the destination register.
6405
6406 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
6407
6408         * tree-ssa-loop-im.c (determine_invariantness_stmt): Attempt to
6409         transform only GIMPLE_MODIFY_STMTs.
6410         * tree-complex.c (expand_complex_operations_1): Ditto.
6411         (expand_complex_div_wide): Do not create gotos in COND_EXPR branches.
6412         * tree-ssa-loop-manip.c (build_if_stmt): Removed.
6413         (tree_transform_and_unroll_loop): Do not create gotos in COND_EXPR
6414         branches.
6415         * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
6416         tree_mod_subtract, tree_ic, tree_stringop_fixed_value): Ditto.
6417         * omp-low.c (expand_parallel_call, expand_omp_for_generic,
6418         expand_omp_for_static_chunk, expand_omp_for_static_nochunk): Ditto.
6419         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes,
6420         slpeel_add_loop_guard): Ditto.
6421         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
6422         * lambda-code.c (perfect_nestify): Ditto.
6423         * tree-iterator.c (tsi_split_statement_list_before): Fix splitting
6424         before the first statement.
6425         * tree-optimize.c (execute_free_datastructures): Fix comments.
6426         (execute_free_cfg_annotations): Do not call disband_implicit_edges.
6427         * tree-flow.h (disband_implicit_edges): Declaration removed.
6428         * tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR
6429         branches.
6430         (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle
6431         COND_EXPRs without gotos.
6432         (disband_implicit_edges, has_label_p): Removed.
6433         (tree_verify_flow_info): Verify that COND_EXPR branches are empty.
6434         (tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR
6435         branches.
6436         * tree.c (build3_stat): Mark COND_EXPRs used as statements as having
6437         side effects.
6438         * tree-pretty-print.c (dump_implicit_edges): Dump implicit edges
6439         also for COND_EXPRs.
6440         * cfgexpand.c (label_rtx_for_bb): New function.
6441         (expand_gimple_cond_expr): Do not expect gotos in COND_EXPR branches.
6442         Use label_rtx_for_bb to find the labels.
6443         (expand_gimple_basic_block): Remove RETURN_EXPR at the end of the
6444         last block.  Detect fallthru edges.
6445
6446 2007-04-26  Ian Lance Taylor  <iant@google.com>
6447
6448         PR target/28675
6449         * reload.c (find_reloads_subreg_address): If the address was valid
6450         in the original mode but not in the new mode, reload the whole
6451         address.
6452
6453 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
6454
6455         * tree-cfgcleanup.c (cfgcleanup_altered_bbs): New global variable.
6456         (remove_fallthru_edge): Use remove_edge_and_dominated_blocks.
6457         (cleanup_control_expr_graph): Do not invalidate dominance info.
6458         Record altered blocks.
6459         (cleanup_control_flow, cleanup_forwarder_blocks): Removed.
6460         (cleanup_control_flow_bb, split_bbs_on_noreturn_calls,
6461         cleanup_tree_cfg_bb): New functions.
6462         (remove_forwarder_block): Do not maintain the worklist of blocks.
6463         Record altered blocks.
6464         (cleanup_tree_cfg_1): Iterate over cfgcleanup_altered_bbs,
6465         not over whole cfg.
6466         (cleanup_tree_cfg): Do not iterate cleanup_tree_cfg_1.  Only call
6467         delete_unreachable_blocks if dominators are not available.
6468         * tree-inline.c (optimize_inline_calls): Free dominance information
6469         earlier.
6470         * tree-flow.h (remove_edge_and_dominated_blocks,
6471         cfgcleanup_altered_bbs): Altered.
6472         * tree-cfg.c (replace_uses_by, tree_merge_blocks): Record altered
6473         blocks.
6474         (get_all_dominated_blocks, remove_edge_and_dominated_blocks): New
6475         functions.
6476         (tree_purge_dead_eh_edges): Use remove_edge_and_dominated_blocks,
6477         do not invalidate dominators.
6478
6479 2007-04-26  Anatoly Sokolov <aesok@post.ru>
6480
6481         * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and
6482         ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
6483         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6484         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
6485
6486 2007-04-26  Steve Ellcey  <sje@cup.hp.com>
6487
6488         * config/ia64/ia64.md (ip_value):  Fix itanium_class attribute.
6489
6490 2007-04-26  Richard Guenther  <rguenther@suse.de>
6491
6492         PR tree-optimization/31703
6493         * tree-ssa-loop-im.c (rewrite_bittest): Make sure to use
6494         the right type for the target of the bittest.
6495
6496 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
6497
6498         * config/i386/vx-common.h (RETURN_IN_MEMORY): Use
6499         ix86_sol10_return_in_memory.
6500
6501 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
6502
6503         * config/i386/i386.c (ix86_sol10_return_in_memory): Remove unused
6504         variables.
6505
6506 2007-04-26  Jakub Jelinek  <jakub@redhat.com>
6507
6508         PR c++/31598
6509         * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
6510
6511         PR tree-optimization/30558
6512         * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
6513         clear this_state.prev_try.
6514
6515 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
6516             Mark Mitchell  <mark@codesourcery.com>
6517
6518         * config/i386/i386-protos.h (ix86_sol10_return_in_memory): Declare.
6519         * config/i386/i386.c (ix86_sol10_return_in_memory): New function.
6520         * config/i386/sol2-10.h (RETURN_IN_MEMORY): Use it.
6521
6522 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
6523
6524         PR driver/31107
6525         * doc/invoke.texi (%:print-asm-header): Document.
6526         * gcc.c (asm_options): Use %:print-asm-header() for --target-help
6527         and -ftarget-help.
6528         (static_spec_functions): Add print-asm-header.
6529         (main): Print a banner before the --target-help linker options.
6530         (print_asm_header_spec_function): New function.
6531
6532 2007-04-25  Kaz Kojima  <kkojima@gcc.gnu.org>
6533
6534         PR target/31403
6535         * config/sh/sh.md (movsi_ie): Fix length for TARGET_SH2A.
6536         (movsf_ie): Likewise.
6537
6538 2007-04-25  Paolo Carlini  <pcarlini@suse.de>
6539
6540         * doc/extend.texi ([Type Traits]): Adjust per N2255.
6541
6542 2007-04-25  Bob Wilson  <bob.wilson@acm.org>
6543
6544         * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an
6545         exception for divide-by-zero.
6546         (__umodsi3, __modsi3): Likewise.
6547
6548 2007-04-25  Dirk Mueller  <dmueller@suse.de>
6549
6550         * c-typeck.c (build_compound_expr): Annotate warning()
6551         call with OPT_Wunused_value.
6552         * tree-ssa.c (warn_uninit): Annotate warning with
6553         OPT_Wunintialized.
6554         * c-common.c (handle_sentinel_attribute): Annotate warning
6555         call with OPT_Wattributes.
6556
6557 2007-04-25  Thiemo Seufer  <ths@mips.com>
6558
6559         * config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options.
6560         (mips16): Fix typo.
6561         * config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx
6562         on to the assembler.  Improve handling of -mno-mips16.  Add handling
6563         of -mno-mips3d, -mno-dsp, -mno-dspr2.
6564         * doc/invoke.texi (MIPS Options): Whitespace cleanup.  Fix wrong use
6565         of @itemx.  Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx,
6566         -mno-mdmx, -mno-mips3d, -mmt and -mno-mt.
6567
6568 2007-04-25  Danny Smith  <dannysmith.users.sourceforge.net>
6569
6570         PR target/31680
6571         * config/i386/winnt.c (i386_pe_file_end): Strip only
6572         USER_LABEL_PREFIX when writing export name.
6573
6574 2007-04-25  Richard Sandiford  <richard@codesourcery.com>
6575
6576         * config.gcc (sh-wrs-vxworks): Don't include dbxelf.h.  Include
6577         sh/elf.h, vx-common.h and vxworks.h.
6578         * config/sh/sh.h: Include config/vxworks-dummy.h.
6579         (SUBTARGET_OVERRIDE_OPTIONS): Define.
6580         (OVERRIDE_OPTIONS): Use it.
6581         * config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs.
6582         (vxworks_picreg): New pattern.
6583         * config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
6584         VXWORKS_OS_CPP_BUILTINS.
6585         (LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine
6586         to their VXWORKS_* equivalents.
6587         (SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
6588         (SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define.
6589         * config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC.
6590         (set_fpscr, ic_invalidate): Add VxWorks PIC sequences.
6591         * config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and
6592         -mrtp/-fPIC multilibs.
6593         (MULTILIB_EXCEPTIONS): Generalize globs accordingly.
6594         (MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define.
6595         (MULTILIB_OSDIRNAMES): Delete.
6596
6597 2007-04-25  Anatoly Sokolov <aesok@post.ru>
6598
6599         PR target/18989
6600         * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
6601
6602 2007-04-24  Brooks Moses  <brooks.moses@codesourcery.com>
6603
6604         * real.c (mpfr_from_real): Handle Inf and NaN, and allow the
6605         rounding mode to be specified by the caller.
6606         (real_to_mpfr) Likewise.
6607         * real.h: Update mpfr_from_real, mpfr_to_real prototypes to
6608         include new arguments.
6609         * builtins.c: Update mpfr_from_real, mpfr_to_real calls.
6610
6611 2007-04-24  Ian Lance Taylor  <iant@google.com>
6612
6613         PR tree-optimization/31605
6614         * tree-vrp.c (set_value_range): Check that min and max are not
6615         both overflow infinities.
6616         (set_value_range_to_value): New static function.
6617         (extract_range_from_binary_expr): Call set_value_range_to_value.
6618         (extract_range_from_cond_expr): Likewise.
6619         (extract_range_from_expr): Likewise.
6620         (extract_range_from_unary_expr): Likewise.  Don't create a range
6621         which overflows on both sides.
6622         (vrp_meet): Check for a useless range.
6623         (vrp_visit_phi_node): If we see a constant which looks like an
6624         overflow infinity, turn off the TREE_OVERFLOW flag.
6625
6626 2007-04-24  Ian Lance Taylor  <iant@google.com>
6627
6628         * flow.c (elim_reg_cond): Handle a comparison of a subreg.
6629
6630 2007-04-24  Simon Martin  <simartin@users.sourceforge.net>
6631
6632         PR diagnostic/25923
6633         * tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a
6634         diagnostic message is being built.
6635         * tree-pretty-print.c (dump_generic_node): Only write the
6636         formatted text into BUFFER's stream if we are not building a
6637         diagnostic message.
6638         * toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to
6639         dump_generic_node.
6640         * Makefile.in (toplev.o): Depend on tree-pass.h.
6641
6642 2007-04-24  Ian Lance Taylor  <iant@google.com>
6643
6644         PR tree-optimization/31602
6645         * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
6646         conditionals in the copied loop header.
6647         * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
6648         warnings if TREE_NO_WARNING is set.
6649         * doc/invoke.texi (Warning Options): Clarify that
6650         -Wstrict-overflow does not warn about loops.
6651
6652 2007-04-24  Janis Johnson  <janis187@us.ibm.com>
6653
6654         * config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
6655         expand on the comment about _Decimal128 arguments and check the
6656         integer result of the modulus operation; for 64-bit ELF ABI, ensure
6657         that _Decimal128 argument uses even/odd register pair.
6658         (function_arg): Ditto.
6659
6660 2007-04-24  Hui-May Chang <hm.chang@apple.com>
6661
6662         * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
6663         instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
6664
6665 2007-04-24  Richard Guenther  <rguenther@suse.de>
6666             Olga Golovanevsky  <olga@il.ibm.com>
6667
6668         * fold-const.c (multiple_of_p): Check for bottom
6669         to be zero.
6670
6671 2007-04-24  Richard Henderson  <rth@redhat.com>
6672
6673         * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from
6674         IS_IBM_EXTENDED.  Also define in terms of WIDEST_HARDWARE_FP_SIZE.
6675         * libgcc2.c (__floatdisf): Avoid double-word arithmetic when
6676         looking for non-zero bits shifted out.  Avoid a recursive call
6677         when constructing the scalar.
6678         (__floatundisf): Likewise.
6679
6680 2007-04-24  Nathan Froyd  <froydnj@codesourcery.com>
6681
6682         * dwarf2out.c (field_byte_offset): Move the existing logic
6683         under the control of PCC_BITFIELD_TYPE_MATTERS and just use
6684         the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS.
6685
6686 2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
6687
6688         PR target/31641
6689         * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant
6690         length argument of 0 for memset.
6691         (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
6692         unsigned shift instead of the signed variant.
6693
6694 2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
6695
6696         * config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
6697         "fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
6698         "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
6699         "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
6700         "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
6701         "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
6702         "*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
6703         "*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
6704         "*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
6705         ("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
6706         "truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
6707         "mul<mode>3", "div<mode>3"): Insn definitions added.
6708         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
6709         "fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
6710         to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
6711         ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
6712         "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
6713         "sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
6714         ("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
6715         * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
6716         TARGET_FLOAT_FORMAT): Macro definitions removed.
6717         (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
6718         * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
6719         z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
6720         (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
6721         (s390_gen_rtx_const_DI): Function removed.
6722         * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.
6723
6724 2007-04-24  Richard Sandiford  <richard@codesourcery.com>
6725
6726         * optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
6727         over an external ffs function.
6728
6729 2007-04-24  Chao-ying Fu  <fu@mips.com>
6730             Richard Sandiford  <richard@nildram.co.uk>
6731
6732         * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
6733         * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
6734         (smadd_widen_optab, umadd_widen_optab): Define.
6735         * optabs.c (init_optabs): Initialize smadd_widen_optab and
6736         umadd_widen_optab.
6737         * genopinit.c (optabs): Fill in smadd_widen_optab and
6738         umadd_widen_optab.
6739         * expr.c (expand_expr_real_1): Try to use smadd_widen_optab
6740         and umadd_widen_optab to implement multiply-add sequences.
6741         * config/mips/mips.md (*<su>mul_acc_di): Rename to...
6742         (<u>maddsidi4): ...this.  Extend condition to include
6743         GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
6744         of operand 0 to "ka" and use the three-operand form of madd<u>
6745         for TARGET_DSPR2.
6746         * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
6747         to define_expands.
6748         * config/mips/constraints.md (ka): New register constraint.
6749
6750 2007-04-24  Jan Hubicka  <j@suse.cz>
6751
6752         Revert:
6753
6754         2007-04-23  Jan Hubicka  <jh@suse.cz>
6755         * function.c (init_function_start): Don't init line number info.
6756         (expand_function_end): Update.
6757         (reset_block_changes, record_block_change, finalize_block_changes,
6758         check_block_change, free_block_changes): Kill.
6759         * function.h (reset_block_changes, record_block_change,
6760         finalize_block_changes, check_block_change, free_block_changes):
6761         Remove prototypes.
6762         (struct function): Remove ib_boundaries_block.
6763         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
6764         Use curr_insn_locator to initialize locator.
6765         (emit_line_note): Remove.
6766         * cfgexpand.c (expand_gimple_cond_expr): Update.
6767         (construct_exit_block): Likewise.
6768         (tree_expand_cfg): Initialize/finalize locators.
6769         * expr.c (expand_expr_real): Update.
6770         * cfglayout.c (line_locators_locs, line_locators_lines,
6771         file_locators_locs, file_locators_files): Remove.
6772         (set_block_levels): Move to cfgexpand.c.
6773         (insn_locators_initialize): Remove.
6774         (pass_insn_locators_initialize): Remove.
6775         (locations_locators_locs, locations_locators_vals): New static vars.
6776         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
6777         Likewise.
6778         (insn_locators_alloc, insn_locators_finalize,
6779         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
6780         New functions.
6781         (locator_location): New.
6782         (locator_line, locator_file): Rewrite.
6783         * rtl.h (emit_line_note): Kill.
6784         (insn_locators_alloc, insn_locators_finalize,
6785         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
6786         Declare.
6787         * tree-inline.c (initialize_cfun): Do not initialize
6788         ib_boundaries_block.
6789         * passes.c (pass_insn_locators_initialize): Remove.
6790
6791 2007-04-24  Daniel Franke  <franke.daniel@gmail.com>
6792
6793         * doc/invoke.texi: Removed leading '-' from option index entries.
6794
6795 2007-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
6796
6797         * tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
6798         Use phi_nodes_ptr.
6799         (create_phi_node): Use set_phi_nodes.
6800         * omp-low.c (expand_omp_parallel): Use bb_stmt_list.
6801         * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
6802         (combine_blocks):  Use bb_stmt_list and set_bb_stmt_list.
6803         * tree-flow-inline.h (phi_nodes, set_phi_nodes,
6804         (bsi_start, bsi_last): Use bb_stmt_list.
6805         (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
6806         * cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
6807         Traverse the statements using tsi iterator.
6808         * basic-block.h (struct basic_block_def): Fields stmt_list
6809         and phi_nodes moved to ...
6810         (struct tree_bb_info): ... new structure.
6811         * tree-cfg.c (create_bb): Allocate il.tree.  Use set_bb_stmt_list.
6812         (tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
6813         (remove_bb): Handle blocks with NULL stmt list.  Clear il.tree field.
6814         (tree_verify_flow_info): Verify that il.tree is not set for
6815         entry and exit block.
6816         (tree_split_block): Use set_bb_stmt_list.
6817
6818 2007-04-23  Mike Stump  <mrs@apple.com>
6819
6820         * config/i386/i386.c (ix86_tune_features
6821         [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
6822         nocona and core2.
6823
6824 2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
6825
6826         * config/i386/i386.md (prefix_extra): New attribute.
6827         (length): Add prefix_extra.
6828
6829         * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
6830         (sse2_movntv2di): Likewise.
6831         (sse2_cvtps2dq): Likewise.
6832         (sse2_cvtpd2pi): Likewise.
6833         (sse2_cvttpd2pi): Likewise.
6834         (*sse2_cvtpd2ps): Likewise.
6835         (*add<mode>3): Likewise.
6836         (sse2_ssadd<mode>3): Likewise.
6837         (sse2_usadd<mode>3): Likewise.
6838         (*sub<mode>3): Likewise.
6839         (sse2_sssub<mode>3): Likewise.
6840         (sse2_ussub<mode>3): Likewise.
6841         (*mulv8hi3): Likewise.
6842         (*smulv8hi3_highpart): Likewise.
6843         (*umulv8hi3_highpart): Likewise.
6844         (sse2_umulv2siv2di3): Likewise.
6845         (sse2_pmaddwd): Likewise.
6846         (ashr<mode>3): Likewise.
6847         (lshr<mode>3): Likewise.
6848         (ashl<mode>3): Likewise.
6849         (sse2_ashlti3): Likewise.
6850         (sse2_lshrti3): Likewise.
6851         (*umaxv16qi3): Likewise.
6852         (*smaxv8hi3): Likewise.
6853         (*uminv16qi3): Likewise.
6854         (*sminv8hi3): Likewise.
6855         (sse2_eq<mode>3): Likewise.
6856         (sse2_gt<mode>3): Likewise.
6857         (*and<mode>3): Likewise.
6858         (sse2_nand<mode>3): Likewise.
6859         (*ior<mode>3): Likewise.
6860         (*xor<mode>3): Likewise.
6861         (sse2_packsswb): Likewise.
6862         (sse2_packssdw): Likewise.
6863         (sse2_packuswb): Likewise.
6864         (sse2_punpckhbw): Likewise.
6865         (sse2_punpcklbw): Likewise.
6866         (sse2_punpckhwd): Likewise.
6867         (sse2_punpcklwd): Likewise.
6868         (sse2_punpckhdq): Likewise.
6869         (sse2_punpckldq): Likewise.
6870         (sse2_punpckhqdq): Likewise.
6871         (sse2_punpcklqdq): Likewise.
6872         (*sse2_pinsrw): Likewise.
6873         (*sse2_pextrw): Likewise.
6874         (sse2_pshufd_1): Likewise.
6875         (sse2_uavgv16qi3): Likewise.
6876         (sse2_uavgv8hi3): Likewise.
6877         (sse2_psadbw): Likewise.
6878         (sse2_pmovmskb): Likewise.
6879         (*sse2_maskmovdqu): Likewise.
6880         (*sse2_maskmovdqu_rex64): Likewise.
6881         (sse4a_extrqi): Likewise.
6882         (sse4a_extrq): Likewise.
6883         (sse3_lddqu): Set prefix_rep.
6884         (sse3_addsubv4sf3): Likewise.
6885         (sse3_haddv4sf3): Likewise.
6886         (sse3_hsubv4sf3): Likewise.
6887         (sse_cvtss2si): Likewise.
6888         (sse_cvtss2si_2): Likewise.
6889         (sse_cvtss2siq): Likewise.
6890         (sse_cvtss2siq_2): Likewise.
6891         (sse_cvttss2si): Likewise.
6892         (sse_cvttss2siq): Likewise.
6893         (sse2_cvttps2dq): Likewise.
6894         (sse3_movshdup): Likewise.
6895         (sse3_movsldup): Likewise.
6896         (sse2_cvtsd2si): Likewise.
6897         (sse2_cvtsd2si_2): Likewise.
6898         (sse2_cvtsd2siq): Likewise.
6899         (sse2_cvtsd2siq_2): Likewise.
6900         (sse2_cvttsd2si): Likewise.
6901         (sse2_cvttsd2siq): Likewise.
6902         (*sse2_cvtpd2dq): Likewise.
6903         (*sse2_cvttpd2dq): Likewise.
6904         (sse2_pshuflw_1): Likewise.
6905         (sse2_pshufhw_1): Likewise.
6906         (sse4a_insertqi): Likewise.
6907         (sse4a_insertq): Likewise.
6908         (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
6909         (ssse3_phadddv4si3): Likewise.
6910         (ssse3_phaddswv8hi3): Likewise.
6911         (ssse3_phsubwv8hi3): Likewise.
6912         (ssse3_phsubdv4si3): Likewise.
6913         (ssse3_phsubswv8hi3): Likewise.
6914         (ssse3_pmaddubswv8hi3): Likewise.
6915         (ssse3_pmulhrswv8hi3): Likewise.
6916         (ssse3_pshufbv16qi3): Likewise.
6917         (ssse3_psign<mode>3): Likewise.
6918         (ssse3_palignrti): Likewise.
6919         (abs<mode>2): Likewise.
6920         (ssse3_phaddwv4hi3): Set prefix_extra.
6921         (ssse3_phadddv2si3): Likewise.
6922         (ssse3_phaddswv4hi3): Likewise.
6923         (ssse3_phsubwv4hi3): Likewise.
6924         (ssse3_phsubdv2si3): Likewise.
6925         (ssse3_phsubswv4hi3): Likewise.
6926         (ssse3_pmaddubswv4hi3): Likewise.
6927         (ssse3_pmulhrswv4hi3): Likewise.
6928         (ssse3_pshufbv8qi3): Likewise.
6929         (ssse3_psign<mode>3): Likewise.
6930         (ssse3_palignrdi): Likewise.
6931         (abs<mode>2): Likewise.
6932         (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
6933         (*vec_dupv2df): Set mode to V2DF instead of V4SF.
6934         (sse2_pmovmskb): Set mode to SI instead of V2DF.
6935
6936 2007-04-23  Nick Clifton  <nickc@redhat.com>
6937
6938         * params.def: Fix formatting of emacs local variables.
6939
6940 2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
6941
6942         * config/i386/sse.md (sse2_stored): Don't split to inter-unit
6943         move if inter-unit move isn't allowed.
6944         Don't split moving the first element of V2DI to DI to inter-unit
6945         move if inter-unit move isn't allowed.
6946
6947 2007-04-23  Richard Guenther  <rguenther@suse.de>
6948
6949         * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
6950         and CDI_POST_DOMINATORS separately.
6951
6952 2007-04-23  Nick Clifton  <nickc@redhat.com>
6953
6954         * c.opt (Wformat-contains-nul): Add warning attribute.
6955
6956 2007-04-23  Jan Hubicka  <jh@suse.cz>
6957
6958         * function.c (init_function_start): Don't init line number info.
6959         (expand_function_end): Update.
6960         (reset_block_changes, record_block_change, finalize_block_changes,
6961         check_block_change, free_block_changes): Kill.
6962         * function.h (reset_block_changes, record_block_change,
6963         finalize_block_changes, check_block_change, free_block_changes):
6964         Remove prototypes.
6965         (struct function): Remove ib_boundaries_block.
6966         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
6967         Use curr_insn_locator to initialize locator.
6968         (emit_line_note): Remove.
6969         * cfgexpand.c (expand_gimple_cond_expr): Update.
6970         (construct_exit_block): Likewise.
6971         (tree_expand_cfg): Initialize/finalize locators.
6972         * expr.c (expand_expr_real): Update.
6973         * cfglayout.c (line_locators_locs, line_locators_lines,
6974         file_locators_locs, file_locators_files): Remove.
6975         (set_block_levels): Move to cfgexpand.c.
6976         (insn_locators_initialize): Remove.
6977         (pass_insn_locators_initialize): Remove.
6978         (locations_locators_locs, locations_locators_vals): New static vars.
6979         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
6980         Likewise.
6981         (insn_locators_alloc, insn_locators_finalize,
6982         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
6983         New functions.
6984         (locator_location): New.
6985         (locator_line, locator_file): Rewrite.
6986         * rtl.h (emit_line_note): Kill.
6987         (insn_locators_alloc, insn_locators_finalize,
6988         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
6989         Declare.
6990         * tree-inline.c (initialize_cfun): Do not initialize
6991         ib_boundaries_block.
6992         * passes.c (pass_insn_locators_initialize): Remove.
6993
6994 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6995
6996         PR middle-end/31448
6997         * expr.c (reduce_to_bit_field_precision): Handle
6998         CONST_INT rtx's.
6999
7000 2007-04-22  Uros Bizjak  <ubizjak@gmail.com>
7001
7002         PR tree-optimization/24659
7003         * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
7004         OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
7005         (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
7006         * genopinit.c (optabs): Rename vec_pack_mod_optab
7007         to vec_pack_trunc_optab.
7008         * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
7009         early for scalar floating point operands for NOP_EXPR.
7010         (vectorizable_type_promotion): Ditto.
7011         * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
7012         vec_pack_trunc_optab.
7013         (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.
7014
7015         * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
7016         * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
7017         Rename from VEC_PACK_MOD_EXPR.
7018         (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
7019         * expr.c (expand_expr_real_1): Ditto.
7020         * tree-inline.c (estimate_num_insns_1): Ditto.
7021         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
7022
7023         * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
7024         (vec_unpacks_lo_v4sf): Ditto.
7025         (vec_pack_trunc_v2df): Ditto.
7026         (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
7027         (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
7028         (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
7029
7030         * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
7031         vec_pack_mod_v8hi.
7032         (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
7033
7034         * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
7035         Rename from VEC_PACK_MOD_EXPR.  This expression also represent
7036         packing of floating point operands.
7037         [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
7038         represent unpacking of floating point operands.
7039         * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
7040         [vec_unpacks_hi]: Ditto.
7041         [vec_unpacks_lo]: Ditto.
7042
7043 2007-04-22  Jan Hubicka  <jh@suse.cz>
7044
7045         * final.c (rest_of_handle_final): Call
7046         targetm.asm_out.constructor/targetm.asm_out.destructor
7047         * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
7048         proper priority via decl_*_priority_insert.
7049         * c-common.c (c_expand_body): Likewise.
7050
7051 2007-04-22  Richard Guenther  <rguenther@suse.de>
7052
7053         PR tree-optimization/29789
7054         * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
7055         (rewrite_reciprocal): New helper split out from
7056         determine_invariantness_stmt.
7057         (rewrite_bittest): Likewise.
7058         (determine_invariantness_stmt): Rewrite (A >> B) & 1 to
7059         A & (1 << B) if (1 << B) is loop invariant but (A >> B)
7060         is not.
7061
7062 2007-04-22  Revital Eres  <eres@il.ibm.com>
7063
7064         * loop-unroll.c (var_to_expand): New field to support also
7065         insns of the form x = something + x.
7066         (analyze_insn_to_expand_var): Use it.
7067         (expand_var_during_unrolling): Likewise.
7068
7069 2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>
7070
7071         * predict.c: Include pointer-set.h.
7072         (bb_predictions): New variable.
7073         (tree_predicted_by_p, tree_predict_edge,
7074         remove_predictions_associated_with_edge): Use bb_predictions map
7075         instead of bb->predictions.
7076         (clear_bb_predictions, assert_is_empty): New functions.
7077         (combine_predictions_for_bb): Use bb_predictions map.  Call
7078         clear_bb_predictions.
7079         (tree_estimate_probability): Create and free bb_predictions map.
7080         * Makefile.in (predict.o): Add pointer-set.h dependency.
7081         * basic-block.h (struct basic_block_def): Remove predictions
7082         field.
7083         * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
7084
7085 2007-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
7086
7087         PR target/31480
7088         * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
7089         is null.
7090
7091 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7092
7093         * timevar.c (timevar_print): Change reference of --disable-checking to
7094         --enable-checking=release.  Also warn if assert checking is disabled.
7095
7096 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7097
7098         PR C/30265
7099         * c-gimplifier.c (gimplify_compound_literal_expr): Mark the
7100         decl as addressable if the compound literal was marked as
7101         addressable.
7102         Mark the decl as a gimple register if it is a complex or
7103         vector decl and does not live in memory.
7104
7105 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7106
7107         * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
7108         (GENERIC_NEXT): New function macro.
7109         (PHI_CHAIN): Use phi_node's new chain variable.
7110         (tree_phi_node): Change tree_common to tree_base
7111         and add the chain field.
7112         * tree-phinodes.c (make_phi_node): Don't set
7113         TREE_TYPE on the new node.
7114         * c-decl.c (lang_tree_node): Use GENERIC_NEXT
7115         instead of checking GIMPLE_TUPLE_P in chain_next.
7116         * tree-vect-transform.c
7117         (get_initial_def_for_induction): Look at
7118         PHI_RESULT_TREE for the type of the phi node.
7119         (update_vuses_to_preheader): Use PHI_CHAIN
7120         instead of TREE_CHAIN on the phi node.
7121         * tree-ssa-structalias.c (compute_points_to_sets):
7122         Likewise.
7123         (ipa_pta_execute): Likewise.
7124
7125 2007-04-21  Richard Guenther  <rguenther@suse.de>
7126
7127         PR middle-end/31136
7128         * fold-const.c (fold_unary): Call fold_convert_const on the
7129         original tree.
7130
7131 2007-04-21  Alexandre Oliva  <aoliva@redhat.com>
7132
7133         * gcse.c (store_killed_in_insn): Handle PARALLELs.
7134         (store_killed_in_pat): New.
7135
7136 2007-04-20  Richard Henderson  <rth@redhat.com>
7137
7138         PR target/31628
7139         * config/i386/i386.c (type_has_variadic_args_p): Look for any
7140         TREE_LIST with a void_type_node value, not void_list_node exactly.
7141
7142 2007-04-21  Douglas Gregor  <doug.gregor@gmail.com>
7143
7144         * doc/standards.texi: Re-arrange into language-specific
7145         subsections. Add a C++ section, documenting which standards we
7146         support.
7147
7148 2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>
7149
7150         * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
7151         * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.
7152
7153 2007-04-20  Daniel Jacobowitz  <dan@codesourcery.com>
7154
7155         * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
7156         ecrti.o and crtbegin.o.
7157         (LIB_DEFAULT_SPEC): Include -lc.
7158         (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.
7159
7160 2007-04-20  Richard Henderson  <rth@redhat.com>
7161
7162         PR target/28623
7163         * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
7164         argument; update all callers.
7165         (get_unaligned_offset): New.
7166         * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
7167         get_unaligned_address, just pass on the address directly.
7168         (unaligned_extendqidi): Use gen_lowpart instead of open-coding
7169         the subreg in the helper patterns.
7170         (unaligned_extendqidi_le): Use get_unaligned_offset.
7171         (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
7172         (unaligned_extendhidi_be): Likewise.
7173         (unaligned_extendhidi): Tidy.
7174         * config/alpha/alpha-protos.h: Update.
7175
7176 2007-04-20  Richard Henderson  <rth@redhat.com>
7177
7178         * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove.
7179         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
7180         * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
7181         * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
7182         * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
7183         (CPP_SPEC): Don't include %(cpp_subtarget).
7184         * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC.
7185         (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
7186         * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly.
7187
7188 2007-04-20  Jakub Jelinek  <jakub@redhat.com>
7189
7190         * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
7191         for __builtin_ia32_cmpordss.
7192
7193         PR tree-optimization/31632
7194         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
7195         and arg1 for optimizations of comparison against min/max values.
7196         Fold arg0 to arg1's type for optimizations of comparison against
7197         min+1 and max-1 values.
7198
7199 2007-04-19  Bernd Schmidt  <bernd.schmidt@analog.com>
7200
7201         * reload.c (combine_reloads): When trying to use a dying register,
7202         check whether it's uninitialized and don't use if so.
7203
7204 2007-04-19  Brooks Moses  <brooks.moses@codesourcery.com>
7205
7206         * fold-const.c: Remove prototypes for native_encode_expr and
7207         native_interpret_expr.
7208         (native_encode_expr): Make non-static.
7209         (native_interpret_expr): Likewise.
7210         * tree.h: Add prototypes for the above.
7211
7212 2007-04-19  Joseph Myers  <joseph@codesourcery.com>
7213
7214         * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2,
7215         *mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2,
7216         *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2,
7217         spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr,
7218         tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
7219         Add length attributes.
7220
7221 2007-04-19  Janis Johnson  <janis187@us.ibm.com>
7222
7223         * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined,
7224         not that it is 1.
7225
7226         * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
7227         __STDC_WANT_DEC_FP__.
7228
7229 2007-04-19  Joseph Myers  <joseph@codesourcery.com>
7230
7231         * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
7232         for long double compatibility.
7233         * configure: Regenerate.
7234
7235 2007-04-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
7236
7237         PR rtl-optimization/29841
7238         * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
7239         trap instructions.
7240         * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
7241         that may cause control flow transfer from being moved.
7242
7243 2007-04-18  Jan Hubicka  <jh@suse.cz>
7244
7245         * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
7246         types.
7247
7248 2007-04-18  Eric Christopher  <echristo@apple.com>
7249
7250         * config/rs6000/darwin.md (load_macho_picbase): Use link register
7251         only. Update operands.
7252         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
7253         * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
7254         link register to pic register.
7255
7256 2007-04-18  Dirk Mueller  <dmueller@suse.de>
7257
7258         PR diagnostic/31227
7259         * tree-vrp.c (search_for_addr_array): New.
7260         (check_array_bounds): Suppress warning about
7261         address taken of array refs if its not de-referenced.
7262
7263 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
7264
7265         * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
7266         * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
7267
7268         * tree-vectorizer.h (NITERS_KNOWN_P): New.
7269         * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
7270         instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
7271
7272         * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
7273         dump print.
7274         (vect_analyze_operations): Fix indenetation.  Fix a comment.  Fix a
7275         print message.
7276         (vect_analyze_scalar_cycles): Fix indentation.
7277         (vect_enhance_data_refs_alignment): Fix check in case of peeling.
7278         (vect_mark_relevant): Include phis in relevance analysis.
7279
7280         * tree-vect-transform.c (vect_transform_loop): Add an assert.
7281
7282 2007-04-18  Anatoly Sokolov <aesok@post.ru>
7283
7284         * config/avr/avr.c (ptrreg_to_str): Replace error() with
7285         output_operand_lossage().
7286
7287 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
7288
7289         * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
7290         the unused code for reduction without adjust-in-epilog to simplify the
7291         function.
7292
7293 2007-04-18  Wolfgang Gellerich  <gellerich@de.ibm.com>
7294
7295         * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
7296         (S390_TDC_NEGATIVE_ZERO): New constant.
7297         (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
7298         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
7299         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
7300         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
7301         (S390_TDC_POSITIVE_INFINITY): New constant.
7302         (S390_TDC_NEGATIVE_INFINITY): New constant.
7303         (S390_TDC_POSITIVE_QUIET_NAN): New constant.
7304         (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
7305         (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
7306         (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
7307         (S390_TDC_INFINITY): New constant.
7308         * config/s390/s390.c (s390_canonicalize_comparison): Renamed
7309         UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
7310         optimization for UNSPEC_CCZ_TO_INT.
7311         * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
7312         ("*ccz_to_int"): New insn.
7313         ("isinf<mode>2"): New insn.
7314         (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
7315         (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
7316         (UNSPEC_CCZ_TO_INT): New constant.
7317
7318 2007-04-18  Richard Guenther  <rguenther@suse.de>
7319
7320         PR tree-optimization/19431
7321         PR tree-optimization/21463
7322         * tree-pass.h (pass_phiprop): Declare.
7323         * passes.c (init_optimization_passes): New phiprop pass.
7324         * tree-ssa-forwprop.c (struct phiprop_d): New structure.
7325         (phivn_valid_p): New helper function.
7326         (phiprop_insert_phi): Likewise.
7327         (propagate_with_phi): Likewise.
7328         (tree_ssa_phiprop): New propagator propagating loads
7329         through phi nodes if profitable.
7330
7331 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
7332
7333         * tree-vect-analyze.c (process_use): New function.
7334         (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
7335         Check phis in all bbs.
7336         * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
7337         assert.
7338
7339 2007-04-18  Bernd Schmidt  <bernd.schmidt@analog.com>
7340
7341         * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
7342         we use REG_EQUAL.
7343
7344 2007-04-17  Anatoly Sokolov <aesok@post.ru>
7345
7346         PR target/30483
7347         * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
7348         error().
7349
7350 2007-04-17  H.J. Lu  <hongjiu.lu@intel.com>
7351
7352         * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
7353         on "0".
7354         (sse_vmmulv4sf3): Likewise.
7355         (sse2_vmaddv2df3): Likewise.
7356         (sse2_vmmulv2df3): Likewise.
7357
7358 2007-04-17  Zdenek Dvorak  <dvorakz@suse.cz>
7359
7360         PR rtl-optimization/31360
7361         * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
7362         (target_reg_cost): New.
7363         (init_set_costs): Initialize target_reg_cost.  Add comments
7364         regarding the rationale of the costs.
7365         (global_cost_for_size): Renamed to...
7366         (estimate_reg_pressure_cost): ... and simplify.  Decrease importance
7367         of register pressure.
7368         * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
7369         estimate_reg_pressure_cost.  Add number of ivs.
7370         (determine_set_costs): Dump target_reg_cost.
7371         * loop-invariant.c (gain_for_invariant):  Use
7372         estimate_reg_pressure_cost.  Removed n_inv_uses argument.
7373         (best_gain_for_invariant, find_invariants_to_move): Remove
7374         n_inv_uses.
7375         * cfgloop.h (target_small_cost, target_pres_cost): Removed.
7376         (target_reg_cost): Declare.
7377         (global_cost_for_size): Declaration removed.
7378         (estimate_reg_pressure_cost): Declare.
7379
7380 2007-04-17  Peter Bergner  <bergner@vnet.ibm.com>
7381
7382         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
7383         regnos into even/odd register pairs.
7384         * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
7385         TDmode similar to the other floating point modes.
7386         [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
7387         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
7388         define_expand's.
7389         (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
7390         nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
7391         (movdd_hardfloat64): Use TARGET_MFPGPR.
7392
7393 2007-04-17  Bernd Schmidt  <bernd.schmidt@analog.com>
7394
7395         * reload1.c (delete_output_reload): Don't count output in n_inherited.
7396
7397         Revert
7398         2005-01-05  Richard Henderson  <rth@redhat.com>
7399         PR rtl-opt/10692
7400         * reload1.c (do_input_reload): Restrict the optimization deleteing
7401         a previous output reload to RELOAD_FOR_INPUT.
7402
7403 2007-04-17  Dorit Nuzman  <dorit@il.ibm.com>
7404
7405         * tree-vectorizer.h (stmt_vec_info_type): Add enum value
7406         induc_vec_info_type.
7407         (vectorizable_induction): New function declaration.
7408         * tree-vect-transform.c (get_initial_def_for_induction): No need to
7409         check if already vectorized.  Find first place in BB where new stmts
7410         can be inserted.  Takes only one argument.
7411         (vectorizable_induction): New function.
7412         (vect_transform_stmt): Add case for induc_vec_info_type to call
7413         vectorizable_induction.
7414         (vect_transform_loop): Consider phis for vectorization.
7415         * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
7416         condition.
7417         (analyze_operations): Call vectorizable_induction when analyzing phis.
7418         Fix comment.
7419         (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
7420         (vect_mark_relevant): Include phis in relevance analysis.
7421         (vect_mark_stmts_to_be_vectorize): Likewise.
7422         * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
7423
7424 2007-04-16  Lawrence Crowl  <crowl@google.com>
7425
7426         * doc/invoke.texi (Debugging Options): Add documentation for the
7427         -femit-struct-debug options -femit-struct-debug-baseonly,
7428         -femit-struct-debug-reduced, and
7429         -femit-struct-debug-detailed[=...].
7430
7431         * c-opts.c (c_common_handle_option): Add
7432         OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
7433         and OPT_femit_struct_debug_detailed_.
7434         * c.opt: Add specifications for
7435         -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
7436         and -femit-struct-debug-detailed[=...].
7437         * opts.c (set_struct_debug_option): Parse the
7438         -femit-struct-debug-... options.
7439         * opts.c (matches_main_base, main_input_basename,
7440         main_input_baselength, base_of_path, matches_main_base): Add
7441         variables and functions to compare header base name to compilation
7442         unit base name.
7443         * opts.c (should_emit_struct_debug): Add to determine to emit a
7444         structure based on the option.
7445         (dump_struct_debug) Also disabled function to debug this
7446         function.
7447         * opts.c (handle_options): Save the base name of the
7448         compilation unit.
7449
7450         * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
7451         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
7452         This hook indicates if a type is generic.  Set it by default
7453         to "never generic".
7454         * langhooks.h (struct lang_hooks_for_types): Add a new hook
7455         to determine if a struct type is generic or not.
7456         * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
7457         * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
7458         * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
7459         with live C++ hook.
7460
7461         * flags.h (enum debug_info_usage): Add an enumeration to describe
7462         a program's use of a structure type.
7463         * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
7464         to indicate the program's usage of the type.  Filter structs based
7465         on the -femit-struct-debug-... specification.
7466         (gen_type_die): Split into two routines, gen_type_die and
7467         gen_type_die_with_usage.  gen_type_die is now a wrapper
7468         that assumes direct usage.
7469         (gen_type_die_with_usage): Replace calls to gen_type_die
7470         with gen_type_die_with_usage adding the program usage of
7471         the referenced type.
7472         (dwarf2out_imported_module_or_decl): Suppress struct debug
7473         information using should_emit_struct_debug when appropriate.
7474
7475 2007-04-16  Ian Lance Taylor  <iant@google.com>
7476
7477         PR tree-optimization/31522
7478         * tree-vrp.c (vr_phi_edge_counts): New static variable.
7479         (vrp_initialize): Allocate vr_phi_edge_counts.
7480         (vrp_visit_phi_node): Don't push to infinity if we saw a new
7481         executable edge.  Drop test for all constants.
7482         (vrp_finalize): Free vrp_phi_edge_counts.
7483
7484         * doc/cpp.texi (Common Predefined Macros): Clarify description of
7485         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
7486
7487         * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
7488         predecessors at head rather than tail.
7489
7490 2007-04-16  Matthias Klose  <doko@debian.org>
7491
7492         * config/alpha/linux.h (CPP_SPEC): Define.
7493         * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
7494
7495 2007-04-16  Aldy Hernandez  <aldyh@redhat.com>
7496
7497         * function.h: Remove sequence_stack extern declaration.
7498
7499 2007-04-16  Kazu Hirata  <kazu@codesourcery.com>
7500
7501         * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
7502         TARGET_FIDOA.
7503         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
7504         defined.
7505
7506 2007-04-16  Anatoly Sokolov <aesok@post.ru>
7507
7508         * config/avr/avr.c (avr_arch_types): Rearranging  array.
7509         (enum avr_arch): Add.
7510         (avr_mcu_types): Use avr_arch enumeration constants instead of
7511         numbers.
7512         * config/avr/avr.h (LINK_SPEC): Simplify.
7513
7514 2007-04-16  Kazu Hirata  <kazu@codesourcery.com>
7515
7516         * config/m68k/m68k.c (m68k_libcall_value,
7517         m68k_function_value): Use macros for register names more.
7518
7519         * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
7520         instead.
7521         (M68K_REGNAME): Use A6_REG.
7522         * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
7523
7524 2007-04-16  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
7525
7526         PR middle-end/28071
7527         * sched-int.h (struct deps): Split field 'pending_lists_length' into
7528         'pending_read_list_length' and 'pending_write_list_length'.  Update
7529         comment.
7530         * sched-deps.c (add_insn_mem_dependence): Change signature.  Update
7531         to handle two length counters instead of one.  Update all uses.
7532         (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
7533         two length counters instead of one.
7534         * sched-rgn.c (propagate_deps): Update to handle two length counters
7535         instead of one.
7536
7537 2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>
7538
7539         PR target/31582
7540         * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
7541         copy of source, pass it to ix86_expand_vector_set and return
7542         it as target.
7543
7544 2007-04-16  David Ung  <davidu@mips.com>
7545             Joseph Myers  <joseph@codesourcery.com>
7546
7547         * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
7548         PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
7549         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
7550         Add 74K processor information.
7551         * config/mips/mips.md: Include 74k.md.
7552         (cpu): Add 74kc,74kf,74kx.
7553         (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
7554         * config/mips/74k.md: New.
7555         * doc/invoke.texi (MIPS Options): Document 74K support.
7556
7557 2007-04-16  Dorit Nuzman  <dorit@il.ibm.com>
7558
7559         * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
7560         vectorizable_* functions.
7561         * tree-vect-transform.c (vectorizable_call): Add check for
7562         STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
7563         (vectorizable_store): likewise.
7564         (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
7565         Add comments.
7566         (vectorizable_operation, vectorizable_type_demotion): Likewise.
7567         (vectorizable_type_promotion, vectorizable_load): Likewise.
7568         (vectorizable_live_operation, vectorizable_condition): Likewise.
7569         (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
7570         STMT_VINFO_LIVE_P.
7571         (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
7572
7573 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
7574
7575         * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
7576         register numbers more.
7577         * config/m68k/m68k.h (STACK_POINTER_REGNUM,
7578         FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
7579         M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
7580         FUNCTION_VALUE_REGNO_P): Likewise.
7581         * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
7582         STATIC_CHAIN_REGNUM): Likewise.
7583         * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
7584         * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
7585         STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
7586         * config/m68k/m68k.md (FP_REG): New.
7587
7588 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
7589
7590         * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
7591         alignment on fido.
7592
7593 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
7594
7595         * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
7596         tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
7597         comment typos.
7598
7599 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
7600
7601         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
7602         cold loops.
7603
7604 2007-04-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7605
7606         PR c/31520
7607         * c-decl.c (finish_decl): Grab the type of the decl after the call
7608         to store_init_value.
7609
7610 2007-04-14  Steven Bosscher  <steven@gcc.gnu.org>
7611
7612         * common.opt (fforward-propagate): Fix "Optimization" annotation.
7613
7614 2007-04-14  Jakub Jelinek  <jakub@redhat.com>
7615
7616         PR c++/25874
7617         * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free
7618         dominators, post dominators and cleanup cfg before returning.
7619
7620 2007-04-14  Bernd Schmidt  <bernd.schmidt@analog.com>
7621
7622         * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
7623         * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
7624
7625 2007-04-14  Kazu Hirata  <kazu@codesourcery.com>
7626
7627         * config.gcc: Recognize fido.
7628         * config/m68k/m68k-devices.def (fidoa): New.
7629         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
7630         __mfido__.
7631         (FL_FIDOA, TARGET_FIDOA): New.
7632         * config/m68k/m68k.opt (mfidoa): New.
7633
7634 2007-04-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7635
7636         PR middle-end/31322
7637         * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
7638         when a personality function is used.
7639
7640 2007-04-13  Bob Wilson  <bob.wilson@acm.org>
7641
7642         * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
7643
7644 2007-04-13  Mike Stump  <mrs@apple.com>
7645
7646         * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
7647         we can...
7648         * config/darwin.opt (fapple-kext): Make C++ only.
7649         * config/darwin.c (darwin_override_options): Remove code to ensure
7650         -fapple-kext is given for C++ only.
7651
7652 2007-04-13  Richard Sandiford  <richard@codesourcery.com>
7653
7654         * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
7655         * config/mips/mips.c (override_options): Call
7656         SUBTARGET_OVERRIDE_OPTIONS, if defined.
7657
7658 2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>
7659
7660         * config/i386/i386.opt (msvr3-shlib): Removed.
7661
7662         * doc/invoke.texi: Remove -msvr3-shlib.
7663
7664 2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>
7665
7666         * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
7667         with "popcnt" instruction.
7668
7669 2007-04-13  Richard Guenther  <rguenther@suse.de>
7670
7671         PR tree-optimization/21258
7672         * tree-vrp.c (compare_case_labels): New helper.
7673         (find_switch_asserts): New function.
7674         (find_assert_locations): Call it for SWITCH_EXPRs.
7675
7676 2007-04-13  Uros Bizjak  <ubizjak@gmail.com>
7677
7678         * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
7679         * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
7680         check is now implied in X87_FLOAT_MODE_P.
7681         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
7682         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
7683         (fix_trunc<mode>_i386_fisttp): Ditto.
7684         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
7685         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
7686         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
7687         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
7688         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
7689         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
7690         (unnamed_splitters): Ditto.
7691         * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
7692         for X87_FLOAT_MODE_P mode.  Override FIRST_FLOAT_REG with
7693         FIRST_SSE_REG for local functions when SSE math is enabled or
7694         for functions with sseregparm attribute.
7695         (standard_80387_constant_p): Return -1 if mode is not
7696         X87_FLOAT_MODE_P.
7697         (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
7698         (ix86_expand_compare): Ditto.
7699         (ix86_expand_carry_flag_compare): Ditto.
7700         (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
7701         of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
7702         DECIMAL_FLOAT_MODE_P.
7703         (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
7704         of SCALAR_FLOAT_MODE_P.
7705         (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
7706         [MINUS]: ... here.  Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
7707         checks before FLOAT_MODE_P.
7708         [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
7709         before FLOAT_MODE_P.
7710         [DIV]: Ditto.
7711         [NEG]: Ditto.
7712         [ABS]: Ditto.
7713         [SQRT]: Ditto.
7714         [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
7715
7716 2007-04-12  Paolo Bonzini  <bonzini@gnu.org>
7717             Charles Wilson  <libtool@cwilson.fastmail.fm>
7718
7719         * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
7720         (libgcc.mvars): Don't depend on them.
7721         * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
7722         * exec-tool.in: New.
7723
7724 2007-04-12  Brooks Moses  <brooks.moses@codesourcery.com>
7725
7726         * doc/invoke.text (--help): Document --help=common.
7727
7728 2007-04-12  Thomas Neumann  <tneumann@users.sourceforge.net>
7729
7730         * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
7731
7732 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
7733
7734         * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
7735         * genemit.c (main): Emit #include "integrate.h".
7736         * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
7737         (LOADGP_RTP): New mips_loadgp_style.
7738         * config/mips/mips.h: Include config/vxworks-dummy.h.
7739         (TARGET_RTP_PIC): New macro.
7740         (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
7741         (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
7742         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
7743         for TARGET_RTP_PIC.
7744         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define.  Pass down
7745         -mvxworks-pic when using -mrtp and a PIC option.
7746         * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
7747         for RTP PIC.
7748         (mips_symbolic_constant_p, mips_symbolic_address_p)
7749         (mips_symbol_insns): Handle SYMBOL_HALF.
7750         (override_options): Warn about -G and -mrtp being used together.
7751         Initialize mips_lo_relocs[SYMBOL_HALF].
7752         (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
7753         (mips_emit_loadgp): Handle LOADGP_RTP.
7754         (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
7755         * config/mips/mips.md (loadgp_rtp): New insn and splitter.
7756         (tablejump): Handle function-relative case table entries if
7757         TARGET_RTP_PIC.
7758         * config/mips/predicates.md (symbol_ref_operand): New predicate.
7759
7760 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
7761
7762         * config/mips/mips.md (load_call<mode>): Allow any general register.
7763         destination.
7764         (sibcall_value_internal, sibcall_value_multiple_internal)
7765         (call_value_internal, call_value_split, call_value_multiple_internal)
7766         (call_value_multiple_split): Remove constraints from operand 0.
7767
7768 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
7769
7770         * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
7771         rather than loadgp_noshared.
7772         * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
7773         instead of gen_loadgp_noshared.  Use gen_loadgp_newabi instead of
7774         gen_loadgp.
7775         * config/mips/mips.md (loadgp): Rename to...
7776         (loadgp_newabi): ...this.
7777         (loadgp_noshared): Rename to...
7778         (loadgp_absolute): ...this.
7779
7780 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
7781
7782         * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
7783         false for locally-binding symbols.
7784         (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
7785
7786 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
7787
7788         * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
7789         (SYMBOL_GOT_PAGE_OFST): ...this.
7790         (SYMBOL_GOT_GLOBAL): Rename to...
7791         (SYMBOL_GOT_DISP): ...this.
7792         (SYMBOL_GOTOFF_GLOBAL): Rename to...
7793         (SYMBOL_GOTOFF_DISP): ...this.  Update comments accordingly.
7794         * config/mips/mips.c (mips_global_symbol_p): New function.
7795         (mips_symbol_binds_local_p): Likewise.
7796         (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
7797         and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST.  Use
7798         mips_global_symbol_p and mips_symbol_binds_local_p.
7799         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
7800         (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
7801         SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
7802         SYMBOL_GOTOFF_DISP.
7803         (mips_ok_for_lazy_binding_p): New function.
7804         (mips_load_call_address, mips_expand_call): Use it.
7805         (mips_dangerous_for_la25_p): Likewise.
7806         * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
7807         (*got_disp<mode>): Use got_disp_operand instead of
7808         global_got_operand.  Use SYMBOL_GOTOFF_DISP instead of
7809         SYMBOL_GOTOFF_GLOBAL.
7810         (*got_page<mode>): Use got_page_ofst_operand instead of
7811         local_got_operand.
7812         * config/mips/predicates.md (const_call_insn_operand): Use
7813         SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
7814         (global_got_operand): Rename to...
7815         (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
7816         SYMBOL_GOT_GLOBAL.
7817         (local_got_operand): Rename to...
7818         (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
7819         of SYMBOL_GOT_LOCAL.
7820
7821 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
7822
7823         * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
7824         TARGET_CALL_CLOBBERED_GP.
7825         (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
7826         (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
7827         (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
7828         (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
7829         of TARGET_ABICALLS && !TARGET_NEWABI.
7830         (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
7831         * config/mips/mips.c (mips_load_call_address): Check
7832         TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
7833         (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
7834         Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
7835         (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
7836         TARGET_ABICALLS && TARGET_NEWABI.
7837         (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
7838         TARGET_ABICALLS.
7839         (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
7840         (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
7841         TARGET_ABICALLS && TARGET_NEWABI.
7842         (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
7843         TARGET_ABICALLS.  Check TARGET_CALL_SAVED_GP instead of
7844         TARGET_NEWABI.  Use TARGET_USE_PIC_FN_ADDR_REG to decide
7845         whether indirect calls must use $25.
7846         (mips_extra_live_on_entry): Check TARGET_GOT instead of
7847         TARGET_ABICALLS.
7848         * config/mips/mips.md (jal_macro): Check flag_pic and
7849         TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
7850         (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
7851         instead of TARGET_ABICALLS.
7852         (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
7853         TARGET_ABICALLS && TARGET_OLDABI.
7854         (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
7855         (sibcall): In the comment above the define_insn, mention
7856         TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
7857         * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
7858         instead of TARGET_ABICALLS.
7859
7860 2007-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
7861
7862         * doc/md.texi (Blackfin family constraints): Document PA and PB.
7863         * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
7864         (MACFLAGS_MATCH_P): New macro.
7865         * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
7866         (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
7867         * config/bfin/bfin.md (MACFLAG_IS_M): New constant.  Renumber some of
7868         the other MACFLAG constants.
7869         (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
7870         (flag_machi): Tighten constraints.  Renumber some of the operands.
7871         (flag_machi_acconly): Tighten constraints.  Correct operand numbers in
7872         output template.
7873         (flag_machi_parts_acconly): New pattern.
7874         (flag_macinithi): Tighten constraints.  Allow any accumulator to be
7875         used.
7876         (flag_macinit1hi): Tighten constraints.
7877         (flag_mul_macv2hi_parts_acconly): New pattern.
7878
7879         * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
7880         Use a more efficient implementation.
7881         * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
7882         inline sequences when not optimizing for size.
7883
7884         * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
7885         movhi_high2low): Delete, merge functionality into...
7886         (packv2hi): ... this pattern.
7887
7888         2007-02-11  Jie Zhang  <jie.zhang@analog.com>
7889         * config/bfin/bfin.opt (msim): New option.
7890         (mcpu=): New option.
7891         * config/bfin/bfin-protos.h (enum bfin_cpu): New.
7892         (bfin_cpu_t): Typedef of enum bfin_cpu.
7893         (bfin_cpu_type): New declaration.
7894         * config/bfin/elf.h (STARTFILE_SPEC): Add support for
7895         -msim and -mcpu= options.
7896         (LIB_SPEC): Likewise.
7897         * config/bfin/bfin.c (bfin_cpu_type): Define.
7898         (bfin_handle_option): Handle -mcpu= option.
7899         * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
7900         (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
7901         __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
7902
7903 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
7904
7905         * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
7906         (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
7907         (powerpc-wrs-vxworksae): Use ${tm_file}.
7908         (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
7909         after elfos.h.  Remove i386/sysv4.h and add i386/vx-common.h.
7910         * config/i386/vx-common.h: New file.
7911
7912 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
7913
7914         * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
7915         of crt0.o%s.
7916
7917 2007-04-12  Andreas Krebbel  <krebbel1@de.ibm.com>
7918
7919         * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
7920         ldxtr.
7921
7922 2007-04-12  Douglas Gregor  <doug.gregor@gmail.com>
7923
7924         PR c++/31078
7925         PR c++/31103
7926         * c-common.c (c_build_qualified_type): Set canonical type
7927         appropriately.
7928
7929 2007-04-12  Richard Guenther  <rguenther@suse.de>
7930
7931         * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
7932         lower bound and element size if lower bound is not zero
7933         or either of the ARRAY_REF operands is set.
7934
7935 2007-04-12  Richard Guenther  <rguenther@suse.de>
7936
7937         PR tree-optimization/24689
7938         PR tree-optimization/31307
7939         * fold-const.c (operand_equal_p): Compare INTEGER_CST array
7940         indices by value.
7941         * gimplify.c (canonicalize_addr_expr): To be consistent with
7942         gimplify_compound_lval only set operands two and three of
7943         ARRAY_REFs if they are not gimple_min_invariant.  This makes
7944         it never at this place.
7945         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
7946
7947 2007-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7948
7949         * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
7950         null before emitting a .nsubspa directive.
7951
7952 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
7953
7954         * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
7955         need_to_partition_p if there are no memory statements in the
7956         function.
7957
7958 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
7959
7960         * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
7961         (gcd_of_steps_may_divide_p): New function.
7962         (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
7963
7964 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
7965
7966         * reload.c (find_reloads_toplev, find_reloads_address,
7967         find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
7968         not a pointer equality test, to decide if we need to call
7969         push_reg_equiv_alt_mem.
7970
7971 2007-04-11  Sebastian Pop  <sebastian.pop@inria.fr>
7972
7973         * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
7974         insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps):
7975         New.
7976         (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
7977
7978 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
7979
7980         * tree-data-ref.c (add_multivariate_self_dist): Force the distance
7981         vector to be positive.
7982
7983 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
7984
7985         PR 30735
7986         PR 31090
7987         * doc/invoke.texi: Document --params max-aliased-vops and
7988         avg-aliased-vops.
7989         * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
7990         debug_memory_partitions): Move to tree-flow.h
7991         * params.h (AVG_ALIASED_VOPS): Define.
7992         * tree-ssa-alias.c (struct mp_info_def): Remove.  Update all
7993         users.
7994         (mp_info_t): Likewise.
7995         (get_mem_sym_stats_for): New.
7996         (set_memory_partition): Move from tree-flow-inline.h.
7997         (mark_non_addressable): Only clear the set of symbols for the
7998         partition if it exists.
7999         (dump_memory_partitions): Move from tree-ssa-operands.c
8000         (debug_memory_partitions): Likewise.
8001         (need_to_partition_p): New.
8002         (dump_mem_ref_stats): New.
8003         (debug_mem_ref_stats): New.
8004         (dump_mem_sym_stats): New.
8005         (debug_mem_sym_stats): New.
8006         (update_mem_sym_stats_from_stmt): New.
8007         (compare_mp_info_entries): New.
8008         (mp_info_cmp): Call it.
8009         (sort_mp_info): Change argument to a list of mem_sym_stats_t
8010         objects.
8011         (get_mpt_for): Move from tree-ssa-operands.c.
8012         (find_partition_for): New.
8013         (create_partition_for): Remove.
8014         (estimate_vop_reduction): New.
8015         (update_reference_counts): New.
8016         (build_mp_info): New.
8017         (compute_memory_partitions): Refactor.
8018         Document new heuristic.
8019         Call build_mp_info, update_reference_counts,
8020         find_partition_for and estimate_vop_reduction.
8021         (compute_may_aliases): Populate virtual operands before
8022         calling debugging dumps.
8023         (delete_mem_sym_stats): New.
8024         (delete_mem_ref_stats): New.
8025         (init_mem_ref_stats): New.
8026         (init_alias_info): Call it.
8027         (maybe_create_global_var): Remove alias_info argument.
8028         Get number of call sites and number of pure/const call sites
8029         from gimple_mem_ref_stats().
8030         (dump_alias_info): Call dump_memory_partitions first.
8031         (dump_points_to_info_for): Show how many times a pointer has
8032         been dereferenced.
8033         * opts.c (decode_options): For -O2 set --param
8034         max-aliased-vops to 500.
8035         For -O3 set --param max-aliased-vops to 1000 and --param
8036         avg-aliased-vops to 3.
8037         * fortran/options.c (gfc_init_options): Remove assignment to
8038         MAX_ALIASED_VOPS.
8039         * tree-flow-inline.h (gimple_mem_ref_stats): New.
8040         * tree-dfa.c (dump_variable): Dump memory reference
8041         statistics.
8042         Dump NO_ALIAS* settings.
8043         (referenced_var_lookup): Tidy.
8044         (mem_sym_stats): New.
8045         * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
8046         and ORIG are different SSA names for a memory partition.
8047         * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
8048         * tree-flow.h (struct mem_sym_stats_d): Define.
8049         (mem_sym_stats_t): Define.
8050         (struct mem_ref_stats_d): Define.
8051         (struct gimple_df): Add field mem_ref_stats.
8052         (enum noalias_state): Define.
8053         (struct var_ann_d): Add bitfield noalias_state.
8054         (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
8055         debug_mem_ref_stats, debug_memory_partitions,
8056         debug_mem_sym_stats): Declare.
8057         * tree-ssa-structalias.c (update_alias_info): Update call
8058         sites, pure/const call sites and asm sites in structure
8059         returned by gimple_mem_ref_stats.
8060         Remove local variable IS_POTENTIAL_DEREF.
8061         Increase NUM_DEREFS if the memory expression is a potential
8062         dereference.
8063         Call update_mem_sym_stats_from_stmt.
8064         If the memory references memory, call
8065         update_mem_sym_stats_from_stmt for all the direct memory
8066         symbol references found.
8067         (intra_create_variable_infos): Set noalias_state field for
8068         pointer arguments according to the value of
8069         flag_argument_noalias.
8070         * tree-ssa-structalias.h (struct alias_info): Remove fields
8071         num_calls_found and num_pure_const_calls_found.
8072         (update_mem_sym_stats_from_stmt): Declare.
8073         * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
8074         Set default value to 100.
8075         (PARAM_AVG_ALIASED_VOPS): Define.
8076
8077 2007-04-11  Richard Guenther  <rguenther@suse.de>
8078
8079         PR middle-end/31530
8080         * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
8081         a * -b + c as c - a * b if we honor sign dependent rounding.
8082
8083 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
8084
8085         * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
8086         bfin_expand_strmov.
8087         * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
8088         bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
8089         variables.
8090         (initialize_trampoline): Don't use old-style function definition.
8091         (bfin_secondary_reload): Mark IN_P argument as unused.
8092
8093 2007-04-10  Sebastian Pop  <sebastian.pop@inria.fr>
8094
8095         PR tree-optimization/31343
8096         * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
8097         (build_polynomial_chrec): Return a scalar when the evolution is zero.
8098         * testsuite/gcc.dg/vect/pr31343.c: New.
8099
8100 2007-04-10  Eric Christopher  <echristo@apple.com>
8101
8102         * config/i386/i386.h (X87_FLOAT_MODE_P): New.
8103         * config/i386/i386.md (*cmpfp0): Use.
8104         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
8105         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
8106         (fix_trunc<mode>_i386_fisttp): Ditto.
8107         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
8108         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
8109         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
8110         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
8111         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
8112         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
8113         (unnamed_splitters): Ditto.
8114         * config/i386/i386.c (output_fix_trunc): Assert that
8115         we're not being passed a TFmode operand.
8116
8117 2007-04-10  Zdenek Dvorak  <dvorakz@suse.cz>
8118
8119         PR tree-optimization/31526
8120         * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
8121         n_basic_blocks to find newly added blocks.
8122
8123 2007-04-10  Uros Bizjak  <ubizjak@gmail.com>
8124
8125         * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
8126         alternative.
8127         (fix_trunc<mode>si_sse): Ditto.
8128         (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
8129         (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
8130         (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
8131         (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
8132         (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
8133         expander using SSEMODEF mode macro.
8134         (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
8135         expander using SSEMODEF mode macro.
8136         (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
8137         *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
8138         (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
8139         *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
8140         (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
8141         *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
8142         (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
8143         Macroize insn using X87MODEF mode macro.
8144
8145 2007-04-09  H.J. Lu  <hongjiu.lu@intel.com>
8146
8147         * config/i386/sse.md (sse2_pinsrw): Removed.
8148         (sse2_pextrw): Renamed to ...
8149         (*sse2_pextrw): This.
8150
8151 2007-04-09  Jan Hubicka  <jh@suse.cz>
8152
8153         PR target/27869
8154         * config/i386/sse.md
8155         (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
8156         (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
8157         (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
8158         (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
8159
8160 2007-04-09  Jan Hubicka  <jh@suse.cz>
8161
8162         * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
8163         multiple fields of union.
8164
8165 2007-04-09  Zdenek Dvorak  <dvorakz@suse.cz>
8166
8167         * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
8168         (create_preheaders): Check that loops are available.
8169         (fix_loop_structure): Clean up, improve comments.
8170         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
8171         Check that loops are available.  Set LOOP_CLOSED_SSA to the loops
8172         state flags.
8173         * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
8174         * predict.c (tree_estimate_probability): Do not call
8175         calculate_dominance_info.  Call create_preheaders.
8176         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
8177         rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
8178         flags.
8179         * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
8180         * cfgloop.h (LOOP_CLOSED_SSA): New constant.
8181         * tree-cfg.c (tree_split_edge): Make an assert more precise.
8182         * tree-ssa-threadedge.c (thread_across_edge): Comment the function
8183         arguments.
8184
8185 2007-04-08  Jan Hubicka  <jh@suse.cz>
8186
8187         * tree.h (maybe_fold_offset_to_component_ref): Declare.
8188         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
8189         * fold-const.c (fold_unary): Use it.
8190
8191 2007-04-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8192
8193         * varasm.c (assemble_variable): Remove call to
8194         lang_hooks.decls.prepare_assemble_variable.
8195         * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
8196         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
8197         * langhooks.h (lang_hooks_for_decls): Remove
8198         prepare_assemble_variable.
8199
8200 2007-04-08  Mike Stump  <mrs@apple.com>
8201
8202         * config/i386/i386.c: Use inc/dec on Core2.
8203
8204 2007-04-08  Steven Bosscher  <steven@gcc.gnu.org>
8205
8206         * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
8207         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
8208         lhd_tree_inlining_end_inlining): Remove.
8209         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
8210         add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
8211         end_inlining hooks.
8212         * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
8213         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
8214         lhd_tree_inlining_end_inlining): Remove prototypes.
8215         (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
8216         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
8217         LANG_HOOKS_TREE_INLINING_START_INLINING,
8218         LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
8219
8220         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
8221         not set it.
8222
8223 2007-04-08  Anatoly Sokolov <aesok@post.ru>
8224
8225         PR target/29932
8226         * config/avr/predicates.md (io_address_operand): Delete predicate.
8227         (low_io_address_operand): Don't use 'mode' argument.
8228         (higth_io_address_operand): Rename ...
8229         (high_io_address_operand): ... to this. Don't use 'mode' argument.
8230         * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
8231         for above change.
8232
8233 2007-04-07  Daniel Berlin  <dberlin@dberlin.org>
8234
8235         Revert change removing staticp.
8236
8237 2007-04-07  Anatoly Sokolov <aesok@post.ru>
8238
8239         PR target/30289
8240         * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
8241         earlyclobber.
8242
8243 2007-04-07  Bruce Korb  <bkorb@gnu.org>
8244
8245         * c.opt: Add -Wformat-contains-nul.
8246         * c-format.c (set_Wformat):  Set warn_format_contains_nul to the
8247           -Wformat setting.
8248         (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
8249         the NUL byte warning.
8250
8251 2007-04-07  H.J. Lu  <hongjiu.lu@intel.com>
8252
8253         * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
8254
8255 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
8256
8257         * tree.c (staticp): No longer use staticp langhook.
8258         * langhooks.c (lhd_staticp): Removed.
8259         * langhooks.h (struct lang_hooks): Remove staticp.
8260         * c-common.c (c_staticp): Remove.
8261         * c-common.h (c_staticp): Ditto.
8262         * langhooks-defs.h (lhd_staticp): Ditto.
8263         (LHD_HOOKS_STATICP): Ditto
8264         * tree.h (gcc_assert_lowered): New macro.
8265
8266 2007-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
8267
8268         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
8269         argument "reliable".
8270         (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
8271         Add argument "reliable".  Propagate it through calls.
8272         (infer_loop_bounds_from_undefined):  Derive number of iterations
8273         estimates from references in blocks that do not dominate loop latch.
8274         (gcov_type_to_double_int): New function.
8275         (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
8276         and expected_loop_iterations_unbounded.
8277         * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
8278         (expected_loop_iterations): Use expected_loop_iterations_unbounded.
8279         * tree-data-ref.c (estimated_loop_iterations): Export.
8280         (get_references_in_stmt): Fix -- do not return addresses of local
8281         objects.
8282         * cfgloop.h (expected_loop_iterations_unbounded,
8283         estimated_loop_iterations): Declare.
8284
8285 2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
8286
8287         * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
8288
8289 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
8290
8291         * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
8292         and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
8293         (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
8294         Use output_387_reg_move().
8295         (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
8296         expander using X87MODEF12 mode macro.
8297         (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
8298         choosing register preferences.  Use output_387_reg_move().
8299         (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
8300         instead of "x".  Use output_387_reg_move().
8301         (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
8302         *truncxfdf2_i387_noop.  Macroize insn using X87MODEF12 mode macro.
8303         (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
8304         *truncxfdf2_i387.  Macroize insn using X87MODEF12 mode macro.
8305         Use output_387_reg_move().
8306         (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
8307         mode macro.
8308         (*truncxf?f_i387 splitter): Ditto.
8309
8310 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
8311
8312         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
8313         LANG_HOOKS_SAFE_FROM_P.
8314         * expr.c (safe_from_p): Remove langhook call.
8315         * langhooks.h (lang_hooks): Remove safe_from_p.
8316         (lhd_safe_from_p): Remove prototype.
8317         * langhooks.c (lhd_safe_from_p): Remove.
8318
8319 2007-04-06  Jan Hubicka  <jh@suse.cz>
8320
8321         * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
8322         functions.
8323
8324 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
8325
8326         * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
8327         * config/i386/i386.md (*movsf_1, *movdf_nointeger,
8328         *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
8329         *movxf_integer): Use output_387_reg_move() for x87 reg->mem
8330         alternative.
8331         (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
8332         *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
8333
8334 2007-04-05  Richard Henderson  <rth@redhat.com>
8335
8336         * config/alpha/alpha.c (print_operand) [+]: Remove.
8337         (alpha_end_function): Print nop if call at end of function.
8338         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
8339         * config/alpha/alpha.md (UNSPEC_LDGP1): New.
8340         (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
8341         (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
8342         (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
8343         the call pattern. Update peepholes to match.
8344
8345 2007-04-05  Janis Johnson  <janis187@us.ibm.com>
8346
8347         * doc/extend.texi (Other Builtins): Add decimal float variants
8348         of signbit.
8349         * builtins.def: Ditto.
8350         * builtins.c (expand_builtin): Ditto.
8351
8352 2007-04-05  Uros Bizjak  <ubizjak@gmail.com>
8353             H.J. Lu  <hongjiu.lu@intel.com>
8354
8355         PR target/31478
8356         * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
8357         of V8HImode when calling ix86_binary_operator_ok.
8358         (sse2_pmaddwd): Call ix86_binary_operator_ok.
8359         (sdot_prodv8hi): Operands 1 and 2 must be register.
8360
8361 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
8362
8363         * tree-sra.c (try_instantiate_multiple_fields): Needlessly
8364         initialize align to silence bogus warning.
8365
8366 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
8367
8368         PR middle-end/22156
8369         * tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
8370         all_no_warning.
8371         (struct sra_walk_fns): Remove use_all parameter from use.
8372         (sra_hash_tree): Handle BIT_FIELD_REFs.
8373         (sra_elt_hash): Don't hash bitfld blocks.
8374         (sra_elt_eq): Skip them in parent compares as well.  Handle
8375         BIT_FIELD_REFs.
8376         (sra_walk_expr): Don't maintain or pass down use_all_p.
8377         (scan_use): Remove use_all parameter.
8378         (scalarize_use): Likewise.  Re-expand assignment to
8379         BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
8380         output, and re-scalarize after output.  Don't mark anything
8381         for no warning.
8382         (scalarize_ldst): Adjust.
8383         (scalarize_walk_gimple_modify_statement): Likewise.
8384         (build_element_name_1): Handle BIT_FIELD_REFs.
8385         (instantiate_element): Don't warn for any element whose parent
8386         is used as a whole.
8387         (instantiate_missing_elements_1): Return the sra_elt.
8388         (canon_type_for_field): New.
8389         (try_instantiate_multiple_fields): New.
8390         (instantiate_missing_elemnts): Use them.
8391         (mark_no_warning): Removed.
8392         (generate_one_element_ref): Handle BIT_FIELD_REFs.
8393         (REPLDUP, sra_build_elt_assignment): New.
8394         (generate_copy_inout): Use them.
8395         (generate_element_copy): Likewise.  Handle bitfld differences.
8396         (generate_element_zero): Don't recurse for blocks.  Use
8397         sra_build_elt_assignment.
8398         (generate_one_element_int): Take elt instead of var.  Use
8399         sra_build_elt_assignment.
8400         (generate_element_init_1): Adjust.
8401         (scalarize_use, scalarize_copy): Use REPLDUP.
8402         (scalarize_ldst): Move assert before dereference.
8403         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
8404
8405 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
8406
8407         * regmove.c: Fix unused variable warnings due to previous commit.
8408
8409 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
8410
8411         * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
8412         (regmove_bb_head): Remove.
8413         (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
8414         (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
8415         problems with fixup_match_1.
8416         Don't initialize/free regmove_bb_head.
8417
8418         (reg_is_remote_constant_p): If an insn is in the same basic block
8419         but not before INSN, consider it remote, too.
8420
8421 2007-04-05  Anatoly Sokolov <aesok@post.ru>
8422
8423         PR target/25448
8424         * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
8425         DECL_ASSEMBLER_NAME, not the DECL_NAME.
8426
8427 2007-04-05  H.J. Lu  <hongjiu.lu@intel.com>
8428
8429         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
8430         (CONDITIONAL_REGISTER_USAGE): Likewise.
8431
8432 2007-04-04  Richard Henderson  <rth@redhat.com>
8433
8434         * config/alpha/lib1funcs.asm: Remove unused file.
8435
8436 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
8437
8438         PR other/31356
8439         * opts.c (print_specific_help): Fix --help=<language>
8440         header line.
8441         (common_handle_option): Support --help=common.
8442
8443 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
8444
8445         PR other/31353
8446         * gcc.c (main): Do not run the linker if
8447         print_subprocess_help indicates that it shouldn't be
8448         run.
8449
8450 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
8451
8452         PR doc/31355
8453         * doc/invoke.texi (--help=): Document <languages> value, fix
8454         formatting in tables of values.
8455
8456 2007-04-04  Danny Smith  <dannysmith.users.sourceforge.net>
8457
8458         * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
8459         dllimport attribute of virtual methods.
8460
8461 2007-04-04  Chen Liqin  <liqin@sunnorth.com.cn>
8462
8463         * config/score/crti.asm: Change _bss_start to __bss_start.
8464         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
8465         (OUTGOING_REG_PARM_STACK_SPACE) update.
8466         * config/score/score.opt: add options to make backend support
8467         score5, score5u, score7 and score7d.
8468         * config/score/score.md: Likewise.
8469         * config/score/misc.md: Likewise.
8470         * config/score/mac.md: Likewise.
8471         * doc/invoke.texi: Likewise.
8472         * doc/md.texi: update constraints define.
8473
8474 2007-04-03  Richard Henderson  <rth@redhat.com>
8475
8476         * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
8477         an appropriate type, use the mode instead.
8478
8479 2007-04-03  Richard Sandiford  <richard@codesourcery.com>
8480
8481         * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
8482         Set the default --with-arch setting to mips2.
8483         * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
8484         (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
8485         (MULTILIB_OSDIRNAMES): Delete.
8486         (MULTILIB_DIRNAMES): Define.
8487         * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
8488         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
8489         (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
8490         definitions, except for _WRS_R3K_EXC_SUPPORT.  Call
8491         VXWORKS_OS_CPP_BUILTINS.
8492         (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
8493         (MIPS_DEBUGGING_INFO): Undefine.
8494         (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
8495
8496 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
8497
8498         PR middle-end/30704
8499         * fold-const.c (native_encode_real): Encode real.c provided longs
8500         as a series of 32-bit native integers.
8501         (native_interpret_real): Interpret buffer as a series of 32-bit
8502         native integers.
8503
8504 2007-04-03  Richard Guenther  <rguenther@suse.de>
8505
8506         * genpreds.c (write_insn_constraint_len): Write function
8507         optimized for CONSTRAINT_LEN implementation.
8508         (write_tm_preds_h): Output insn_constraint_len inline and
8509         use it for CONSTRAINT_LEN.
8510         (write_insn_preds_c): Don't output insn_constraint_len.
8511         * doc/md.texi (define_register_constraint): Document multi-letter
8512         constraints shall have the same length if they start with the same
8513         letter.
8514
8515 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
8516
8517         PR target/31175
8518         * config/i386/i386.md (isinf<mode>2): Expand only when
8519         TARGET_C99_FUNCTIONS is set.
8520
8521 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
8522
8523         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
8524         (x86_64-*-linux*): Ditto.
8525         * config/i386/i386.opt (mpc): New option.
8526         * config/i386/i386.c (overrride_options): Handle
8527         ix87_precision_string.
8528         * config/i386/crtprec.c: New file.
8529         * config/i386/t-crtpc: Ditto.
8530         * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
8531         and -mpc80 options.
8532         * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
8533         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
8534         crtprec32.o, crtprec64.o and crtprec80.o.
8535
8536         * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
8537         and -mpc80 options.
8538         (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
8539
8540 2007-04-02  Eric Christopher  <echristo@apple.com>
8541
8542         * doc/invoke.texi (i386 and x86-64 Options): Document -m64
8543         limitations on darwin.
8544
8545 2007-04-02  Anatoly Sokolov <aesok@post.ru>
8546
8547         PR target/31137
8548         * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
8549
8550 2007-04-02  Dave Korn  <dave.korn@artimi.com>
8551
8552         * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
8553
8554 2007-04-02  Dave Korn  <dave.korn@artimi.com>
8555
8556         * libgcc2.h (exception_descriptor): Don't forward-declare.
8557         (__get_eh_table_language, __get_eh_table_version): Delete
8558         prototypes of long-dead functions.
8559
8560 2007-04-01  Daniel Berlin  <dberlin@dberlin.org>
8561
8562         * ebitmap.h: New file
8563         * ebitmap.c: New file
8564         * Makefile.in (ebitmap.o): New target.
8565
8566 2007-04-01  Jan Hubicka  <jh@suse.cz>
8567
8568         * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
8569         before very first instruction.
8570
8571 2007-04-01  Jan Hubicka  <jh@suse.cz>
8572
8573         * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
8574         waring on 64bit hosts.
8575         * bitmap.h: Fix typo in bitmap_head_def.
8576
8577 2007-04-01  Steven Bosscher  <steven@gcc.gnu.org>
8578
8579         PR rtl-optimization/31391
8580         * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
8581         into a DELETED_LABEL note, and the label is in an empty basic
8582         block, update BB_END as well as BB_HEAD.
8583
8584 2007-04-01  Richard Henderson  <rth@redhat.com>
8585
8586         PR tree-optimization/31169
8587         * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
8588         to varying if the range is outside [0,  prec-1].
8589
8590 2007-04-01  Richard Sandiford  <richard@codesourcery.com>
8591
8592         PR target/31388
8593         * config/mips/mips.md (load_const_gp): New insn.
8594         * config/mips/mips.c (mips_split_symbol): Avoid using or creating
8595         the MIPS16 GP pseudo register if no_new_pseudos.
8596         (mips16_gp_pseudo_reg): Use gen_load_const_gp.
8597
8598 2007-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8599
8600         PR target/31364
8601         * config/rs6000/rs6000.md (call): Convert to LR hard reg for
8602         secureplt.
8603         (call_value): Likewise.
8604
8605 2007-03-31  Wolfgang Bangerth  <bangerth@dealii.org>
8606             Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8607
8608         PR 14737
8609         * doc/invoke.texi: (optimization options): Reword description
8610         of -ffast-math. Document its primary purpose.
8611
8612 2007-03-31  Richard Guenther  <rguenther@suse.de>
8613
8614         * omp-low.c (splay-tree.h): Include.
8615         (lookup_decl): Replace splay-tree usage by pointer-map.
8616         (maybe_lookup_decl): Likewise.
8617         (new_omp_context): Likewise.
8618         (delete_omp_context): Likewise.
8619         * gimplify.c (splay-tree.h): Include.
8620         * tree-inline.c (insert_decl_map): Replace splay-tree usage by
8621         pointer-map.
8622         (remap_ssa_name): Likewise.
8623         (remap_decl): Likewise.
8624         (remap_type_1): Likewise.
8625         (remap_type): Likewise.
8626         (copy_body_r): Likewise.
8627         (expand_call_inline): Likewise.
8628         (clone_body): Likewise.
8629         (copy_tree_r): Likewise.
8630         (remap_save_expr): Likewise.
8631         (unsave_r): Likewise.
8632         (unsave_expr_now): Likewise.
8633         (tree_function_versioning): Likewise.
8634         (build_duplicate_type): Likewise.
8635         * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
8636         (struct copy_body_data): Replace splay-tree by pointer-map.
8637         * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
8638         not $(SPLAY_TREE_H).
8639         (gimplify.o): Depend on $(SPLAY_TREE_H).
8640         (omp-low.p): Likewise.
8641
8642 2007-03-31  Anatoly Sokolov <aesok@post.ru>
8643
8644         * config/avr/predicates.md (even_register_operand,
8645         odd_register_operand): New predicates.
8646         * config/avr/avr.md (movw peephole2): New.
8647         (movw_r peephole2): New.
8648
8649 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
8650
8651         * tree.h (get_signed_or_unsigned_type): New.
8652         * fold-const.c (operand_equal_for_comparison_p): Use
8653         get_signed_or_unsigned_type instead of
8654         lang_hooks.types.signed_or_unsigned_type.
8655         * expr.c (store_expr): Ditto.
8656         * langhooks.c (get_signed_or_unsigned_type): New.
8657         (lhd_signed_or_unsigned_type): New.
8658         * langhooks.h (lhd_signed_or_unsigned_type): New.
8659         * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
8660
8661 2007-03-30  Richard Henderson  <rth@redhat.com>
8662
8663         * tree-ssa-loop-ivopts.c: Include target.h.
8664         (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
8665         (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
8666         (force_expr_to_var_cost): Use produce_memory_decl_rtl.
8667         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
8668
8669 2007-03-30  Richard Henderson  <rth@redhat.com>
8670             Kai Tietz  <kai.tietz@onevision.com>
8671
8672         * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
8673         default for 64-bit.
8674         (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
8675         (TARGET_64BIT_MS_ABI): New.
8676         (DBX_REGISTER_NUMBER): Handle 64-bit.
8677         (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
8678         (LONG_TYPE_SIZE): Force to 32.
8679         (REG_PARM_STACK_SPACE): New.
8680         (OUTGOING_REG_PARM_STACK_SPACE): New.
8681         (REGPARM_MAX, SSE_REGPARM_MAX): New.
8682         (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
8683         (STACK_BOUNDARY): Use 128 for 64-bit.
8684         * config/i386/cygwin.asm: Use push/ret to preserve call stack.
8685         Add 64-bit implementation.
8686         * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
8687         argument unused.
8688         * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
8689         (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
8690         Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
8691         for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
8692         (ix86_handle_cconv_attribute): Don't warn when ignoring if
8693         TARGET_64BIT_MS_ABI.
8694         (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
8695         (ix86_pass_by_reference): Likewise.
8696         (ix86_function_value_regno_p): Likewise.
8697         (ix86_build_builtin_va_list): Likewise.
8698         (ix86_va_start, ix86_gimplify_va_arg): Likewise.
8699         (function_arg_advance_ms_64): New.
8700         (function_arg_advance): Call it.
8701         (function_arg_ms_64): New.
8702         (function_arg): Call it.
8703         (function_value_ms_64): New.
8704         (ix86_function_value_1): Call it.
8705         (return_in_memory_ms_64): New.
8706         (ix86_return_in_memory): Call it.
8707         (setup_incoming_varargs_ms_64): New.
8708         (ix86_setup_incoming_varargs): Call it.
8709         (ix86_expand_prologue): Handle 64-bit stack probing.
8710         (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
8711         (output_pic_addr_const): Likewise.
8712         (x86_this_parameter): Likewise.
8713         (x86_output_mi_thunk): Likewise.
8714         (x86_function_profiler): Likewise.
8715         (TARGET_STRICT_ARGUMENT_NAMING): New.
8716         * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
8717         (TARGET_64BIT_MS_ABI): New.
8718         (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
8719         * config/i386/i386.md (allocate_stack_worker): Remove.
8720         (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
8721         describe the clobber of eax without a match_scratch.
8722         (allocate_stack_worker_postreload): Remove.
8723         (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
8724         describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
8725         (allocate_stack_worker_rex64_postreload): Remove.
8726         (allocate_stack): Handle 64-bit.
8727         * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
8728         * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
8729         (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
8730         (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
8731         (STANDARD_STARTFILE_PREFIX_1): Likewise.
8732         * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
8733         * config.build (x86_64-*-mingw*): New host.
8734         * config.host (x86_64-*-mingw*): New host.
8735         * config.gcc (x86_64-*-mingw*): New target.
8736         * gthr-win32.h (__gthread_key_create): Mark dtor unused.
8737
8738 2007-03-30  Richard Henderson  <rth@redhat.com>
8739             Kai Tietz  <kai.tietz@onevision.com>
8740
8741         * c-pragma.c (struct def_pragma_macro_value): New.
8742         (struct def_pragma_macro): New.
8743         (pushed_macro_table): New.
8744         (dpm_hash, dpm_eq): New.
8745         (handle_pragma_push_macro, handle_pragma_pop_macro): New.
8746         (init_pragma): Install them.
8747         * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
8748
8749 2007-03-30  Anatoly Sokolov <aesok@post.ru>
8750
8751         * config/avr/avr.c (avr_override_options): Clear
8752         'flag_delete_null_pointer_checks'.
8753
8754 2007-03-30  Paolo Carlini  <pcarlini@suse.de>
8755
8756         PR c++/26099
8757         * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
8758         RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
8759         RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
8760         RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
8761         RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
8762         RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
8763         RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
8764         C++ extensions.
8765         * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
8766
8767 2007-03-30  Steven Bosscher  <steven@gcc.gnu.org>
8768
8769         * regmove.c: Move all of pass_stack_adjustments from here...
8770         * combine-stack-adj.c: ...to this new file.
8771         * Makefile.in: Add rules for combine-stack-adj.o.
8772
8773 2007-03-30  Zdenek Dvorak  <dvorakz@suse.cz>
8774
8775         PR tree-optimization/31383
8776         * tree-data-ref.c (affine_function_equal_p): Do not require the
8777         vectors to have the same length.
8778
8779 2007-03-30  Jan Hubicka  <jh@suse.cz>
8780
8781         PR middle-end/30700
8782         * dwarf2out.c (reference_to_unused): Ask cgraph for functions
8783         availablility; add more sanity checking; ask varpool only about
8784         VAR_DECL.
8785
8786 2007-03-29  Richard Henderson  <rth@redhat.com>
8787
8788         * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
8789         to decide, but __SIZEOF_LONG_LONG__.
8790
8791 2007-03-29  Richard Henderson  <rth@redhat.com>
8792
8793         * emutls.c (struct __emutls_array): New.
8794         (emutls_destroy): Use it instead of casting element 0 from void*.
8795         (__emutls_get_address): Likewise.
8796
8797 2007-03-29  Richard Henderson  <rth@redhat.com>
8798
8799         * varasm.c (initializer_constant_valid_p): Don't deny
8800         DECL_DLLIMPORT_P on functions.
8801
8802         * config/i386/cygming.h: Remove function declarations.
8803         (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
8804         (ASM_OUTPUT_LABELREF): Remove.
8805         (COMMON_ASM_OP): Remove.
8806         (ASM_OUTPUT_COMMON): Remove.
8807         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
8808         (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
8809         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8810         * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
8811         Rename from TARGET_ENCODE_SECTION_INFO.
8812         * config/i386/netware.h: Likewise.
8813         * config/i386/i386-protos.h: Update.
8814         * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
8815         of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
8816         (legitimate_constant_p): Reject dllimports.
8817         (dllimport_map, get_dllimport_decl): New.
8818         (legitimize_dllimport_symbol): New.
8819         (legitimize_address, ix86_expand_move): Use it.
8820         (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
8821         * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
8822         (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
8823         (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
8824         * config/i386/predicates.md (constant_call_address_operand): Only
8825         accept symbols; reject dllimport_p symbols.
8826         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
8827         i386_pe_maybe_record_exported_symbol.
8828         * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
8829         (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
8830         (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
8831         trust the setting of DECL_DLLIMPORT_P.
8832         (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
8833         (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
8834         (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
8835         tidy the argument scanning loop.
8836         (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
8837         SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
8838         (i386_pe_strip_name_encoding): Remove.
8839         (i386_pe_binds_local_p): New.
8840         (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
8841         (i386_pe_output_labelref): Remove.
8842         (i386_pe_asm_output_aligned_decl_common): New.
8843         (i386_pe_maybe_record_exported_symbol): Rename from
8844         i386_pe_record_exported_symbol; check for dllexported symbols.
8845
8846 2007-03-29  Zack Weinberg  <zack@mrtock.ucsd.edu>
8847
8848         * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
8849         add comment explaining why vsnprintf cannot be used.
8850
8851 2007-03-29  Douglas Gregor  <doug.gregor@gmail.com>
8852
8853         PR tree-optimization/30666
8854         * tree.c (build_complex_type): When creating type names for DWARF2
8855         debug info, create TYPE_DECLs for TYPE_NAME instead of
8856         IDENTIFIER_NODEs.
8857         (build_common_tree_nodes_2): Use build_complex_type when building
8858         predefined complex types, to preserve canonical types.
8859
8860 2007-03-29  Steven Bosscher  <steven@gcc.gnu.org>
8861
8862         * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
8863         (noce_get_alt_condition): Look at it to determine whether to
8864         reverse the condition or not.
8865         (noce_get_condition): Substitute the truth for lies.
8866         (noce_find_if_block): Set the then_else_reversed field.
8867
8868 2007-03-29  Lars Poeschel <larsi@wh2.tu-dresden.de>
8869
8870         * config/fr30/fr30.md (movdi): Do not accept immediates as the
8871         destination of this insn.
8872         * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
8873         than calling gen_rtx_SET directly.  Use r0 to hold the value of
8874         'address + 4' rather than a stack based temporary which can be
8875         mis-optimized away.
8876
8877 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
8878
8879         * config/s390/s390.c (s390_secondary_input_reload_class,
8880         s390_secondary_output_reload_class): Functions removed.
8881         (s390_secondary_reload): New function.
8882         (TARGET_SECONDARY_RELOAD): Target macro defined.
8883         * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
8884         SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
8885         * config/s390/s390.md ("reload_outti", "reload_outdi",
8886         "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
8887         "reload_out<mode>"): Expanders removed.
8888         ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
8889         "reload<mode>_nonoffmem_out"): Expanders added.
8890
8891 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
8892
8893         * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair
8894         action if SRC->DEST replacement failed anyway.
8895
8896 2007-03-28  Mike Stump  <mrs@apple.com>
8897
8898         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
8899         * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
8900         * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
8901
8902 2007-03-28  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
8903
8904         * config.gcc: Accept barcelona as a variant of amdfam10.
8905         * config/i386/i386.c (override_options): Likewise.
8906         * doc/invoke.texi: Likewise.
8907
8908 2007-03-28  Eric Botcazou  <ebotcazou@adacore.com>
8909
8910         * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
8911         offsets for BIT_FIELD_REF and COMPONENT_REF.
8912
8913 2007-03-28  Richard Guenther  <rguenther@suse.de>
8914
8915         * tree.c (is_global_var): Move ...
8916         * tree-flow-inline.h (is_global_var): ... here.
8917         * tree.h (is_global_var): Remove declaration.
8918
8919 2007-03-28  Uros Bizjak  <ubizjak@gmail.com>
8920
8921         * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
8922         option.
8923         (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
8924         * config/i386/i386.c (ix86_tune_features): Initialize new
8925         tuning option.
8926         * config/i386/predicates.md (promotable_binary_operator): Use
8927         TARGET_TUNE_PROMOTE_HIMODE_IMUL.
8928
8929 2007-03-28  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
8930
8931         PR target/31380
8932         * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
8933
8934 2007-03-28  Lars Poeschel <larsi@wh2.tu-dresden.de>
8935
8936         * config/fr30/fr30.md (movsi_internal): Change destination
8937         constraint from m to V and add m to the end.
8938
8939 2007-03-28  Christian Bruel  <christian.bruel@st.com>
8940
8941         * config/sh/sh.md (movsi_i): Fix type attribute.
8942
8943 2007-03-28  Christian Bruel  <christian.bruel@st.com>
8944
8945         * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
8946         (movsf_ie): Likewise.
8947
8948 2007-03-28  Christian Bruel  <christian.bruel@st.com>
8949
8950         * config.gcc: Add sh4-300 to multilib.
8951         * config/sh/t-mlib-sh4-300: New file.
8952
8953 2007-03-28  Andreas Krebbel  <krebbel1@de.ibm.com>
8954
8955         * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
8956         ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
8957         fix_trunc<mode>di2.
8958         ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
8959         fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
8960         ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
8961         "fixuns_trunctddi2"): Whitespace fix.
8962
8963 2007-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
8964
8965         * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
8966         the definition of struct sh_args.
8967         (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
8968         CALL_COOKIE_INT_REG_GET): Likewise.
8969
8970 2007-03-28  Steven Bosscher  <steven@gcc.gnu.org>
8971
8972         * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
8973         transformations are applied successfully.
8974
8975 2007-03-27  Douglas Gregor  <doug.gregor@gmail.com>
8976
8977         * tree.c (tree_contains_struct): Permit 512 tree codes.
8978         * tree.h (tree_contains_struct): Ditto.
8979         (MAX_TREE_CODES): Ditto.
8980         (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
8981         SPARE member to store remaining padding bits.
8982
8983 2007-03-27  Anatoly Sokolov <aesok@post.ru>
8984
8985         * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
8986         architecture.
8987
8988 2007-03-27  Janis Johnson  <janis187@us.ibm.com>
8989
8990         * configure.ac: Fix assembler test for powerpc*-linux decimal float.
8991         * configure: Regenerate.
8992
8993         * configure: Regenerate using the correct version of autoconf.
8994
8995 2007-03-27  Anatoly Sokolov  <aesok@post.ru>
8996
8997         * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
8998         pointer regs.
8999         * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
9000         regs to "__SP_L__" and "__SP_H__".
9001
9002 2007-03-27  Richard Guenther  <rguenther@suse.de>
9003
9004         * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
9005         computations with it with a HOST_WIDE_INT variable.
9006
9007 2007-03-26  Mike Stump  <mrs@apple.com>
9008
9009         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
9010         objective-c-header, objective-c++-header and objc++-cpp-output
9011         support.
9012         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
9013
9014 2007-03-26  Richard Henderson  <rth@redhat.com>
9015
9016         PR target/31361
9017         * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
9018         IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
9019         IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
9020         IX86_BUILTIN_PSRLQ128): New.
9021         (ix86_init_mmx_sse_builtins): Add them.
9022         (ix86_expand_builtin): Expand them.
9023         * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
9024         operand 2 be TImode.
9025         * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
9026         _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
9027         _mm_srli_epi64): Mark __B const.
9028         (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
9029         (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
9030         _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
9031         new two-vector shift builtins.
9032
9033 2007-03-26  Ian Lance Taylor  <iant@google.com>
9034
9035         PR tree-optimization/31345
9036         * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
9037         [+INF, +INF(OVF)] into VARYING.
9038
9039 2007-03-26  Zack Weinberg  <zackw@panix.com>
9040
9041         * gengtype-parse.c: New file.
9042         * gengtype-yacc.y: Delete.
9043         * gengtype-lex.l: Don't include gengtype-yacc.h.
9044         Define YY_DECL and yyterminate appropriately for recursive
9045         descent parser.  yylval is now a string out-parameter to yylex.
9046         (HWS, EOID): New shorthand.
9047         (IWORD): Add a couple more types.
9048         (yylex): Add a setup stanza.  Remove the complex rules for
9049         detecting GTY'ed types and typedefs; replace with simple
9050         keyword detectors.  Adjust everything for the changed
9051         definition of yylval.  Ignore all pp-directives, not just #define.
9052         (yyerror): Delete.
9053         (parse_file): Rename yybegin; do not call yyparse.
9054         (yyend): New.
9055         * gengtype.c (xasprintf): Export again.
9056         (this_file): New.  Use everywhere __FILE__ was being used.
9057         (get_lang_bitmap): Special case types defined in gengtype.c.
9058         (do_typedef, new_structure): Suppress definition of certain types.
9059         (new_structure): Improve diagnostics of duplicate definitions.
9060         Make sure location_s is associated with input.h.
9061         (nreverse_pairs, define_location_structures): New functions.
9062         (main): Improve tagging of kludge types.  Remove old kludges
9063         for input.h types; use define_location_structures.
9064         * gengtype.h: Update prototypes.  Define token codes here.
9065         * Makefile.in: Remove all references to gengtype-yacc.
9066         Add rules for gengtype-parse.o.  Adjust rules for gengtype-lex.o
9067         and gengtype.
9068         * bitmap.h (struct bitmap_head_def): Coalesce definitions,
9069         add GTY((skip)) to the field that's only conditionally there.
9070         * doc/install.texi: Document that Bison is no longer required
9071         unless building treelang.
9072
9073         * gengtype.c: Don't include gtyp-gen.h.
9074         (srcdir): Declare here.
9075         (base_files, lang_dir_names): Allocate dynamically.
9076         (gt_files, num_gt_files, num_lang_dirs): New globals.
9077         (measure_input_list, read_input_line, read_input_list)
9078         (set_lang_bitmap): New functions.
9079         (get_base_file_bitmap): Rename get_lang_bitmap and drastically
9080         simplify, relying on read_input_list to set up the bitmaps.
9081         (main): Arguments are no longer unused.  Check for correct number
9082         of command line arguments, set srcdir and srcdir_len, then call
9083         read_input_list, before doing anything else.  No need to worry
9084         about duplicates in main loop.
9085         * configure.ac: Simplify the calculation of all_gtfiles.
9086         Put language tags in there.  Don't set or substitute
9087         all_gtfiles_files_langs or all_gtfiles_files_frags.
9088         * Makefile.in: Revamp the way gengtype is invoked, now that it
9089         takes a file on its command line with a much simpler format.
9090         Remove or replace with gtyp-input.list all references to gtyp-gen.h.
9091         (GTFILES): Remove duplicates and C source files.
9092         * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
9093         * objcp/config-lang.in: Add c-pragma.h to gtfiles.
9094         * configure: Regenerate.
9095
9096         * gengtype.h: Remove all type definitions to gengtype.c; leave
9097         only definitions of options_p, type_p, and pair_p as opaque
9098         pointers.  Update prototypes.
9099         * gengtype.c: Many type definitions moved here from gengtype.h.
9100         Consolidate type definitions at the top of the file.
9101         (xvasprintf): Delete.
9102         (xasprintf): Make static.
9103         (create_nested_pointer_option): Add 'next' parameter.
9104         (create_field_all, create_field_at): New functions.
9105         (create_field): Now a thin wrapper around create_field_all.
9106         (create_optional_field): Rename create_optional_field_ and add
9107         line argument.  Original name is now a macro which supplies
9108         __LINE__.
9109         (oprintf): Use vsnprintf directly.
9110         (close_output_files): Use fatal rather than perror/exit.
9111         (note_def_vec, note_def_vec_alloc): Use create_field_at.
9112         (main): Set progname.  Don't use exit.
9113         * gengtype-yacc.y (struct_fields): Use create_field_at.
9114         (option, optionseqopt): Delete.
9115         (optionseq): Consolidate productions from option here so we
9116         can use the first argument to create_option.
9117
9118         * gengtype-lex.l: Distinguish unions from structures in the
9119         token type.  Don't call find_structure; return the tag as a string.
9120         * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and
9121         ENT_UNION.  Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is
9122         string.  Reorganize typedef_struct production accordingly.
9123         Use create_nested_ptr_option.
9124         * gengtype.c (create_nested_ptr_option): New function.
9125         * gengtype.h: Declare it.
9126
9127         * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
9128         (string_type): Don't declare.
9129         (do_scalar_typedef): Declare.
9130         (create_scalar_type): Update prototype.
9131         * gengtype.c (string_type): Make static.
9132         (scalar_nonchar, scalar_char): New.
9133         (do_scalar_typedef): Export.  Always use scalar_nonchar for the type.
9134         (resolve_typedef): Use scalar_nonchar for error recovery.
9135         (create_scalar_type): Remove name_len field.  Return scalar_char
9136         or scalar_nonchar as appropriate.
9137         (adjust_field_type): Look at scalar_is_char boolean to decide whether
9138         to use string_type.
9139         (throughout): Use scalar_nonchar instead of calling
9140         create_scalar_type, whenever possible.
9141         (main): Initialize scalar_char and scalar_nonchar before calling
9142         gen_rtx_next.
9143         * gengtype-lex.l: Adjust for removal of second argument to
9144         create_scalar_type.  Use yylval.s instead of yylval.t when
9145         returning SCALAR.
9146         * gengtype-yacc.y: Type of SCALAR is string.  Call
9147         create_scalar_type from type:SCALAR rule.  Adjust for removal of
9148         second argument to create_scalar_type.
9149
9150         * vec.h: Remove all #if IN_GENGTYPE blocks.
9151         Add comment saying that changes may require adjustments to gengtype.
9152         * gengtype.c: Don't include coretypes.h or tm.h.
9153         Add comment to inclusion of errors.h.
9154         (note_def_vec, note_def_vec_alloc): New functions.
9155         * gengtype.h: Declare new functions.
9156         * gengtype-lex.l: Don't include coretypes.h.
9157         (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
9158         Delete.
9159         (update_lineno): Remove unnecessary prototype.
9160         (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
9161         (VEC rule): Just return VEC_TOKEN.
9162         * gengtype-yacc.y (VEC_TOKEN): New token type.
9163         (type): Add a production for VEC(a,b).
9164         * Makefile.in: Update dependencies.
9165
9166         * gengtype-lex.l: Remove rules for parsing pointer-to-function
9167         typedefs that use the old PARAMS macro.
9168
9169         * gengtype-lex.l: Remove all rules and states relating to yacc
9170         input files.
9171         * gengtype-yacc.y: Similarly.
9172         * gengtype.c (note_yacc_type): Delete function.
9173         * gengtype.h: Update prototypes.
9174
9175 2007-03-26  Joseph Myers  <joseph@codesourcery.com>
9176
9177         * tree-pretty-print.c (dump_generic_node): Report precision of
9178         unnamed integer types.
9179
9180 2007-03-26  Steven Bosscher  <steven@gcc.gnu.org>
9181
9182         * ifcvt.c (noce_try_store_flag_constants): Don't check
9183         no_new_pseudos here.
9184         (noce_try_store_flag_constants): Don't check no_new_pseudos.
9185         (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
9186         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
9187         noce_try_sign_mask): Likewise.
9188         (if_convert): Check no_new_pseudos here.
9189
9190         (cond_exec_process_if_block, noce_process_if_block, find_if_block):
9191         Remove prototypes.
9192         (struct noce_if_info): Add then_bb, else_bb, join_bb members.
9193         (noce_get_condition): Handle new then_else_reversed argument.
9194         (noce_init_if_info): Remove, fold into noce_find_if_block.
9195         (noce_process_if_block): Take a struct noce_if_info as the
9196         argument.  Don't set up one based on ce_if_info.  Update pointer
9197         references accordingly.
9198         (cond_move_process_if_block): Likewise.
9199         (process_if_block): Removed.
9200         (find_if_block): Removed.  Move functionality two new functions,
9201         noce_find_if_block and cond_exec_find_if_block.
9202         (noce_find_if_block): New function.  Be aware of IF-THEN-JOIN
9203         blocks and the symmetric IF-ELSE-JOIN case.
9204         (cond_exec_find_if_block): Also new function mostly based on old
9205         find_if_block and process_if_block.
9206         (find_if_header): Replace find_if_block call with separately
9207         guarded calls to noce_find_if_block and cond_exec_find_if_block.
9208         (find_cond_trap): Update noce_get_condition call.
9209         (dead_or_predicable): Likewise.
9210
9211 2007-03-26  Jakub Jelinek  <jakub@redhat.com>
9212
9213         * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
9214         Remove.
9215         (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
9216         IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
9217         IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
9218         (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
9219         v4si_ftype_v4si_v2di.  Remove __builtin_ia32_psllw128,
9220         __builtin_ia32_pslld128, __builtin_ia32_psllq128,
9221         __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
9222         __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
9223         __builtin_ia32_psrad128 builtins.
9224
9225 2007-03-26  Uros Bizjak  <ubizjak@gmail.com>
9226
9227         * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
9228         * config/i386/constraints.md
9229         (define_constraint "I"): Use IN_RANGE macro.
9230         (define_constraint "J"): Ditto.
9231         (define_constraint "K"): Ditto.
9232         (define_constraint "M"): Ditto.
9233         (define_constraint "N"): Ditto.
9234         (define_constraint "O"): Ditto.
9235         * config/i386/predicates.md
9236         (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
9237         (define_predicate "const_0_to_3_operand"): Ditto.
9238         (define_predicate "const_0_to_7_operand"): Ditto.
9239         (define_predicate "const_0_to_15_operand"): Ditto.
9240         (define_predicate "const_0_to_63_operand"): Ditto.
9241         (define_predicate "const_0_to_255_operand"): Ditto.
9242         (define_predicate "const_1_to_31_operand"): Ditto.
9243         (define_predicate "const_2_to_3_operand"): Ditto.
9244         (define_predicate "const_4_to_7_operand"): Ditto.
9245
9246 2007-03-25  David Edelsohn  <edelsohn@gnu.org>
9247
9248         * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
9249         in SImode for save_world.
9250         * config/rs6000/altivec.md (save_world, restore_world): Convert to
9251         LR hard reg.
9252
9253 2007-03-25  Dorit Nuzman  <dorit@il.ibm.com>
9254
9255         PR tree-optimization/30784
9256         * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
9257         BIT_FIELD_REF.
9258
9259 2007-03-25  Revital Eres  <eres@il.ibm.com>
9260
9261         * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
9262           Fold movement_possibility function into it.
9263
9264 2007-03-25  David Edelsohn  <edelsohn@gnu.org>
9265
9266         * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
9267         (load_macho_picbase_{si,di}): Convert to LR hard reg.
9268         (call_indirect_nonlocal_darwin64): Same.
9269         (call_nonlocal_darwin64): Same.
9270         (call_value_indirect_nonlocal_darwin64): Same.
9271         (call_value_nonlocal_darwin64): Same.
9272         (sibcall_nonlocal_darwin64): Same.
9273         (sibcall_value_nonlocal_darwin64): Same.
9274         (sibcall_symbolic_64): Same.
9275         (sibcall_value_symbolic_64): Same.
9276         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
9277         LR pseudo.
9278         (rs6000_emit_load_toc_table): Same.
9279         * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
9280         * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
9281         (mull_call): Same.
9282         (divss_call): Same.
9283         (divus_call): Same.
9284         (quoss_call): Same.
9285         (quous_call): Same.
9286         (load_toc_v4_pic_si): Same
9287         (load_toc_v4_PIC_1): Same.
9288         (load_toc_v4_PIC_1b): Same.
9289         (call_indirect_aix{32,64}): Same.
9290         (call_value_indirect_aix{32,64}): Same.
9291         (call): Same.
9292         (call_value): Same.
9293         (call_local{32,64}): Same.
9294         (call_value_local{32,64}): Same.
9295         (call_indirect_nonlocal_aix{32,64}): Same.
9296         (call_nonlocal_aix{32,64}): Same.
9297         (call_value_indirect_nonlocal_aix{32,64}): Same.
9298         (call_value_nonlocal_aix{32,64}): Same.
9299         (call_indirect_nonlocal_sysv<mode>): Same.
9300         (call_nonlocal_sysv<mode>): Same.
9301         (call_value_indirect_nonlocal_sysv<mode>): Same.
9302         (call_value_nonlocal_sysv<mode>): Same.
9303         (sibcall): Same.
9304         (sibcall_local{32,64}): Same.
9305         (sibcall_value_local{32,64}): Same.
9306         (sibcall_nonlocal_aix{32,64}): Same.
9307         (sibcall_value_nonlocal_aix{32,64}): Same.
9308         (sibcall_nonlocal_sysv<mode>): Same.
9309         (sibcall_value): Same.
9310         (sibcall_value_nonlocal_sysv<mode>): Same.
9311
9312 2007-03-24  Paul Brook  <paul@codesourcery.com>
9313
9314         * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
9315         * config/arm/linux-eabi.h: Remove legacy syscall hack.
9316
9317 2007-03-24  Richard Henderson  <rth@redhat.com>
9318
9319         * config/ia64/constraints.md: New file.
9320         * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
9321         satisfies_constraint_?.
9322         * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
9323         ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
9324         ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
9325         ia64_output_mi_thunk): Likewise.
9326         (ia64_const_ok_for_letter_p): Remove.
9327         (ia64_const_double_ok_for_letter_p): Remove.
9328         (ia64_extra_constraint): Remove.
9329         * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
9330         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
9331         CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
9332         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
9333         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
9334         EXTRA_MEMORY_CONSTRAINT): Remove.
9335         * config/ia64/ia64.md: Include constriants.md.  Replace
9336         CONST_OK_FOR_? with satisfies_constraint_?.
9337
9338 2007-03-23  Michael Meissner  <michael.meissner@amd.com>
9339             H.J. Lu  <hongjiu.lu@intel.com>
9340
9341         * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
9342         DPD or BID name.
9343         (name macros): Use DPD_BID_NAME to convert names properly.
9344
9345         * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
9346         decimal floating point format.
9347         (init_floating_libfuncs): Change decimal functions so that they
9348         have a "bid_" prefix if the decimal system uses the BID format,
9349         and "dpd_" prefix if the decimal system uses the DPD format.
9350         (init_interclass_conv_libfuncs): Ditto.
9351         (init_intraclass_conv_libfuncs): Ditto.
9352
9353         * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
9354         using the BID format.
9355
9356         * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
9357         whether we are using the BID decimal format.
9358         * configure: Regenerate.
9359
9360         * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
9361         the compiler has decimal floating point enabled.  Define
9362         __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
9363         instead of DPD.
9364
9365         * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
9366         using the BID format.
9367
9368         * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
9369         whether we are using the BID decimal format.
9370         * configure: Regenerate.
9371
9372         * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
9373         the compiler has decimal floating point enabled.  Define
9374         __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
9375         instead of DPD.
9376
9377         * doc/install.texi (--enable-decimal-float): Document BID and DPD
9378         options, and that it is enabled for i386/x86_64 systems.
9379
9380         * Makefile.in (enable_decimal_float): New.
9381         (DECNUMFMT): New.
9382         (DECNUMINC): Add  -I$(DECNUMFMT).
9383         (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
9384         to $(DECNUMFMT) from $(DECNUM).
9385
9386         * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
9387         Substitute enable_decimal_float.
9388         * configure: Regenerated.
9389
9390         PR other/30529
9391         * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
9392         unsigned long.
9393
9394         * configure.ac: Enable decimal float for x86_64-*-linux*.
9395         * configure: Regenerated.
9396
9397         PR other/30530
9398         * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
9399         decimal128ClearSign to flip and clear the sign bit in decimal128.
9400         (decimal_real_maxval): Set decimal128SetSign to set the sign
9401         bit in decimal128.
9402
9403 2007-03-23  Ian Lance Taylor  <iant@google.com>
9404
9405         * fold-const.c (fold_binary): Correct warning for X - c >= X.
9406
9407 2007-03-23  Ian Lance Taylor  <iant@google.com>
9408
9409         * tree-dump.c (dump_files): Correct comment.
9410
9411 2007-03-23  Ian Lance Taylor  <iant@google.com>
9412
9413         * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
9414
9415 2007-03-23  Steven Bosscher  <steven@gcc.gnu.org>
9416
9417         * tracer.c (tracer): Don't take FLAGS argument.  Assert we are
9418         in cfglayout mode.  Don't go into and out of cfglayout mode.
9419         Link the blocks in the order of the constructed traces.
9420         (rest_of_handle_tracer): Adjust call to tracer.
9421         * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
9422         Don't go into cfglayout mode.
9423         (rtl_loop_done): Don't go out of cfglayout mode.
9424         * cfglayout.c (relink_block_chain): New function, split out from...
9425         (fixup_reorder_chain): ...here.  Remove redundant checking.
9426         (cfg_layout_finalize): Don't clear the header, footer, and aux
9427         fields here, move the code to do so to relink_block_chain.  Likewise
9428         for free_original_copy_tables.
9429         * rtl.h (tracer): Update prototype.
9430         * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
9431         Assert we are in cfglayout mode.  Don't go into and out of cfglayout
9432         mode.  Use relink_block_chain to serialize the CFG according to the
9433         new basic block order.  Move targetm.cannot_modify_jumps_p check from
9434         here...
9435         (gate_handle_reorder_blocks): ...to here.
9436         (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
9437         from here...
9438         (gate_duplicate_computed_gotos): ...to here.
9439         (rest_of_handle_reorder_blocks): Don't see if anything has changed,
9440         something always changes when going into and out of cfglayout mode.
9441         Perform an expensive cfg cleanup while going into cfglayout mode.
9442         Always update liveness information on HAVE_conditional_execution
9443         targets.  Reserialize the basic blocks and go out of cfglayout mode.
9444         * reg-stack.c: Include cfglayout.h.
9445         (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
9446         the call to reorder_basic_blocks.
9447         * basic-block.h (reorder_basic_blocks): Update prototype.
9448         (relink_block_chain): New prototype.
9449         * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
9450
9451 2007-03-23  Joseph Myers  <joseph@codesourcery.com>
9452
9453         * config/mips/mips.md (type, hazard, *movdi_32bit,
9454         *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
9455         *movhi_internal, *movqi_internal, *movsf_hardfloat,
9456         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
9457         movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
9458         mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
9459         applicable.
9460         (movcc): Change first xfer to multi.
9461         * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
9462         config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
9463         config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
9464         config/mips/generic.md: Change reservations using "xfer" to use
9465         "mfc,mtc".
9466         * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
9467         using match_operand.
9468         (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
9469         * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
9470         examining mode.
9471         (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
9472
9473 2007-03-22  Richard Henderson  <rth@redhat.com>
9474
9475         * config/i386/i386.c: Remove unnecessary function declarations.
9476         Move targetm definition, and all related macros, to the end of
9477         the file.  Resort some functions to put definitions before uses.
9478         (ix86_attribute_table): Make static.  Move to end of file.
9479         (ix86_gimplify_va_arg): Make static.
9480
9481 2007-03-22  Richard Henderson  <rth@redhat.com>
9482
9483         * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
9484         don't increase local_regparm with force_align_arg_pointer check.
9485         (ix86_function_sseregparm): Assert 32-bit.
9486         (type_has_variadic_args_p): New.
9487         (ix86_return_pops_args): Early exit for 64-bit.  Reindent; use
9488         type_has_variadic_args_p.
9489         (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
9490         (init_cumulative_args): Remove TARGET_DEBUG_ARG.  Remove zero_cum;
9491         use memset instead.  Do maybe_vaarg check first; skip attribute
9492         tests if true; skip attribute tests for 64-bit.
9493         (construct_container): Remove TARGET_DEBUG_ARG.
9494         (function_arg_advance_32, function_arg_advance_64): Split out ...
9495         (function_arg_advance): ... from here.
9496         (function_arg_32, function_arg_64): Split out ...
9497         (function_arg): ... from here.
9498         (ix86_pass_by_reference): Tidy.
9499         (ix86_function_value_regno_p): Rearrange w/ switch on regno.
9500         (function_value_32): New, from parts of ix86_function_value
9501         and ix86_value_regno.
9502         (function_value_64): New, from parts of ix86_function_value
9503         and ix86_libcall_value.
9504         (ix86_function_value_1): New.
9505         (ix86_function_value, ix86_libcall_value): Use it.
9506         (return_in_memory_32, return_in_memory_64): Split out ...
9507         (ix86_return_in_memory): ... from here.
9508         (ix86_struct_value_rtx): Skip for 64-bit.
9509         (ix86_libcall_value, ix86_value_regno): Remove.
9510         (setup_incoming_varargs_64): Split out ...
9511         (ix86_setup_incoming_varargs): ... from here.
9512         (ix86_va_start): Remove TARGET_DEBUG_ARG.
9513         (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
9514         * config/i386/i386-protos.h (ix86_function_value): Remove.
9515         * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
9516
9517 2007-03-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9518
9519         PR other/23572
9520         * c-lex.c (interpret_float): On overflow, emit pedantic warning if
9521         infinities not supported, otherwise emit warning if -Woverflow. On
9522         underflow, emit warning if -Woverflow.
9523         * real.c (real_from_string): Return -1 if underflow, +1 if overflow
9524         and 0 otherwise.
9525         * real.h (real_from_string): Update declaration
9526
9527 2007-03-22  Kai Tietz  <kai.tietz@onevision.com>
9528             Richard Henderson  <rth@redhat.com>
9529
9530         * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
9531         * calls.c (compute_argument_block_size, expand_call,
9532         emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
9533         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
9534         * function.c (STACK_DYNAMIC_OFFSET): Likewise.
9535         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
9536         * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
9537         config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
9538         config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
9539         config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
9540         Set to 1.
9541
9542 2007-03-22  Joseph Myers  <joseph@codesourcery.com>
9543
9544         * c-incpath.c (add_sysroot_to_chain): New.
9545         (merge_include_chains): Add sysroot argument.  Call
9546         add_sysroot_to_chain if sysrooted.
9547         (register_include_chains): Update call to merge_include_chains.
9548         * doc/cppopts.texi: Document use of '=' in include directory
9549         arguments.
9550
9551 2007-03-22  Uros Bizjak  <ubizjak@gmail.com>
9552
9553         * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
9554         Macroize expander using SSEMODEF mode macro.  Use SSE_FLOAT_MODE_P.
9555         (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
9556         insn pattern using X87MODEF12 mode macro.
9557
9558 2007-03-21  Seongbae Park <seongbae.park@gmail.com>
9559
9560         * regmove.c (regmove_optimize): Use reg_mentioned_p
9561         instead of reg_overlap_mentioned_p for DST.
9562
9563 2007-03-21  Mike Stump  <mrs@apple.com>
9564
9565         * c.opt: Fixup for Objective-C/C++.
9566
9567 2007-03-21  Steve Ellcey  <sje@cup.hp.com>
9568
9569         * explow.c (convert_memory_address): Fold memory reference when
9570         POINTERS_EXTEND_UNSIGNED < 0
9571
9572 2007-03-21  Richard Henderson  <rth@redhat.com>
9573
9574         PR target/31245
9575         * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
9576         * config/i386/mmintrin.h (__m64): Likewise.
9577         * config/i386/xmmintrin.h (__m128): Likewise.
9578
9579 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
9580
9581         * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
9582         (VXWORKS_OS_CPP_BUILTINS): Define.
9583         * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
9584         (TARGET_OS_CPP_BUILTINS): ...here.  Use VXWORKS_OS_CPP_BUILTINS.
9585
9586 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
9587
9588         * rtl.h (constant_pool_reference_p): Delete.
9589         (find_constant_src): Declare.
9590         * rtlanal.c (find_constant_src): New function.
9591         * simplify-rtx.c (constant_pool_reference_p): Delete.
9592         * config/i386/i386.md: Use find_constant_src instead of
9593         constant_pool_reference_p/avoid_constant_pool_reference pairs.
9594
9595 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
9596
9597         * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
9598         * c-cppbuiltin.c (c_cpp_builtins): Define them.
9599
9600 2007-03-20  Mark Mitchell  <mark@codesourcery.com>
9601
9602         * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
9603         * config/arm/arm.c (arm_elf_asm_cdtor): New function.
9604         (arm_elf_asm_constructor): Use it.
9605         (arm_elf_asm_destructor): New function.
9606
9607 2007-03-20  Bernd Schmidt  <bernd.schmidt@analog.com>
9608
9609         * jump.c (mark_jump_label): Treat SEQUENCE specially.
9610
9611 2007-03-20  Nathan Sidwell  <nathan@codesourcery.com>
9612
9613         * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
9614
9615 2007-03-19  Andrew Haley  <aph@redhat.com>
9616
9617         PR tree-optimization/31264
9618         * tree-vrp.c (register_edge_assert_for_1): Don't look though
9619         VIEW_CONVERT_EXPRs.
9620
9621 2007-03-19  Paolo Bonzini  <bonzini@gnu.org>
9622
9623         PR rtl-optimization/30907
9624         * fwprop.c (forward_propagate_into): Never propagate inside a loop.
9625         (fwprop_init): Always call loop_optimizer_initialize.
9626         (fwprop_done): Always call loop_optimizer_finalize.
9627         (fwprop): We always have loop info now.
9628         (gate_fwprop_addr): Remove.
9629         (pass_fwprop_addr): Use gate_fwprop as gate.
9630
9631         PR rtl-optimization/30841
9632         * df-problems.c (df_ru_local_compute, df_rd_local_compute,
9633         df_chain_alloc): Call df_reorganize_refs unconditionally.
9634         * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
9635         refs_organized to refs_organized_size.
9636         (df_ref_create_structure): Use refs_organized_size instead of
9637         bitmap_size if refs had been organized, and keep refs_organized_size
9638         up-to-date.
9639         * df.h (struct df_ref_info): Change refs_organized to
9640         refs_organized_size.
9641         (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
9642         bitmap_size.
9643
9644 2007-03-19  Mark Mitchell  <mark@codesourcery.com>
9645
9646         * except.c (output_function_exception_table): Do not reference the
9647         EH personality routine for functions that do not require an
9648         exception table.
9649
9650 2007-03-20  Jakub Jelinek  <jakub@redhat.com>
9651
9652         PR c/30762
9653         * c-typeck.c (convert_for_assignment): Call comptypes for
9654         RECORD_TYPE or UNION_TYPE.
9655
9656         PR inline-asm/30505
9657         * reload1.c (reload): Do invalid ASM checking after
9658         cleanup_subreg_operands.
9659
9660 2007-03-19  Jeff Law  <law@redhat.com>
9661
9662         * tree-cfg.c (find_taken_edge): Tighten conditions for
9663         optimizing computed gotos.
9664
9665 2007-03-19  Michael Matz  <matz@suse.de>
9666
9667         * builtins.c (expand_builtin_sync_operation,
9668         expand_builtin_compare_and_swap,
9669         expand_builtin_lock_test_and_set): Care for extending CONST_INTs
9670         correctly.
9671
9672         * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
9673         sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
9674         for operand 3.
9675
9676 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
9677
9678         * doc/tm.texi: Add brackets around the return type of
9679         TARGET_SECONDARY_RELOAD.
9680
9681 2007-03-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9682         Richard Guenther  <rguenther@suse.de>
9683
9684         PR tree-optimization/31254
9685         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
9686         Use handled_component_p () where appropriate.  Continue
9687         propagating into the rhs if we propagated into an INDIRECT_REF
9688         on the lhs.
9689
9690 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
9691
9692         * config/s390/s390.md (op_type attribute): RRR instruction type added.
9693         (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
9694         (xde, xdee): Mode attributes adjusted to support DFP modes.
9695         (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
9696         ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
9697         DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
9698         "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
9699         "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
9700         "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
9701         "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
9702         numbers.
9703         ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
9704         "movsf"): Insn definitions removed.
9705         ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
9706         "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
9707         "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
9708         definitions added.
9709         ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
9710         "reload_in<mode>", "reload_out<mode>"): Expander added.
9711         ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
9712         Expander removed.
9713
9714 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
9715
9716         * config/s390/s390.md: Only non-functional changes.  Renamed
9717         FPR mode macro to BFP all over the file.
9718
9719 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
9720
9721         * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
9722         (op_type attribute): RRF instruction type added.
9723         (fT0): New mode attribute.
9724         ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
9725         "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
9726         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new
9727         instruction no secondary memory is needed when moving DFmode values
9728         between GPRs and FPRs.
9729
9730 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
9731
9732         * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
9733         inverted and documentation adjusted.
9734         ("mhard-dfp", "msoft-dfp"): New options.
9735         * config/s390/s390.c (s390_handle_arch_option): New architecture
9736         switch: z9-ec.
9737         (override_options): Sanity checks for the new options added.
9738         * config.gcc: New architecture switch: z9-ec.
9739         * config/s390/s390.h (processor_flags): PF_DFP added.
9740         (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
9741         (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
9742         when the bit is NOT set so remove it from the defaults.
9743
9744 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
9745
9746         * genemit.c (main): Print include statement for dfp.h.
9747         * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
9748         is not available.
9749
9750 2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
9751
9752         * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
9753
9754 2007-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
9755
9756         PR target/31022
9757         * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
9758         instead of PATTERN.
9759
9760 2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9761
9762         * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
9763         attr_length_call, output_call, output_indirect_call): Cleanup
9764         formatting of targetm calls.
9765
9766 2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
9767
9768         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
9769
9770 2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9771
9772         * pa.md: Add fpstore_load and store_fpload instruction types.  Provide
9773         reservation, bypass and anti-bypass descriptions for these
9774         instructions.  Update move patterns.
9775         * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
9776         TYPE_FPSTORE.
9777
9778 2007-03-18  Dorit Nuzman  <dorit@il.ibm.com>
9779
9780         * tree-vect-transform.c (get_initial_def_for_induction): Replace
9781         GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
9782         (get_initial_def_for_reduction): Likewise.
9783
9784 2007-03-16  Daniel Berlin  <dberlin@dberlin.org>
9785
9786         Fix PR tree-optimization/29922
9787         * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
9788         (get_representative): Removed.
9789         (value_dies_in_block_x): Update for rvuse removal.
9790         (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
9791         (compute_antic_aux): Handle when PHI nodes appear in
9792         non-single-successors.
9793         (dump_bitmap_of_names): Removed.
9794         (compute_antic_safe): Renamed and removed rvuse calculation.
9795         Calculate only antic safe.
9796         (insert_into_preds_of_block): Remove assert.
9797         (execute_pre): Update for renamed functions.
9798         (defer_or_phi_translate_block): New function.
9799
9800 2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
9801
9802         * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
9803         config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
9804         typos.
9805         * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
9806         Follow spelling conventions.
9807
9808         * tree-data-ref.h: Remove the prototype for analyze_array.
9809
9810 2007-03-17  Dorit Nuzman  <dorit@il.ibm.com>
9811
9812         PR tree-optimization/31041
9813         * tree-vect-transform.c (get_initial_def_for_induction): Call
9814         force_gimple_operand.
9815
9816 2007-03-17  Olga Golovanevsky  <olga@il.ibm.com>
9817
9818         * ipa-type-escape.c (look_for_casts) : Revert code to use
9819         handled_component_p due to ada test a-numaux.adb.
9820
9821 2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
9822
9823         * final.c (final_scan_insn): Alter the condition of a
9824         conditional trap if we have nonstandard CC.
9825
9826 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
9827
9828         * configure.ac: Remove excess quoting from asm line 0 test.
9829         * configure: Rebuilt.
9830
9831 2007-03-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9832
9833         * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
9834         * c-common.c (convert_and_check): Move warning logic to...
9835         (warnings_for_convert_and_check): ...here. Define.
9836         * c-common.h (warnings_for_convert_and_check): Declare.
9837
9838 2007-03-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9839
9840         * pa.c (attr_length_call): Partially revert change of 2007-03-09.
9841         (output_call): Likewise.
9842
9843 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
9844
9845         * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
9846
9847 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
9848
9849         * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
9850
9851 2007-03-16  Uros Bizjak  <ubizjak@gmail.com>
9852
9853         * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
9854         opteron, athlon-64 and athlon-fx processor_alias_table entries.
9855
9856 2007-03-16  Sebastian Pop  <sebastian.pop@inria.fr>
9857
9858         PR tree-optimization/31183
9859         * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
9860         Use double_int instead of unsigned int for representing access_strides.
9861         * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
9862
9863 2007-03-16  Richard Guenther  <rguenther@suse.de>
9864
9865         PR tree-optimization/31146
9866         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
9867         to allow recursion of forward_propagate_addr_expr.
9868         (forward_propagate_addr_into_variable_array_index): Likewise.
9869         (forward_propagate_addr_expr): Likewise.
9870         (tree_ssa_forward_propagate_single_use_vars): Likewise.
9871         (forward_propagate_addr_expr_1): Recurse on simple copies
9872         instead of propagating into them.  Do so for useless conversions
9873         as well.
9874         (forward_propagate_addr_expr): Clean up unused statements after
9875         recursion.
9876
9877 2007-03-16  Richard Guenther  <rguenther@suse.de>
9878
9879         * builtins.c (expand_builtin_cexpi): Use the right argument
9880         for the expansion via cexp.
9881
9882 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
9883
9884         * configure.ac: Don't require ELF binutils to tolerate # 0 "".
9885         * configure: Rebuilt.
9886
9887 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
9888
9889         PR debug/29906
9890         * dwarf2out.c (force_type_die): Adjust comment.
9891         (dwarf2out_imported_module_or_decl): Handle base AT_import types.
9892
9893 2007-03-15  DJ Delorie  <dj@redhat.com>
9894
9895         * config/frv/predicates.md (minmax_operator): Don't check operands
9896         here.
9897
9898 2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>
9899
9900         * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
9901         Update constant estimates of number of iterations.
9902         (record_nonwrapping_iv): Add "upper" argument.  "data_size_bounds_p"
9903         argument renamed to "realistic".
9904         (compute_estimated_nb_iterations): Removed.
9905         (record_niter_bound): New function.
9906         (idx_infer_loop_bounds): For possible but unlikely tail arrays,
9907         call record_nonwrapping_iv with upper = false.
9908         (infer_loop_bounds_from_signedness): Pass upper argument to
9909         record_nonwrapping_iv.
9910         (estimate_numbers_of_iterations_loop): Do not call
9911         compute_estimated_nb_iterations.  Record estimate based on profile
9912         information.  Initialize the constant estimates of number of
9913         iterations.
9914         * tree-data-ref.c (estimated_loop_iterations): Return the recorded
9915         estimates.
9916         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
9917         number of iterations is too small.
9918         * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
9919         (EST_NOT_AVAILABLE): Removed.
9920         (struct loop): Replace estimated_nb_iterations by any_upper_bound,
9921         nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
9922         fields.
9923
9924 2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>
9925
9926         * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
9927         Handle NE_EXPR guards.
9928
9929 2007-03-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9930
9931         PR c++/24924
9932         * c-opts.c (c_common_post_options): Handle C++ post-processing here.
9933         Set also -pedantic-errors by default for the  preprocessor unless
9934         -fpermissive is given.
9935
9936 2007-03-15  Richard Guenther  <rguenther@suse.de>
9937
9938         PR middle-end/29719
9939         PR middle-end/31161
9940         * builtins.c (expand_builtin_cexpi): As a fallback if we
9941         don't have builtins for sincos or cexp create a function
9942         declaration for cexp and expand to a call to that.
9943         (expand_builtin_int_roundingfn): Always fall
9944         back to floor/ceil and its variants even if they may be
9945         not available.
9946
9947 2007-03-15  Steven Bosscher  <steven@gcc.gnu.org>
9948
9949         PR middle-end/31159
9950         * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
9951         jump tables, move the call to delete_dead_jumptables from here...
9952         (cfg_layout_finalize): ...to here.  But rebuild jump labels first.
9953         * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
9954         don't allow merging of blocks that try_redirect_by_replacing_jump
9955         also does not handle when not optimizing.
9956
9957 2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
9958             Francois-Xavier Coudert  <coudert@clipper.ens.fr>
9959
9960         * config/i386/i386.md (x86_sahf_1): Correctly handle
9961         HAVE_AS_IX86_SAHF.
9962
9963 2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
9964
9965         PR target/31167
9966         * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
9967         x86_64_general_operand as operand[2] predicate.  Remove "iF"
9968         from operand constraints and use "e" constraint instead.
9969         (*subti3_1, *subti3_1 splitter): Ditto.
9970         (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
9971         operand[1] predicate.
9972
9973 2007-03-14  Sebastian Pop  <sebastian.pop@inria.fr>
9974
9975         * tree-loop-linear.c (gather_interchange_stats): For multidimensional
9976         arrays, multiply the access strides by the size of the sub-array.
9977         * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
9978
9979 2007-03-14  Uros Bizjak  <ubizjak@gmail.com>
9980
9981         * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
9982         the configured assembler supports the sahf mnemonic.
9983         * configure: Regenerate.
9984         * config.in: Regenerate.
9985
9986         * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
9987         emit "sahf" or ".byte\t0x9e" as asm template.
9988
9989 2007-03-14  Michael Meissner  <michael.meissner@amd.com>
9990
9991         PR 31018
9992         * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
9993         option to replace hard coded TARGET_xxx in md file.
9994         (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
9995         (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
9996         (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
9997         (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
9998         (X86_TUNE_NOT_UNPAIRABLE): Ditto.
9999         (X86_TUNE_NOT_VECTORMODE): Ditto.
10000         (TUNE_SHORTEN_X87_SSE): Use new tuning option.
10001         (TUNE_AVOID_VECTOR_DECODE): Ditto.
10002         (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
10003         (TUNE_SLOW_IMUL_IMM8): Ditto.
10004         (TUNE_MOVE_M1_VIA_OR): Ditto.
10005         (TUNE_NOT_UNPAIRABLE): Ditto.
10006         (TUNE_NOT_VECTORMODE): Ditto.
10007
10008         * config/i386/i386.c (ix86_tune_features): Fill in new tuning
10009         options.
10010
10011         * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
10012         tuning options instead of hard coded TARGET_xxx.
10013         (fix ssemode peephole2's): Ditto.
10014         (imul peephole2's): Ditto.
10015         (movsi_or): Ditto.
10016         (movdi_or_rex64): Ditto.
10017         (move peephole2): Ditto.
10018         (not peephole2's): Ditto.
10019
10020 2007-03-14  Dirk Mueller  <dmueller@suse.de>
10021
10022         * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
10023         * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
10024         * c-parser.c (c_parser_if_body): Always add an empty statement in case
10025         of empty body.
10026         * c-parser.c (c_parser_do_statement): Warn about empty body in
10027         do/while statement.
10028         * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
10029         * doc/invoke.texi (-Wempty-body): Update documentation.
10030
10031 2007-03-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10032
10033         PR c/21438
10034         * c-common.h (warn_for_div_by_zero): Declare.
10035         * c-common.c (warn_for_div_by_zero): Define.
10036         * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
10037         warning.
10038
10039 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
10040
10041         * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
10042         to PREFIX and STANDARD_PREFIX.
10043
10044 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
10045             Phil Edwards  <phil@codesourcery.com>
10046
10047         * gthr-vxworks.h: Add an extern "C" wrapper for C++.
10048         (__gthread_once_t): Remove busy field for RTPs.
10049         (__GTHREAD_ONCE_INIT): Update accordingly.
10050
10051 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
10052
10053         * doc/invoke.texi: Document VxWorks options.
10054
10055 2007-03-14  Uros Bizjak  <ubizjak@gmail.com>
10056
10057         * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
10058
10059 2007-03-13  Seongbae Park <seongbae.park@gmail.com>
10060
10061         PR tree-optimization/30590
10062         * tree-nrv.c (tree_nrv): Check for the partial update of the
10063         return value.
10064
10065 2007-03-13  Alexandre Oliva  <aoliva@redhat.com>
10066
10067         * flags.h (flag_random_seed): Remove declaration, in favor of...
10068         * toplev.h (get_random_seed, set_random_seed): ... these.
10069         * tree.c (get_file_function_name): Use the former.
10070         * opts.c (common_handle_option): Use the latter.
10071         * toplev.c
10072
10073 2007-03-13  Steven Bosscher  <steven@gcc.gnu.org>
10074
10075         PR middle-end/31127
10076         * cse.c (cse_find_path): Do not bail out if a basic block that
10077         we already visited now becomes part of a path that starts at a
10078         different basic block.  Just disallow this, to make sure we
10079         visit each basic block at most once.
10080
10081 2007-03-13  Jan Hubicka  <jh@suse.cz>
10082
10083         * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold
10084         attributes, when profile esitmate is present, calls with very low
10085         frequency are cold.
10086
10087 2007-03-13  Zdenek Dvorak  <dvorakz@suse.cz>
10088
10089         PR tree-optimization/30730
10090         PR tree-optimization/26900
10091         * tree-ssa-loop-niter.c: Include gmp.h.
10092         (bounds): New type.
10093         (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
10094         split_to_var_and_offset, determine_value_range,
10095         bound_difference_of_offsetted_base, refine_bounds_using_guard,
10096         bound_difference, bounds_add, bounds_negate,
10097         number_of_iterations_ne_max, dump_affine_iv): New functions.
10098         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
10099         assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
10100         difference of initial and final value of control iv to validate
10101         results.
10102         (number_of_iterations_cond): Add loop parameter.  Determine bounds
10103         on the difference of the extremes of the control iv.  Add dumps.
10104         (expand_simple_operations): Handle phi nodes.
10105         (simplify_using_initial_conditions): Do not record used conditions.
10106         (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
10107         Do not set additional_info.
10108         (implies_nonnegative_p, implies_ge_p): Removed.
10109         (derive_constant_upper_bound): Do not use parameter `additional'.
10110         (record_estimate): Parameter `additional' removed.  Parameter
10111         `i_bound' added.  Do not call derive_constant_upper_bound.
10112         (record_nonwrapping_iv): Use derive_constant_upper_bound to
10113         bound the number of iterations estimate.
10114         (estimate_numbers_of_iterations_loop): Pass the estimate from
10115         the number of iterations analysis to record_estimate.
10116         * tree.h (multiple_of_p): Declare.
10117         * tree-scalar-evolution.c (expression_expensive_p): Removed.
10118         (scev_const_prop): Do not check expression_expensive_p.
10119         * fold-const.c (multiple_of_p): Exported.
10120         * double-int.c (double_int_mask): Exported.
10121         * double-int.h (double_int_mask): Declare.
10122         * tree-flow.h (struct tree_niter_desc): Removed additional_info
10123         field.  Added max field.
10124
10125 2007-03-13  David Taylor  <taylor@candd.org>
10126
10127         PR driver/12448:
10128         * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
10129         default -MQ.
10130
10131 2007-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10132
10133         PR target/31123
10134         * pa.md (vdepi_ior): Don't allow zero length deposit.  Likewise for
10135         two unamed patterns.
10136
10137 2007-03-13  Uros Bizjak  <ubizjak@gmail.com>
10138
10139         * config/i386/i386.opt (mcx16, msahf): New options.
10140         * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
10141         (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
10142
10143         * config/i386/driver-i386.c (bit_LAHF_LM): New define.
10144         (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
10145         Output -mcx16 and -msahf options when corresponding bit is set.
10146
10147         * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
10148         and -msahf options.
10149
10150 2007-03-13  Alexandre Oliva  <aoliva@redhat.com>
10151
10152         * configure.ac: Test for assembler tolerance to # 0 "".
10153         * configure, config.in: Rebuilt.
10154         * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
10155
10156 2007-03-13  Geoffrey Keating  <geoffk@apple.com>
10157
10158         * doc/invoke.texi (Spec Files): Update for '%{,' spec.
10159
10160         * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
10161         (handle_syscall): Handle direct system calls.
10162         * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
10163
10164 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
10165
10166         * doc/invoke.texi: Fix cpp.info cross-reference.
10167         * doc/passes.texi: Fix gcc.info cross-reference.
10168
10169 2007-03-12  Zdenek Dvorak  <dvorakz@suse.cz>
10170
10171         PR tree-optimization/30835
10172         * lambda-code.c (can_convert_to_perfect_nest): Check whether
10173         bb_for_stmt is not NULL before accessing it.
10174
10175 2007-03-12  Joseph Myers  <joseph@codesourcery.com>
10176
10177         * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
10178         some multilibs.
10179
10180 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
10181
10182         PR 30635
10183         * doc/install.texi: Document --enable-stage1-languages
10184
10185 2007-03-12  Steven Bosscher  <steven@gcc.gnu.org>
10186
10187         * tree-pass.h (pass_into_cfg_layout_mode,
10188         pass_outof_cfg_layout_mode): Declare.
10189         * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
10190         pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
10191         * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
10192         (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
10193
10194 2007-03-12  Seongbae Park <seongbae.park@gmail.com>
10195
10196         * c-decl.c (warn_variable_length_array): New function.
10197         Refactored from grokdeclarator to handle warn_vla
10198         and handle unnamed array case.
10199         (grokdeclarator): Refactored VLA warning case.
10200         * c.opt (Wvla): New flag.
10201         * doc/invoke.texi (Wvla): New warning.
10202
10203 2007-03-12  Richard Henderson  <rth@redhat.com>
10204
10205         * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
10206         (TARGET_SECTION_TYPE_FLAGS): New.
10207
10208 2007-03-12  Richard Henderson  <rth@redhat.com>
10209
10210         * config/darwin.c (machopic_reloc_rw_mask): New.
10211         * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
10212         * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
10213
10214 2007-03-12  Mark Mitchell  <mark@codesourcery.com>
10215
10216         * cppdefault.c (cpp_EXEC_PREFIX): New variable.
10217         * cppdefault.h (cpp_PREFIX): Document.
10218         (cpp_PREFIX_len): Likewise.
10219         (cpp_EXEC_PREFIX): New variable.
10220         * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
10221         * c-incpath.c (add_standard_paths): Correct logic for relocating
10222         paths within prefix.
10223
10224 2007-03-12  Uros Bizjak  <ubizjak@gmail.com>
10225
10226         * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
10227         fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
10228         mode macro.
10229         (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
10230         fix_truncdfdi_sse using SSEMODEF mode macro.
10231         (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
10232         fix_truncdfsi_sse using SSEMODEF mode macro.
10233         (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
10234         (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
10235
10236 2007-03-12  Richard Sandiford  <richard@codesourcery.com>
10237
10238         * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
10239         elfos.h to tm_file.
10240
10241 2007-03-12  Olga Golovanevsky  <olga@il.ibm.com>
10242
10243         * tree.h : Add multiple_of_p declaration.
10244         * fold-const.c (multiple_of_p): Make multiple_of_p public.
10245         * ipa-type-escape.c (results_of_malloc): Redundant.
10246         (visited_stmts): New. Visited stmt for walk_use_def_chains.
10247         (cast_type): Extended with new members.
10248         (check_cast): Returns cast_type.
10249         (cast): New structure for data of walk_use_def_chains.
10250         (is_malloc_result, is_cast_from_non_pointer_1,
10251         is_cast_from_non_pointer,
10252         is_array_access_through_pointer_and_index): New functions.
10253         (look_for_casts): Returns cast types.
10254         (check_call): Returns void.
10255         (okay_pointer_operation): Use support of pointer plus index,
10256         pointer plus constant and allow all multiplications.
10257
10258 2007-03-11  Richard Guenther  <rguenther@suse.de>
10259
10260         PR tree-optimization/31115
10261         * tree-vrp.c (extract_range_from_binary_expr): Make sure
10262         the shift count is positive and non-anti-range for RSHIFT_EXPR.
10263         A shift count of zero is not special as with *_DIV_EXPR.
10264         (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
10265         direction.
10266
10267 2007-03-11  Ian Lance Taylor  <iant@google.com>
10268
10269         * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
10270         the *_DIV_EXPR codes correctly with overflow infinities.
10271
10272 2007-03-11  Ira Rosen  <irar@il.ibm.com>
10273
10274         * tree-data-ref.c (analyze_offset): Add a return value (bool) to
10275         indicate success/failure of the analysis. Add negation to subtrahend
10276         in case of subtraction. Fail if both operands contain constants.
10277         (create_data_ref): Fail if analyze_offset fails.
10278
10279 2007-03-11  Uros Bizjak  <ubizjak@gmail.com>
10280
10281         * config/i386/i386.md (frndintxf2): Rename to ...
10282         (rintxf2): ... this. Remove expander having same name.
10283         (rintsf2, rintdf2): Implement using SSEMODEF macro.
10284         (roundsf2, rounddf2): Ditto.
10285         (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
10286         (lround<mode>di2, lround<mode>si2): Ditto.
10287
10288 2007-03-11  Steven Bosscher  <steven@gcc.gnu.org>
10289
10290         * lower-subreg.c: Include except.h.
10291         (decompose_multiword_subregs): Verify that the only control flow
10292         insns we can split are loads to multi-words pseudos.
10293         Handle breaking such blocks after splitting, instead of calling
10294         find_many_sub_basic_blocks.
10295
10296         * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
10297         on the new basic block.  Add a lengthy comment explaining why we
10298         thought this was necessary.
10299         * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
10300
10301 2007-03-10  Mark Mitchell  <mark@codesourcery.com>
10302
10303         PR c++/30924
10304         * tree.c (walk_type_fields): Recurse into the element type of
10305         ARRAY_TYPEs if there is a pointer set.
10306
10307 2007-03-10  Dirk Mueller  <dmueller@suse.de>
10308
10309         * c-common.c (warn_logical_operator): Fix condition.
10310
10311 2007-03-10  Tobias Schl�ter  <tobi@gcc.gnu.org>
10312
10313         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
10314         quotation mark.
10315         * config/darwin.c (machopic_select_section): Remove superfluous
10316         argument in call to categorize_decl_for_section.  Remove unused
10317         variable shlib.
10318
10319 2007-03-10  Joseph Myers  <joseph@codesourcery.com>
10320
10321         * configure.ac (glibc_header_dir): Set using with_build_sysroot if
10322         defined.
10323         * configure: Regenerate.
10324
10325 2007-03-10  Uros Bizjak  <ubizjak@gmail.com>
10326
10327         PR target/31101
10328         * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
10329         (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
10330         (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
10331         Add LABEL_NUSES to emitted label.
10332         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
10333         branch probability value to emitted jump insn.
10334         * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
10335         Do not check life information and do not re-arrange input operands
10336         for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
10337
10338 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
10339
10340         * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
10341         the change of decode_asm_operands.
10342
10343 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
10344
10345         * mode-switching.c (create_pre_exit): Skip blockage insn.
10346
10347 2007-03-09  Diego Novillo  <dnovillo@redhat.com>
10348
10349         * tree-pass.h (TODO_update_smt_usage): Remove.
10350         Update all users.
10351         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
10352         argument SOME.
10353         Update all users.
10354
10355 2007-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10356
10357         * pa.c (attr_length_call): Revise condition for long
10358         pc-relative branch.
10359         (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long
10360         local calls on the SOM target.  Don't use "LONG_PIC_PCREL" call
10361         sequence on SOM target.
10362
10363 2007-03-09  Geoffrey Keating  <geoffk@apple.com>
10364
10365         * gcc.c: Document %{, in big comment at top.
10366         (input_suffix_matches): Remove special handling for .s and
10367         .S.
10368         (input_spec_matches): New.
10369         (handle_braces): Handle %{,.
10370         (validate_switches): ',' indicates a value which is not a switch.
10371         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
10372         to detect assembler input.
10373         * config/i386/sol2.h (CPP_SPEC): Likewise.
10374         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
10375         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
10376         * config/rs6000/lynx.h (ASM_SPEC): Likewise.
10377         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
10378         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
10379         -m64 causes deployment target to default to 10.5.
10380         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
10381
10382 2007-03-09  Richard Henderson  <rth@redhat.com>
10383
10384         PR target/26090
10385         * target.h (targetm.asm.out.reloc_rw_mask): New.
10386         * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
10387         (TARGET_ASM_OUT): Use it.
10388         * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
10389         * varasm.c (categorize_decl_for_section): Remove shlib argument;
10390         use the new reloc_rw_mask target hook instead.
10391         (default_section_type_flags_1): Merge into...
10392         (default_section_type_flags): ... here.
10393         (decl_readonly_section_1): Merge into...
10394         (decl_readonly_section): ... here.
10395         (default_elf_select_section_1): Merge into...
10396         (default_elf_select_section): ... here.
10397         (default_unique_section_1): Merge into...
10398         (default_unique_section): ... here.
10399         (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
10400         (default_select_rtx_section): Use it.
10401         (default_elf_select_rtx_section): Likewise.
10402         * output.h: Update to match.
10403         * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
10404         * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
10405         (TARGET_ASM_RELOC_RW_MASK): New.
10406         * config/i386/i386.c (x86_64_elf_select_section): Adjust call
10407         to categorize_decl_for_section.
10408         (x86_64_elf_unique_section): Likewise.
10409         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
10410         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
10411         (TARGET_ASM_RELOC_RW_MASK): New.
10412         * config/ia64/ia64.c (ia64_rwreloc_select_section,
10413         ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
10414         (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
10415         (TARGET_RWRELOC): Remove.
10416         (ia64_section_type_flags): Adjust call to default_section_type_flags.
10417         * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
10418         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
10419         (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
10420         (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
10421         (rs6000_xcoff_select_section): Use decl_readonly_section.
10422         (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
10423         * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
10424         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
10425         (TARGET_SECTION_TYPE_FLAGS): Remove.
10426         * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
10427
10428 2007-03-09  Roger Sayle  <roger@eyesopen.com>
10429
10430         * fold-const.c (fold_comparison): Remove compile-time evaluation of
10431         complex constant equality/inequality comparisons for here.
10432         (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
10433         known at compile-time or can be simplified to a scalar comparison.
10434         (fold_relational_const): Move compile-time evaluation of complex
10435         constant equality/inequality comparisons to here.
10436
10437 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
10438
10439         PR rtl-optimization/30643
10440         * cse.c (cse_insn): Recompute dest_hash after insert_regs for
10441         dest_addr_elt.
10442         (fold_rtx): Recurse, like before 2006-11-03.
10443
10444 2007-03-09  DJ Delorie  <dj@redhat.com>
10445
10446         * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
10447         m32c-pragma.o.
10448
10449 2007-03-09  Aldy Hernandez  <aldyh@redhat.com>
10450
10451         PR tree-optimization/30375
10452         * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
10453         LHS of statements is not the same.
10454         * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
10455
10456 2007-03-09  Chao-ying Fu  <fu@mips.com>
10457
10458         * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
10459         REV 2.
10460         * doc/invoke.texi (-mdspr2): Document new option.
10461         * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
10462         New unspec for DSP REV 2.
10463         (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
10464         these instructions are extended in DSP REV 2.
10465         (mips-dspr2.md): Include.
10466         * config/mips/mips.opt (mdspr2): New option.
10467         * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
10468         MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
10469         MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
10470         (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
10471         (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
10472         (dsp_bdesc): Add DSP REV 2 builtins.  Remove 32-bit only DSP builtins.
10473         (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
10474         and 2 builtins.
10475         (bdesc_map): Add one field of unsupported_target_flags.
10476         (bdesc_arrays):  Update entries to have extra fields.  Add
10477         dsp_32only_bdesc.
10478         (mips_init_builtins): Initialize new function types.
10479         Check unsupported_target_fileds to filter out builtins.
10480         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
10481         TARGET_DSPR2.
10482         (ASM_SPEC): Pass mdspr2 to the assembler.
10483         * config/mips/mips-dspr2.md: New file.
10484
10485 2007-03-09  Sa Liu  <saliu@de.ibm.com>
10486
10487         * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
10488
10489 2007-03-09  Ian Lance Taylor  <iant@google.com>
10490
10491         * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
10492         argument) like -Wstrict-overflow=2.
10493         * doc/invoke.texi (Warning Options): Update documentation.
10494
10495 2007-03-09  Dirk Mueller  <dmueller@suse.de>
10496
10497         PR c++/17946
10498         * doc/invoke.texi (-Wlogical-op): Document.
10499         * common.opt (-Wlogical-op): New.
10500         * c-common.h (warn_logical_operator): Declare.
10501         * c-common.c (warn_logical_operator): Define.
10502         * c-typeck.c (parser_build_binary_op): Call
10503         warn_logical_operator.
10504
10505 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
10506
10507         * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
10508         * final.c (final_scan_insn): Test for non-"" file name.
10509
10510 2007-03-09  Sebastian Pop  <sebastian.pop@inria.fr>
10511
10512         * doc/loop.texi: Document the Omega linear constraints solver.
10513         * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
10514         omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
10515         omega-hash-table-size, omega-max-keys, and
10516         omega-eliminate-redundant-constraints.
10517         * tree-pass.h (pass_check_data_deps): Declared.
10518         * omega.c: New.
10519         * omega.h: New.
10520         * timevar.def (TV_CHECK_DATA_DEPS): Declared.
10521         * tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
10522         pass_check_data_deps): New.
10523         * tree-data-ref.c (init_data_ref): Remove declaration.
10524         (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
10525         (analyze_array): Renamed init_array_ref, move up initializations.
10526         (init_data_ref): Renamed init_pointer_ref.  Moved before its call.
10527         Removed arguments that are set to NULL.
10528         (analyze_indirect_ref): Correct indentation, correct call to
10529         init_pointer_ref.
10530         (object_analysis): Call init_array_ref instead of analyze_array.
10531         (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
10532         (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
10533         of DR_ACCESS_FNS_ADDR.
10534         (init_omega_eq_with_af, omega_extract_distance_vectors,
10535         omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
10536         ddr_consistent_p): New.
10537         (compute_affine_dependence): Check consistency of ddrs when
10538         flag_check_data_deps is passed.
10539         (analyze_all_data_dependences): Uncomment.
10540         (tree_check_data_deps): New.
10541         * tree-data-ref.h: Include omega.h.
10542         (DR_ACCESS_FNS_ADDR): Removed.
10543         (data_dependence_relation): Add inner_loop.
10544         (DDR_INNER_LOOP): New.
10545         * common.opt (fcheck-data-deps): New.
10546         * tree-flow.h (tree_check_data_deps): Declare.
10547         * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
10548         (OBJS-common): Depend on omega.o.
10549         (omega.o): Define.
10550         * passes.c (pass_check_data_deps): Scheduled.
10551         * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
10552         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
10553         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
10554         PARAM_VECT_MAX_VERSION_CHECKS,
10555         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
10556
10557 2007-03-09  Richard Guenther  <rguenther@suse.de>
10558
10559         PR tree-optimization/30904
10560         PR middle-end/31058
10561         * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
10562         the same way as *_DIV_EXPR.
10563
10564 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
10565
10566         * recog.c (decode_asm_operands): No mixed declarations and code.
10567
10568 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
10569
10570         * rtl.def (ASM_INPUT): Add location.
10571         * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
10572         (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
10573         (decode_asm_operands): Add loc operand.
10574         (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
10575         * stmt.c (expand_asm): Rename to...
10576         (expand_asm_loc): ... this.  Add locus argument.  Pass it on to
10577         gen_rtx_ASM_INPUT_loc.
10578         (expand_asm_expr): Adjust.
10579         * recog.c (decode_asm_operands): Add loc operand.
10580         (check_asm_operands, extract_insn): Adjust.
10581         * reload1.c (maybe_fix_stack_asms): Likewise.
10582         * final.c (asm_insn_count): Likewise.
10583         (final_scan_insn): Output # line before and after asm.
10584
10585 2007-03-09  Daniel Berlin  <dberlin@dberlin.org>
10586
10587         * tree-ssa-structalias.c (variable_info): Remove
10588         finished_solution.
10589         (new_var_info): Ditto.
10590         (shared_bitmap_info_t): New structure.
10591         (shared_bitmap_table): New variable.
10592         (shared_bitmap_hash): New function.
10593         (shared_bitmap_eq): Ditto
10594         (shared_bitmap_lookup): Ditto.
10595         (shared_bitmap_add): Ditto.
10596         (merge_smts_into): Change to take bitmap directly.
10597         (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
10598         (init_alias_vars): Init shared bitmap hashtable.
10599         (delete_points_to_sets): Delete shared bitmap hashtable.
10600         * tree-ssa-operands.c (add_virtual_operand): Partially revert the
10601         is_aliased removal as a change that was still necessary was
10602         deleted.
10603
10604 2007-03-09  Uros Bizjak  <ubizjak@gmail.com>
10605
10606         * config/i386/i386.h (override_options): Conditionally disable
10607         x86_sahf for 64bit targets only.
10608
10609 2007-03-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10610
10611         PR C/31072
10612         * c-decl.c (merge_decls): Don't call make_var_volatile.
10613         * varasm.c (make_var_volatile): Remove.
10614         * output.h (make_var_volatile): Remove.
10615
10616 2007-03-08  Zdenek Dvorak  <dvorakz@suse.cz>
10617
10618         PR tree-optimization/31085
10619         * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
10620
10621 2007-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10622
10623         * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
10624         llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
10625         ATTR_CONST_NOTHROW_LIST.
10626
10627         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
10628         FIX_TRUNC_EXPR.
10629
10630 2007-03-08  Diego Novillo  <dnovillo@redhat.com>
10631
10632         * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
10633
10634 2007-03-08  Geoffrey Keating  <geoffk@apple.com>
10635
10636         PR 31013
10637         * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
10638         is declared.
10639         * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
10640         passed, use shared libgcc.
10641
10642 2007-03-08  Roger Sayle  <roger@eyesopen.com>
10643
10644         * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
10645         instead of calling build2 with a GIMPLE_MODIFY_STMT.
10646         (honor_protect_cleanup_actions, lower_try_finally_switch):
10647         Likewise.
10648         * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
10649         ifc_temp_var): Likewise.
10650         * tree-inline.c (setup_one_parameter): Likewise.
10651         * tree-mudflap.c (mf_decl_cache_locals,
10652         mf_build_check_statement_for): Likewise.
10653         * tree-nested.c (init_tmp_var, save_tmp_var,
10654         finalize_nesting_tree_1): Likewise.
10655         * tree-outof-ssa.c (insert_copy_on_edge,
10656         insert_backedge_copies): Likewise.
10657         * tree-profile.c (tree_gen_edge_profiler,
10658         tree_gen_ic_profiler): Likewise.
10659         * tree-scalar-evolution.c (scev_const_prop): Likewise.
10660         * tree-sra.c (sra_build_assignment): Likewise.
10661         * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
10662         * tree-ssa-math-opts.c (insert_reciprocals,
10663         execute_cse_sincos_1): Likewise.
10664         * tree-tailcall.c (adjust_accumulator_values,
10665         adjust_return_value): Likewise.
10666         * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
10667         * tree-vect-transform.c (vect_create_data_ref_ptr,
10668         bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
10669         vect_create_epilog_for_reduction, vectorizable_reduction,
10670         vectorizable_call, vectorizable_conversion,
10671         vectorizable_assignment, vectorizable_operation,
10672         vectorizable_type_demotion, vect_gen_widened_results_half,
10673         vect_permute_store_chain, vectorizable_store,
10674         vect_setup_realignment, vect_permute_load_chain,
10675         vectorizable_load, vectorizable_condition,
10676         vect_create_cond_for_align_checks): Likewise.
10677         * tree-vrp.c (build_assert_expr_for): Likewise.
10678
10679 2007-03-08  Ian Lance Taylor  <iant@google.com>
10680
10681         * tree-vrp.c: Include "intl.h".
10682         (usable_range_p): New static function.
10683         (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
10684         overflowed values, juts set *strict_overflow_p.
10685         (compare_values): Only return -2 if one of the operands is not a
10686         constant.
10687         (compare_ranges): Call usable_range_p.
10688         (compare_range_with_value): Likewise.
10689         (vrp_evaluate_conditional_warnv): Rename from
10690         vrp_evaluate_conditional.  Make static.  Change all callers.
10691         (vrp_evaluate_conditional): New function.
10692         (simplify_div_or_mod_using_ranges): Issue warning about reliance
10693         on signed overflow.
10694         (simplify_abs_using_ranges): Likewise.
10695         (simplify_stmt_for_jump_threading): Add within_stmt parameter.
10696         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
10697         within_stmt parameter.
10698         * tree-ssa-propagate.c (fold_predicate_in): Update call to
10699         vrp_evaluate_conditional.
10700         * tree-ssa-threadedge.c
10701         (record_temporary_equivalences_from_stmts_at_dest): Change
10702         simplify parameter to take a second tree parameter.
10703         (simplify_control_stmt_condition): Likewise.
10704         (thread_across_edge): Likewise.
10705         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
10706         (thread_across_edge): Likewise.
10707         * Makefile.in (tree-vrp.o): Depend upon intl.h.
10708
10709 2007-03-08  Uros Bizjak  <ubizjak@gmail.com>
10710
10711         * config/i386/i386.h (TARGET_SAHF): New define.
10712         * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
10713         Also enable for m_K8, m_AMDFAM10 and m_CORE2.
10714         (x86_sahf): New global variable.
10715         (override_options): Add PTA_NO_SAHF to pta_flags enum.  Recode
10716         pta_flags masks using shifts.  Add PTA_NO_SAHF to x86_64 and
10717         nocona processor flags.  Set x86_sahf when PTA_NO_SAHF is not set
10718         in processor flags.  Do not unconditionally disable TARGET_USE_SAHF
10719         for 64-bit.
10720         (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
10721         (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
10722         when expanding fcomi/sahf based tests.
10723         (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
10724         expanding sahf based alternative. Emit sahf based sequence when
10725         optimizing for code size.
10726         * config/i386/i386.md (x86_sahf_1): Do not disable for
10727         TARGET_64BIT, enable for TARGET_SAHF.
10728
10729 2007-03-08  Martin Michlmayr  <tbm@cyrius.com>
10730
10731         * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
10732         spurious whitespace from error message.
10733
10734 2007-03-08  Volker Reichelt  <reichelt@netcologne.de>
10735
10736         PR c++/30852
10737         * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
10738
10739 2007-03-08  Alexandre Oliva  <aoliva@redhat.com>
10740
10741         * c-decl.c (grokdeclarator): Disable warnings for anonymous
10742         bitfields.
10743         * tree-sra.c (instantiate_element): Propagate disabled warnings
10744         from the element itself to the created variable.
10745
10746 2007-03-07  Richard Henderson  <rth@redhat.com>
10747
10748         PR target/30848
10749         * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
10750         silently fix up the stack in the case of a missing register.
10751
10752 2007-03-07  Paul Brook  <paul@codesourcery.com>
10753
10754         * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
10755
10756 2007-03-07  Joseph Myers  <joseph@codesourcery.com>
10757
10758         * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
10759         New.
10760         (phase1_vrs): Use them.
10761         (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
10762         (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
10763         __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
10764         (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
10765         __gnu_Unwind_Restore_WMMXC if required.
10766         (_Unwind_VRS_Pop): Implement iWMMXt support.
10767         * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
10768         gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
10769         gnu_Unwind_Save_WMMXC): Define.
10770
10771 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
10772
10773         * config/vxworks.h (vxworks_override_options): Declare.
10774         (VXWORKS_OVERRIDE_OPTIONS): Use it.
10775         * config/vxworks.c: Include target.h and toplev.h.
10776         (vxworks_override_options): New function.
10777         * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
10778
10779 2007-03-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10780
10781         * config/s390/s390.c (override_options): Don't emit an error when
10782         -mstack-size is used without providing -mstack-guard.
10783         (s390_emit_prologue): Choose stack_guard value automatically if not
10784         provided via command line.
10785         * doc/invoke.texi: Adjust description of -mstack-guard and
10786         -mstack-size.
10787
10788 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
10789
10790         * config/i386/i386.c (output_set_got): Add a GOT initialization
10791         sequence for VxWorks PIC.
10792         (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
10793         around labels as well as symbols.  Use gotoff_operand instead
10794         of local_symbolic_operand.
10795         (legitimize_pic_address): Use gotoff_operand instead of
10796         local_symbolic_operand.  Use @GOT accesses for labels as
10797         well as symbols.
10798         (ix86_output_addr_diff_elt): Use PC-relative rather than
10799         GP-relative offsets for VxWorks PIC.
10800         (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
10801         no_new_pseudos.  Check whether the returned register is op0.
10802         * config/i386/i386.md (tablejump): Use PC-relative rather than
10803         GP-relative offsets for VxWorks PIC.
10804         * config/i386/predicates.md (gotoff_operand): New predicate.
10805
10806 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
10807
10808         * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
10809         before defining.
10810         * config/vxworks-dummy.h: New file.
10811         * config/i386/i386.h: Include it.
10812
10813 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
10814
10815         * dwarf2out.c (is_inlined_entry_point): New
10816         (add_high_low_attributes): Emit DW_AT_entry_pc along with
10817         DW_AT_ranges if the first subblock is the entry point.
10818
10819 2007-03-06  David Daney  <ddaney@avtrex.com>
10820
10821         * doc/install.texi (mips-*-*): Change recommended binutils
10822         version.
10823
10824 2007-03-06  Anatoly Sokolov <aesok@post.ru>
10825
10826         * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
10827         ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
10828         devices.
10829         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10830         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10831
10832 2007-03-06  Jan Hubicka  <jh@suse.cz>
10833
10834         * errors.h (warning, error, fatal, internal_error): Mark as cold.
10835         * predict.c (maybe_hot_bb): Cold functions are never hot; hot
10836         functions are hot.
10837         (probably_cold_bb_p): Cold functions are cold.
10838         (probably_never_executed_bb_p): Cold functions are cold.
10839         (tree_bb_level_predictions): Predict calls to cold functions as not
10840         taken.
10841         (compute_function_frequency): Check hot/cold attributes.
10842         * function.h (function_frequency): Update comments.
10843         * predict.def (PRED_COLD_FUNCTION): Predict cold function.
10844         * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
10845         (c_common_att): Add cold and hot.
10846
10847         * doc/extend.texi (hot,cold attributes): Document.
10848
10849 2007-03-06  Andrew Haley  <aph@redhat.com>
10850
10851         * function.c (expand_function_end): Move blockage to just after we
10852         emit the label for the naked return from the function.
10853
10854 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
10855
10856         * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
10857         before redefining.
10858
10859 2007-03-06  Jan Hubicka  <jh@suse.cz>
10860
10861         * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
10862         loaded for constant large models.  Non-large 64bit PIC can do.
10863         * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
10864         * cmodel.h: Add LARGE PIC.
10865         * i386.md (UNSPEC_PLTOFF): New.
10866         (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other
10867         unspecs as needed.
10868         (*call_1_rex64): Disable for large models.
10869         (*call_1_rex64_large): New.
10870         (*call_value_1_rex64): Disable for large models.
10871         (*call_value_1_rex64_large): New.
10872         (set_rip_rex4): New.
10873         (set_got_offset_rex64): New.
10874         * predicates.md (constant_call_address_operand): For large model
10875         constant calls are not possible.
10876         * i386-protos.h (construct_plt_address): Declare.
10877         * i386.c (override_options): Accept large models.
10878         (ix86_expand_prologue): Expand large PIC GOT pointer load.
10879         (legitimate_constant_p): Add new UNSPECs.
10880         (legitimate_pic_operand_p): Likewise.
10881         (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
10882         (legitimize_pic_address): Do easy RIP relative way for TLS only for
10883         non-large model.
10884         (output_pic_addr_const): Add PLTOFF.
10885         (ix86_output_addr_diff_elt): Output 64bit tables when needed.
10886         (ix86_expand_move): Legitimize pic address when in PIC mode.
10887         (construct_plt_address): New function.
10888         (ix86_expand_call): Offload the address to register and use GOT
10889         pointer for large model.
10890         * invoke.texi (mcmodel=large): Update documentation.
10891
10892 2007-03-06  Richard Henderson  <rth@redhat.com>
10893
10894         * config/i386/i386.c (x86_use_leave, x86_push_memory,
10895         x86_zero_extend_with_and, x86_movx, x86_double_with_add,
10896         x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
10897         x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
10898         x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
10899         x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
10900         x86_split_long_moves, x86_promote_QImode, x86_fast_prefix,
10901         x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
10902         x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
10903         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
10904         x86_partial_reg_dependency, x86_memory_mismatch_stall,
10905         x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
10906         x86_sse_partial_reg_dependency, x86_sse_split_regs,
10907         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
10908         x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
10909         x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
10910         x86_schedule, x86_use_bt, x86_pad_returns,
10911         x86_use_xchgb): Merge into ...
10912         (ix86_tune_features): ... here.  New array.
10913         (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
10914         x86_bswap): Merge into ...
10915         (ix86_arch_features): ... here.  New array.
10916         (x86_3dnow_a): Remove.
10917         (x86_accumulate_outgoing_args): Make static.
10918         (x86_arch_always_fancy_math_387): Make static.
10919         (ix86_tune_mask, ix86_arch_mask): Move ...
10920         (override_options): ... to local variables here.  Apply the
10921         appropriate mask to each element of ix86_arch_features and
10922         ix86_tune_features.  Adjust TARGET_CMOVE and TARGET_USE_SAHF
10923         as were done in the old macros.
10924         (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
10925         * config/i386/i386.h (x86_use_leave, x86_push_memory,
10926         x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
10927         x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
10928         x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
10929         x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
10930         x86_read_modify_write, x86_read_modify, x86_split_long_moves,
10931         x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
10932         x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
10933         x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
10934         x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
10935         x86_partial_reg_dependency, x86_memory_mismatch_stall,
10936         x86_accumulate_outgoing_args, x86_prologue_using_move,
10937         x86_epilogue_using_move, x86_decompose_lea,
10938         x86_arch_always_fancy_math_387, x86_shift1,
10939         x86_sse_partial_reg_dependency, x86_sse_split_regs,
10940         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
10941         x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
10942         x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
10943         x86_use_incdec, x86_pad_returns, x86_bswap,
10944         x86_partial_flag_reg_stall): Remove.
10945         (enum ix86_tune_indices): New.
10946         (ix86_tune_features): New.
10947         (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
10948         TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
10949         TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
10950         TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
10951         TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
10952         TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
10953         TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
10954         TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
10955         TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
10956         TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
10957         TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
10958         TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
10959         TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
10960         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
10961         TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
10962         TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
10963         TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
10964         TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
10965         TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
10966         TARGET_EXT_80387_CONSTANTS): Use it.
10967         (enum ix86_arch_indices): New.
10968         (ix86_arch_features): New.
10969         (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
10970         TARGET_BSWAP): Use it.
10971         (ix86_tune_mask, ix86_arch_mask): Remove.
10972
10973 2007-03-06  Joseph Myers  <joseph@codesourcery.com>
10974
10975         PR bootstrap/31020
10976         * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
10977         Define using $${sysroot_headers_suffix}.
10978         * configure: Regenerate.
10979         * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
10980         multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
10981         defined.
10982         * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
10983         * gcc.c (print_sysroot_headers_suffix): New.
10984         (option_map): Include --print-sysroot-headers-suffix.
10985         (display_help): Mention -print-sysroot-headers-suffix.
10986         (process_command): Handle -print-sysroot-headers-suffix.
10987         (do_spec_1): Append multilib directory to include-fixed path if
10988         sysroot suffixes in use.
10989         (main): Handle -print-sysroot-headers-suffix.
10990         * Makefile.in (start.encap): Don't depend on xlimits.h
10991         (xlimits.h): Remove.
10992         (stmp-int-hdrs): Don't depend on xlimits.h.  Inline generation of
10993         limits.h for each multilib in fixinc_list.
10994         (fixinc_list, s-fixinc_list): New.
10995         (stmp-fixinc): Depend on fixinc_list.  If not copying headers,
10996         generate them for each multilib in fixinc_list.
10997         (stmp-fixproto): Use include-fixed.  Run fixproto for each
10998         multilib in fixinc_list.
10999         (mostlyclean): Don't remove xlimits.h.
11000         (clean): Remove include-fixed.
11001         (real-install-headers-tar, real-install-headers-cpio,
11002         real-install-headers-cp): Don't copy include, only include-fixed.
11003         (install-mkheaders): Depend on fixinc_list.  Don't depend on
11004         xlimits.h.  Save limits.h files for each multilib in fixinc_list.
11005         Always save mkinstalldirs.  Preserve ${sysroot_headers_suffix} in
11006         SYSTEM_HEADER_DIR setting in mkheaders.conf.
11007
11008 2007-03-06  Jan Hubicka  <jh@suse.cz>
11009
11010         * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
11011         NANs easilly.
11012
11013 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
11014
11015         * configure.ac: Allow tm_file to contain build-directory files.
11016         * configure: Regenerate.
11017         * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
11018         * config/m68k/t-uclinux (sysroot-suffix.h): New target.
11019         * config/m68k/print-sysroot-suffix.sh: New file.
11020
11021 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
11022
11023         * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
11024         of pic_offset_table_rtx if reload_completed.
11025         (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
11026         PIC_OFFSET_TABLE_REGNUM.
11027         * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
11028         return true.
11029         (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
11030         (m68k_output_mi_thunk): Rewrite to use RTL.  Honor vcall_offset.
11031
11032 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
11033
11034         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
11035         functions that call eh_return.
11036
11037 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
11038
11039         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
11040         functions that need a constant pool.
11041
11042 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
11043
11044         PR target/28181
11045         * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
11046         (m68k_preferred_reload_class): Likewise.
11047         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
11048         (SECONDARY_RELOAD_CLASS): Define.
11049         (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
11050         (LIMIT_RELOAD_CLASS): Delete.
11051         * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
11052         registers from storing bytes.
11053         (m68k_secondary_reload_class): New function.
11054         (m68k_preferred_reload_class): Likewise.
11055
11056 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
11057
11058         * config/m68k/m68k.c (m68k_save_reg): Remove special case for
11059         leaf functions.
11060         (m68k_expand_prologue): Likewise.
11061
11062 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
11063
11064         * config/m68k/m68k-protos.h (output_sibcall): Declare.
11065         (mips_expand_epilogue): Add a bool parameter.
11066         (m68k_legitimize_sibcall_address): Declare.
11067         * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
11068         (m68k_expand_epilogue): Add a parameter to select between sibling
11069         and normal epilogues.  Only generate a return for the latter.
11070         (m68k_ok_for_sibcall_p): New function.
11071         (m68k_legitimize_sibcall_address, output_sibcall): New functions.
11072         * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
11073         (sibcall_value, *sibcall_value): Likewise.
11074         (*call, *call_value): Require !SIBLING_CALL_P.
11075         (epilogue): Update call to m68k_expand_epilogue.
11076         (sibcall_epilogue): New pattern.
11077         * config/m68k/predicates.md (const_call_operand): Say that this
11078         predicate applies to sibling calls too.
11079         (sibcall_operand): New predicate.
11080
11081 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
11082
11083         * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
11084         alternatives as movsi_cf.
11085         (movsf_cf_hard): Add commentary.
11086
11087 2007-03-06  Kazu Hirata  <kazu@codesourcery.com>
11088             Richard Sandiford  <richard@codesourcery.com>
11089
11090         * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
11091         (m68k_movem_pattern_p, m68k_output_movem): Likewise.
11092         (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
11093         * config/m68k/m68k.h (EPILOGUE_USES): Define.  Treat all registers
11094         as being live on exit from an interrupt function.
11095         (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
11096         * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
11097         (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
11098         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
11099         (m68k_interrupt_function_p): Globalize.
11100         (m68k_compute_frame_layout): Remove reverse mask code.
11101         (m68k_emit_movem, m68k_set_frame_related): New functions.
11102         (m68k_output_function_prologue): Delete in favor of...
11103         (m68k_expand_prologue): ...this new function.
11104         (m68k_output_function_epilogue): Delete in favor of...
11105         (m68k_expand_epilogue): ...this new function.
11106         (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
11107         functions.
11108         (print_operand): Handle %?.
11109         * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
11110         (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
11111         (prologue, epilogue): New patterns.
11112         (return): Turn into a define_expand.
11113         (*return): New pattern, derived from old "return" pattern.  Use rte
11114         rather than rts for interrupt functions.  Only use rtd if the pop
11115         count is nonzero.
11116         (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
11117         (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
11118         (link, *link, unlink, *unlink, load_got): Likewise.
11119
11120 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
11121
11122         PR target/23482
11123         PR target/17114
11124         * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
11125         (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
11126         (m68k_matches_q_p, m68k_matches_u_p): Likewise.
11127         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
11128         and m68k_matches_u_p.
11129         (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
11130         (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
11131         (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
11132         (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
11133         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
11134         (REG_STRICT_P): New macro.
11135         (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
11136         PCREL_GENERAL_OPERAND_OK.
11137         (REG_OK_FOR_BASE_P): Merge definitions.  Use REG_STRICT_P and
11138         m68k_legitimate_base_reg_p.
11139         (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
11140         (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
11141         (PIC_CASE_VECTOR_ADDRESS): Update comment.
11142         * config/m68k/m68k.c (m68k_address): New structure.
11143         (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
11144         (m68k_decompose_index, m68k_legitimate_constant_address_p)
11145         (m68k_jump_table_ref_p, m68k_decompose_address)
11146         (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
11147         (m68k_matches_u_p): New functions.
11148         (print_operand_address): Rewrite to use m68k_decompose_index.
11149
11150 2007-03-05  David Taylor  <dtaylor@emc.com>
11151
11152         * gcc.c: Correct copyright date in --version output.
11153
11154 2007-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11155
11156         * pa.md: In unamed move patterns, disparge copies between general
11157         and floating point registers using '?' modifier.  Don't include 'f'
11158         constraint for register preferences in DImode, SImode, HImode and
11159         QImode patterns.  Likewise for 'r' in DFmode and SFmode patterns.
11160         Remove constraints for copies between general and floating registers
11161         in soft-float DFmode pattern.
11162         (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
11163         floating register.
11164         (movsf): Likewise.
11165
11166 2007-03-05  Mike Stump  <mrs@apple.com>
11167
11168         * c-common.c (targetcm): Add.
11169         * c-opts.c (c_common_handle_option): Handle language specific
11170         target options.
11171         * opts.c (handle_option): Verify language for target options, if
11172         any are given.
11173         * opth-gen.awk: Add CL_LANG_ALL.
11174         * target-def.h (TARGET_HANDLE_C_OPTION): Add.
11175         (TARGETCM_INITIALIZER): Add.
11176         * target.h (struct gcc_targetcm): Add.
11177         (targetcm): Add.
11178         * targhooks.c (default_handle_c_option): Add.
11179         * targhooks.h (default_handle_c_option): Add.
11180         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
11181
11182         * config/darwin.opt (iframework): Add.
11183         * config/darwin.h (TARGET_HAS_TARGETCM): Add.
11184         * config/darwin-c.c (handle_c_option): Add.
11185         (TARGET_HANDLE_C_OPTION): Add.
11186         (targetcm): Add.
11187         * doc/invoke.texi (Darwin Options): Add -iframework.
11188
11189 2007-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11190
11191         * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
11192         conversion.
11193
11194 2007-03-05  Ian Lance Taylor  <iant@google.com>
11195
11196         * c.opt (fgnu89-inline): New option.
11197         * c-opts.c (c_common_post_options): Set default value for
11198         flag_gnu89_inline.
11199         * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
11200         (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
11201         inline functions.
11202         (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
11203         (grokdeclarator, start_function): Likewise.
11204         * c-cppbuiltin.c (c_cpp_builtins): Define either
11205         __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
11206         * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
11207         (C Dialect Options): Document -fgnu89-inline.
11208         * doc/extend.texi (Function Attributes): Explain what the
11209         gnu_inline attribute does.
11210         * doc/cpp.texi (Common Predefined Macros): Document
11211         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
11212
11213 2007-03-05  Ian Lance Taylor  <iant@google.com>
11214
11215         PR tree-optimization/31034
11216         * tree-vrp.c (extract_range_from_assert): Don't try to handle a
11217         half-range if the other side is an overflow infinity.
11218
11219 2007-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
11220
11221         * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
11222         (bfin*-linux-uclibc*): New configuration.
11223         * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
11224         defining.
11225         * config/bfin/linux.h: New file.
11226         * config/bfin/libgcc-bfin.ver: New file.
11227         * config/bfin/t-bfin-uclinux: New file.
11228         * config/bfin/t-bfin-linux: New file.
11229         * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
11230         (TARGET_OS_CPP_BUILTINS): New macro.
11231
11232 2007-03-05  Richard Guenther  <rguenther@suse.de>
11233
11234         * fold-const.c (fold_binary): Remove duplicate folding
11235         of comparison of non-null ADDR_EXPR against null.
11236
11237 2007-03-05  Richard Guenther  <rguenther@suse.de>
11238             Dorit Nuzman  <dorit@il.ibm.com>
11239
11240         PR tree-optimization/26420
11241         * tree-vectorizer.c (vectorize_loops): Bail out early if there
11242         are no loops in the function.  Only print the number of
11243         vectorized loops if it is greater than zero or we are supposed
11244         to print information about unvectorized loops.
11245
11246 2007-03-05  Revital Eres  <eres@il.ibm.com>
11247
11248         * gcc.dg/var-expand1.c: New test.
11249         * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
11250         when an accumulator is expanded.
11251
11252 2007-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11253
11254         PR other/30465
11255         * c-common.c (convert_and_check): Don't give warnings for
11256         conversion if 'expr' already overflowed.
11257
11258 2007-03-04  Roger Sayle  <roger@eyesopen.com>
11259
11260         PR middle-end/30744
11261         * fold-const.c (fold_comparison): Enforce type consistency when
11262         transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.
11263
11264 2007-03-04  Zdenek Dvorak  <dvorakz@suse.cz>
11265
11266         * tree-ssa-address.c (create_mem_ref): Do not put an expression
11267         containing a cast to the base of TARGET_MEM_REF.
11268
11269 2007-03-04  Martin Michlmayr  <tbm@cyrius.com>
11270
11271         * tree.c (tree_contains_struct_check_failed): Remove spurious
11272         whitespace from error message.
11273
11274 2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
11275
11276         PR target/30406
11277         * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
11278         instead of precision.
11279
11280 2007-03-04  Roman Zippel <zippel@linux-m68k.org>
11281             Nathan Sidwell  <nathan@codesourcery.com>
11282
11283         * emit-rtl.c (find_auto_inc): New.
11284         (try_split): recreate REG_INC notes,
11285         Use regular for loops rather than whiles.
11286
11287 2007-03-03  Andreas Schwab  <schwab@suse.de>
11288
11289         * configure.ac (HAVE_AS_REL16): Move test back to correct place.
11290         * configure: Regenerate.
11291
11292 2007-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11293
11294         * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
11295         flag_rounding_math, not flag_unsafe_math_optimizations.
11296
11297         * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
11298         fold_build2.
11299         * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
11300         alpha_fold_vector_minmax): Likewise.
11301         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
11302         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
11303
11304 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
11305
11306         * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
11307         (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
11308         if the lhs has side-effects.
11309         <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
11310
11311 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
11312
11313         * config/i386/i386.h (TUNEMASK): Remove define.
11314         (ARCHMASK): Remove define.
11315         (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
11316          Use ix86_arch_mask variable instead of ARCHMASK.
11317         * config/i386/i386.c (override_options): Ditto.
11318         (standard_80387_constant_p): Ditto.
11319
11320 2007-03-02  Ian Lance Taylor  <iant@google.com>
11321
11322         Used signed infinities in VRP.
11323         * tree-vrp.c (uses_overflow_infinity): New static function.
11324         (supports_overflow_infinity): New static function.
11325         (make_overflow_infinity): New static function.
11326         (negative_overflow_infinity): New static function.
11327         (positive_overflow_infinity): New static function.
11328         (is_negative_overflow_infinity): New static function.
11329         (is_positive_overflow_infinity): New static function.
11330         (is_overflow_infinity): New static function.
11331         (overflow_infinity_range_p): New static function.
11332         (compare_values_warnv): New function split out of compare_values.
11333         (compare_value): Call it.
11334         (set_value_range_to_nonnegative): Add overflow_infinity
11335         parameter.  Change caller.
11336         (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
11337         Change callers.
11338         (vrp_expr_computes_nonzero): Likewise.
11339         (compare_ranges, compare_range_with_value): Likewise.
11340         (compare_name_with_value, compare_names): Likewise.
11341         (vrp_evaluate_conditional): Likewise.
11342         (set_value_range): Handle infinity
11343         (vrp_operand_equal_p, operand_less_p): Likewise.
11344         (extract_range_from_assert): Likewise.
11345         (vrp_int_const_binop): Likewise.
11346         (extract_range_from_binary_expr): Likewise.
11347         (extract_range_from_unary_expr): Likewise.
11348         (extract_range_from_comparison): Likewise.
11349         (extract_range_from_expr): Likewise.
11350         (dump_value_range): Likewise.
11351         (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
11352         (test_for_singularity): Likewise.
11353         (vrp_int_const_binop): Remove inline qualifier.
11354         (adjust_range_with_scev): Add comment.
11355         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
11356
11357 2007-03-02  Diego Novillo  <dnovillo@redhat.com>
11358
11359         * tree-ssa-structalias.c (could_have_pointers): Tidy.
11360         (get_constraint_for): Likewise.
11361         (do_structure_copy): Likewise.
11362         (find_func_aliases): Fix references to MODIFY_EXPR.
11363         (intra_create_variable_infos): Tidy.
11364         * tree-ssa-operands.c (add_virtual_operand): Add argument
11365         IS_CALL_SITE.
11366         When adding members of alias sets, if IS_CALL_SITE is true and
11367         the symbol is not call-clobbered, skip it.
11368         Adjust all callers.
11369
11370 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
11371
11372         * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
11373         entry by means of emit_insn_at_entry.
11374
11375 2007-03-02  Richard Henderson  <rth@redhat.com>
11376
11377         * expr.h (promoted_input_arg): Remove decl.
11378         * function.c (promoted_input_arg): Merge into ...
11379         * combine.c (setup_incoming_promotions): ... only caller.
11380         Rearrange to avoid double loop.
11381
11382 2007-03-02  Ben Elliston  <bje@au.ibm.com>
11383             Peter Bergner  <bergner@vnet.ibm.com>
11384             Janis Johnson  <janis187@us.ibm.com>
11385
11386         * config/rs6000/dfp.md: New file.
11387         * config/rs6000/rs6000.md: Include dfp.md.
11388         (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
11389         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
11390         and TDmode decimal float modes in FP registers.
11391         (num_insns_constant): Likewise.
11392         (rs6000_legitimate_offset_address_p): Likewise.
11393         (rs6000_legitimize_address): Likewise.
11394         (rs6000_legitimize_reload_address): Likewise.
11395         (rs6000_legitimate_address): Likewise.
11396         (rs6000_emit_move): Likewise.
11397         (function_arg_boundary): Likewise.
11398         (function_arg_advance): Likewise.
11399         (rs6000_darwin64_record_arg_recurse): Likewise.
11400         (function_arg): Likewise.
11401         (rs6000_gimplify_va_arg): Likewise.
11402         (rs6000_split_multireg_move): Likewise.
11403         (rs6000_output_function_epilogue): Likewise.
11404         (rs6000_output_function_epilogue): Likewise.
11405         (rs6000_register_move_cost): Likewise.
11406         (rs6000_function_value): Likewise.
11407         (rs6000_libcall_value): Likewise.
11408
11409 2007-03-02  Richard Sandiford  <richard@codesourcery.com>
11410
11411         * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
11412
11413 2007-03-02  Richard Sandiford  <richard@codesourcery.com>
11414
11415         * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
11416         Use $MULTIDIR to choose between the kernel and RTP headers,
11417         and use $WIND_BASE and $WIND_USR to locate them.
11418
11419 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
11420
11421         * config/i386/i386.c (override_options): Put initialization of
11422         ix86_tune_mask and ix86_arch_mask to the correct place.
11423
11424 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
11425             Michael Meissner  <michael.meissner@amd.com>
11426
11427         PR target/31019
11428         * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
11429         (ARCHMASK): Define.
11430         (TARGET_CMOVE): Use ARCHMASK.
11431         (TARGET_CMPXCHG): Ditto.
11432         (TARGET_CMPXCHG8B): Ditto.
11433         (TARGET_XADD): Ditto.
11434         (TARGET_BSWAP): Ditto.
11435         * config/i386/i386.c (ix86_tune_mask): New global variable.
11436         (ix86_arch_mask): Ditto.
11437         (override_options): Initialize ix86_tune_mask and
11438         ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
11439         target_flags.
11440
11441 2007-03-02  Ben Elliston  <bje@au.ibm.com>
11442
11443         PR 30992
11444         * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
11445
11446 2007-03-02  Joseph Myers  <joseph@codesourcery.com>
11447
11448         * target.h (init_dwarf_reg_sizes_extra): New target hook.
11449         * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
11450         * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
11451         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
11452         hook.
11453         * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
11454         rs6000_init_dwarf_reg_sizes_extra): New.
11455         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
11456         SPE register high parts.
11457
11458 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
11459
11460         * Makefile.in: Add install-pdf target as
11461         copied from automake v1.10 rules.
11462         * configure.ac: Add install-pdf to target list.
11463         * configure: Regenerate.
11464
11465 2007-03-01  Paul Brook  <paul@codesourcery.com>
11466
11467         * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
11468         modes to LDRD for DImode.
11469         (output_move_double): Fixup out of range ldrd/strd.
11470         (vfp_secondary_reload_class): Rename...
11471         (coproc_secondary_reload_class): ... to this.  Add wb argument.
11472         * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
11473         coproc_secondary_reload_class for CLASS_IWMMXT.
11474         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
11475         * arm-protos.h (coproc_secondary_reload_class): Update prototype.
11476
11477 2007-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
11478
11479         * tree-ssa-loop-prefetch.c (determine_unroll_factor):  Bound the
11480         unroll factor by the estimated number of iterations.
11481         (loop_prefetch_arrays): Do not prefetch in loops that iterate less
11482         than prefetch latency.
11483
11484         * config/i386/driver-i386.c (describe_cache, detect_caches_amd,
11485         decode_caches_intel, detect_caches_intel): New functions.
11486         (host_detect_local_cpu): Use detect_caches_amd and
11487         detect_caches_intel.
11488
11489 2007-03-01  Richard Henderson  <rth@redhat.com>
11490
11491         * expr.c (emit_move_complex_push): Export.
11492         (emit_move_complex_parts): Split out from ...
11493         (emit_move_complex): ... here.
11494         * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
11495         * config/i386/i386.md (movcdi): New.
11496
11497 2007-03-01  Uros Bizjak  <ubizjak@gmail.com>
11498
11499         * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
11500         size of mode1 to check for tieable modes in MMX case.
11501
11502 2007-03-01  Richard Sandiford  <richard@codesourcery.com>
11503
11504         * Makefile.in (rtlanal.o): Depend on tree.h.
11505         * rtl.h (offset_within_section_p, split_const): Declare.
11506         * rtlanal.c: Include tree.h.
11507         (offset_within_block_p): New function, taken from
11508         mips_offset_within_object_p.
11509         (split_const): New function, taken from mips_split_const.
11510         * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
11511         Declare.
11512         * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
11513         (CONSTANT_ADDRESS_P): Only accept legitimate constants.
11514         (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
11515         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
11516         (m68k_illegitimate_symbolic_constant_p): New function.
11517         * config/m68k/m68k.md (movsi): Remove misleading predicates.
11518         If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
11519         symbolic constant that might be outside the symbol's section,
11520         move the symbol first and then add the offset.
11521         * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
11522         Override.
11523         * config/mips/mips.c (mips_split_const): Delete.
11524         (mips_offset_within_object_p): Delete.
11525         (mips_symbolic_constant_p): Use offset_within_section_p and
11526         split_const instead of mips_offset_within_object_p and
11527         mips_split_const.
11528         (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
11529         (mips_legitimize_const_move, print_operand_reloc)
11530         (mips_dangerous_for_la25_p): Use split_const instead of
11531         mips_split_const.
11532
11533 2007-02-28  Eric Christopher  <echristo@apple.com>
11534
11535         * Makefile.in (install-include-dir): Don't rm -rf include.
11536
11537 2007-02-28  Richard Guenther  <rguenther@suse.de>
11538
11539         PR middle-end/30364
11540         * fold-const.c (fold_binary): Do not associate expressions
11541         with more than one variable for integer types that do not wrap.
11542
11543 2007-02-28  Sandra Loosemore  <sandra@codesourcery.com>
11544
11545         * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
11546         Delete, and replace with...
11547         (fold_builtin_call_array): This.  Update callers to use it.
11548         * fold-const.c (fold_build_call_list): Delete, and replace with...
11549         (fold_build_call_array): This.
11550         (fold_build_call_list_initializer): Delete, and replace with...
11551         (fold_build_call_array_initializer): This.
11552         * tree.h: Update declarations to reflect above changes.
11553
11554         * c-typeck.c (build_function_call): Store converted arguments
11555         in a stack-allocated array instead of building a list.
11556         (convert_arguments): Store arguments in the array passed in as an
11557         argument, and return the actual number of arguments.
11558         * c-format.c: (check_function_format): Pass arguments in an
11559         array instead of a list.
11560         * c-common.c (check_function_nonnull): Likewise.
11561         (check_function_sentinel): Likewise.
11562         (check_function_arguments): Likewise.
11563         * c-common.h: Update declarations to reflect above changes.
11564
11565 2007-02-28  Jan Hubicka  <jh@suse.cz>
11566
11567         * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
11568         PRED_NEGATIVE_RETURN): Update outcomes.
11569
11570 2007-02-28  Bernd Schmidt  <bernd.schmidt@analog.com>
11571
11572         * calls.c (emit_library_call_value_1): Handle partial registers
11573         correctly when building up CALL_INSN_FUNCTION_USAGE.
11574
11575 2007-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11576
11577         * pa/predicates.md (move_src_operand): Allow zero for mode.
11578         * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
11579         move pattern.
11580
11581 2007-02-27  Uros Bizjak  <ubizjak@gmail.com>
11582
11583         PR target/30970
11584         * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
11585         *movv2df_internal): Enable pattern only for valid operand
11586         combinations.
11587         * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
11588         tie only 128bit modes. For MMX registers, tie only 64bit modes.
11589
11590 2007-02-27  Mike Stump  <mrs@apple.com>
11591
11592         * config/darwin-crt3.c: Avoid compilation when compiling for a
11593         kext multilib.
11594
11595 2007-02-27  Joseph Myers  <joseph@codesourcery.com>
11596
11597         * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
11598         FIXED_INCLUDE_DIR.
11599         (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
11600         for fixed headers and limits.h.
11601         (install-include-dir, install-headers-tar, install-headers-cpio,
11602         install-headers-cp, real-install-headers-tar,
11603         real-install-headers-cpio, real-install-headers-cp): Handle
11604         include-fixed as well as include.
11605         (install-mkheaders): Don't install files that go only in include
11606         not include-fixed.
11607         * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
11608         from GCC_INCLUDE_DIR.
11609         * gcc.c (process_command): Remove special -BstageN/ handling.
11610         (do_spec_1): Add include-fixed directories.
11611
11612 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
11613
11614         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
11615         _smulsi3_highpart.
11616         * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
11617         New functions.
11618         * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
11619         patterns.
11620
11621 2007-02-27  Mark Mitchell  <mark@codesourcery.com>
11622
11623         * c-common.c (get_priority): Add check for
11624         SUPPORTS_INIT_PRIORITY.
11625
11626 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
11627
11628         * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
11629
11630         * config/bfin/bfin.c: Include "cfglayout.h".
11631         (MAX_LSETUP_DISTANCE): New macro.
11632         (struct loop_info): New members incoming, incoming_src and
11633         incoming_dest.  Delete member predecessor.
11634         (length_for_loop): New function.
11635         (bfin_optimize_loop): Handle more different loop structures.
11636         (bfin_discover_loop): Rework detection of predecessor blocks by
11637         examining incoming edges.
11638         (bfin_discover_loops, bfin_free_loops): New functions, broken out of
11639         bfin_reorg_loops.
11640         (bfin_reorder_loops): New function.
11641         (bfin_reorg_loops): Use these three new functions.
11642
11643         * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
11644         REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
11645         (CONSTRAINT_LEN): Add entry for 'q'.
11646         (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
11647         Add 'q' constraints.
11648         (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
11649         (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
11650
11651         * config/bfin/bfin.md (add_with_carry): New pattern.
11652         (s_or_u, su_optab, su_modifier): New code macros/attrs.
11653         (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
11654         <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
11655         support unsigned multiplies too.  Removed incorrect commutativity from
11656         operand 1 constraint where appropriate.
11657         (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
11658         patterns.
11659         (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
11660         <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
11661         New patterns.
11662         (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
11663         usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
11664         usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
11665         usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
11666         usmulhisi_hh_huh): New patterns.
11667
11668         * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
11669         lshifthi3): Fix output template to use half reg for operand 2.
11670
11671         * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
11672         instead of R2.
11673
11674         * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
11675
11676 2007-02-27  Andreas Schwab  <schwab@suse.de>
11677
11678         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
11679
11680 2007-02-27  Jan Hubicka  <jh@suse.cz>
11681
11682         * predict.c (last_basic_block_p): Remove.
11683         (tree_estimate_probability): Update return heuristic for commonized
11684         return blocks.
11685
11686 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
11687
11688         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
11689
11690 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
11691
11692         * doc/include/gcc-common.texi (versionsubtitle): New macro.
11693         * doc/cpp.texi: Standardize title page.
11694         * doc/cppinternals.texi: Likewise.
11695         * doc/gcc.texi: Standardize title page, remove version number
11696         from copyright page.
11697         * doc/gccint.texi: Likewise.
11698         * doc/install.texi: Standardize title page, add table of
11699         contents.
11700
11701 2007-02-26  Jan Hubicka  <jh@suse.cz>
11702
11703         * predict.def: Set outcomes according to more recent results.
11704         (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
11705         Remove dead predictors.
11706         * predict.c (return_prediction): Fix pasto.
11707
11708 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
11709
11710         * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
11711         change; avoid a memory leak when returning early.
11712
11713 2007-02-26  Mark Mitchell  <mark@codesourcery.com>
11714
11715         * c-decl.c (static_ctors): Move to c-common.c.
11716         (static_dtors): Likewise.
11717         (finish_function): Use c_record_cdtor_fn.
11718         (build_cdtor): Move to c-common.c.
11719         (c_write_global_declarations): Use c_build_cdtor_fns.
11720         * c-common.h (static_ctors): Declare.
11721         (static_dtors): Likewise.
11722         (c_record_cdtor_fn): Likewise.
11723         (c_build_cdtor_fns): Likewise.
11724         * c-common.c (static_ctors): New variable.
11725         (static_dtors): Likewise.
11726         (c_record_cdtor_fn): New function.
11727         (build_cdtor): Move from c-decl.c
11728         (c_build_cdtor_fns): New function.
11729
11730         * output.h (assemble_addr_to_section): Declare.
11731         (get_cdtor_priority_section): Likewise.
11732         * varasm.c (assemble_addr_to_section): New function.
11733         (get_cdtor_priority_section): Likewise.
11734         (default_named_section_asm_out_destructor): Use them.
11735         (destor_dtor_section_asm_out_destructor): Likewise.
11736         (default_named_section_asm_out_constructor): Likewise.
11737         (default_ctor_section_asm_out_constructor): Likewise.
11738         * config.gcc (*-*-vxworks*): Include vxworks.o.
11739         * config/t-vxworks (vxworks.o): New target.
11740         * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
11741         (TARGET_ASM_CONSTRUCTOR): Define.
11742         (TARGET_ASM_DESTRUCTOR): Likewise.
11743         (vxworks_asm_out_constructor): Declare.
11744         (vxworks_asm_out_destructor): Likewise.
11745
11746         * c-common.c (get_priority): Check that we have not just an
11747         INTEGER_CST, but an integer constant with integeral type.
11748
11749 2007-02-25  Uros Bizjak  <ubizjak@gmail.com>
11750
11751         PR tree-optimization/30938
11752         * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
11753         use &dt[nargs-1] instead of &dt[nargs] in the call to
11754         vect_is_simple_use().
11755
11756 2007-02-25  Ulrich Weigand  <uweigand@de.ibm.com>
11757
11758         * reload.c (find_reloads_address_1): Handle PLUS expressions resulting
11759         from register elimination as PRE_MODIFY / POST_MODIFY increments.
11760         Do not attempt to handle MEM inside auto-inc expressions.
11761         * reload1.c (eliminate_regs_1): Do not attempt to handle elimination
11762         of a register modified by an auto-inc expression.  However, do handle
11763         elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
11764         (elimination_effects): Prohibit elimination of a register modified
11765         by an auto-inc expression.  Disable register elimination rules whose
11766         target register is modified by an auto-inc expression with variable
11767         increment.
11768
11769 2007-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
11770
11771         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
11772         off-by-one error.
11773         (array_at_struct_end_p): New function.
11774         (idx_infer_loop_bounds): Use it.
11775         (estimate_numbers_of_iterations_loop): Export.
11776         * predict.c (predict_loops): Use estimated_loop_iterations_int.
11777         Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
11778         (tree_estimate_probability): Call record_loop_exits.
11779         * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
11780         (estimated_loop_iterations, estimated_loop_iterations_int,
11781         estimated_loop_iterations_tree): New functions.
11782         (analyze_siv_subscript_cst_affine,
11783         compute_overlap_steps_for_affine_1_2,
11784         analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
11785         (analyze_miv_subscript): Use estimated_loop_iterations_tree.
11786         * predict.def (PRED_LOOP_ITERATIONS): Update comment.
11787         (PRED_LOOP_ITERATIONS_GUESSED): New.
11788         * cfgloop.c (record_loop_exits): Do nothing if there are no loops.
11789         * cfgloop.h (estimate_numbers_of_iterations_loop,
11790         estimated_loop_iterations_int): Declare.
11791
11792 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
11793
11794         * doc/extend.texi: Document optional priority argument to
11795         constructors and destructors.
11796         * tree.c (init_priority_for_decl): Adjust GTY markers.
11797         (init_ttree): Use priority-info hash functions for
11798         init_priority_for_decl.
11799         (tree_map_eq): Rename to ...
11800         (tree_map_base_eq): ... this.
11801         (tree_map_marked_p): Rename to ...
11802         (tree_map_base_marked_p): ... this.
11803         (tree_map_base_hash): New function.
11804         (decl_init_priority_lookup): Rework.
11805         (decl_fini_priority_lookup): New function.
11806         (decl_priority_info): New function.
11807         (decl_init_priority_insert): Use it.
11808         (decl_fini_priority_insert): Likewise.
11809         (decl_restrict_base_lookup): Adjust for refactoring of tree_map
11810         hierarchy.
11811         (decl_restrict_base_insert): Likewise.
11812         (decl_debug_expr_insert): Likewise.
11813         (decl_value_expr_lookup): Likewise.
11814         (decl_value_expr_insert): Likewise.
11815         * tree.h (priority_type): New type.
11816         (decl_init_priority_lookup): Use priority_type.
11817         (decl_fini_priority_lookup): New function.
11818         (decl_init_priority_insert): Use priority_type.
11819         (decl_fini_priority_insert): New function.
11820         (DECL_HAS_INIT_PRIORITY): Tweak comments.
11821         (DECL_INIT_PRIORITY): Likewise.
11822         (SET_DECL_INIT_PRIORITY): Add comment.
11823         (DECL_FINI_PRIORITY): New macro.
11824         (SET_DECL_FINI_PRIORITY): Likewise.
11825         (DEFAULT_INIT_PRIORITY): Document.
11826         (MAX_INIT_PRIORITY): Likewise.
11827         (MAX_RESERVED_INIT_PRIORITY): Likewise.
11828         (tree_map_base): New type.
11829         (tree_map_base_eq): New function.
11830         (tree_map_base_hash): Likewise.
11831         (tree_map_base_marked_p): Likewise.
11832         (tree_map): Inherit from tree_map_base.
11833         (tree_map_eq): Make it a macro.
11834         (tree_map_marked_p): Likewise.
11835         (tree_int_map): Inherit from tree_map_base.
11836         (tree_int_map_eq): Make it a macro.
11837         (tree_int_map_hash): Likewise.
11838         (tree_int_map_marked_p): Likewise.
11839         (tree_priority_map): New type.
11840         (tree_priority_map_eq): New macro.
11841         (tree_priority_map_hash): Likewise.
11842         (tree_priority_map_marked_p): Likewise.
11843         * varasm.c (emults_decl): Adjust for refactoring of tree_map
11844         hierarchy.
11845         (emutls_common_1): Likewise.
11846         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
11847         * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
11848         of tree_map hierarchy.
11849         * tree-cfg.c (move_stmt_r): Likewise.
11850         (new_label_mapper): Likewise.
11851         * c-tree.h (c_expand_body): Move to ...
11852         * c-common.h (c_expand_body): ... here.
11853         * c-decl.c (c_expand_body): Move to ...
11854         * c-common.c (c_expand_body): ... here.
11855         (c_common_attribute_table): Allow 1 argument for the constructor
11856         and destructor attributes.
11857         (get_priority): New function.
11858         (handle_constructor_attribute): Set DECL_INIT_PRIORITY.
11859         (handle_destructor_attribute): Set DECL_FINI_PRIORITY.
11860
11861 2007-02-24  Jan Hubicka  <jh@suse.cz>
11862
11863         PR middle-end/30509
11864         * tree-inline.c (copy_bb): Produce exact copy of EH info when
11865         copying for inlining.
11866
11867 2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
11868             Jan Hubicka  <jh@suse.cz>
11869
11870         PR target/30778
11871         * i386.c (counter_mode): New function.
11872         (expand_set_or_movmem_via_loop): Use it.
11873         (expand_movmem_epilogue): Likewise; fix pasto.
11874         (ix86_expand_movmem): Do emit guard even for constant counts.
11875         (ix86_expand_setmem): Likewise.
11876
11877 2007-02-25  Nick Clifton  <nickc@redhat.com>
11878
11879         * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
11880         (JUMP_TABLES_IN_TEXT_SECTION): Define.
11881
11882 2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
11883
11884         PR target/30770
11885         * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
11886         count argument with 0x10, not with 0x16.
11887         (expand_setmem_epilogue): Ditto.
11888
11889 2007-02-24  Mike Stump  <mrs@apple.com>
11890
11891         * config/i386/i386.c (output_pic_addr_const): Stubify optimized
11892         symbols.
11893
11894 2007-02-24  Richard Guenther  <rguenther@suse.de>
11895
11896         PR middle-end/30951
11897         * fold-const.c (fold_binary): Fold x +- CST op x for
11898         EQ_EXPR and NE_EXPR.
11899
11900 2007-02-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11901
11902         * pa.md (muldi3): Force subregs to registers in 64-bit expander.
11903
11904 2007-02-24  Jan Hubicka  <jh@suse.cz>
11905
11906         * cgraphunit.c (decide_is_function_needed): Honor
11907         -fkeep-inline-functions.
11908
11909 2007-02-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11910
11911         * builtins.c (fold_builtin_modf): New.
11912         (fold_builtin_2): Use it.
11913
11914 2007-02-24  Bernd Schmidt  <bernd.schmidt@analog.com>
11915
11916         * loop-iv.c (implies_p): Detect additional cases where A implies B.
11917         (determine_max_iter): Take additional LOOP arg; all callers changed.
11918         Lose broken logic dealing with PLUS.  Try to limit the upper bound by
11919         one using simplifications.
11920         (simplify_using_initial_values): Return if the expression becomes
11921         invalid due to altered regs.
11922
11923 2007-02-23  DJ Delorie  <dj@redhat.com>
11924
11925         * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
11926
11927 2007-02-23  Mike Stump  <mrs@apple.com>
11928
11929         * tlink.c (scan_linker_output): Parse linker messages from
11930         darwin9's linker better.
11931
11932 2007-02-23  Steve Ellcey  <sje@cup.hp.com>
11933
11934         PR debug/29614
11935         * varpool.c (varpool_assemble_pending_decls):  Set
11936         varpool_last_needed_node to null.
11937
11938 2007-02-23  DJ Delorie  <dj@redhat.com>
11939
11940         * config/i386/i386.c (ix86_data_alignment): Don't specify an
11941         alignment bigger than the object file can handle.
11942
11943 2007-02-23  Uros Bizjak  <ubizjak@gmail.com>
11944
11945         PR target/30825
11946         * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
11947         zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
11948         (*movsf_1): Penalize MMX moves.
11949
11950 2007-02-23  Bernd Schmidt  <bernd.schmidt@analog.com>
11951
11952         * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
11953         2^32-1 or more times unless flag_unsafe_loop_optimizations.
11954
11955         * loop-iv.c (determine_max_iter): Moved in front of its sole user.
11956
11957 2007-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11958
11959         * builtins.c (fold_builtin_logb, fold_builtin_significand): New.
11960         (fold_builtin_1): Use them.
11961         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
11962         BUILT_IN_SIGNIFICAND.
11963
11964 2007-02-23  H.J. Lu  <hongjiu.lu@intel.com>
11965
11966         * config/i386/i386.c (bdesc_1arg): Initialize
11967         IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
11968         "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
11969         (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
11970         and IX86_BUILTIN_MOVSLDUP.
11971
11972 2007-02-22  Paolo Bonzini  <bonzini@gnu.org>
11973
11974         PR rtl-optimization/30841
11975         * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.
11976
11977 2007-02-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11978
11979         * builtins.c (fold_builtin_frexp): New.
11980         (fold_builtin_2): Use it.
11981
11982 2007-02-22  Mark Mitchell  <mark@codesourcery.com>
11983
11984         * doc/invoke.texi (Spec Files): Document getenv spec function.
11985
11986         * gcc.c (getenv_spec_function): New function.
11987         (static_spec_functions): Add it.
11988         * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
11989         (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
11990         header files.
11991
11992 2007-02-22  Michael Matz  <matz@suse.de
11993
11994         PR c++/29433
11995         * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
11996         (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
11997
11998 2007-02-22  Ian Lance Taylor  <iant@google.com>
11999
12000         PR debug/30898
12001         * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
12002         (mem_loc_descriptor): Call it.
12003
12004 2007-02-22  Zdenek Dvorak  <dvorakz@suse.cz>
12005             Ira Rosen  <irar@il.ibm.com>
12006
12007         * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
12008
12009 2007-02-22  Ira Rosen  <irar@il.ibm.com>
12010
12011         PR tree-optimization/30843
12012         * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
12013         stores only after all the group is vectorized.
12014
12015 2007-02-22  Dorit Nuzman  <dorit@il.ibm.com>
12016
12017         PR tree-optimization/30858
12018         * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
12019         in the reduction cycle have a single use in the loop.
12020         * tree-vectorizer.h (relevant): Add documentation.
12021
12022 2007-02-20  Mike Stump  <mrs@apple.com>
12023
12024         * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
12025         * configure: Regenerate.
12026
12027 2007-02-21  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
12028
12029         Change the defaults of some parameters and options.
12030         * config/spu/spu-protos.h (spu_optimization_options): Declare.
12031         * config/spu/spu.c (spu_optimization_options): Add.
12032         (spu_override_options): Change params in spu_optimization_options.
12033         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
12034
12035         Register 127 is only 16 byte aligned when used as a frame pointer.
12036         * config/spu/spu-protos.h (spu_init_expanders): Declare.
12037         * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
12038         HARD_FRAME_POINTER_REGNUM.
12039         (spu_legitimate_address):  Use regno_aligned_for_reload.
12040         (regno_aligned_for_load):  HARD_FRAME_POINTER_REGNUM is only 16 byte
12041         aligned when frame_pointer_needed is true.
12042         (spu_init_expanders): New.  Set alignment of HARD_FRAME_POINTER_REGNUM
12043         to 8 bits.
12044         * config/spu/spu.h (INIT_EXPANDERS): Define.
12045
12046         Make sure shift and rotate instructions have valid immediate operands.
12047         * config/spu/predicates.md (spu_shift_operand): Remove.
12048         * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
12049         * config/spu/constraints.md (W, O): Extend range.
12050         * config/spu/spu.md (umask, nmask): Define.
12051         (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
12052         lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
12053         rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
12054         rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
12055         spu_nonmem_operand instead of spu_shift_operands.  Use new modifiers.
12056         (lshr<mode>3_reg):  Fix rtl description.
12057
12058         Make sure mulhisi immediate operands are valid.
12059         * config/spu/predicates.md (imm_K_operand): Add.
12060         * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
12061
12062         Generate constants using fsmbi and andi.
12063         * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
12064         (print_operand, spu_split_immediate, classify_immediate,
12065         fsmbi_const_p): Handle IC_FSMBI2.
12066
12067         Correctly handle a CONST_VECTOR containing symbols.
12068         * config/spu/spu.c (print_operand): Handle HIGH correctly.
12069         (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
12070         (immediate_load_p): Allow symbols that use 2 instructions to create.
12071         (classify_immediate, spu_builtin_splats):  Don't accept a CONST_VECTOR
12072         with symbols when flag_pic is set.
12073         (const_vector_immediate_p): New.
12074         (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
12075         accept a CONST_VECTOR with symbols.
12076         (spu_legitimate_constant_p): Use const_vector_immediate_p.  Don't
12077         accept a CONST_VECTOR with symbols when flag_pic is set.  Handle HIGH
12078         correctly.
12079         * config/spu/spu.md (high, low): Delete.
12080         (low_<mode>): Define.
12081
12082         Remove INTRmode and INTR_REGNUM, which didn't work.
12083         * config/spu/spu.c (spu_conditional_register_usage): Remove reference
12084         of INTR_REGNUM.
12085         * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
12086         set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
12087         peephole2 pattern): Don't use INTR or 131.
12088         (movintrcc): Delete.
12089         * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
12090         CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
12091         * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
12092         (UNSPEC_SET_INTR): Add.
12093         * config/spu/spu-modes.def (INTR): Remove.
12094
12095         More accurate warnings about run-time relocations.
12096         * config/spu/spu.c (reloc_diagnostic): Test in_section.
12097
12098         Correctly warn about immediate arguments to specific intrinsics.
12099         * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
12100         (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
12101         the instruction predicate.
12102
12103         Fix tree check errors with latest update.
12104         * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
12105         CALL_EXPR_ARG.
12106         (spu_expand_builtin): Use CALL_EXPR_FN.
12107
12108         Add missing specific intrinsics.
12109         * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
12110         si_bislede.
12111         * config/spu/spu_internals.h: Ditto.
12112
12113         Fix incorrect operand modifiers.
12114         * config/spu/spu-builtins.md (spu_mpy, spu_mpyu):  Remove use of %H.
12115         * config/spu/spu.md (xor<mode>3):  Change %S to %J.
12116
12117         Optimize one case of zero_extend of a vec_select.
12118         * config/spu/spu.md (_vec_extractv8hi_ze):  Add.
12119
12120         Accept any immediate for hbr.
12121         * config/spu/spu.md (hbr):  Change s constraints to i.
12122
12123 2007-02-21  Paul Brook  <paul@codesourcery.com>
12124
12125         * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
12126         condexec_count when skipping USE and CLOBBER.
12127
12128 2007-02-21  Nick Clifton  <nickc@redhat.com>
12129
12130         * common.opt (Warray-bounds): Add Warning attribute.
12131         (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
12132         Likewise.
12133         (fsized-zeroes): Add Optimization attribute.
12134         (fsplit-wide-types, ftree-scev-cprop): Likewise.
12135         * c.opt (Wc++0x-compat): Add Warning attribute.
12136
12137 2007-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
12138
12139         PR middle-end/30761
12140         * reload1.c (eliminate_regs_in_insn): In the single_set special
12141         case, attempt to re-recognize the insn before falling back to
12142         having reload fix it up.
12143
12144 2007-02-20  Eric Christopher  <echristo@gmail.com>
12145
12146         * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
12147         Rewrite accordingly.
12148         (frv_read_iacc_argument): Ditto.
12149         (frv_expand_set_builtin): Take a call instead of arglist, update for
12150         above changes.
12151         (frv_expand_unop_builtin): Ditto.
12152         (frv_expand_binop_builtin): Ditto.
12153         (frv_expand_cut_builtin): Ditto.
12154         (frv_expand_binopimm_builtin): Ditto.
12155         (frv_expand_voidbinop_builtin): Ditto.
12156         (frv_expand_int_void2arg): Ditto.
12157         (frv_expand_prefetches): Ditto.
12158         (frv_expand_voidtriop_builtin): Ditto.
12159         (frv_expand_voidaccop_builtin): Ditto.
12160         (frv_expand_load_builtin): Ditto.
12161         (frv_expand_store_builtin): Ditto.
12162         (frv_expand_mdpackh_builtin): Ditto.
12163         (frv_expand_mclracc_builtin): Ditto.
12164         (frv_expand_mrdacc_builtin): Ditto.
12165         (frv_expand_mwtacc_builtin): Ditto.
12166         (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
12167         calls for above.
12168
12169 2007-02-20  Janis Johnson  <janis187@us.ibm.com>
12170
12171         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
12172         * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
12173         cmpb instruction.
12174         (HAVE_GAS_DFP): Check for assembler support of decimal floating
12175         point instructions.
12176         * configure: Regenerate.
12177         * config.in: Regenerate.
12178         * config/rs6000/rs6000.opt (mcmpb, mdfp): New.
12179         * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
12180         masks to power6 and power6x and to POWERPC_MASKS.
12181         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
12182         _ARCH_PWR6.
12183         * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
12184         * config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
12185         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
12186         Access PROTOTYPE as variable, not mask.
12187
12188 2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>
12189
12190         * rtl.h (remove_reg_equal_equiv_notes): New prototype.
12191         * rtlanal.c (remove_reg_equal_equiv_notes): New function.
12192         * combine.c (adjust_for_new_dest): Use it.
12193         * postreload.c (reload_combine): Likewise.
12194
12195 2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>
12196
12197         * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
12198         notes on an insn with multiple sets, even if single_set returns
12199         non-NULL for that insn.
12200
12201 2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12202
12203         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
12204         scalbn and scalbln.
12205
12206 2007-02-20  Geoffrey Keating  <geoffk@apple.com>
12207
12208         * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
12209         if user didn't pass it.
12210         * config/i386/darwin.h (CC1_SPEC): Likewise.
12211         * config/rs6000/darwin.h (CC1_SPEC): Likewise.
12212         (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
12213         -mmacosx-version-min.
12214
12215 2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12216             Uros Bizjak  <ubizjak@gmail.com>
12217
12218         * optabs.h (enum optab_index): Add new OTI_scalb.
12219         (scalb_optab): Define corresponding macro.
12220         * optabs.c (init_optabs): Initialize scalb_optab.
12221         * genopinit.c (optabs): Implement scalb_optab using scalb?f3
12222         patterns.
12223         * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
12224         BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
12225         (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
12226         and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
12227         flag_unsafe_math_optimizations is set.
12228
12229         * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
12230         to implement scalbf, scalb and scalbl built-ins as inline x87
12231         intrinsics.
12232
12233 2007-02-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12234             DJ Delorie <dj@redhat.com>
12235
12236         PR other/30824
12237         * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
12238         (diagnostic_report_diagnostic): ... here, and turn them into real
12239         errors. If warnings are inhibited, no need to do anything.
12240
12241 2007-02-20  Uros Bizjak  <ubizjak@gmail.com>
12242
12243         * config/i386/i386.md (expm1xf2): Reorder insn sequence for
12244         better code generation.
12245
12246 2007-02-20  Ben Elliston  <bje@au.ibm.com>
12247
12248         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
12249
12250 2007-02-20  Kazu Hirata  <kazu@codesourcery.com>
12251
12252         * config/alpha/alpha.c, config/alpha/alpha.md,
12253         config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
12254         config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
12255         config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
12256         config/arm/lib1funcs.asm: Follow spelling conventions.
12257
12258         * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
12259         config/fr30/fr30.md, config/i386/i386.h,
12260         config/iq2000/iq2000.h, config/iq2000/predicates.md,
12261         config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
12262         config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
12263         config/pdp11/pdp11.c, config/pdp11/pdp11.h,
12264         config/rs6000/altivec.md, config/rs6000/rs6000.c,
12265         config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
12266         config/sparc/sparc.c, config/sparc/sparc.h,
12267         config/sparc/sparc.md, config/spu/constraints.md,
12268         config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
12269         conventions.
12270
12271 2007-02-20  Alan Modra  <amodra@bigpond.net.au>
12272
12273         PR target/29943
12274         * varasm.c (use_blocks_for_decl_p): Return false for decls with
12275         alias attribute.
12276
12277 2007-02-19  Kazu Hirata  <kazu@codesourcery.com>
12278
12279         * doc/invoke.texi (-ftree-lrs): Remove.
12280
12281 2007-02-19  Diego Novillo  <dnovillo@redhat.com>
12282
12283         * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
12284         NULL.
12285
12286 2007-02-19  Lee Millward  <lee.millward@codesourcery.com>
12287
12288         * config/ia64/ia64.c (ia64_expand_builtin): Use the
12289         new CALL_EXPR_FN macro for retrieving the function
12290         declaration of the input expression.
12291
12292 2007-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12293
12294         * c.opt (Waddress): New.
12295         * common.opt (Walways-true): Delete.
12296         (Wstring-literal-comparison): Delete.
12297         * doc/invoke.texi (Warning Options): Delete -Walways-true and
12298         -Wstring-literal-comparison. Add -Waddress.
12299         (Waddress): New.
12300         (Walways-true): Delete.
12301         (Wstring-literal-comparison): Delete.
12302         * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
12303         consistently instead of -Walways-true in example.
12304         * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
12305         * c-typeck.c (parser_build_binary_op): Replace
12306         -Wstring-literal-comparison and -Walways-true with -Waddress.
12307         * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
12308         with -Waddress.
12309
12310 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
12311
12312         * tree-cfg.c (dump_function_to_file): Be prepared for functions
12313         without DECL_STRUCT_FUNCTION initialized.
12314
12315 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
12316
12317         * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
12318         due to calls to functions taking pointers as parameters.
12319
12320 2007-02-19  Richard Henderson  <rth@redhat.com>
12321
12322         PR debug/29558
12323         * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
12324         in memory.
12325
12326 2007-02-19  Andreas Krebbel  <krebbel1@de.ibm.com>
12327
12328         * config/s390/s390.c (s390_call_saved_register_used,
12329         s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
12330         accessed to the new scheme.
12331
12332 2007-02-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
12333
12334         * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
12335         (cris_print_index, cris_print_operand, cris_print_operand_address)
12336         (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
12337         (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
12338         (cris_expand_pic_call_address): Use xxx_P predicate macros instead of
12339         GET_CODE () == xxx.
12340         * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
12341         EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
12342         GO_IF_LEGITIMATE_ADDRESS): Ditto.
12343         * config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
12344         (*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
12345         (*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
12346         (*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
12347         (*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
12348         (*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
12349         (uminsi3, call, call_value): Ditto.
12350         (define_split: indir_to_reg_split, unnamed): Ditto.
12351
12352 2007-02-19  Dorit Nuzman  <dorit@il.ibm.com>
12353
12354         PR tree-optimization/30975
12355         * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
12356         wrong assert.
12357
12358 2007-02-18  Eric Christopher  <echristo@gmail.com>
12359
12360         * mips.c (mips_prepare_builtin_arg): Add argnum parameter.
12361         Remove use of arglist.
12362         (mips_expand_builtin): Remove use of arglist, pass in expr.
12363         (mips_expand_builtin_direct): Rewrite handling for arglist removal.
12364         (mips_expand_builtin_movtf): Ditto.
12365         (mips_expand_builtin_compare): Ditto.
12366
12367 2007-02-19  Alexandre Oliva  <aoliva@redhat.com>
12368
12369         * tree-sra.c (sra_build_assignment): Replace assertion
12370         checking with a comment explaining why it can't be done.
12371
12372 2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>
12373
12374         PR middle-end/30833
12375         * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
12376         during CALL_EXPR representation conversion.
12377         * tree-ssa-propagate.c (set_rhs): Likewise.
12378
12379 2007-02-19  Alexandre Oliva  <aoliva@redhat.com>
12380
12381         * tree-sra.c (sra_build_assignment): Disable assertion checking
12382         for now.
12383
12384 2007-02-18  Roger Sayle  <roger@eyesopen.com>
12385
12386         * function.c (gimplify_parameters): Call build_gimple_modify_stmt
12387         instead of calling build2 with a GIMPLE_MODIFY_STMT.
12388         * gimple-low.c (lower_function_body, lower_builtin_setjmp):
12389         Likewise.
12390         * gimplify.c (build_stack_save_restore, gimplify_return_expr,
12391         gimplify_decl_expr,  gimplify_self_mod_expr, gimplify_cond_expr,
12392         gimplify_init_ctor_eval_range, gimple_push_cleanup,
12393         gimplify_omp_for, gimplify_omp_atomic_pipeline,
12394         gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
12395         force_gimple_operand): Likewise.
12396         * ipa-cp.c (constant_val_insert): Likewise.
12397         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
12398         lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
12399         perfect_nestify): Likewise.
12400         * langhooks.c (lhd_omp_assignment): Likewise.
12401         * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
12402         lower_copyprivate_clauses, lower_send_clauses,
12403         lower_send_shared_vars, expand_parallel_call,
12404         expand_omp_for_generic, expand_omp_for_static_nochunk,
12405         expand_omp_for_static_chunk, expand_omp_sections,
12406         lower_omp_single_copy, lower_omp_for_lastprivate,
12407         lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
12408         * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
12409         tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
12410         Likewise.
12411
12412 2007-02-19  Kazu Hirata  <kazu@codesourcery.com>
12413
12414         * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
12415         config/sh/sh.md: Follow spelling conventions.
12416
12417         * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
12418         config/frv/predicates.md: Follow spelling conventions.
12419
12420         * config/m68k/linux-unwind.h: Fix a comment typo.
12421         * target.h: Follow spelling conventions.
12422
12423 2007-02-18  Roger Sayle  <roger@eyesopen.com>
12424
12425         PR rtl-optimization/28173
12426         * simplify-rtx.c (simplify_binary_operation_1) <IOR>:  Optimize
12427         (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
12428         Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
12429         Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
12430         <AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).
12431
12432 2007-02-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12433
12434         * builtins.c (fold_builtin_load_exponent): New.
12435         (fold_builtin_2): Use it.
12436
12437 2007-02-18  Steven Bosscher  <steven@gcc.gnu.org>
12438
12439         PR rtl-optimization/30773
12440         * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
12441         if we fail to attach a REG_EQUIV note.
12442
12443 2007-02-18  David Edelsohn  <edelsohn@gnu.org>
12444             Roger Sayle  <roger@eyesopen.com>
12445
12446         * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.
12447
12448 2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>
12449
12450         * calls.c (initialize_argument_information): Pass original EXP
12451         and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments.  Move
12452         code to split complex arguments here, as part of initializing the
12453         ARGS array.
12454         (expand_call): Remove code that builds a list of arguments and
12455         inserts implicit arguments into it.  Instead, just count how many
12456         implicit arguments there will be so we can determine the size of
12457         the ARGS array, and let initialize_argument_information do the work.
12458         (split_complex_values): Delete unused function.
12459
12460 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
12461
12462         * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
12463
12464 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
12465
12466         * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
12467         for arg pointer based indexed addressing.
12468
12469 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
12470
12471         * config/ia64/ia64.h, config/ia64/ia64.md,
12472         config/ia64/predicates.md, config/ia64/sysv4.h: Follow
12473         spelling conventions.
12474
12475 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
12476
12477         * config/m68k/m68k.c (split_di): New.
12478         * config/m68k/m68k-protos.h: Declare split_di.
12479         * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
12480           Improve predicate handling and split constant shifts.
12481
12482 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
12483
12484         * config/m68k/m68k.md (extv,extzv,insv): disable dynamic
12485         parameter for register bitfield operations, general predicates
12486         cleanup
12487
12488 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
12489
12490         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
12491         * config/m68k/linux-unwind.h: New file.
12492
12493 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
12494
12495         * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
12496         config/i386/athlon.md, config/ia64/ia64.md,
12497         config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
12498         df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
12499         ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
12500         tree-ssa-loop-niter.c, tree-vect-analyze.c,
12501         tree-vect-transform.c: Fix comment typos.
12502
12503 2007-02-17  Kazu Hirata  <kazu@codesourcery.com>
12504
12505         * sched-deps.c (find_insn_list): Remove.
12506         * sched-int.h: Remove the prototype for find_insn_list.
12507
12508 2007-02-16  Geoffrey Keating  <geoffk@apple.com>
12509
12510         * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
12511         to linker.
12512         (DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
12513         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
12514         darwin_rs6000_override_options.
12515         (C_COMMON_OVERRIDE_OPTIONS): Expect
12516         darwin_macosx_version_min to be non-NULL always.
12517         (TARGET_C99_FUNCTIONS): Likewise.
12518         (CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
12519         (DARWIN_MINVERSION_SPEC): New.
12520         * config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
12521         * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
12522         to cc1*.
12523         (DARWIN_MINVERSION_SPEC): New.
12524         * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
12525         value.
12526         * config/darwin-c.c (darwin_cpp_builtins): Expect
12527         darwin_macosx_version_min to be non-NULL always.
12528
12529         * config/rs6000/rs6000.c: Clean up trailing whitespace.
12530
12531 2007-02-16  Uros Bizjak  <ubizjak@gmail.com>
12532
12533         * config/i386/i386.h (x86_use_xchgb): New.
12534         (TARGET_USE_XCHGB): New macro.
12535         * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
12536         * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
12537         Split after reload into bswaphi for shifts of 8.
12538         (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
12539         (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
12540         or when optimizing for size.
12541
12542 2007-02-16  Richard Guenther  <rguenther@suse.de>
12543             Christian Bruel  <christian.bruel@st.com>
12544
12545         * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
12546         DECLs but prefer SSA_NAMEs over DECLs.
12547
12548 2007-02-16  Richard Guenther  <rguenther@suse.de>
12549
12550         * tree-flow-inline.h (single_imm_use_p): Remove.
12551         (zero_imm_uses_p): Likewise.
12552         * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
12553         instead of single_imm_use_p.
12554         * tree-cfg.c (replace_uses_by): Use has_zero_use instead of
12555         zero_imm_uses_p.
12556
12557 2007-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12558
12559         PR other/27843
12560         * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
12561         nested double- and backquotes.
12562
12563 2007-02-15  Roger Sayle  <roger@eyesopen.com>
12564
12565         PR middle-end/30391
12566         * tree.c (expr_align): Handle MODIFY_EXPR.  GIMPLE_MODIFY_STMT
12567         should be unreachable.
12568         (build2_stat): Allow construction of MODIFY_EXPR at any time.
12569         For the time being redirect GIMPLE_MODIFY_STMT to the new
12570         (renamed) build_gimple_modify_stmt_stat.
12571         (build2_gimple_stat): Rename to...
12572         (build_gimple_modify_stmt_stat): Now longer take a CODE argument.
12573         Always build a GIMPLE_MODIFY_STMT node.
12574         * tree.h (build2_gimple, build2_gimple_stat): Delete.
12575         (build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
12576         declarations.
12577
12578         * tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
12579         gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
12580         * tree-complex.c (set_component_ssa_name, expand_complex_move,
12581         expand_complex_div_wide): Likewise.
12582         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
12583         * tree-ssa-loop-im.c (schedule_sm): Likewise.
12584         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
12585         * tree-ssa-loop-manip.c (create_iv): Likewise.
12586         * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
12587         abs_replacement): Likewise.
12588         * tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
12589         realify_fake_stores): Likewise.
12590
12591         * builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
12592         node rather than a GIMPLE_MODIFY_STMT node.
12593         (std_gimpify_va_arg_expr, expand_builtin_va_copy,
12594         fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
12595         Likewise.
12596         (integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
12597         * expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
12598         GIMPLE_MODIFY_STMT.
12599
12600 2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12601
12602         PR middle-end/30433
12603         * fold-const.c (fold_comparison): Add back the
12604         folding of constant complex comparisions.
12605
12606 2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12607
12608         PR middle-end/30729
12609         * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
12610         effects unknown to this function, return early.
12611
12612 2007-02-15  Ian Lance Taylor  <iant@google.com>
12613
12614         * lower-subreg.c (move_eh_region_note): New static function.
12615         (resolve_simple_move): Call it.
12616         (decompose_multiword_subregs): Track blocks for which we resolve a
12617         simple move which is also a control flow insn.  Pass them to
12618         find_many_sub_basic_blocks.
12619         (pass_lower_subreg): Add TODO_verify_flow.
12620         (pass_lower_subreg2): Likewise.
12621
12622 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
12623             Brooks Moses  <brooks.moses@codesourcery.com>
12624             Lee Millward  <lee.millward@codesourcery.com>
12625
12626         * tree.h (enum tree_code_class): Add tcc_vl_exp.
12627         (VL_EXP_CLASS_P): New.
12628         (TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
12629         TREE_CODE_LENGTH.
12630         (TREE_OPERAND_CHECK_CODE): Likewise.
12631         (GIMPLE_STMT_OPERAND_CHECK): Likewise.
12632         (TREE_RTL_OPERAND_CHECK): Likewise.
12633         (tree_operand_check_failed): Make second parameter the whole tree
12634         instead of its code.  Fixed callers.
12635         (VL_EXP_CHECK): New.
12636         (TREE_OPERAND_LENGTH): New.
12637         (VL_EXP_OPERAND_LENGTH): New.
12638         (CALL_EXPR_FN): New.
12639         (CALL_EXPR_STATIC_CHAIN): New.
12640         (CALL_EXPR_ARGS): New.
12641         (CALL_EXPR_ARG): New.
12642         (call_expr_nargs): New.
12643         (CALL_EXPR_ARGP): New.
12644         (build_nt_call_list): Declare.
12645         (build_vl_exp_stat): Declare.
12646         (build_vl_exp): New.
12647         (build_call_list): Declare.
12648         (build_call_nary): Declare.
12649         (build_call_valist): Declare.
12650         (build_call_array): Declare.
12651         (call_expr_arg): Declare.
12652         (call_expr_argp): Declare.
12653         (call_expr_arglist): Declare.
12654         (fold_build_call_list): Declare.
12655         (fold_build_call_list_initializer): Declare.
12656         (fold_call_expr): Declare to replace fold_builtin.
12657         (fold_builtin_fputs): Update to agree with modified definition.
12658         (fold_builtin_strcpy): Likewise.
12659         (fold_builtin_strncpy): Likewise.
12660         (fold_builtin_memory_chk): Likewise.
12661         (fold_builtin_stxcpy_chk): Likewise.
12662         (fold_builtin_strncpy_chk): Likewise.
12663         (fold_builtin_next_arg): Likewise.
12664         (fold_build_call_expr): Declare.
12665         (fold_builtin_call_list): Declare.
12666         (fold_builtin_call_valist): Declare.
12667         (build_call_expr): Declare.
12668         (validate_arglist): Update to agree with modified definition.
12669         (tree_operand_length): New.
12670         (call_expr_arg_iterator): New.
12671         (init_call_expr_arg_iterator): New.
12672         (next_call_expr_arg): New.
12673         (first_call_expr_arg): New.
12674         (more_call_expr_args_p): New.
12675         (FOR_EACH_CALL_EXPR_ARG): New.
12676
12677         * tree.c (tree_code_class_string): Add entries for tcc_vl_exp
12678         and tcc_gimple_stmt.
12679         (tree_code_size): Update documentation.  Use sizeof (tree) rather
12680         than sizeof (char *).
12681         (tree_size): Likewise.  Add case for tcc_vl_exp.
12682         (tree_node_structure): Add case for tcc_vl_exp.
12683         (contains_placeholder_p): Likewise.
12684         (substitute_in_expr): Likewise.
12685         (substitute_placeholder_in_expr): Likewise.
12686         (stabilize_reference_1): Likewise.
12687         (build3_stat): Remove logic for CALL_EXPRs.  Replace with assertion
12688         to diagnose breakage of this interface for constructing CALL_EXPRs.
12689         (build_nt): Add similar assertion here.
12690         (build_nt_call_list): New.
12691         (simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
12692         (iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
12693         TREE_CODE_LENGTH.
12694         (get_callee_fndecl): Use new CALL_EXPR accessors.
12695         (tree_operand_check_failed): Change parameters to pass entire node
12696         instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
12697         (process_call_operands): New.
12698         (build_vl_exp_stat): New.
12699         (build_call_list): New.
12700         (build_call_nary): New.
12701         (build_call_valist): New.
12702         (build_call_array): New.
12703         (walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
12704         (call_expr_arglist): New.
12705
12706         * tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
12707         tcc_vl_exp instead of a fixed-size tcc_expression.
12708
12709         * doc/c-tree.texi (CALL_EXPR): Document new representation and
12710         accessors for CALL_EXPRs.
12711         (AGGR_INIT_EXPR): Likewise.
12712
12713 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
12714             Brooks Moses  <brooks.moses@codesourcery.com>
12715             Lee Millward  <lee.millward@codesourcery.com>
12716
12717         * builtins.c (c_strlen): Return NULL_TREE instead of 0.
12718         (expand_builtin_nonlocal_goto): Change parameter to be entire
12719         CALL_EXPR instead of an arglist.  Use new CALL_EXPR accessors.
12720         (expand_builtin_prefetch): Likewise.
12721         (expand_builtin_classify_type): Likewise.
12722         (mathfn_built_in): Return NULL_TREE instead of 0.
12723         (expand_errno_check): Use new CALL_EXPR accessors.
12724         (expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
12725         Return NULL_RTX instead of 0.
12726         (expand_builtin_mathfn_2): Likewise.
12727         (expand_builtin_mathfn_3): Likewise.
12728         (expand_builtin_interclass_mathfn): Likewise.
12729         (expand_builtin_sincos): Likewise.
12730         (expand_builtin_cexpi): Likewise.
12731         (expand_builtin_int_roundingfn): Likewise.
12732         (expand_builtin_int_roundingfn_2): Likewise.
12733         (expand_builtin_pow): Likewise.
12734         (expand_builtin_powi): Likewise.
12735         (expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
12736         of arglist, fixing callers appropriately.  Use new CALL_EXPR
12737         accessors and constructors.  Return NULL_RTX instead of 0.
12738         (expand_builtin_strstr): Likewise.
12739         (expand_builtin_strchr): Likewise.
12740         (expand_builtin_strrchr): Likewise.
12741         (expand_builtin_strpbrk): Likewise.
12742         (expand_builtin_memcpy): Likewise.
12743         (expand_builtin_mempcpy): Likewise.
12744         (expand_builtin_mempcpy_args): New.
12745         (expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
12746         (expand_builtin_memmove_args): New.
12747         (expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
12748         (expand_movstr): Likewise.
12749         (expand_builtin_strcpy): Likewise.
12750         (expand_builtin_strcpy_args): New.
12751         (expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
12752         (expand_builtin_strncpy): Likewise.
12753         (expand_builtin_memset): Likewise.
12754         (expand_builtin_memset_args): New.
12755         (expand_builtin_bzero): Similarly to expand_builtin_memset.
12756         (expand_builtin_memcmp): Likewise.
12757         (expand_builtin_strcmp): Likewise.
12758         (expand_builtin_strncmp): Likewise.
12759         (expand_builtin_strcat): Likewise.
12760         (expand_builtin_strncat): Likewise.
12761         (expand_builtin_strspn): Likewise.
12762         (expand_builtin_strcspn): Likewise.
12763         (expand_builtin_args_info): Likewise.
12764         (expand_builtin_va_start): Likewise.
12765         (gimplify_va_arg_expr): Likewise.
12766         (expand_builtin_va_end): Likewise.
12767         (expand_builtin_va_copy): Likewise.
12768         (expand_builtin_frame_address): Likewise.
12769         (expand_builtin_alloca): Likewise.
12770         (expand_builtin_bswap): Likewise.
12771         (expand_builtin_unop): Likewise.
12772         (expand_builtin_fputs): Likewise.
12773         (expand_builtin_expect): Likewise.
12774         (expand_builtin_fabs): Likewise.
12775         (expand_builtin_copysign): Likewise.
12776         (expand_builtin_printf): Likewise.
12777         (expand_builtin_fprintf): Likewise.
12778         (expand_builtin_sprintf): Likewise.
12779         (expand_builtin_init_trampoline): Likewise.
12780         (expand_builtin_signbit): Likewise.
12781         (expand_builtin_fork_or_exec): Likewise.
12782         (expand_builtin_sync_operation): Likewise.
12783         (expand_builtin_compare_and_swap): Likewise.
12784         (expand_builtin_lock_test_and_set): Likewise.
12785         (expand_builtin_lock_release): Likewise.
12786         (expand_builtin): Likewise.
12787         (builtin_mathfn_code): Likewise.
12788
12789         (fold_builtin_constant_p): Pass call arguments individually instead
12790         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
12791         accessors and constructors.  Return NULL_TREE instead of 0.
12792         (fold_builtin_expect): Likewise.
12793         (fold_builtin_classify_type): Likewise.
12794         (fold_builtin_strlen): Likewise.
12795         (fold_builtin_nan): Likewise.
12796         (integer_valued_real_p): Likewise.
12797         (fold_trunc_transparent_mathfn): Likewise.
12798         (fold_fixed_mathfn): Likewise.
12799         (fold_builtin_cabs): Likewise.
12800         (fold_builtin_sqrt): Likewise.
12801         (fold_builtin_cbrt): Likewise.
12802         (fold_builtin_cos): Likewise.
12803         (fold_builtin_cosh): Likewise.
12804         (fold_builtin_tan): Likewise.
12805         (fold_builtin_sincos): Likewise.
12806         (fold_builtin_cexp): Likewise.
12807         (fold_builtin_trunc): Likewise.
12808         (fold_builtin_floor): Likewise.
12809         (fold_builtin_ceil): Likewise.
12810         (fold_builtin_round): Likewise.
12811         (fold_builtin_int_roundingfn): Likewise.
12812         (fold_builtin_bitop): Likewise.
12813         (fold_builtin_bswap): Likewise.
12814         (fold_builtin_logarithm): Likewise.
12815         (fold_builtin_hypot): Likewise.
12816         (fold_builtin_pow): Likewise.
12817         (fold_builtin_powi): Likewise.
12818         (fold_builtin_exponent): Likewise.
12819         (fold_builtin_memset): Likewise.
12820         (fold_builtin_bzero): Likewise.
12821         (fold_builtin_memory_op): Likewise.
12822         (fold_builtin_bcopy): Deleted; call site changed to invoke
12823         fold_builtin_memory_op directly.
12824         (fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
12825         (fold_builtin_strncpy): Likewise.
12826         (fold_builtin_memcmp): Likewise.
12827         (fold_builtin_strcmp): Likewise.
12828         (fold_builtin_strncmp): Likewise.
12829         (fold_builtin_signbit): Likewise.
12830         (fold_builtin_copysign): Likewise.
12831         (fold_builtin_isascii): Likewise.
12832         (fold_builtin_toascii): Likewise.
12833         (fold_builtin_isdigit): Likewise.
12834         (fold_builtin_fabs): Likewise.
12835         (fold_builtin_abs): Likewise.
12836         (fold_builtin_fmin_fmax): Likewise.
12837         (fold_builtin_carg): Likewise.
12838         (fold_builtin_classify): Likewise.
12839         (fold_builtin_unordered_cmp): Likewise.
12840
12841         (fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
12842         New functions split out from fold_builtin_1.
12843         (fold_builtin_n): New.
12844         (fold_builtin_varargs): New.
12845         (fold_builtin): Deleted.  Most callers changed to use fold_call_expr
12846         instead.
12847         (fold_call_expr): New.
12848         (build_function_call_expr): Rewrite to use new helper function.
12849         (fold_builtin_call_list): New.
12850         (build_call_expr): New.
12851         (fold_builtin_call_valist): New.
12852         (rewrite_call_expr): New.
12853         (validate_arg): New.
12854         (validate_arglist): Change parameter to be entire CALL_EXPR instead
12855         of an arglist.  Change return type to bool.  Use new CALL_EXPR
12856         accessors.
12857
12858         (fold_builtin_strstr):  Pass call arguments individually instead
12859         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
12860         accessors and constructors.  Return NULL_TREE instead of 0.
12861         (fold_builtin_strchr): Likewise.
12862         (fold_builtin_strrchr): Likewise.
12863         (fold_builtin_strpbrk): Likewise.
12864         (fold_builtin_strcat): Likewise.
12865         (fold_builtin_strncat): Likewise.
12866         (fold_builtin_strspn): Likewise.
12867         (fold_builtin_strcspn): Likewise.
12868         (fold_builtin_fputs): Likewise.
12869         (fold_builtin_next_arg): Likewise.
12870         (fold_builtin_sprintf): Likewise.
12871
12872         (expand_builtin_object_size): Use new CALL_EXPR accessors.  Use
12873         NULL_RTX instead of 0.
12874         (expand_builtin_memory_chk): Likewise.
12875         (maybe_emit_chk_warning): Likewise.
12876         (maybe_emit_sprintf_chk_warning): Likewise.
12877
12878         (fold_builtin_object_size): Pass call arguments individually instead
12879         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
12880         accessors and constructors.  Return NULL_TREE instead of 0.
12881         (fold_builtin_memory_chk): Likewise.
12882         (fold_builtin_stxcpy_chk): Likewise.
12883         (fold_builtin_strncpy_chk): Likewise.
12884         (fold_builtin_strcat_chk): Likewise.
12885         (fold_builtin_strcat_chk): Likewise.
12886         (fold_builtin_strncat_chk): Likewise.
12887         (fold_builtin_sprintf_chk): Likewise.
12888         (fold_builtin_snprintf_chk): Likewise.
12889         (fold_builtin_printf): Likewise.
12890         (fold_builtin_vprintf): Likewise.
12891
12892         * fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
12893         constructors.
12894         (operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
12895         (make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
12896         (extract_muldiv_1): Add VL_EXP_CLASS_P case.
12897         (fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
12898         (fold_unary): Likewise.
12899         (fold_binary): Likewise.
12900         (fold_ternary): Remove CALL_EXPR case, since they are no longer
12901         ternary expressions.
12902         (fold): Add logic for tcc_vl_exp.
12903         (fold_checksum_tree):  Make it know about tcc_vl_exp.  Use
12904         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
12905         (fold_build3_stat): Add assertion to flag broken interface for
12906         constructing CALL_EXPRs.
12907         (fold_build_call_list): New.
12908         (fold_build_call_list_initializer): New.
12909         (tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
12910         constructors.
12911         (fold_strip_sign_ops): Likewise.
12912
12913 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
12914             Brooks Moses  <brooks.moses@codesourcery.com>
12915             Lee Millward  <lee.millward@codesourcery.com>
12916
12917         * tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
12918         accessors and dump arguments explicitly.
12919
12920         * tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
12921         TREE_CODE_LENGTH.
12922         (dump_generic_node): Use new CALL_EXPR accessors and walk arguments
12923         explicitly.
12924         (print_call_name): Use new CALL_EXPR accessors.
12925
12926         * print-tree.c (print_node): Add case tcc_vl_exp.  Print
12927         CALL_EXPR arguments explicitly instead of as a list.  Use
12928         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
12929
12930         * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
12931         (vrp_visit_stmt): Likewise.
12932
12933         * tree-ssa-loop-im.c (outermost_invariant_loop_expr):  Make it
12934         know about tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of
12935         TREE_CODE_LENGTH.
12936         (force_move_till_expr): Likewise.
12937
12938         * targhooks.c (default_external_stack_protect_fail): Use
12939         build_call_expr instead of build_function_call_expr.
12940         (default_hidden_stack_protect_fail): Likewise.
12941
12942         * tree-complex.c (expand_complex_libcall): Use build_call_expr to
12943         build the call.
12944
12945         * cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
12946         and walk arguments explicitly.
12947
12948         * tree-ssa-loop-niter.c (simplify_replace_tree): Use
12949         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
12950         (expand_simple_operations): Likewise.
12951         (infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
12952
12953         * gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
12954         of TREE_CODE_LENGTH.
12955         (walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
12956
12957         * optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
12958         instead of TREE_CODE_LENGTH.
12959
12960         * value_prof.c (tree_ic): Use new CALL_EXPR accessors.
12961         (tree_ic_transform): Likewise.
12962         (interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
12963         parameter instead of arglist.  Fix callers.
12964         (tree_stringop_fixed_value): Use new CALL_EXPR accessors.
12965         (tree_stringops_transform): Likewise.
12966         (tree_indirect_call_to_profile): Likewise.
12967         (tree_stringops_values_to_profile): Likewise.
12968
12969         * tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
12970         (eliminate_tail_call): Likewise.
12971
12972         * ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
12973
12974         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
12975         Use TREE_OPERAND_LENGTH and generalize to handle any number of
12976         operands.
12977         (instantiate_parameters_1): Can't handle tcc_vl_exp here.
12978
12979         * omp-low.c (build_omp_barrier): Use build_call_expr.
12980         (lower_rec_input_clauses): Likewise.
12981         (lower_reduction_clauses): Likewise.
12982         (expand_parallel_call): Likewise.
12983         (maybe_catch_exception): Likewise.
12984         (expand_omp_for_generic): Likewise.
12985         (expand_omp_for_static_nochunk): Likewise.
12986         (expand_omp_sections): Likewise.
12987         (lower_omp_single_simple): Likewise.
12988         (lower_omp_single_copy): Likewise.
12989         (lower_omp_master): Likewise.
12990         (lower_omp_ordered): Likewise.
12991         (lower_omp_critical): Likewise.
12992
12993         * ipa-reference.c (check-call): Use new CALL_EXPR iterator.
12994         (scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
12995
12996         * tree-gimple.c (is_gimple_call_addr): Fix doc.
12997         (recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
12998         TREE_CODE_LENGTH.  Add tcc_vl_exp case.
12999
13000         * tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
13001         and generalize to handle any number of operands.
13002         (chrec_contains_undetermined): Likewise.
13003         (tree_contains_chrecs): Likewise.
13004         (evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
13005
13006         * cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
13007
13008         * tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors.  Use
13009         fold_call_expr instead of fold_builtin.
13010         (ccp_fold_builtin): Likewise.  Update calls into builtins.c to
13011         match declarations there.
13012         (fold_stmt): Use new CALL_EXPR constructor and accessors.  Doc
13013         updates.
13014
13015         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
13016         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
13017
13018         * ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
13019         (scan_function): Add case tcc_vl_exp for CALL_EXPR.
13020
13021         * tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
13022         accessors.
13023
13024         * tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
13025         (execute_cse_sincos): Use new CALL_EXPR accessors.
13026
13027         * tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
13028
13029         * gimple-low.c (lower_function_body): Use build_call_expr.
13030         (lower_builtin_setjmp): Likewise.
13031
13032         * expr.c (emit_block_move_via_libcall): Use build_call_expr.
13033         (set_storage_via_libcall): Likewise.
13034         (safe_from_p): Add tcc_vl_exp case.  Use TREE_OPERAND_LENGTH
13035         instead of TREE_CODE_LENGTH.
13036         (expand_expr_real_1): Use new CALL_EXPR accessors.
13037
13038         * tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
13039         generalize to handle any number of operands.
13040         (TB_parent_eq): Likewise.
13041
13042         * predict.c (expr_expected_value): Use new CALL_EXPR accessors.
13043         (strip_builtin_expect): Likewise.
13044
13045         * function.c (gimplify_parameters): Use build_call_expr.
13046
13047         * tree-vectorizer.c (vect_is_simple_reduction): Use
13048         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
13049
13050         * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
13051         (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
13052
13053         * tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
13054         iterators.
13055
13056         * gimplify.c (build_stack_save_restore): Use build_call_expr.
13057         (gimplify_decl_expr): Likewise.
13058         (gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
13059         Use new CALL_EXPR iterators.
13060         (gimplify_modify_expr_to_memcpy): Use build_call_expr.
13061         (gimplify_modify_expr_to_memset): Likewise.
13062         (gimplify_variable_sized_compare): Likewise.
13063         (gimplify_omp_atomic_fetch_op): Likewise.
13064         (gimplify_omp_atomic_pipeline): Likewise.
13065         (gimplify_omp_atomic_mutex): Likewise.
13066         (gimplify_function_tree): Likewise.
13067
13068         * calls.c (alloca_call_p): Use new CALL_EXPR accessors.
13069         (call_expr_flags): Likewise.
13070         (expand_call): Likewise.
13071
13072         * except.c (expand_builtin_eh_return_data_regno): Pass entire
13073         CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
13074         accessors.
13075
13076         * coverage.c (create_coverage): Use build_call_expr.
13077
13078         * tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
13079         (temp_call_expr_obstack): New.
13080         (pool_copy_list): Delete.
13081         (temp_copy_call_expr): New.
13082         (phi_translate): Add case tcc_vl_exp for CALL_EXPR.  Use new
13083         CALL_EXPR accessors.  Get rid of special goo for copying argument
13084         lists and use temp_copy_call_expr instead.
13085         (valid_in_sets): Add case tcc_vl_exp for CALL_EXPR.  Use new
13086         CALL_EXPR accessors.
13087         (create_expression_by_pieces): Likewise.  Use build_call_array
13088         to construct the result instead of fold_build3.
13089         (create_value_expr_from): Add tcc_vl_exp.  Delete special goo for
13090         dealing with argument lists.
13091         (init_pre): Remove references to expression_node_pool and
13092         list_node_pool.  Init temp_call_expr_obstack instead.
13093         (fini_pre): Remove references to expression_node_pool and
13094         list_node_pool.
13095
13096         * tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
13097         and walk arguments explicitly instead of as a list.
13098
13099         * tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
13100         (mx_register_decls): Likewise.
13101         (mudflap_register_call): Likewise.
13102         (mudflap_finish_file): Likewise.
13103
13104         * ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
13105         (ipa_callsite_compute_param): Likewise.
13106
13107         * tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
13108         accessors and constructor.
13109
13110         * tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
13111         accessors and constructor.
13112         (convert_tramp_reference): Likewise.
13113         (convert_call_expr): Likewise.
13114         (finalize_nesting_tree_1): Likewise.
13115
13116         * tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
13117         accessors.
13118
13119         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
13120
13121         * tree-inline.c (initialize_inlined_parameters): Pass entire
13122         CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
13123         accessors.
13124         (estimate_num_insns_1): Use new CALL_EXPR accessors.
13125         (expand_call_inline): Tidy up call to initialize_inlined_parameters.
13126
13127         * tree-vect-transform.c (vect_create_epilog_for_reduction):  Use
13128         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
13129         (vectorizable_reduction): Likewise.
13130         (vectorizable_call): Use new CALL_EXPR iterators.
13131         (vectorizable_conversion): Use build_call_expr.
13132         (vectorizable_operation): Use TREE_OPERAND_LENGTH.
13133         (vect_gen_widened_results_half): Use build_call_expr.
13134         (vect_setup_realignment): Likewise.
13135         (vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
13136
13137         * tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
13138         (pass_through_call): Likewise.
13139         (compute_object_sizes): Likewise.  Use fold_call_expr instead of
13140         fold_builtin.
13141
13142         * tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
13143         (tree_gen_pow2_profiler): Likewise.
13144         (tree_gen_one_value_profiler): Likewise.
13145         (tree_gen_ic_func_profiler): Likewise.
13146         (tree_gen_average_profiler): Likewise.
13147         (tree_gen_ior_profiler): Likewise.
13148
13149         * tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
13150         (find_func_aliases): Use new CALL_EXPR accessors.  Add case
13151         tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
13152
13153         * tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
13154         of TREE_CODE_LENGTH.
13155
13156         * stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
13157         of TREE_CODE_LENGTH.
13158
13159         * convert.c (convert_to_real): Use new CALL_EXPR accessors and
13160         constructor.
13161         (convert_to_integer): Likewise.
13162
13163         * tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
13164         accessors.
13165
13166 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
13167             Brooks Moses  <brooks.moses@codesourcery.com>
13168             Lee Millward  <lee.millward@codesourcery.com>
13169
13170         * config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
13171         accessors.
13172         * config/frv/frv.c (frv_expand_builtin): Likewise.
13173         * config/s390/s390.c (s390_expand_builtin): Likewise.
13174
13175         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
13176         (sparc_expand_builtin): Use new CALL_EXPR accessors.
13177
13178         * config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
13179         (ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
13180         instead of arglist.  Use new CALL_EXPR accessors on it.  Fix callers.
13181         (ix86_expand_store_builtin): Likewise.
13182         (ix86_expand_unop_builtin): Likewise.
13183         (ix86_expand_unop1_builtin): Likewise.
13184         (ix86_expand_sse_compare): Likewise.
13185         (ix86_expand_sse_comi): Likewise.
13186         (ix86_expand_vec_init_builtin): Likewise.
13187         (ix86_expand_vec_ext_builtin): Likewise.
13188         (ix86_expand_vec_set_builtin): Likewise.
13189         (ix86_expand_builtin): Use new CALL_EXPR accessors.
13190
13191         * config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
13192         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
13193
13194         * config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
13195         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
13196         (iq2000_expand_builtin): Use new CALL_EXPR accessors.
13197
13198         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
13199         build_call_expr.
13200         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
13201         (rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
13202         arglist.  Use new CALL_EXPR accessors.  Fix callers.
13203         (altivec_expand_abs_builtin): Likewise.
13204         (rs6000_expand_binop_builtin): Likewise.
13205         (altivec_expand_predicate_builtin): Likewise.
13206         (altivec_expand_lv_builtin): Likewise.
13207         (spe_expand_stv_builtin): Likewise.
13208         (altivec_expand_stv_builtin): Likewise.
13209         (rs6000_expand_ternop_builtin): Likewise.
13210         (altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
13211         (altivec_expand_st_builtin): Likewise.
13212         (altivec_expand_dst_builtin): Likewise.
13213         (altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
13214         arglist.  Use new CALL_EXPR accessors.  Fix callers.
13215         (altivec_expand_vec_set_builtin): Likewise.
13216         (altivec_expand_vec_ext_builtin): Likewise.
13217         (altivec_expand_builtin): Use new CALL_EXPR accessors.
13218         (spe_expand_builtin): Likewise.
13219         (spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
13220         arglist.  Use new CALL_EXPR accessors.  Fix callers.
13221         (spe_expand_evsel_builtin): Likewise.
13222         (rs6000_expand_builtin): Use new CALL_EXPR accessors.  VCFUX and
13223         FCFSX cases must construct whole new CALL_EXPR, not just arglist.
13224
13225         * config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
13226         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
13227         (arm_expand_unop_builtin): Likewise.
13228         (arm_expand_builtin): Use new CALL_EXPR accessors.
13229
13230         * config/mips/mips.c (mips_expand_builtin):  Use new CALL_EXPR
13231         accessors.
13232
13233         * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire
13234         CALL_EXPR instead of arglist.  Use new CALL_EXPR accessors.
13235         Fix callers.
13236         (bfin_expand_unop_builtin): Likewise.
13237         (bfin_expand_builtin): Use new CALL_EXPR accessors.
13238
13239 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
13240             Brooks Moses  <brooks.moses@codesourcery.com>
13241             Lee Millward  <lee.millward@codesourcery.com>
13242
13243         * c-semantics.c (build_stmt): Add internal diagnostic check.
13244
13245         * c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
13246         accessors.  Print arguments explicitly instead of as a list.
13247
13248         * c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
13249
13250         * c-omp.c (c_finish_omp_barrier): Use build_call_expr.
13251         (c_finish_omp_flish): Likewise.
13252
13253         * c-common.c (verify_tree): Use new CALL_EXPR accessors.  Traverse
13254         arguments explicitly instead of as a list.  Use TREE_OPERAND_LENGTH
13255         instead of TREE_CODE_LENGTH.
13256         (check_function_arguments_recurse): Use new CALL_EXPR accessors.
13257         (c_warn_unused_result): Likewise.
13258
13259 2007-02-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13260
13261         PR c/26494
13262         * doc/invoke.texi (Warning Options): Remove
13263         -Werror-implicit-function-declaration.
13264         (Wimplicit-function-declaration): Update description.
13265         * opts.c (common_handle_option): Move handling of -Werror=* to...
13266         (enable_warning_as_error): ...here.
13267         * opts.h (enable_warning_as_error): Declare.
13268         * c-decl.c (implicit_decl_warning): Unless
13269         -Wno-implicit-function-declaration is given, emit a pedwarn if
13270         -std=c99 or emit a warning if -Wimplicit-function-declaration.
13271         * c.opt (Wimplicit-function-declaration): Replace
13272         mesg_implicit_function_declaration with
13273         warn_implicit_function_declaration.
13274         * c-opts.c (c_common_handle_option):
13275         -Werror-implicit-function-declaration is exactly equal as
13276         -Werror=implicit-function-declaration.
13277         (set_Wimplicit): Replace mesg_implicit_function_declaration with
13278         warn_implicit_function_declaration.
13279         (c_common_post_options): -Wimplict-function-declaration is enabled
13280         by default by -std=c99, otherwise is disabled by default.
13281         * c-objc-common.c (c_objc_common_init): Remove flawed logic.
13282
13283 2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>
13284
13285         * gimplify.c (gimplify_modify_expr): During gimplification, attach a
13286         DECL on the rhs to a DECL on the lhs for debug info purposes if the
13287         former is ignored but not the latter.
13288
13289 2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>
13290
13291         * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
13292         is made and the reference doesn't use the alias set of its type,
13293         do not create the temporary using that type.
13294
13295 2007-02-15  Aldy Hernandez  <aldyh@redhat.com>
13296
13297         * jump.c: Remove prototypes for delete_computation and
13298         delete_prior_computation.
13299
13300 2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
13301
13302         * jump.c (get_label_after): Delete.
13303         (get_label_before, delete_computation, delete_jump,
13304         delete_prior_computation, follow_jumps): Move...
13305         * reorg.c (delete_computation, delete_prior_computation): ... here...
13306         (get_label_before, delete_jump): ... making these static ...
13307         (follow_jumps): ... and simplifying this since it only runs after
13308         reload.
13309         * rtl.h (get_label_after, get_label_before, delete_jump,
13310         follow_jumps): Delete prototypes.
13311
13312 2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
13313
13314         * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
13315
13316 2007-02-15  Nick Clifton  <nickc@redhat.com>
13317
13318         * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
13319         order to prevent it from being munged by the target.
13320
13321 2007-02-15  Uros Bizjak  <ubizjak@gmail.com>
13322
13323         * config/i386/i386.md: Remove misleading comment.
13324
13325 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
13326
13327         * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
13328         reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
13329         invalid patterns.
13330
13331 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
13332
13333         * tree-sra.c (instantiate_missing_elements): Canonicalize
13334         bit-field types.
13335         (sra_build_assignment): New.
13336         (generate_copy_inout, generate_element_copy,
13337         generate_element_zero, generate_one_element_init): Use it.
13338
13339 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
13340
13341         * tree-sra.c (instantiate_missing_elements): Canonicalize
13342         bit-field types.
13343         (sra_build_assignment): New.
13344         (generate_copy_inout, generate_element_copy,
13345         generate_element_zero, generate_one_element_init): Use it.
13346
13347 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
13348
13349         * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
13350         limbo die nodes.
13351
13352 2007-02-14  Joseph Myers  <joseph@codesourcery.com>
13353
13354         * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
13355         types as aggregates not scalars.
13356         * function.c (assign_stack_temp_for_type): Likewise.
13357
13358 2007-02-14  Roger Sayle  <roger@eyesopen.com>
13359             Zdenek Dvorak  <dvorakz@suse.cz>
13360
13361         * tree-dump.c (dump_switch_p_1): Require exact match of the option
13362         name.
13363
13364 2007-02-14  Zdenek Dvorak  <dvorakz@suse.cz>
13365
13366         * passes.c (next_pass_1): Clear the next field of the copied
13367         pass structure.
13368
13369 2007-02-14  Richard Henderson  <rth@redhat.com>
13370
13371         * tree-sra.c (early_sra): New.
13372         (decl_can_be_decomposed_p): Deny va_list if early_sra.
13373         (tree_sra_early, pass_sra_early): New.
13374         * tree-pass.h (pass_sra_early): Declare.
13375         * passes.c (init_optimization_passes): Use it.
13376
13377 2007-02-14  Richard Guenther  <rguenther@suse.de>
13378
13379         * flags.h (issue_strict_overflow_warning): Convert to a macro.
13380
13381 2007-02-14  Dorit Nuzman  <dorit@il.ibm.com>
13382
13383          PR tree-optimization/30771
13384         * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
13385         also phi nodes.
13386         (vect_analyze_operations): Induction phis can now be marked as
13387         used_in_loop.
13388         (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
13389         Update documentation accordingly.
13390
13391 2007-02-14  Nick Clifton  <nickc@redhat.com>
13392
13393         * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
13394         most 3 arguments are supported.
13395         (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
13396
13397 2007-02-13  Seongbae Park <seongbae.park@gmail.com>
13398
13399         * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
13400         Ensure dst->current is valid.
13401
13402 2007-02-13  Paul Brook  <paul@codesourcery.com>
13403
13404         * config.gcc: Add arm*-*-uclinux-*eabi.
13405         * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
13406         (SUBTARGET_EXTRA_LINK_SPEC): Define.
13407         (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
13408         (LINK_GCC_C_SEQUENCE_SPEC): Undef.
13409         (LINK_SPEC): Define.
13410         (LIB_SPEC): Define.
13411         * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
13412         register.
13413         * config/arm/uclinux-eabi.h: New file.
13414         * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
13415         * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
13416         based targets.
13417
13418 2007-02-13  Ian Lance Taylor  <iant@google.com>
13419
13420         * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
13421         * flags.h (warn_strict_overflow): Declare.
13422         (enum warn_strict_overflow_code): Define.
13423         (issue_strict_overflow_warning): New static inline function.
13424         * opts.c (warn_strict_overflow): New variable.
13425         (common_handle_option): Handle OPT_Wstrict_overflow and
13426         OPT_Wstrict_overflow_.
13427         * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
13428         OPT_Wall.
13429         * fold-const.c: Include intl.h.
13430         (fold_deferring_overflow_warnings): New static variable.
13431         (fold_deferred_overflow_warning): New static variable.
13432         (fold_deferred_overflow_code): New static variable.
13433         (fold_defer_overflow_warnings): New function.
13434         (fold_undefer_overflow_warnings): New function.
13435         (fold_undefer_and_ignore_overflow_warnings): New function.
13436         (fold_deferring_overflow_warnings_p): New function.
13437         (fold_overflow_warning): New static function.
13438         (make_range): Add strict_overflow_p parameter.  Change all
13439         callers.
13440         (extract_muldiv, extract_muldiv_1): Likewise.
13441         (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
13442         tree_expr_nonnegative_p.
13443         (fold_negate_expr): Call fold_overflow_warning.
13444         (fold_range_test): Likewise.
13445         (fold_comparison): Likewise.
13446         (fold_binary): Likewise.  Call tree_expr_nonnegative_warnv_p
13447         instead of tree_expr_nonnegative_p.
13448         (tree_expr_nonnegative_warnv_p): Rename from
13449         tree_expr_nonnegative_p, add strict_overflow_p parameter.
13450         (tree_expr_nonnegative_p): New function.
13451         (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
13452         strict_overflow_p parameter.
13453         (tree_expr_nonzero_p): New function.
13454         * passes.c (verify_interpass_invariants): New static function.
13455         (execute_one_pass): Call it.
13456         * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
13457         warnings.
13458         (number_of_iterations_exit, loop_niter_by_eval): Likewise.
13459         (estimate_numbers_of_iterations): Likewise.
13460         (scev_probably_wraps_p): Likewise.
13461         * tree-ssa-ccp.c: Include "toplev.h".
13462         (evaluate_stmt): Defer fold overflow warnings until we know we are
13463         going to optimize.
13464         (struct fold_stmt_r_data): Add stmt field.
13465         (fold_stmt_r): Defer fold overflow warnings until we know we
13466         optimized.
13467         (fold_stmt): Initialize stmt field of fold_stmt_r_data.
13468         (fold_stmt_inplace): Likewise.
13469         * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
13470         (cleanup_control_expr_graph): Defer fold overflow warnings until
13471         we know we are going to optimize.
13472         * tree-cfg.c (fold_cond_expr_cond): Likewise.
13473         * tree-ssa-threadedge.c (simplify_control_stmt_condition):
13474         Likewise.
13475         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
13476         tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
13477         * tree-ssa-loop-manip.c (create_iv): Likewise.
13478         * c-typeck.c (build_conditional_expr): Likewise.
13479         (build_binary_op): Likewise.
13480         * tree-vrp.c (vrp_expr_computes_nonzero): Call
13481         tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
13482         (extract_range_from_unary_expr): Likewise.
13483         * simplify-rtx.c (simplify_const_relational_operation): Warn when
13484         assuming that signed overflow does not occur.
13485         * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
13486         * tree.h (tree_expr_nonnegative_warnv_p): Declare.
13487         (fold_defer_overflow_warnings): Declare.
13488         (fold_undefer_overflow_warnings): Declare.
13489         (fold_undefer_and_ignore_overflow_warnings): Declare.
13490         (fold_deferring_overflow_warnings_p): Declare.
13491         (tree_expr_nonzero_warnv_p): Declare.
13492         * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
13493         of warning options.
13494         (Warning Options): Document -Wstrict-overflow.
13495         * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
13496         (tree-ssa-ccp.o): Likewise.
13497         (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
13498         (fold-const.o): Depend on intl.h.
13499
13500 2007-02-13  Ian Lance Taylor  <iant@google.com>
13501
13502         PR middle-end/30751
13503         * lower-subreg.c (resolve_simple_move): Decompose subregs in
13504         addresses.
13505
13506 2007-02-13  Stuart Hastings  <stuart@apple.com>
13507
13508         * config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
13509
13510 2007-02-13  Richard Henderson  <rth@redhat.com>
13511
13512         * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
13513         handled_component_p before looking for the indirect_ref.
13514
13515 2007-02-13  Richard Henderson  <rth@redhat.com>
13516
13517         * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
13518         remove flags clobber.
13519         (bswapsi2): New expander, emit code for !TARGET_BSWAP.
13520         (bswaphi_lowpart): New.
13521         (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
13522         remove TARGET_BSWAP test.  Delete expander of the same name.
13523
13524         * optabs.c (widen_bswap, expand_doubleword_bswap): New.
13525         (expand_unop): Use them.
13526
13527 2007-02-13  Uros Bizjak  <ubizjak@gmail.com>
13528
13529         * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
13530         *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
13531         *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
13532         *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
13533         *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
13534         *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
13535         *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
13536         assembler dialect choice from asm templates.
13537
13538 2007-02-12  Richard Henderson  <rth@redhat.com>
13539
13540         * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
13541         (fixuns_trunc<SSEMODEF>si2): Use it.
13542         * config/i386/sse.md (vec_setv4sf_0): Export.
13543         * config/i386/i386.c (ix86_build_const_vector): Export.
13544         (ix86_split_convert_uns_si_sse): Rename from
13545         ix86_expand_convert_uns_si_sse and rewrite as a splitter.
13546         * config/i386/i386-protos.h: Update.
13547
13548 2007-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13549
13550         PR c/29521
13551         * c-typeck.c (c_finish_return): Improve warning message.
13552
13553 2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13554
13555         * alias.c (find_symbolic_term): Delete unused function.
13556
13557 2007-02-12  Uros Bizjak  <ubizjak@gmail.com>
13558
13559         * config/i386/i386.md (paritydi2, paritysi2): New expanders.
13560         (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
13561         (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
13562
13563 2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
13564
13565         * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
13566         * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
13567         the function, temporarily point the debug interface to the null one.
13568
13569 2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
13570
13571         * dwarf2out.c (round_up_to_align): New static function.
13572         (field_byte_offset): Use it to round the offset.
13573
13574 2007-02-12  Richard Henderson  <rth@redhat.com>
13575
13576         * config/alpha/alpha.md (bswapsi2, bswapdi2): New.
13577         (inswl_const): Export.
13578
13579 2007-02-12  Richard Henderson  <rth@redhat.com>
13580
13581         * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
13582         result mode of the libcall, convert back to outmode.
13583
13584 2007-02-12  Roger Sayle  <roger@eyesopen.com>
13585
13586         * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
13587         (bswapdi2): New define_expand to implement 32-bit implementation.
13588
13589 2007-02-12  Nick Clifton  <nickc@redhat.com>
13590
13591         * doc/invoke.texi (Overall Options): Document --help=.
13592         * gcc.c (target_help_flag): Rename to print_subprocess_flag.
13593         (cc1_options): Pass --help= on to cc1.
13594         (display_help): Add description of --help=.
13595         (process_command): Add code to handle --help=.  Allow translated
13596         --help and --target-help switches to be passed on to compiler
13597         sub-process.
13598         (main): Remove unused if statement.
13599         * opts.c (columns): Remove.
13600         (LEFT_COLUMN): Define.
13601         (wrap_help): Add columns argument.
13602         (print_filtered_help): Change parameters to be an include bitmask,
13603         an exclude bitmask, an any bitmask and the column width.  Move the
13604         code to display the params list here.  Add code to display the
13605         status of options rather than their descriptions if the quiet flag
13606         is not active.
13607         (print_specific_help): Change parameters to be an include bitmask,
13608         an exclude bitmask and an any bitmask.  Move code to look up the
13609         column width here.  Decide upon the title for an options listing.
13610         (common_handle_options): Add code to handle --help=.  Adapt code
13611         for --help and --target-help to use the revised form of the
13612         print_specific_help function.
13613         (print_help): Delete.
13614         (print_param_help): Delete.
13615         (print_switch): Delete.
13616         * opts.h (cl_lang_count): Add prototype.
13617         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS,
13618         CL_MAX_OPTION_CLASS): New defines.
13619         * optc-gen.awk: Add construction of cl_lang_count.
13620         * c.opt: Add Warning attribute to warning options and Optimization
13621         attribute to optimization options.
13622         * common.opt: Likewise.
13623         Add --help=.
13624         Add -fhelp and -ftarget-help as aliases for the transformed --help
13625         and --target-help options.
13626         * opt-functions.awk: Add code to handle Warning and Optimization
13627         attributes.
13628
13629 2007-02-12  Richard Henderson  <rth@redhat.com>
13630
13631         * config/alpha/constraints.md: New file.
13632         * config/alpha/alpha.c: Include tm-constrs.h.
13633         (alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
13634         alpha_extra_constraint): Remove.
13635         (alpha_emit_conditional_branch): Use satisfies_constraint_*.
13636         * config/alpha/alpha-protos.h: Update.
13637         * config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
13638         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
13639         (EXTRA_CONSTRAINT): Remove.
13640         * config/alpha/alpha.md: Include constraints.md.
13641         (adddi splitter): Use satisfies_constraint_*.
13642         * config/alpha/predicates.md (add_operand): Likewise.
13643         (sext_add_operand, addition_operation): Likewise.
13644
13645 2007-02-12  Dorit Nuzman  <dorit@il.ibm.com>
13646
13647         PR tree-optimization/29145
13648         * tree-data-ref.c (base_addr_differ_p): Make us more conservative
13649         in our handling of restrict qualified pointers.
13650
13651 2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13652
13653         PR middle-end/7651
13654         * doc/invoke.texi (Wunused-value): Update description.
13655         (Wextra): Delete item.
13656         * opts.c (set_Wextra): Don't use the value of Wextra to set the
13657         value of Wunused-value.
13658         * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
13659         (c_finish_stmt_expr): Don't check extra_warnings.
13660         (emit_side_effect_warnings): The caller is responsible to check
13661         warn_unused_value.
13662
13663 2007-02-11  Roger Sayle  <roger@eyesopen.com>
13664             Matt Thomas  <matt@3am-software.com>
13665
13666         * simplify-rtx.c (simplify_relational_operation_1): Correct typo.
13667
13668 2007-02-11  Roger Sayle  <roger@eyesopen.com>
13669
13670         * simplify-rtx.c (simplify_relational_operation_1): Optimize
13671         comparisons of POPCOUNT against zero.
13672         (simplify_const_relational_operation): Likewise.
13673
13674 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13675
13676         * doc/invoke.texi (Wextra): Delete outdated paragraph.
13677
13678 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13679
13680         * dwarf2out.c (root_type): Delete unused function.
13681
13682 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13683
13684         * genattrtab.c (contained_in_p): Delete unused function.
13685         (write_expr_attr_cache): Likewise.
13686
13687 2007-02-11  Jan Hubicka  <jh@suse.cz>
13688
13689         * ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
13690         previous patch.
13691
13692 2007-02-11  Steven Bosscher  <steven@gcc.gnu.org>
13693
13694         * fwprop.c (try_fwprop_subst): Use set_unique_reg_note
13695         to add the REG_EQ* note.
13696         * see.c (see_merge_one_use_extension): Likewise.
13697         * local-alloc.c (update_equiv_regs): Likewise.  Also don't
13698         turn REG_EQUAL notes into REG_EQUIV notes if the target
13699         register may have more than one set.
13700         * function.c (assign_parm_setup_reg): Use set_unique_reg_note.
13701         * gcse.c (try_replace_reg): Likewise.
13702         * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
13703         * calls.c (fixup_tail_calls): Likewise.  Abort if there is
13704         more than one REG_EQUIV note.
13705         * reload1.c (gen_reload): Use set_unique_reg_note.
13706
13707 2007-02-11  Uros Bizjak  <ubizjak@gmail.com>
13708
13709         * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
13710         (ix86_builtin_conversion): New function.
13711
13712 2007-02-06  Mark Mitchell  <mark@codesourcery.com>
13713
13714         PR target/29487
13715         * tree.h (DECL_REPLACEABLE_P): New macro.
13716         * except.c (set_nothrow_function_flags): Likewise.
13717
13718 2007-02-11  Tehila Meyzels  <tehila@il.ibm.com>
13719             Ira Rosen  <irar@il.ibm.com>
13720             Dorit Nuzman  <dorit@il.ibm.com>
13721
13722         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
13723         * targhooks.c (default_builtin_vectorized_conversion): New.
13724         * targhooks.h (default_builtin_vectorized_function): New declaration.
13725         * target.h (struct vectorize): Add builtin_conversion field.
13726         * tree-vectorizer.h (type_conversion_vec_info_type): New enum
13727         stmt_vec_info_type value.
13728         (vectorizable_conversion): New declaration.
13729         * tree-vect-analyze.c (vect_analyze_operations): Add
13730         vectorizable_conversion call.
13731         * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
13732         * tree-vect-transform.c (vectorizable_conversion): New function.
13733         (vect_transform_stmt): Add case for type_conversion_vec_info_type.
13734         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
13735         mode.
13736         * config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
13737         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
13738         (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX
13739         or ALTIVEC_BUILTIN_VCFSX.
13740
13741 2007-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13742
13743         PR target/30634
13744         * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
13745         CONST_DOUBLE and operand 0 is a hard register.
13746         (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
13747         memory.  Fail if operand 1 is a non-zero CONST_INT and operand 0
13748         is a hard floating-point register.
13749
13750 2007-02-10  Richard Henderson  <rth@redhat.com>
13751             Jakub Jelinek  <jakub@redhat.com>
13752             Alexandre Oliva  <aoliva@redhat.com>
13753
13754         * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
13755         * builtin-types.def (BT_WORD): Make unsigned.
13756         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
13757         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
13758         (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
13759         * c-decl.c (grokdeclarator): Don't error if !have_tls.
13760         * c-parser.c (c_parser_omp_threadprivate): Likewise.
13761         * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
13762         emulated tls.
13763         * expr.c (emutls_var_address): New.
13764         (expand_expr_real_1): Expand emulated tls.
13765         (expand_expr_addr_expr_1): Likewise.
13766         * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
13767         * output.h (emutls_finish): Declare.
13768         * toplev.c (compile_file): Call it.
13769         * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
13770         address before wrapping in CONST.
13771         * varasm.c (emutls_htab, emutls_object_type): New.
13772         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
13773         (get_emutls_object_name, get_emutls_object_type): New.
13774         (get_emutls_init_templ_addr, emutls_decl): New.
13775         (emutls_common_1, emutls_finish): New.
13776         (assemble_variable): When emulating tls, swap decls; generate
13777         constructor for the emutls objects.
13778         (do_assemble_alias): When emulating tls, swap decl and target name.
13779         (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
13780         for emulated tls.
13781         * varpool.c (decide_is_variable_needed): Look at force_output.
13782         Recurse for emulated tls.
13783         (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
13784         with decide_is_variable_needed.
13785         * emutls.c: New file.
13786         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
13787         tls_object for real tls.
13788
13789 2007-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
13790
13791         PR rtl-optimization/29599
13792         * reload1.c (eliminate_regs_in_insn): Take the destination
13793         mode into account when computing the offset.
13794
13795 2007-02-09  Stuart Hastings  <stuart@apple.com>
13796             Richard Henderson  <rth@redhat.com>
13797
13798         * config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
13799         * config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
13800         * config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2,
13801         fixuns_truncdfhi2): New.
13802         (fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse.
13803         (floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
13804         (floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
13805         (floatunssidf2): Allow nonimmediate source.
13806         * config/i386/sse.md (movdi_to_sse): New.
13807         (vec_concatv2di): Drop '*'.
13808         * config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
13809         ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
13810         ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse):
13811         New.
13812         * config/i386/i386.c (ix86_expand_convert_uns_si_sse,
13813         ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
13814         ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
13815         ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
13816         (ix86_build_signbit_mask): Fix decl of v, refactor to call
13817         ix86_build_const_vector.
13818         (x86_emit_floatuns): Rewrite.
13819
13820 2007-02-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13821
13822         * genautomata.c (longest_path_length): Delete unused function.
13823         (struct state): Delete unused longest_path_length.
13824         (UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
13825         (get_free_state): Delete unused.
13826
13827 2007-02-09  Jan Hubicka  <jh@suse.cz>
13828
13829         * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
13830         * doc/invoke.texi (inline-unit-growth): Update default value.
13831
13832         * Makefile.in (passes.o, ipa-inline.o): Add dependencies.
13833         * cgraphbuild.c (build_cgraph_edges): Compute frequencies.
13834         (rebuild_cgraph_edges): Likewise.
13835         * cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
13836         (dump_cgraph_node): Dump frequencies.
13837         (cgraph_clone_edge): Add frequency scales.
13838         (cgraph_clone_node): Add freuqnecy.
13839         * cgraph.h (cgraph_edge): Add freuqnecy argument.
13840         (CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
13841         (cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
13842         * tree-pass.h (TODO_rebuild_frequencies): New constant.
13843         * cgraphunit.c (verify_cgraph_node): Verify frequencies.
13844         (cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
13845         (save_inline_function_body): Likewise.
13846         * ipa-inline.c: inluce rtl.h
13847         (cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
13848         (cgraph_edge_badness): Use frequencies.
13849         (cgraph_decide_recursive_inlining): Update clonning.
13850         (cgraph_decide_inlining_of_small_function): Dump frequency.
13851         * predict.c (estimate_bb_frequencies): Export.
13852         * predict.h (estimate_bb_frequencies): Declare.
13853         * tree-inline.c (copy_bb): Watch overflows.
13854         (expand_call_inline): Update call of cgraph_create_edge.
13855         (optimize_inline_calls): Use TODO flags to update frequnecies.
13856         * passes.h: Include predict.h
13857         (init_optimization_passes): Move profile ahead.
13858         (execute_function_todo): Handle TODO_rebuild_frequencies.
13859
13860 2007-02-09  Roger Sayle  <roger@eyesopen.com>
13861
13862         * config/alpha/alpha.c (emit_insxl): Force the first operand of
13863         the insbl or inswl pattern into a register.
13864
13865 2007-02-09  Roger Sayle  <roger@eyesopen.com>
13866
13867         * config/ia64/ia64.md (bswapdi2): New define_insn.
13868
13869 2007-02-09  Richard Henderson  <rth@redhat.com>
13870
13871         * config/i386/constraints.md (Ym): New constraint.
13872         * config/i386/i386.md (movsi_1): Change Y2 to Yi constraints.
13873         (movdi_1_rex64): Split sse and xmm general register moves from
13874         memory move alternatives.  Use conditional register constraints.
13875         (movsf_1, movdf_integer): Likewise.
13876         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
13877         (movdf_integer_rex64): New.
13878         (pushsf_rex64): Fix output constraints.
13879         * config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi.
13880         (sse2_stored): Likewise.
13881         (sse2_storeq_rex64): New.
13882         * config/i386/i386.c (x86_inter_unit_moves): Enable for not
13883         amd and not generic.
13884         (ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
13885         for optimize_size.  Remove SF/DFmode hack.
13886
13887 2007-02-09  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
13888
13889         * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
13890         (bit_SSE4a): New.
13891
13892 2007-02-09  Nathan Sidwell  <nathan@codesourcery.com>
13893             Richard Sandiford  <richard@codesourcery.com>
13894
13895         * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
13896         (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
13897         (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
13898         m68k/t-mlib to tmake_file.
13899         (m68020-*-elf*, m68k-*-elf*): Likewise.  Add t-m68kbare as well.
13900         (m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
13901         (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
13902         Allow it to be cf or m68k.  Set m68k_arch_family.  If that
13903         variable is not empty, add t-$m68k_arch_family to tmake_file.
13904         Add t-mlibs to tmake_file.
13905         * doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
13906         * config/m68k/t-cf: New file.
13907         * config/m68k/t-m68k: Likewise.
13908         * config/m68k/t-mlibs: Likewise.
13909         * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
13910         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
13911         (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
13912         * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
13913         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
13914         Delete.
13915         * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
13916         (INSTALL_LIBGCC): Delete.
13917         (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
13918         * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
13919         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
13920         (M68K_MLIB_CPU): Define.
13921         * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
13922         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
13923         (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.
13924
13925 2007-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
13926             Richard Guenther  <rguenther@suse.de>
13927
13928         PR middle-end/23361
13929         * fold-const.c (fold_comparison): Handle obfuscated comparisons
13930         against INT_MIN/INT_MAX.
13931         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump
13932         file if a loop is removed.
13933
13934 2007-02-09  Joseph Myers  <joseph@codesourcery.com>
13935
13936         * calls.c (store_one_arg): Pass correct alignment to
13937         emit_push_insn for non-BLKmode values.
13938         * expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an
13939         unaligned stack slot via a suitably aligned slot.
13940
13941 2007-02-08  DJ Delorie  <dj@redhat.com>
13942
13943         * config/m32c/m32c.c (m32c_unpend_compare): Add default to silence
13944         warnings.
13945         (legal_subregs): Use unsigned char, make const.
13946         (m32c_illegal_subreg_p): Use ARRAY_SIZE.  Delete unused variables.
13947
13948 2007-02-08  Paul Brook  <paul@codesourcery.com>
13949
13950         * config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no
13951         special interworking needed.
13952
13953 2007-02-08  Harsha Jagasia  <harsha.jagasia@amd.com>
13954
13955         * config/i386/xmmintrin.h: Make inclusion of emmintrin.h
13956         conditional to __SSE2__.
13957         (Entries below should have been added to first ChangeLog
13958         entry for amdfam10 dated 2007-02-05)
13959         * config/i386/emmintrin.h: Generate #error if __SSE2__ is not
13960         defined.
13961         * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not
13962         defined.
13963         * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not
13964         defined.
13965
13966 2007-02-08  DJ Delorie  <dj@redhat.com>
13967
13968         * config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New.
13969         * config/m32c/m32c.c (legal_subregs): New.
13970         (m32c_illegal_subreg_p): New.
13971         * config/m32c/predicates.md (m32c_any_operand): Use it to reject
13972         unsupported subregs of hard regs.
13973
13974 2007-02-08  Jan Hubicka  <jh@suse.cz>
13975
13976         * tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
13977         the same one; always update histograms.
13978
13979 2007-02-08  Diego Novillo  <dnovillo@redhat.com>
13980
13981         * passes.c (init_optimization_passes): Tidy comment.
13982
13983 2007-02-08  Roger Sayle  <roger@eyesopen.com>
13984
13985         * simplify-rtx.c (simplify_unary_operation_1) <POPCOUNT>: We can
13986         strip zero_extend, bswap and rotates from POCOUNT's argument.
13987         <PARITY>: Likewise, we can strip not, bswap, sign_extend,
13988         zero_extend and rotates from PARITY's argument.
13989         <BSWAP>: A byte-swap followed by a byte-swap is an identity.
13990         (simplify_const_unary_operation) <BSWAP>: Evaluate the byte-swap
13991         of an integer constant at compile-time.
13992
13993 2007-02-08  Diego Novillo  <dnovillo@redhat.com>
13994
13995         PR 30562
13996         * tree-flow.h (struct var_ann_d): Remove field 'is_used'.
13997         Update all users.
13998         * tree-ssa-alias.c (compute_is_aliased): Remove.  Update all
13999         users.
14000         (init_alias_info):
14001         * tree-ssa-live.c (remove_unused_locals): Do not remove
14002         TREE_ADDRESSABLE variables.
14003         * tree-ssa-structalias.c (compute_points_to_sets): Tidy.
14004         * tree-ssa-operands.c (add_virtual_operand): Remove argument
14005         FOR_CLOBBER.  Update all users.
14006         If VAR has an associated alias set, add a virtual operand for
14007         it if no alias is found to conflict with the memory reference.
14008
14009 2007-02-07  Jan Hubicka  <jh@suse.cz>
14010             Robert Kidd <rkidd@crhc.uiuc.edu>
14011
14012         * value-prof.c (visit_hist, free_hist): Return 1 instead of 0.
14013
14014 2007-02-07  Ian Lance Taylor  <iant@google.com>
14015
14016         * lower-subreg.c (simple_move): Reject PARTIAL_INT modes.
14017
14018 2007-02-07  Roger Sayle  <roger@eyesopen.com>
14019
14020         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
14021         parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack,
14022         tablejumpdi, movsi_to_cr_one): Remove constraints from
14023         define_expand's match_operands.
14024
14025 2007-02-07  Roger Sayle  <roger@eyesopen.com>
14026
14027         * global.c (compute_regsets): Move declatation of "i" inside of
14028         #ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure.
14029
14030 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
14031
14032         PR c++/30703
14033         * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
14034         of INDIRECT_REF <RESULT_DECL>.
14035
14036         * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2.
14037
14038 2007-02-06  J"orn Rennecke  <joern.rennecke@arc.com>
14039             Kaz Kojima  <kkojima@gcc.gnu.org>
14040
14041         PR target/29746
14042         * config/sh/sh.c (expand_cbranchdi4): Use scratch register
14043         properly.
14044         (sh_initialize_trampoline): Add parentheses to avoid a warning.
14045
14046 2007-02-06  Zdenek Dvorak <dvorakz@suse.cz>
14047
14048         * doc/loop.texi: Document possibility not to perform disambiguation
14049         of loops with multiple latches.
14050         * cfgloopmanip.c (alp_enum_p): Removed.
14051         (add_loop): Handle subloops.  Use get_loop_body_with_size.
14052         (create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
14053         * cfghooks.c (redirect_edge_and_branch_force): Set dominator for
14054         the new forwarder block.
14055         (make_forwarder_block): Only call new_bb_cbk if it is not NULL.
14056         Handle the case latch is NULL.
14057         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg
14058         modifications when marking loop exits.
14059         * ifcvt.c (if_convert): Ditto.  Mark loop exits even if cfg cannot
14060         be modified.
14061         * loop-init.c (loop_optimizer_init): Do not modify cfg.  Call
14062         disambiguate_loops_with_multiple_latches.
14063         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
14064         before fix_loop_structure.
14065         * cfgloop.c: Include pointer-set.h and output.h.
14066         (canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
14067         update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
14068         (get_loop_latch_edges, find_subloop_latch_edge_by_profile,
14069         find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
14070         mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
14071         disambiguate_multiple_latches, get_loop_body_with_size,
14072         disambiguate_loops_with_multiple_latches): New functions.
14073         (flow_loop_dump): Dump multiple latch edges.
14074         (flow_loop_nodes_find): Handle loops with multiple latches.
14075         (flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
14076         (glb_enum_p): Modified.
14077         (get_loop_body): Use get_loop_body_with_size.
14078         * cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
14079         (AVOID_CFG_MODIFICATIONS): New constant.
14080         (disambiguate_loops_with_multiple_latches, add_loop,
14081         get_loop_body_with_size): Declare.
14082         * Makefile.in (cfgloop.o): Add pointer-set.h and output.h.
14083
14084 2007-02-06  Seongbae Park <seongbae.park@gmail.com>
14085
14086         PR inline-asm/28686
14087         * global.c (compute_regsets): New function.
14088         (global_alloc): Refactored ELIMINABLE_REGSET
14089         and NO_GLOBAL_ALLOC_REGS computation out.
14090         (rest_of_handle_global_alloc): Call compute_regsets()
14091         for non-optimizing case.
14092
14093 2007-02-06  Richard Henderson  <rth@redhat.com>
14094
14095         * config/i386/constraints.md (Y2): Rename from Y.
14096         (Yi): New constraint.
14097         * config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger,
14098         pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32,
14099         zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2.
14100         (extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed,
14101         truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse,
14102         fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse,
14103         floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed,
14104         absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse,
14105         fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x.
14106         * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64,
14107         mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal,
14108         vec_extractv2si_1): Change Y constraints to Y2.
14109         * config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si,
14110         vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di):
14111         Change Y constraints to Y2.
14112         (sse2_loadld): Change Y constraints to x.
14113
14114 2007-02-06  Roger Sayle  <roger@eyesopen.com>
14115
14116         * config/rs6000/rs6000.md (popcount<mode>2): Rewrite.
14117         (parity<mode>2): New define_expand using rs6000_emit_parity.
14118         * config/rs6000/rs6000.c (rs6000_emit_popcount,
14119         rs6000_emit_parity): New functions.
14120         * config/rs6000/rs6000-protos.h (rs6000_emit_popcount,
14121         rs6000_emit_parity): Prototype here.
14122
14123 2007-02-06  Ian Lance Taylor  <iant@google.com>
14124
14125         * lower-subreg.c (simple_move_operand): Reject CONST.
14126         (resolve_clobber): Call validate_change rather than directly
14127         assigning to XEXP (pat, 0).
14128
14129 2006-02-06  Paolo Bonzini  <bonzini@gnu.org>
14130
14131         * Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency.
14132         (tree-ssa-reassoc.o): Add pointer-set.h dependency.
14133         (tree-cfg.o): Remove hashtab.h dependency.
14134
14135         * tree-ssa-loop-ivopts.c: Include pointer-set.h.
14136         (struct ivopts_data): Change niters to pointer_map_t.
14137         (struct nfe_cache_elt, nfe_hash, nfe_eq): Delete.
14138         (niter_for_exit): Create pointer_map on demand.  Change for
14139         pointer_map API.
14140         (tree_ssa_iv_optimize_init): Initialize data->niters to NULL.
14141         (free_loop_data): Destroy data->niters if created and reset field.
14142         (tree_ssa_iv_optimize_finalize): Don't delete data->niters here.
14143         (tree_ssa_iv_optimize_loop): Check for presence of stale data.
14144
14145         * tree-ssa-reassoc.c: Include pointer-set.h.
14146         (bb_rank): Change to long *.
14147         (operand_rank): Change to pointer_map_t.
14148         (find_operand_rank): Return long, -1 if not found.  Declare as inline.
14149         (insert_operand_rank): Accept long.
14150         (operand_entry_hash, operand_entry_eq): Remove.
14151         (get_rank): Return long.  Adjust for changes above.
14152         (init_reassoc): Change rank type to long.  Adjust creation of bb_rank
14153         and operand_rank.
14154         (fini_reassoc): Delete operand_rank with pointer_map_destroy.
14155
14156         * tree-ssa-structalias.c (vi_for_tree): Change to pointer_map.
14157         (struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete.
14158         (insert_vi_for_tree): Rewrite for pointer_map API.  Assert argument
14159         is not NULL.
14160         (lookup_vi_for_tree): Rewrite for pointer_map API.  Return varinfo_t
14161         directly since it cannot be NULL.
14162         (get_vi_for_tree): Rewrite for pointer_map API.
14163         (find_what_p_points_to): Adjust for change to lookup_vi_for_tree.
14164         (init_alias_vars): Create vi_for_tree as pointer_map.
14165         (delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy.
14166
14167         * tree-cfg.c: Don't include hashtab.h.
14168         (edge_to_cases): Declare as pointer_map.
14169         (struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq):
14170         Delete.
14171         (edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback.
14172         (start_recording_case_labels): Create edge_to_cases as pointer_map.
14173         (end_recoding_case_labels): Cleanup edge_to_cases manually before
14174         destroying it.
14175         (record_switch_edge): Delete.
14176         (get_cases_for_edge): Adjust for pointer_map API, inline
14177         record_switch_edge (rewritten for new API), remove goto.
14178
14179 2006-02-06  Paolo Bonzini  <bonzini@gnu.org>
14180
14181         * Makefile.in (tree-nested.o): Add pointer-set.h dependency.
14182         * tree-nested.c: Include pointer-set.h.
14183         (var_map_elt, var_map_eq, var_map_hash): Delete.
14184         (struct nesting_info): Remove GTY marker.  Change the two htab_t's
14185         to pointer_map_t's.
14186         (nesting_info_bitmap_obstack): New.
14187         (lookup_field_for_decl): Adjust for pointer_map API.
14188         (lookup_tramp_for_decl): Adjust for pointer_map API.
14189         (get_nonlocal_debug_decl): Adjust for pointer_map API.
14190         (get_local_debug_decl): Adjust for pointer_map API.
14191         (convert_nl_goto_reference): Adjust for pointer_map API.
14192         (convert_nl_goto_receiver): Adjust for pointer_map API.
14193         (create_nesting_tree): Create outside GGC space.  Create bitmap on
14194         the new obstack.  Create field_map and var_map as pointer_maps.
14195         (free_nesting_tree): Adjust for changes to create_nesting_tree.
14196         (root): Delete.
14197         (lower_nested_functions): Move root here, no need to NULL it.
14198         Initialize and release the obstack.
14199
14200 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
14201
14202         * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
14203         Remove prototypes and make them non-static.
14204         (struct tree_int_map): Remove.
14205         * tree.h (struct tree_int_map): Move here, turning TO into an
14206         unsigned int.
14207         (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.
14208
14209         * tree.h (TREE_COMPLEXITY): Remove.
14210         (struct tree_exp): Remove complexity field.
14211         * tree.c (build1_stat): Don't set it.
14212
14213 2007-02-06  Dorit Nuzman  <dorit@il.ibm.com>
14214             Victor Kaplansky  <victork@il.ibm.com>
14215
14216         * tree-vectorizer.c (vect_is_simple_use): Support induction.
14217         (vect_is_simple_reduction): Support reduction with induction as
14218         one of the operands.
14219         (vect_is_simple_iv_evolution): Fix formatting.
14220         * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
14221         formatting.  Don't mark induction phis for vectorization.
14222         (vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
14223         * tree-vect-transform.c (get_initial_def_for_induction): New function.
14224         (vect_get_vec_def_for_operand): Support induction.
14225         (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
14226         induction case.
14227         (vectorizable_reduction): Support reduction with induction as one of
14228         the operands.
14229         (vectorizable_type_demotion): Use def-type of stmt argument rather
14230         than dummy def-type.
14231
14232         * tree-ssa-loop.c (gate_scev_const_prop): Return the value of
14233         flag_tree_scev_cprop.
14234         * common.opt (tree-scev-cprop): New flag.
14235
14236         * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in
14237         call to vect_get_new_vect_var.
14238
14239 2007-02-06  Ira Rosen  <irar@il.ibm.com>
14240
14241         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that
14242         vectype is not NULL.
14243         (vect_pattern_recog_1): Likewise.
14244
14245 2007-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14246
14247         * fold-const.c (negate_expr_p): Handle CONJ_EXPR.
14248         (fold_negate_expr): Likewise.
14249
14250 2007-02-05  Alexandre Oliva  <aoliva@redhat.com>
14251
14252         PR debug/30189
14253         * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
14254         even if cv-qualification is the same.
14255
14256 2007-02-05  Geoffrey Keating  <geoffk@apple.com>
14257
14258         * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
14259         __enable_execute_stack on completion.
14260
14261 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14262
14263         * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8,
14264         athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov,
14265         athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul,
14266         athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn,
14267         athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8,
14268         athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load,
14269         athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8,
14270         athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10.
14271
14272 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14273
14274         * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse,
14275         cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387,
14276         swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse,
14277         fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse,
14278         x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed,
14279         floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse,
14280         floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1,
14281         mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn,
14282         umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn,
14283         umuldi3_highpart_rex64, umulsi3_highpart_insn,
14284         umulsi3_highpart_zext, smuldi3_highpart_rex64,
14285         smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld,
14286         x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse,
14287         sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387,
14288         sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387,
14289         sqrtextenddfxf2_i387): Added amdfam10_decode.
14290
14291         * config/i386/athlon.md (athlon_idirect_amdfam10,
14292         athlon_ivector_amdfam10, athlon_idirect_load_amdfam10,
14293         athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10,
14294         athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10,
14295         athlon_ivector_store_amdfam10): New define_insn_reservation.
14296         (athlon_idirect_loadmov, athlon_idirect_movstore): Added
14297         amdfam10.
14298
14299 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14300
14301         * config/i386/athlon.md (athlon_call_amdfam10,
14302         athlon_pop_amdfam10, athlon_lea_amdfam10): New
14303         define_insn_reservation.
14304         (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8,
14305         athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI,
14306         athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10.
14307
14308 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14309
14310         * config/i386/athlon.md (athlon_sseld_amdfam10,
14311         athlon_mmxld_amdfam10, athlon_ssest_amdfam10,
14312         athlon_mmxssest_short_amdfam10): New define_insn_reservation.
14313
14314 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14315
14316         * config/i386/athlon.md (athlon_sseins_amdfam10): New
14317         define_insn_reservation.
14318         * config/i386/i386.md (sseins): Added sseins to define_attr type
14319         and define_attr unit.
14320         * config/i386/sse.md: Set type attribute to sseins for insertq
14321         and insertqi.
14322
14323 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14324
14325         * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10,
14326         ssecmpvector_load_amdfam10, ssecmpvector_amdfam10,
14327         ssecomi_load_amdfam10, ssecomi_amdfam10,
14328         sseaddvector_load_amdfam10, sseaddvector_amdfam10): New
14329         define_insn_reservation.
14330         (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10.
14331
14332 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14333
14334         * config/i386/athlon.md (cvtss2sd_load_amdfam10,
14335         cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10,
14336         cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10,
14337         cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10,
14338         cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10,
14339         cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New
14340         define_insn_reservation.
14341
14342         * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si,
14343         cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq,
14344         cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq,
14345         cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd,
14346         cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute.
14347
14348 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14349
14350         * config/i386/athlon.md (athlon_ssedivvector_amdfam10,
14351         athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10,
14352         athlon_ssemulvector_load_amdfam10): New define_insn_reservation.
14353         (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul,
14354         athlon_ssemul_load_k8): Added amdfam10.
14355
14356 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14357
14358         * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
14359         (x86_sse_unaligned_move_optimal): New variable.
14360
14361         * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for
14362         m_AMDFAM10.
14363         (ix86_expand_vector_move_misalign): Add code to generate movupd/movups
14364         for unaligned vector SSE double/single precision loads for AMDFAM10.
14365
14366 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14367
14368         * config/i386/i386.h (TARGET_AMDFAM10): New macro.
14369         (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
14370         Define TARGET_CPU_DEFAULT_amdfam10.
14371         (TARGET_CPU_DEFAULT_NAMES): Add amdfam10.
14372         (processor_type): Add PROCESSOR_AMDFAM10.
14373
14374         * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match
14375         processor_type in config/i386/i386.h.
14376         Enable imul peepholes for TARGET_AMDFAM10.
14377
14378         * config.gcc: Add support for --with-cpu option for amdfam10.
14379
14380         * config/i386/i386.c (amdfam10_cost): New variable.
14381         (m_AMDFAM10): New macro.
14382         (m_ATHLON_K8_AMDFAM10): New macro.
14383         (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
14384         x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop,
14385         x86_promote_QImode, x86_integer_DFmode_moves,
14386         x86_partial_reg_dependency, x86_memory_mismatch_stall,
14387         x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
14388         x86_sse_partial_reg_dependency, x86_sse_typeless_stores,
14389         x86_use_ffreep, x86_use_incdec, x86_four_jump_limit,
14390         x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns):
14391         Enable/disable for amdfam10.
14392         (override_options): Add amdfam10_cost to processor_target_table.
14393         Set up PROCESSOR_AMDFAM10 for amdfam10 entry in
14394         processor_alias_table.
14395         (ix86_issue_rate): Add PROCESSOR_AMDFAM10.
14396         (ix86_adjust_cost): Add code for amdfam10.
14397
14398 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14399
14400         * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
14401         instruction set feature flag. Add new (-mpopcnt) flag for popcnt
14402         instruction. Add new SSE4A (-msse4a) instruction set feature flag.
14403         * config/i386/i386.h: Add builtin definition for SSE4A.
14404         * config/i386/i386.md: Add support for ABM instructions
14405         (popcnt and lzcnt).
14406         * config/i386/sse.md: Add support for SSE4A instructions
14407         (movntss, movntsd, extrq, insertq).
14408         * config/i386/i386.c: Add support for ABM and SSE4A builtins.
14409         Add -march=amdfam10 flag.
14410         * config/i386/ammintrin.h: Add support for SSE4A intrinsics.
14411         * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt
14412         and amdfam10.
14413         * doc/extend.texi: Add documentation for SSE4A builtins.
14414
14415 2007-02-05  Bob Wilson  <bob.wilson@acm.org>
14416
14417         * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
14418
14419 2007-02-05  Richard Guenther  <rguenther@suse.de>
14420
14421         * tree-vectorizer.h (vectorizable_function): Add argument type
14422         argument, change return type.
14423         * tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller.
14424         * tree-vect-transform.c (vectorizable_function): Handle extra
14425         argument, return vectorized function decl.
14426         (build_vectorized_function_call): Remove.
14427         (vectorizable_call): Handle calls with result and argument types
14428         differing.  Handle loop vectorization factor correctly.
14429         * targhooks.c (default_builtin_vectorized_function): Adjust for
14430         extra argument.
14431         * targhooks.h (default_builtin_vectorized_function): Likewise.
14432         * target.h (builtin_vectorized_function): Add argument type
14433         argument.
14434         * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
14435         extra argument, allow vectorizing of lrintf.
14436         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust
14437         documentation of target hook.
14438
14439 2007-02-05  Hans-Peter Nilsson  <hp@axis.com>
14440
14441         PR target/30665
14442         * config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu")
14443         ("*andhi_clear", andu (casesi+45)): For size-changed operand where
14444         memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P.
14445
14446 2007-02-05  Roger Sayle  <roger@eyesopen.com>
14447
14448         * fold-const.c (fold_unary) <REAL_PART>: Test for availability of
14449         BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
14450         <IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
14451         * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
14452         before canonicalizing sincos to cexpi.
14453         (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.
14454
14455 2007-02-05  Roger Sayle  <roger@eyesopen.com>
14456
14457         * config/alpha/alpha.c (alpha_add_builtins): New Helper function.
14458         Set TREE_READONLY and TREE_NOTHROW directly, not via attributes.
14459         (alpha_init_builtins): Use alpha_add_builtins to process tables.
14460
14461 2007-02-05  Roger Sayle  <roger@eyesopen.com>
14462
14463         * mips-tfile.c (initialize_init_file): Correct endianness test.
14464
14465 2007-02-05  Kazu Hirata  <kazu@codesourcery.com>
14466
14467         * config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use
14468         the 'y' constraint.
14469
14470 2007-02-05  Richard Sandiford  <richard@codesourcery.com>
14471
14472         * dwarf2out.c (dwarf2out_frame_debug_expr): Record the register
14473         saves in a PARALLEL before the register assignments.
14474
14475 2007-02-05  Richard Sandiford  <richard@codesourcery.com>
14476
14477         * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require
14478         DWARF_FRAME_RETURN_COLUMN to be a general register.
14479         * dwarf2out.c (init_return_column_size): New function, split from...
14480         (expand_builtin_init_dwarf_reg_sizes): ...here.  Allow both
14481         DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN
14482         to be nongeneral registers.
14483         * config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and
14484         integer registers.
14485         (DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define.
14486         (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
14487
14488 2007-02-04  Zdenek Dvorak <dvorakz@suse.cz>
14489
14490         * cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR.
14491
14492 2007-02-04  Zdenek Dvorak <dvorakz@suse.cz>
14493
14494         * cfgloopmanip.c (loop_delete_branch_edge): Removed.
14495         (remove_path): Use can_remove_branch_p and remove_branch instead
14496         of loop_delete_branch_edge.
14497         * tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function.
14498         (tree_transform_and_unroll_loop): Remove dead branches immediately.
14499         Update profile using scale_dominated_blocks_in_loop.
14500         * cfghooks.c (can_remove_branch_p, remove_branch): New functions.
14501         * cfghooks.h (struct cfg_hooks): Add can_remove_branch_p.
14502         (can_remove_branch_p, remove_branch): Declare.
14503         * tree-cfg.c (tree_can_remove_branch_p): New function.
14504         (tree_cfg_hooks): Add tree_can_remove_branch_p.
14505         * cfgrtl.c (rtl_can_remove_branch_p): New function.
14506         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p.
14507
14508 2007-02-05  Jan Hubicka  <jh@suse.cz>
14509
14510         PR middle-end/30696
14511         * ipa-inline.c (cgraph_clone_inlined_nodes): When there are unanalyzed
14512         nodes in cgraph, don't remove offline copy of the function.
14513
14514 2007-02-04  Jan Hubicka  <jh@suse.cz>
14515
14516         * tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into
14517         vectors might cause maybe_lookup_element_for_expr to be called
14518         on non-sra-candidate.
14519
14520 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
14521
14522         * config/bfin/bfin-modes.def, config/bfin/bfin.c,
14523         config/bfin/bfin.md, config/bfin/predicates.md: Follow
14524         spelling conventions.
14525
14526 2007-02-04  Richard Guenther  <rguenther@suse.de>
14527
14528         PR middle-end/30636
14529         * fold-const.c (try_move_mult_to_index): Make sure to not
14530         overflow one dimension of a multi-dimensional array access.
14531
14532 2007-02-04  Jan Hubicka  <jh@suse.cz>
14533
14534         * passes.c (init_optimization_passes): Reindent.
14535
14536 2007-02-04  Jan Hubicka  <jh@suse.cz>
14537             Eric Botcazou  <ebotcazou@adacore.com>
14538
14539         * tree-optimize.c (has_abnormal_outgoing_edge_p): Move to...
14540         (execute_fixup_cfg): Break out the abnormal goto code.
14541         * tree-inline.c (has_abnormal_outgoing_edge_p): ...here.
14542         (make_nonlocal_label_edges): Move here from execute_fixup_cfg.
14543         (optimize_inline_calls): Call make_nonlocal_label_edges.
14544
14545 2007-02-04  Jan Hubicka  <jh@suse.cz>
14546
14547         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Return
14548         true when something was changed.
14549         (rename_ssa_copies): When something was changed, do
14550         TODO_remove_unused_locals.
14551         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
14552         add TODO_remove_unused_locals when instruction was removed.
14553
14554 2007-02-04  Jan Hubicka  <jh@suse.cz>
14555
14556         * ipa-inline.c (try_inline): Improve debug output; work on already
14557         inline edges too.
14558         (cgraph_decide_inlining_incrementally): Indent; improve debug output;
14559         call try_inline for already inlined edges too when flattening;
14560         inline also functions that make callee growth but overall unit size
14561         reduce.
14562
14563 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
14564
14565         * config/m32c/bitops.md, config/m32c/jump.md,
14566         config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c,
14567         config/m32r/m32r.h, config/m32r/m32r.md,
14568         config/m32r/predicates.md, config/m68hc11/larith.asm,
14569         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14570         config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md,
14571         config/mips/mips-protos.h, config/mips/mips.c,
14572         config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S,
14573         config/mn10300/mn10300.h, config/mn10300/predicates.md,
14574         config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow
14575         spelling conventions.
14576
14577         * config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
14578         Follow spelling conventions.
14579
14580 2007-02-03  Douglas Gregor  <doug.gregor@gmail.com>
14581
14582         * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
14583         warn about C++0x compatibility.
14584
14585 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
14586
14587         * config/h8300/h8300.c, config/h8300/h8300.h,
14588         config/h8300/h8300.md: Follow spelling conventions.
14589
14590 2007-02-03  Uros Bizjak  <ubizjak@gmail.com>
14591
14592         PR middle-end/30667
14593         * combine.c (try_combine): Do not substitute source operand
14594         with constants wider than 2 * HOST_BITS_PER_WIDE_INT.
14595
14596 2007-02-03  Jan Hubicka  <jh@suse.cz>
14597
14598         PR gcov-profile/30650
14599         * value-prof.c (stringop_block_profile): Fix handling of size counter;
14600         do not divide by zero for never executed counters.
14601         (tree_find_values_to_profile): Fix counters.
14602         * gcov-ui.h (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): Fix comments.
14603
14604 2007-02-03  Ian Lance Taylor  <iant@google.com>
14605
14606         * lower-subreg.c (simple_move_operand): New static function,
14607         broken out of simple_move.  Reject LABEL_REF, SYMBOL_REF, and HIGH
14608         operands.
14609         (simple_move): Call simple_move_operand.
14610         (find_decomposable_subregs): Add special handling of MEMs.
14611         (can_decompose_p): Rename from cannot_decompose_p.  Reverse
14612         meaning of return value.  If we see a hard register, test whether
14613         it can store a word_mode value.  Change all callers.
14614
14615 2007-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14616
14617         * pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New
14618         ftrapv insns and expanders.
14619         (subdi3): Change define_expand operand 1 to arith11_operand, and
14620         operand 2 to reg_or_0_operand.  Change constraints of 64-bit insn
14621         pattern to handle reg_or_0 operands.  Revise 32-bit insn pattern to
14622         handle 11-bit constants and reg_or_0 operands in operands 1 and 2,
14623         respectively.
14624
14625         PR middle-end/30174
14626         * varasm.c (notice_global_symbol): Treat global objects as weak when
14627         flag_shlib is true.
14628
14629 2007-02-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14630
14631         * emit-rtl.c (dconstpi): Delete.
14632         (dconstsqrt2): New.
14633         (init_emit_once): Delete dconstpi and init dconstsqrt2.
14634         * real.h (dconstpi): Delete.
14635         (dconstsqrt2): New.
14636         * builtins.c (fold_builtin_cabs): Use dconstsqrt2.
14637         (fold_builtin_hypot): Likewise.
14638
14639 2007-02-03  Tom Tromey  <tromey@redhat.com>
14640
14641         PR driver/30246
14642         * gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3,
14643         -gcoff3, -gxcoff3, -gvms3 implies -dD.
14644
14645 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
14646
14647         * c-decl.c, config/avr/avr.c, config/avr/avr.h,
14648         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
14649         config/mn10300/mn10300.c, config/pdp11/pdp11.h,
14650         config/rs6000/cell.md, config/rs6000/darwin.h,
14651         config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
14652         config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
14653         jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
14654         tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
14655         typos.  Follow spelling conventions.
14656         * doc/invoke.texi: Follow spelling conventions.
14657
14658 2007-02-03  Roger Sayle  <roger@eyesopen.com>
14659
14660         * simplify-rtx.c (simplify_relational_operation_1): Implement some
14661         canonicalization transformations that attempt to simplify integer
14662         constant comparisons to become comparisons against zero.
14663
14664 2007-02-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14665
14666         * builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into
14667         fabs(x)*sqrt(2).
14668         * fold-const.c (fold_binary): Fix comment typos.  Fold complex
14669         (x,0)-(0,y) into (x,-y).  Likewise (0,y)-(x,0) into (-x,y).
14670
14671 2007-02-02  Mike Stump  <mrs@apple.com>
14672
14673         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add.
14674         * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
14675         (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
14676         generate a branch island.
14677
14678 2007-02-02  Bob Wilson  <bob.wilson@acm.org>
14679
14680         * config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P.
14681         (xtensa_legitimate_address_p): New.
14682         (xtensa_legitimize_address): New.
14683         (xtensa_output_addr_const_extra): New.
14684         * config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define.
14685         (BASE_REG_P): New.
14686         (REG_OK_FOR_BASE_P): Use BASE_REG_P.
14687         (GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p.
14688         (LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address.
14689         (OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra.
14690         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New.
14691         (xtensa_legitimize_address): New.
14692         (xtensa_output_addr_const_extra): New.
14693
14694 2007-02-02  Steve Ellcey  <sje@cup.hp.com>
14695
14696         * config/ia64/ia64.c (ia64_print_operand): Fix compare strings.
14697
14698 2007-02-02  Ian Lance Taylor  <iant@google.com>
14699
14700         * expmed.c (expand_divmod): Add comment.
14701
14702 2007-02-02  Kazu Hirata  <kazu@codesourcery.com>
14703
14704         * emit-rtl.c (renumber_insns): Remove.
14705         * flags.h: Remove the extern for flag_renumber_insns.
14706         * rtl.h: Remove the prototype for renumber_insns.
14707         * toplev.c (flag_renumber_insns): Remove.
14708
14709 2007-02-02  Hui-May Chang  <hm.chang@apple.com>
14710
14711         Revert for x86 darwin:
14712         2005-06-19  Uros Bizjak  <uros@kss-loka.si>
14713
14714         * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
14715         code before the following patch under TARGET_MACHO.
14716         (ix86_function_value_regno_p): Likewise.
14717
14718 2007-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14719
14720         * fold-const.c (negate_expr_p, fold_negate_expr): Handle
14721         COMPLEX_EXPR.
14722
14723 2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
14724
14725         PR target/29682
14726         * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory
14727         loads to general or fp registers.  Add comments.
14728         * config/ia64/ia64.md (reg_pred_prefix): Add comment.
14729
14730 2007-02-02  Paolo Bonzini  <bonzini@gnu.org>
14731
14732         * pointer-set.c (insert_aux): Only return insertion slot.
14733         (pointer_set_insert): Adjust.
14734         (pointer_set_traverse, struct pointer_map_t, pointer_map_create,
14735         pointer_map_destroy, pointer_map_insert, pointer_map_contains,
14736         pointer_map_traverse): New.
14737         * pointer-set.h (pointer_set_traverse, struct pointer_map_t,
14738         pointer_map_create,  pointer_map_destroy, pointer_map_insert,
14739         pointer_map_contains, pointer_map_traverse): Declare.
14740
14741 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
14742
14743         PR middle-end/30473
14744         * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
14745         sprintf (str, "%s").  Do not optimize sprintf (str, "nopercent", p++).
14746
14747 2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
14748
14749         * sched-int.h (ds_to_dk, dk_to_ds): Declare functions.
14750
14751         (struct _dep): New type.
14752         (dep_t): New typedef.
14753         (DEP_PRO, DEP_CON, DEP_KIND): New access macros.
14754         (DEP_STATUS): New access macro.  The macro with the same name was
14755         renamed to DEP_LINK_STATUS.
14756         (dep_init): Declare function
14757
14758         (struct _dep_link): New type.
14759         (dep_link_t): New typedef.
14760         (DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros.
14761         (DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros.
14762         (DEP_LINK_STATUS): New macro.
14763         (debug_dep_links): New debug function.
14764
14765         (struct _deps_list): New type.
14766         (deps_list_t): New typedef.
14767         (DEPS_LIST_FIRST): New access macro.
14768         (FOR_EACH_DEP_LINK): New cycle macro.
14769         (create_deps_list, free_deps_list, delete_deps_list): Declare
14770         functions.
14771         (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
14772         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
14773         (copy_deps_list_change_con): Ditto.
14774
14775         (move_dep_link): Declare function.
14776
14777         (struct _dep_node): New type.
14778         (dep_node_t): New typedef.
14779         (DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros.
14780
14781         (struct haifa_insn_data.back_deps): New field to hold backward
14782         dependencies of the insn.
14783         (struct haifa_insn_data.depend): Rename to forw_deps.  Change its type
14784         to deps_list_t.
14785         (struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps.
14786         Change its type to deps_list_t.
14787         (INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS.
14788         (INSN_DEPEND): Rename to INSN_FORW_DEPS.
14789         (RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.
14790
14791         (INSN_COST): Move to haifa-sched.c.  Use insn_cost () instead.
14792
14793         (DEP_STATUS): Rename to DEP_LINK_STATUS.  Fix typo in the comment.
14794
14795         (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration
14796         and all callers.
14797         (dep_cost): Declare.
14798
14799         * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
14800         (ds_to_dk, dk_to_ds): New functions.
14801
14802         (init_dep_1): New static function.
14803         (init_dep): New function.
14804         (copy_dep): New static function.
14805
14806         (dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
14807         functions.
14808         (detach_dep_link): New static function.
14809         (move_dep_link): New function.
14810
14811         (dep_links_consistent_p, dump_dep_links): New static functions.
14812         (debug_dep_links): New debugging function.
14813
14814         (deps_obstack, dl_obstack, dn_obstack): New static variables.
14815
14816         (alloc_deps_list, init_deps_list): New static functions.
14817         (create_deps_list): New function.
14818         (clear_deps_list): New static function.
14819         (free_deps_list, delete_deps_list, deps_list_empty_p): New functions.
14820         (deps_list_consistent_p, dump_deps_list): New static functions.
14821         (debug_deps_list): New function.
14822         (add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New
14823         functions.
14824         (find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto.
14825
14826         (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to
14827         use new scheduler dependencies lists.
14828         (add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto.
14829         (sched_analyze): Ditto.  Initialize dependencies lists.
14830         (add_forw_dep, compute_forward_dependences): Update to use new
14831         scheduler dependencies lists.
14832
14833         (init_dependency_caches): Init deps_obstack.
14834         (free_dependency_caches): Free deps_obstack.
14835
14836         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
14837         new scheduler dependencies lists.
14838         (delete_forw_dep, add_or_update_back_forw_dep): Ditto.
14839         (add_back_forw_dep, delete_back_forw_dep): Ditto.
14840
14841         * sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree):
14842         Update to use new scheduler dependencies lists.
14843         (is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
14844         (debug_dependencies): Ditto.
14845         (schedule_region): Update comments.
14846
14847         * sched-ebb.c (earliest_block_with_similiar_load): Update to use new
14848         scheduler dependencies lists.
14849         (schedule_ebb): Update comments.
14850
14851         * rtl.def (DEPS_LIST): Remove.
14852
14853         * lists.c (unused_deps_list): Remove.
14854         (free_list): Update assertions.
14855
14856         (alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
14857         (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
14858
14859         * rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
14860         (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
14861
14862         * haifa-sched.c (comments): Update.
14863         (insn_cost1): Remove.  Inline the code into insn_cost ().
14864         (insn_cost): Update to use new scheduler dependencies lists.  Move
14865         processing of the dependency cost to dep_cost ().
14866         (dep_cost): New function.  Use it instead of insn_cost () when
14867         evaluating cost of the dependency.  Use compatible interface to
14868         interact with the target.
14869         (priority): Update to use new scheduler dependencies lists.
14870         (rank_for_schedule): Ditto.  Optimize heuristic that prefers the insn
14871         with greater number of insns that depend on the insn.
14872         (schedule_insn): Update to use new scheduler dependencies lists.  Add
14873         code to free backward dependencies lists.  Inline and optimize code
14874         from resolve_dep () - see PR28071.
14875         (ok_for_early_queue_removal): Update to use new scheduler dependencies
14876         lists.  Update call to targetm.sched.is_costly_dependence hook.
14877
14878         (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
14879         scheduler dependencies lists.
14880
14881         (resolve_dep): Remove.  Move the logic to schedule_insn ().
14882         (init_h_i_d): Initialize dependencies lists.
14883
14884         (process_insn_depend_be_in_spec): Rename to
14885         process_insn_forw_deps_be_in_spec.  Update to use new scheduler
14886         dependencies lists.
14887         (add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
14888         Update to use new scheduler dependencies lists.
14889         (clear_priorities, calc_priorities, add_jump_dependencies): Ditto.
14890
14891         * ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
14892         new scheduler dependencies lists.
14893         (build_intra_loop_deps): Ditto.
14894
14895         * target.h (struct _dep): Declare to use in
14896         gcc_target.sched.is_costly_dependence.
14897         (struct gcc_target.sched.adjust_cost): Fix typo.
14898         (struct gcc_target.sched.is_costly_dependence): Change signature to
14899         use single dep_t parameter instead of an equivalent triad.
14900         (struct gcc_target.sched.adjust_cost_2): Remove.
14901
14902         * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.
14903
14904         * reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments.
14905
14906         * doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update
14907         documentation.
14908         (TARGET_SCHED_ADJUST_COST_2): Remove documentation.
14909
14910         * doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
14911         (REG_DEP_TRUE): Document.
14912
14913         * config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
14914         Change signature to correspond to the targetm.sched.adjust_cost hook.
14915         Update use in TARGET_SCHED_ADJUST_COST_2.
14916         (TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
14917         (ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
14918         new scheduler dependencies lists.
14919         (ia64_gen_check): Ditto.
14920
14921         * config/mips/mips.c (vr4130_swap_insns_p): Update to use new
14922         scheduler dependencies lists.
14923
14924         * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
14925         signature to correspond to the targetm.sched.is_costly_dependence hook.
14926         (is_costly_group): Update to use new scheduler dependencies lists.
14927
14928         * config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function
14929         instead of INSN_COST () macro.
14930
14931 2007-02-01  Ian Lance Taylor  <iant@google.com>
14932
14933         * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn.
14934
14935 2007-02-01  Guy Martin  <gmsoft@gentoo.org>
14936
14937         * pa.md (tp_load): Correct mfctl instruction syntax.
14938
14939 2007-02-01  Geoffrey Keating  <geoffk@apple.com>
14940
14941         * config/rs6000/rs6000.c (rs6000_stack_info): Correct
14942         altivec_padding_size calculation on AIX.  Improve comment, add
14943         assert to verify that it's right.
14944
14945         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
14946         64-bit.
14947
14948 2007-2-01  Seongbae Park  <seongbae.park@gmail.com>
14949
14950         PR inline-asm/28686
14951         * global.c (global_alloc): Add mising initialization of
14952         ELIMINABLE_REGSET.
14953
14954 2007-02-01  Roger Sayle  <roger@eyesopen.com>
14955
14956         * alias.c (init_alias_analysis): Correct whitespace.
14957         * bb-reorder.c (fix_edges_for_rarely_executed_code,
14958         partition_hot_cold_basic_blocks): Likewise.
14959         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
14960         expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
14961         maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
14962         fold_builtin_snprintf_chk, fold_builtin_printf,
14963         fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
14964         do_mpfr_arg3, do_mpfr_sincos): Likewise.
14965         * cfgcleanup.c (cleanup_cfg): Likewise.
14966         * cfgexpand.c (tree_expand_cfg): Likewise.
14967         * fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
14968         * function.c (get_next_funcdef_no): Likewise.
14969         * gengtype.c (main): Likewise.
14970         * genmodes.c (main): Likewise.
14971         * gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
14972         * haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
14973         * ifcvt.c (noce_emit_move_insn): Likewise.
14974         * modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
14975         Likewise.
14976         * stor-layout.c (get_best_mode): Likewise.
14977         * tree-ssa-loop-niter.c (get_val_for): Likewise.
14978         * tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
14979         scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
14980         perform_var_substitution, solve_graph): Likewise.
14981         * tree-vrp.c (vrp_finalize): Likewise.
14982
14983 2007-02-01  Ian Lance Taylor  <iant@google.com>
14984
14985         * lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
14986         high part of a paradoxical subreg, return a constant zero.
14987
14988 2007-02-01  Zdenek Dvorak <dvorakz@suse.cz>
14989
14990         * toplev.c (lang_dependent_init): Call init_set_costs.
14991         * loop-init.c (loop_optimizer_init): Do not call init_set_costs.
14992
14993 2007-02-01  Richard Guenther  <rguenther@suse.de>
14994
14995         PR middle-end/30656
14996         * fold-const.c (fold_negate_expr): Allow negating a
14997         constant if overflow does not change.
14998
14999 2007-02-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15000
15001         * doc/c-tree.texi (Expression trees): Improve markup.
15002         * doc/tm.texi (Register Classes, Addressing Modes)
15003         (Floating Point): Fix spacing after abbreviations.  Fix some
15004         typos.
15005
15006 2007-02-01  Ben Elliston  <bje@au.ibm.com>
15007
15008         * doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
15009         * doc/contrib.texi: Likewise.
15010         * doc/install.texi: Likewise.
15011
15012 2007-01-31  Richard Henderson  <rth@redhat.com>
15013             Ian Lance Taylor  <iant@google.com>
15014
15015         * lower-subreg.c: New file.
15016         * rtl.def (CONCATN): Define.
15017         * passes.c (init_optimization_passes): Add pass_lower_subreg and
15018         pass_lower_subreg2.
15019         * emit-rtl.c (update_reg_offset): New static function, broken out
15020         of gen_rtx_REG_offset.
15021         (gen_rtx_REG_offset): Call update_reg_offset.
15022         (gen_reg_rtx_offset): New function.
15023         * regclass.c: Revert patch of 2006-03-05, restoring
15024         reg_scan_update.
15025         (clear_reg_info_regno): New function.
15026         * dwarf2out.c (concatn_loc_descriptor): New static function.
15027         (loc_descriptor): Handle CONCATN.
15028         * common.opt (fsplit_wide_types): New option.
15029         * opts.c (decode_options): Set flag_split_wide_types when
15030         optimizing.
15031         * timevar.def (TV_LOWER_SUBREG): Define.
15032         * rtl.h (gen_reg_rtx_offset): Declare.
15033         (reg_scan_update): Declare.
15034         * regs.h (clear_reg_info_regno): Declare.
15035         * tree-pass.h (pass_lower_subreg): Declare.
15036         (pass_lower_subreg2): Declare.
15037         * doc/invoke.texi (Option Summary): List -fno-split-wide-types.
15038         (Optimize Options): Add -fsplit-wide-types to -O1 list.  Document
15039         -fsplit-wide-types.
15040         * doc/rtl.texi (Regs and Memory): Document concat and concatn.
15041         * Makefile.in (OBJS-common): Add lower-subreg.o.
15042         (lower-subreg.o): New target.
15043
15044 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
15045
15046         * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.
15047
15048 2007-01-31  Anatoly Sokolov <aesok@post.ru>
15049
15050         PR target/19087
15051         * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
15052
15053 2007-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15054
15055         PR middle-end/29335
15056         * builtins.c (fold_builtin_sqrt): Use MPFR for constant args.
15057
15058 2007-01-31  Zdenek Dvorak <dvorakz@suse.cz>
15059
15060         * cfgloop.h: Include vec-prim.h.
15061         (enum li_flags): Remove LI_ONLY_OLD.
15062         (loop_iterator): Changed.
15063         (fel_next, fel_init): Iterate over loop tree.
15064         (FOR_EACH_LOOP_BREAK): New macro.
15065         * loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
15066         FOR_EACH_LOOP.
15067         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
15068         * modulo-sched.c (sms_schedule): Ditto.
15069         * tree-vectorizer.c (vectorize_loops): Ditto.
15070         * doc/loop.texi: Update information on loop numbering and behavior of
15071         FOR_EACH_LOOP wrto new loops.
15072         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
15073         add_to_evolution_1): Test nestedness of loops instead of comparing
15074         their numbers.
15075         * tree-chrec.c (chrec_fold_plus_poly_poly,
15076         chrec_fold_multiply_poly_poly, chrec_evaluate,
15077         hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
15078         reset_evolution_in_loop): Ditto.
15079         * Makefile.in (CFGLOOP_H): Add vecprim.h dependency.
15080
15081 2007-01-31  Dirk Mueller  <dmueller@suse.de>
15082
15083         * c-common.c (warn_about_parentheses): Separate warning about
15084         un-parenthized sequence of comparison operators from the one
15085         which is supposed to warn about x <= y <= z.
15086
15087 2007-01-31  Uros Bizjak  <ubizjak@gmail.com>
15088
15089         * optabs.h (enum optab_index): Add new OTI_isinf.
15090         (isinf_optab): Define corresponding macro.
15091         * optabs.c (init_optabs): Initialize isinf_optab.
15092         * genopinit.c (optabs): Implement isinf_optab using isinf?f2
15093         patterns.
15094         * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
15095         (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
15096         using isinf_optab.
15097         (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
15098         expand_builtin_interclass_mathfn.
15099         * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
15100         * config/i386/i386.md (UNSPEC_FXAM): New constant.
15101         (fxam<mode>2_i387): New insn pattern.
15102         (isinf<mode>2) New expander to implement isinf, isinff and isinfl
15103         built-in functions as x87 inline asm.
15104
15105 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
15106
15107         * config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.
15108
15109 2007-01-30  Eric Christopher  <echristo@apple.com>
15110
15111         * config.gcc: Add geode.
15112
15113 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
15114
15115         * cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
15116         ipa-inline.c, tree-profile.c, tree-ssa-live.c,
15117         tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
15118         value-prof.c: Fix comment typos.
15119
15120 2007-01-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15121
15122         PR c++/24745
15123         * doc/invoke.texi (Wpointer-arith): Document warning.
15124
15125 2007-01-30  Janis Johnson  <janis187@us.ibm.com>
15126
15127         * doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
15128         the list of discrepancies from the draft TR.
15129
15130 2007-01-30  Dirk Mueller  <dmueller@suse.de>
15131
15132         PR c++/30601
15133         * doc/invoke.texi (-Wreturn-type): Update description to
15134         match new behavior.
15135
15136 2007-01-30  Richard Sandiford  <richard@codesourcery.com>
15137
15138         * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
15139
15140 2007-01-30  Uros Bizjak  <ubizjak@gmail.com>
15141
15142         * builtins.c (expand_builtin_int_interclass_roundingfn): New function
15143         to handle optabs that operate on floating point input argument and
15144         output to integer output.
15145         (expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
15146         (expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
15147         (expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
15148         expand_builtin_interclass_mathfn ().
15149         * config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
15150         (ilogbsi2): Remove.
15151         (ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
15152         ilogbl built-in functions as x87 intrinsics.
15153
15154 2007-01-30  Richard Guenther  <rguenther@suse.de>
15155
15156         PR middle-end/27657
15157         * dwarf2out.c (reference_to_unused): Query varpool if the
15158         variable was output.
15159
15160 2007-01-30  Richard Guenther  <rguenther@suse.de>
15161
15162         PR middle-end/30313
15163         * passes.c (execute_one_pass): Reset in_gimple_form to not
15164         confuse non-unit-at-a-time mode.
15165
15166 2007-01-29  Roger Sayle  <roger@eyesopen.com>
15167             Richard Guenther  <rguenther@suse.de>
15168
15169         * fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
15170         avoid undefined behaviour on overflow.  Use force_fit_type_double
15171         to construct the constant with the specified TREE_OVERFLOW.
15172
15173 2007-01-29  Janis Johnson  <janis187@us.ibm.com>
15174
15175         * config/dfp-bit.c: Add parameterized support for fp exceptions.
15176         * config/dfp-bit.h: Ditto.
15177
15178 2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15179
15180         * c-decl.c (pop_scope): Replace warnings with call to
15181         warn_for_unused_label.
15182         * c-common.h (warn_for_unused_label): Declare.
15183         * c-common.c (warn_for_unused_label): Define.
15184
15185 2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15186
15187         * tree-optimize.c (update_inlined_to_pointers): Delete unused
15188         function.
15189
15190 2007-01-29  Janis Johnson  <janis187@us.ibm.com>
15191
15192         * Makefile.in (USER_H): Remove decfloat.h.
15193         * ginclude/decfloat.h: Delete, moving contents to ...
15194         * ginclude/float.h: Add support for decimal floating point,
15195         guarded by __STDC_WANT_DEC_FP__.
15196
15197 2007-01-29  Mike Stump  <mrs@apple.com>
15198
15199         * doc/gccint.texi (Top): Rename Loop Representation to Loop
15200         Analysis and Representation to resolve case insensitive conflict.
15201         * doc/loop.texi (Loop Analysis and Representation): Likewise.
15202
15203 2007-01-28  Daniel Berlin  <dberlin@dberlin.org>
15204
15205         * tree.h (struct tree_memory_tag): Add aliases member.
15206         (MTAG_ALIASES): New macro.
15207         * tree-ssa-alias.c (alias_bitmap_obstack): New variable.
15208         (add_may_alias): Remove pointer-set. Update for may_aliases being
15209         a bitmap.
15210         (mark_aliases_call_clobbered): Update for may_aliases being a
15211         bitmap.
15212         (compute_tag_properties): Ditto.
15213         (create_partition_for): Ditto.
15214         (compute_memory_partitions): Ditto.
15215         (dump_may_aliases_for): Ditto.
15216         (is_aliased_with): Ditto.
15217         (add_may_alias_for_new_tag): Ditto.
15218         (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
15219         (compute_is_aliased): New function.
15220         (compute_may_aliases): Call compute_is_aliased).
15221         (init_alias_info): Initialize alias_bitmap_obstack.
15222         (union_alias_set_into): New function.
15223         (compute_flow_sensitive_aliasing): Use union_aliases_into.
15224         (have_common_aliases_p): Rewrite to take two bitmaps and use
15225         intersection.
15226         (compute_flow_insensitive_aliasing): Stop using pointer-sets.
15227         Update for bitmaps.
15228         (finalize_ref_all_pointers): Update for add_may_alias changes.
15229         (new_type_alias): Ditto.
15230         * tree-flow-inline.h (may_aliases): Return a bitmap.
15231         * tree-dfa.c (dump_variable): Check for MTAG_P'ness.
15232         * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
15233         may_aliases being a bitmap.
15234         * tree-flow.h (struct var_ann_d): Remove may_aliases member.
15235         may_aliases now returns a bitmap.
15236         * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
15237         being a bitmap.
15238         * tree-ssa-operands.c (add_virtual_operand): Update for
15239         may_aliases being a bitmap.
15240
15241 2007-01-29  Daniel Berlin  <dberlin@dberlin.org>
15242
15243         PR tree-optimization/30630
15244         * tree-ssa-structalias.c (do_complex_constraint): Mark correct
15245         variable as changed.
15246
15247 2007-01-29  Simon Martin  <simartin@users.sourceforge.net>
15248
15249         PR c++/28266
15250         * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
15251         expanded only once even if an error occurs.
15252
15253 2007-01-29  Ben Elliston  <bje@au.ibm.com>
15254
15255         * gcov-io.h (__gcov_indirect_call_profiler): Declare.
15256         (__gcov_average_profiler): Likewise.
15257         (__gcov_ior_profiler): Likewise.
15258         (__gcov_merge_ior): Likewise.
15259
15260 2007-01-28  Jan Hubicka  <jh@suse.cz>
15261
15262         * builtins.c (expand_builtin_memset): Fix typo in my last patch.
15263         * value-prof.c (stringop_block_profile): Likewise.
15264
15265 2007-01-28  Jan Hubicka  <jh@suse.cz>
15266
15267         * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall):
15268         Add variant handling histograms; add wrapper.
15269         (clear_storage_via_libcall): Export.
15270         (emit_block_move_hints): Break out from ...; add histograms.
15271         (emit_block_move): ... this one.
15272         (clear_storage_hints): Break out from ...; add histograms.
15273         (clear_storage): ... this one.
15274         (set_storage_via_memset): Handle histogram.
15275         * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
15276         (clear_storage_hints, clear_storage_via_libcall): Declare.
15277         (set_storage_via_setmem): Update prototype.
15278         * doc/md.texi (movmem, setmem): Document new arguments.
15279
15280         * value-prof.c (dump_histogram_value, tree_find_values_to_profile):
15281         Add new histograms.
15282         (stringop_block_profile): New global function.
15283         (tree_stringops_values_to_profile): Profile block size and alignment.
15284         * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
15285         HIST_TYPE_IOR.
15286         (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
15287         (stringop_block_profile): Declare.
15288         * builtins.c: Include value-prof.h.
15289         (expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
15290         * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
15291         (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
15292         (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
15293         * profile.c (instrument_values): Add new counters.
15294         * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
15295         calls.
15296         * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
15297         (tree_init_edge_profiler): Build new profilers.
15298         (tree_gen_average_profiler, tree_gen_ior_profiler): New.
15299         (pass_tree_profile): Add dump.
15300         (tree_profile_hooks): Update.
15301         * Makefile.in (LIBGCOV): Add new constants.
15302         * libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
15303         __gcov_ior_profiler): New.
15304         * i386.md (movmem/setmem expanders): Add new optional arguments.
15305
15306 2007-01-28  David Edelsohn  <edelsohn@gnu.org>
15307
15308         * doc/md.texi (Standard Pattern Names): Document blockage pattern.
15309
15310 2007-01-28  Zdenek Dvorak <dvorakz@suse.cz>
15311
15312         * tree-ssa-loop-unswitch.c: Include tree-inline.h.
15313         (tree_unswitch_single_loop): Pass eni_size_weights to
15314         tree_num_loop_insns.
15315         * tree-ssa-loop-manip.c: Include tree-inline.h.
15316         (can_unroll_loop_p): Pass eni_size_weights to
15317         tree_num_loop_insns.
15318         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
15319         Pass eni_size_weights to estimate_num_insns.
15320         * tree.h (init_inline_once): Export.
15321         * toplev.c (backend_init): Call init_inline_once.
15322         * cgraphunit.c (cgraph_process_new_functions,
15323         cgraph_analyze_function): Pass eni_inlining_weights to
15324         estimate_num_insns.
15325         * ipa-inline.c (compute_inline_parameters): Ditto.
15326         * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
15327         to estimate_num_insns.
15328         (try_unroll_loop_completely): Pass eni_size_weights to
15329         tree_num_loop_insns.
15330         * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
15331         ot estimate_num_insns.
15332         * tree-ssa-loop-prefetch.c: Include tree-inline.h.
15333         (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
15334         * tree-inline.c (eni_inlining_weights, eni_size_weights,
15335         eni_time_weights): New variables.
15336         (init_inline_once): Initialize them.
15337         (struct eni_data): Mew.
15338         (estimate_num_insns_1, estimate_num_insns): Use weights.
15339         * tree-inline.h (struct eni_weights_d): New.
15340         (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
15341         (estimate_num_insns): Declaration changed.
15342         * cfgloop.h (tree_num_loop_insns): Declaration changed.
15343         * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
15344         tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
15345
15346 2007-01-28  Zdenek Dvorak <dvorakz@suse.cz>
15347
15348         * tree-data-ref.c (conflict_fn): Assert that the number of affine
15349         relations in the conflict function is valid.
15350
15351 2007-01-27  Ian Lance Taylor  <iant@google.com>
15352
15353         * common.opt: Add fstrict-overflow.
15354         * opts.c (decode_options): Set flag_strict_overflow if -O2.
15355         * flags.h (TYPE_OVERFLOW_WRAPS): Define.
15356         (TYPE_OVERFLOW_UNDEFINED): Define.
15357         (TYPE_OVERFLOW_TRAPS): Define.  This replaces TYPE_TRAP_SIGNED.
15358         Replace all uses.
15359         * tree.h (TYPE_TRAP_SIGNED): Don't define.
15360         * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
15361         (fold_negate_expr): Likewise.
15362         (make_range): Likewise.
15363         (extract_muldiv_1): Likewise.
15364         (maybe_canonicalize_comparison): Likewise.
15365         (fold_comparison): Likewise.
15366         (fold_binary): Likewise.
15367         (tree_expr_nonnegative_p): Likewise.
15368         (tree_expr_nonzero_p): Likewise.
15369         * tree-vrp.c (compare_values): Likewise.
15370         (extract_range_from_binary_expr): Likewise.
15371         (extract_range_from_unary_expr): Likewise.
15372         * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
15373         Likewise.
15374         (nowrap_type_p): Likewise.
15375         * tree-scalar-evolution.c (simple_iv): Likewise.
15376         * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
15377         (build_range_check): Likewise.
15378         (extract_muldiv_1): Likewise.
15379         (fold_comparison): Likewise.
15380         * tree-vrp.c (vrp_int_const_binop): Likewise.
15381         (extract_range_from_unary_expr): Likewise.
15382         * convert.c (convert_to_integer): Likewise.
15383         * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
15384         (fold_comparison): Likewise.
15385         (fold_binary): Likewise.
15386         * optabs.c (optab_for_tree_code): Likewise.
15387         * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
15388         * simplify-rtx.c (simplify_const_relational_operation): Check
15389         flag_strict_overflow and flag_trapv.
15390         (simplify_const_relational_operation): Likewise.
15391         * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
15392         (Optimize Options): Add -fstrict-overflow to -O2 list.  Document
15393         -fstrict-overflow.
15394
15395 2007-01-27  Roger Sayle  <roger@eyesopen.com>
15396
15397         * tree.c (tree_fold_gcd): Delete.
15398         * tree.h (tree_fold_gcd): Remove prototype.
15399         * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
15400         test whether one constant integer is a multiple of another.  Instead
15401         call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
15402         * fold-const.c (multiple_of_p):  We've determined both TOP and
15403         BOTTOM are integer constants so we can call int_const_binop directly
15404         instead of the more generic const_binop.
15405
15406 2007-01-27  Roger Sayle  <roger@eyesopen.com>
15407
15408         * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
15409         1*X check that the constant hasn't overflowed, to preserve the
15410         TREE_OVERFLOW bit.
15411         (round_up): Provide an efficient implementation when rouding-up an
15412         INTEGER_CST to a power-of-two.
15413
15414 2007-01-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15415
15416         * doc/sourcebuild.texi: Add comma for clarity.
15417         * doc/extend.texi: Fix some typos.
15418         * doc/passes.texi: Likewise.
15419         * doc/cppinternals.texi: Likewise.
15420         * doc/c-tree.texi: Likewise.
15421         * doc/tree-ssa.texi: Likewise.
15422         * doc/install.texi: Likewise.
15423
15424 2007-01-27  Jan Hubicka  <jh@suse.cz>
15425
15426         * tree-sra.c (sra_walk_function): Don't rely on aliases being build.
15427         (pass_sra): Do not require alias information.
15428         * passes.c (init_optimization_passes): Add SRA
15429
15430 2007-01-27  Steven Bosscher  <steven@gcc.gnu.org>
15431
15432         * tracer.c (rest_of_handle_tracer): We already cleaned
15433         up the CFG in tracer() so don't do it here again.
15434         * cfgcleanup.c (rest_of_handle_jump2): Don't repeat
15435         cleanup_cfg here, either.  And don't call renumber_insns.
15436
15437         * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
15438         and BB_HEAD are in the insn stream here.  Instead make sure
15439         that BB_INSN is valid on all insns.  Also, do check here that
15440         there are no pending branch predictions...
15441         (rtl_verify_flow_info): ...instead of doing it here.  Checks
15442         for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
15443         here.
15444
15445 2007-01-26  Roger Sayle  <roger@eyesopen.com>
15446
15447         * config/i386/i386.c (ix86_swap_binary_operands_p): New helper
15448         function to simplify/factorize operand order canonicalization.
15449         (ix86_fixup_binary_operands): Reorganize using the above function.
15450         (ix86_binary_operator_ok): Likewise.
15451
15452 2007-01-27  Jakub Jelinek  <jakub@redhat.com>
15453
15454         * genattrtab.c (struct attr_value_list, insn_code_values): Move to
15455         file scope from optimize_attrs.
15456         (simplify_test_exp): If insn_code_values is not NULL, use it to speed
15457         up search.
15458         (optimize_attrs): Clear insn_code_values after freeing it.
15459
15460 2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>
15461
15462         * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
15463         a parts.base assignment.
15464
15465 2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>
15466
15467         * tree-data-ref.c (dump_subscript): Use dump_conflict_function.
15468         (compute_subscript_distance, initialize_data_dependence_relation,
15469         finalize_ddr_dependent, analyze_ziv_subscript,
15470         analyze_siv_subscript_cst_affine,
15471         compute_overlap_steps_for_affine_univar,
15472         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
15473         analyze_siv_subscript, analyze_miv_subscript,
15474         analyze_overlapping_iterations, subscript_dependence_tester_1,
15475         compute_self_dependence, free_dependence_relation): Work
15476         with affine_fn instead of chrecs.
15477         (dump_affine_function, dump_conflict_function, affine_function_equal_p,
15478         common_affine_function, affine_function_base,
15479         affine_function_constant_p, affine_fn_op, affine_fn_plus,
15480         affine_fn_minus, affine_fn_free, conflict_fn_not_known,
15481         conflict_fn_no_dependence, free_conflict_function, free_subscripts,
15482         conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
15483         (all_chrecs_equal_p): Removed.
15484         * tree-data-ref.h (affine_fn, conflict_function): New types.
15485         (struct subscript): Change type of conflicting_iterations_in_a
15486         and conflicting_iterations_in_b.
15487
15488 2007-01-26  Steve Ellcey  <sje@cup.hp.com>
15489
15490         PR other/30182
15491         * config/pa/pa.h (TARGET_HPUX_11): New.
15492         * config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
15493         * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.
15494
15495 2007-01-26  Daniel Berlin  <dberlin@dberlin.org>
15496         Richard Guenther  <rguenther@suse.de>
15497
15498         * tree-ssa-structalias.c (solve_graph): Handle case
15499         we merged the variable to another.
15500
15501 2007-01-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15502
15503         * builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even'
15504         functions.
15505
15506         * fold-const.c (negate_mathfn_p): Treat casin, casinh, catan,
15507         catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions.
15508
15509 2007-01-25  DJ Delorie  <dj@redhat.com>
15510
15511         * config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't
15512         allow changes to modes which don't fit in those registers.
15513
15514         * reload1.c (choose_reload_regs): Check for invalid subregs before
15515         computing their locations, not after.
15516
15517 2007-01-25  Geoffrey Keating  <geoffk@apple.com>
15518
15519         PR 25127
15520         * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
15521         save Altivec registers in an eh_return function.
15522         (compute_vrsave_mask): Likewise.
15523         (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
15524         for saving Altivec registers.
15525         (rs6000_emit_prologue): Don't allocate stack twice in
15526         eh_return function.  Correct expected value of altivec_save_offset
15527         when using save_world.  Describe save of R0 to stack when using
15528         save_world.  Describe stack pointer adjustment when using
15529         save_world.  Remove duplicated eh_return parameter register saving.
15530         Update sp_offset variable after save_world.
15531         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
15532         darwin-world.asm.
15533         (LIB2FUNCS_EXTRA): Add darwin-world.asm.
15534         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
15535         implies Altivec.
15536
15537 2007-01-25  Steve Ellcey  <sje@cup.hp.com>
15538
15539         * config.gcc (ia64*-*-hpux*): Make posix threads the default.
15540
15541 2007-01-25  Steve Ellcey  <sje@cup.hp.com>
15542
15543         PR other/30182
15544         * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
15545         * config/ia64/ia64.c (ia64_init_builtins):  Ditto.
15546
15547 2007-01-25  Richard Guenther  <rguenther@suse.de>
15548
15549         * doc/invoke.texi (-Wcoverage-mismatch): Document.
15550         * common.opt (-Wcoverage-mismatch): New warning option.
15551         * coverage.c (get_coverage_counts): Ignore coverage mismatch
15552         if -Wcoverage-mismatch is given.
15553
15554 2007-01-25  Razya Ladelsky  <razya@il.ibm.com>
15555
15556         * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
15557         (ipcp_driver): Change to static definition.
15558         Add dumping of the ifunctions.
15559         (constant_val_insert): Remove unused parameter. Support for SSA.
15560         (ipcp_propagate_const): Support for SSA.
15561         (ipcp_profile_bb_print): Print only analyzed nodes.
15562         (ipcp_replace_map_create): Remove support for Fortran constant
15563         for now.
15564         * ipa-prop.c (ipa_method_modify_stmt,
15565         ipa_callsite_compute_param): Support for SSA.
15566         * ipa-prop.h (ipcp_driver): Remove declaration.
15567         (IS_VALID_TREE_MAP_INDEX): Add define.
15568
15569 2007-01-24  Geoffrey Keating  <geoffk@apple.com>
15570
15571         * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
15572
15573 2007-01-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15574
15575         PR middle-end/30447
15576         * builtins.c (fold_builtin_cabs): Use MPFR to evaluate a
15577         constant argument to cabs and do it without checking for
15578         -funsafe-math-optimizations.
15579
15580 2007-01-24  Douglas Gregor  <dgregor@osl.iu.edu>
15581
15582         * c-common.h (RID_FIRST_CXX0X): New.
15583         (RID_LAST_CXX0X): New.
15584         * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered
15585         by -Wall.
15586         * c.opt (Wc++0x-compat): New.
15587         * doc/invoke.texi (-Wc++0x-compat): Document.
15588
15589 2007-01-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15590
15591         * builtins.c (fold_builtin_carg): New.
15592         (fold_builtin_1): Use it.
15593
15594 2007-01-24  Jan Hubicka  <jh@suse.cz>
15595
15596         * ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns.
15597
15598         * ipa-inline.c (initial_insns, max_insns): Delete.
15599         (compute_max_insns): New function.
15600         (cgraph_decide_inlining_of_small_function): Use it; take minimal
15601         amount of insns as base for code growth.
15602         (cgraph_decide_inlining): Make initial_insns local; do not compute
15603         max_insns.
15604         * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
15605         * doc/invoke.texi (inline-unit-growth): Update docs.
15606
15607 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
15608
15609         * config/i386/i386.h (x86_cmpxchg16b): Remove const.
15610         (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b.
15611         * config/i386/i386.c (x86_cmpxchg16b): Remove const.
15612         (override_options): Add PTA_CX16 flag.  Set x86_cmpxchg16b
15613         for CPUs that have PTA_CX16 set.
15614
15615         PR middle-end/27416
15616         * gimplify.c (omp_check_private): New function.
15617         (gimplify_scan_omp_clauses): Use it for
15618         firstprivate/lastprivate/reduction.
15619
15620         PR middle-end/30494
15621         * gimplify.c (omp_add_variable): Don't call omp_notice_variable
15622         on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
15623
15624         PR middle-end/30421
15625         * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
15626         If lower_lastprivate_clauses emits some statements, append them
15627         to dlist rather than body_p and to body_p append an initializer.
15628         (lower_omp_for): Adjust caller.
15629
15630 2007-01-24  Steve Ellcey  <sje@cup.hp.com>
15631
15632         * target.h (globalize_decl_name): New.
15633         * target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
15634         * output.h (default_globalize_decl_name): New.
15635         * varasm.c (asm_output_bss): Use globalize_decl_name instead of
15636         globalize_label.
15637         (globalize_decl): Ditto.
15638         (default_globalize_decl_name): New.
15639         * config/ia64/ia64.c (ia64_globalize_decl_name): New.
15640         (ia64_handle_version_id_attribute): New.
15641         (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
15642         (ia64_asm_output_external): Use globalize_decl_name instead
15643         of globalize_label.
15644         * doc/extend.texi (version_id): New pragma.
15645         * doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook.
15646
15647 2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
15648
15649         * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
15650         _uleb128_t and _Unwind_SWord with _sleb128_t.
15651         * unwind-dw2.c (extract_cie_info, execute_stack_op,
15652         execute_cfa_program, uw_frame_state_for, uw_update_context_1):
15653         Likewise.
15654         * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
15655         * unwind-pe.h (read_uleb128, read_sleb128,
15656         read_encoded_value_with_base): Likewise.
15657         * unwind-generic.h: Define _sleb128_t and _uleb128_t types.
15658
15659 2007-01-24  Richard Guenther  <rguenther@suse.de>
15660
15661         * builtins.c (expand_builtin_cexpi): Get the fndecl
15662         for cexp in the correct way.
15663
15664 2007-01-24  Jan Hubicka  <jh@suse.cz>
15665
15666         * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS
15667         of calls.
15668
15669 2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
15670
15671         * c-cppbuiltin.c (builtin_define_type_sizeof): New function.
15672         (c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__,
15673         __SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__,
15674         __SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__,
15675         __SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and
15676         __SIZEOF_PTRDIFF_T__.
15677         * doc/cpp.texi: Documentation for the new builtin macros added.
15678
15679 2007-01-24  Uros Bizjak  <ubizjak@gmail.com>
15680
15681         * config/i386/i386.md (tanxf2, tan<mode>2, atan<mode>2, log<mode>2,
15682         log10<mode>2, log2<mode>2, expxf2, exp10xf2, exp2xf2): Use op2
15683         instead of operands[2] to avoid access past the end of array.
15684
15685 2007-01-24  Richard Sandiford  <richard@codesourcery.com>
15686
15687         * reload1.c (emit_reload_insns): Pass the reload register
15688         for a non-spill output reload through forget_old_reloads_1.
15689
15690 2007-01-23  Joseph Myers  <joseph@codesourcery.com>
15691
15692         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
15693         _SOFT_DOUBLE if doubles use software floating-point.
15694         * config/rs6000/libgcc-ppc-glibc.ver: Export additional long
15695         double functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
15696         * config/rs6000/darwin-ldouble.c: Also compile functions for
15697         hard-float without FPRs.  Use fmsub function for all __NO_FPRS__
15698         cases.  Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
15699         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove
15700         commented-out long double override.
15701         (CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise.
15702         * config/rs6000/eabispe.h: Likewise.
15703         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
15704         long double for non-SPE.
15705         (rs6000_handle_option): Likewise.
15706         (invalid_e500_subreg): Disallow more subregs involding DImode,
15707         DFmode, TImode or TFmode.
15708         (rs6000_legitimate_offset_address_p): Check TFmode offsets for
15709         E500 double.
15710         (legitimate_lo_sum_address_p): Also check for TFmode for E500
15711         double.
15712         (rs6000_legitimize_address): Also handle TFmode for E500 double.
15713         (rs6000_legitimize_reload_address): Also handle TFmode for E500
15714         double.
15715         (rs6000_legitimate_address): Also check for TFmode for E500
15716         double.
15717         (rs6000_emit_move): Use DFmode subregs of TFmode for E500 double.
15718         (spe_build_register_parallel): Handle TFmode and TCmode.
15719         (rs6000_spe_function_arg): Handle TFmode and TCmode for E500
15720         double.
15721         (function_arg): Handle TFmode and TCmode for E500 double.
15722         (rs6000_init_libfuncs): Initialize extra libfuncs for soft double
15723         in general.
15724         (print_operand): Handle TFmode and TImode for %y.
15725         (rs6000_generate_compare): Handle TFmode comparisons for E500
15726         double.
15727         (spe_func_has_64bit_regs_p): Check for TFmode for E500 double.
15728         (rs6000_function_value): Handle TFmode and TCmode for E500 double.
15729         (rs6000_libcall_value): Handle TFmode and TCmode for E500 double.
15730         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for
15731         TFmode for E500 double.
15732         * config/rs6000/rs6000.md (FP): Allow TF for E500 double.
15733         (floatsidf2): Enable for E500 double.
15734         (movtf_softfloat): Use rs6000_nonimmediate_operand.
15735         (extenddftf2): Change to extenddftf2_fprs.
15736         (extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs
15737         depending on TARGET_E500_DOUBLE.
15738         (extendsftf2): Enable for E500 double.
15739         (trunctfdf2): Enable for E500 double.
15740         (trunctfsf2): Change to trunctfsf2_fprs.
15741         (trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs
15742         depending on TARGET_E500_DOUBLE.
15743         (floatsitf2): Enable for E500 double.
15744         (fix_trunctfsi2): Change to fix_trunctfsi2_fprs.
15745         (fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or
15746         gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE.
15747         (negtf2): Change to negtf2_internal.
15748         (negtf2): New expander.
15749         (abstf2): Enable for E500 double.  Call gen_spe_abstf2_tst,
15750         gen_spe_abstf2_cmp or gen_abstf2_internal depending on
15751         TARGET_E500_DOUBLE and flag_unsafe_math_optimizations.
15752         (movdi_internal32): Use rs6000_nonimmediate_operand.
15753         (unnamed splitter): Likewise.
15754         * config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR,
15755         TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs.
15756         (SPE64TF, DITI): New mode macros.
15757         (frob_df_di): Change to frob_<SPE64:mode>_<DITI:mode>; allow more
15758         modes.
15759         (frob_tf_ti): New.
15760         (frob_<mode>_di_2): New.
15761         (frob_tf_di_8_2): New.
15762         (frob_di_df): Change to frob_di_<mode>; allow more modes.
15763         (frob_ti_tf): New.
15764         (frob_di_df_2): Change to frob_<DITI:mode>_<SPE64:mode>_2; allow
15765         more modes.
15766         (frob_ti_<mode>_8_2): New.
15767         (frob_ti_tf_2): New.
15768         (mov_si<mode>_e500_subreg0, mov_si<mode>_e500_subreg0_2,
15769         mov_si<mode>_e500_subreg4, mov_si<mode>_e500_subreg4_2): Allow
15770         TFmode.
15771         (mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2,
15772         mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New.
15773         (spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2,
15774         spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal,
15775         spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New.
15776         (cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr,
15777         tsttflt_gp): New.
15778
15779 2007-01-23  Ian Lance Taylor  <iant@google.com>
15780
15781         * Makefile.in (OBJS-common): Reformat, alphabetize, but put
15782         insn-*.o first.
15783         (OBJS-archive): Reformat, alphabetize.
15784         (OBJS): Change out_object_file to OBJS-md.
15785
15786 2007-01-23  Uros Bizjak  <ubizjak@gmail.com>
15787
15788         * config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
15789         JUMP_P and CALL_P predicates where applicable.
15790         * config/i386/i386.c: Ditto.
15791         * config/i386/i386.md: Ditto.
15792         * config/i386/mmx.md: Ditto.
15793         * config/i386/predicates.md: Ditto.
15794
15795 2007-01-22  Andreas Schwab  <schwab@suse.de>
15796
15797         * config/m68k/m68k.h: Fix comment.
15798
15799 2007-01-22  Jan Hubicka  <jh@suse.cz>
15800
15801         * passes.c (init_optimization_passes): Do not rerun
15802         pass_early_warn_uninitialized.
15803
15804 2007-01-22  Richard Guenther  <rguenther@suse.de>
15805
15806         PR tree-optimization/30038
15807         * tree-ssa-math-opts.c (maybe_record_sincos): New static helper
15808         function.
15809         (execute_cse_sincos_1): Likewise.
15810         (execute_cse_sincos): Likewise.
15811         (gate_cse_sincos): Likewise.
15812         (pass_cse_sincos): New pass CSEing sin() and cos() calls using
15813         the cexpi() canonicalization of sincos().
15814         * tree-pass.h (pass_cse_sincos): Declare.
15815         * passes.c (init_optimization_passes): New pass pas_cse_sincos.
15816
15817 2007-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
15818
15819         PR rtl-optimization/29329
15820         * combine.c (replaced_rhs_insn): Rename to i2mod.
15821         (replaced_rhs_value): Rename to i2mod_new_rhs.
15822         (i2mod_old_rhs): New global variable.
15823         (combine_instructions): Adjust for above change.  Save a copy of
15824         the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
15825         note are substituted in the second instruction.
15826         (distribute_notes) <REG_DEAD>: Adjust for above change.  Do not
15827         ditch the note if it pertains to the second eliminated register
15828         and this register is mentioned in i2mod_old_rhs.
15829
15830         Revert:
15831         2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
15832
15833         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
15834         the insn to which the note was originally attached.
15835
15836 2007-01-21  Jan Hubicka  <jh@suse.cz>
15837
15838         * ipa-inline.c (inlining_mode): Comment, move up.
15839         (cgraph_decide_inlining_incrementally): Do not perform inlining
15840         itself; fix handling of flattening of self recursive functions.
15841         (cgraph_find_cycles): Remove.
15842         (cgraph_flatten_node): Remove.
15843         (cgraph_decide_inlining): Use incremental inliner to handle flattening.
15844         (try_inline): New function.
15845         (cgraph_early_inlining): Update call of
15846         cgraph_decide_inlining_incrementally.  Apply inlining here.
15847         (apply_inline): Update call of cgraph_decide_inlining_incrementally.
15848
15849 2007-01-21  Dirk Mueller  <dmueller@suse.de>
15850
15851         PR bootstrap/30511
15852         * tree-vrp.c (check_array_bounds): do not warn
15853         about ADDR_EXPR's of ARRAY_REF's which are immediately
15854         used in binary expressions.
15855
15856 2007-01-21  Ira Rosen  <irar@il.ibm.com>
15857
15858         * tree-vectorizer.h (struct _stmt_vec_info): Add new field
15859         read_write_dep and macros for its access.
15860         * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
15861         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
15862         argument, call vect_check_interleaving for every independent pair of
15863         data-refs. Mark loads that access the same memory location as a store
15864         in the loop.
15865         (vect_check_dependences): Remove.
15866         (vect_analyze_data_ref_dependences): Remove  vect_check_dependences
15867         call, fix the call to vect_analyze_data_ref_dependence.
15868         (vect_analyze_data_ref_access): For statements that access the same
15869         data-ref, check that they are not stores; for loads, check that there
15870         is no store that access the same location.
15871
15872 2007-01-20  Roger Sayle  <roger@eyesopen.com>
15873             Joseph Myers  <joseph@codesourcery.com>
15874
15875         * doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox.
15876         (-fdump-rtl-stack): Likewise.
15877         (-fno-signed-zeros): Use @minus{} for a minus sign.  Correct typo.
15878         (-mcheck-zero-division, -mcpu): Fix under/overfull hbox.
15879         (-mpt-fixed): Use @minus{} for minus sign.
15880         (Using Precompiled Headers): Fix under/overfull hbox.
15881
15882 2007-01-20  Jan Hubicka  <jh@suse.cz>
15883
15884         * tree-flow.h (struct stmt_ann_d): Move references_memory to proper
15885         place within annotation.
15886
15887 2007-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15888
15889         * pa.c (output_move_double): Change array size of xoperands to 4.
15890
15891 2007-01-20  Jan Hubicka  <jh@suse.cz>
15892
15893         * tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
15894         as temporary.
15895
15896 2007-01-19  Ian Lance Taylor  <iant@google.com>
15897
15898         * expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
15899         constant to unsigned HOST_WIDE_INT before negating.
15900
15901 2007-01-19  Ian Lance Taylor  <iant@google.com>
15902
15903         * tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
15904         to unsigned.
15905         (VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
15906         (VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
15907         (SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
15908         (SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
15909         (SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
15910         (realloc_vdef, realloc_vuse): Change second parameter to
15911         unsigned.
15912         (ssa_operand_iterator_d): Change vuse_index and mayuse_index
15913         fields to unsigned.
15914         * tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
15915         unsigned. Change x and lim locals to unsigned.
15916         (realloc_vdef, realloc_vuse): Change num_elem parameter to
15917         unsigned.
15918         (finalize_ssa_vuse_ops): Change old_i local to unsigned.
15919         (copy_virtual_operands): Change i and n locals to unsigned.
15920
15921 2007-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15922
15923         PR middle-end/29335
15924         * builtins.c (fold_builtin_1): Handle builtin fdim.
15925
15926 2007-01-20  Jan Hubicka  <jh@suse.cz>
15927
15928         * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
15929         * tree-ssa-structalias.c (compute_points_to_sets): Do call
15930         init_alias_heapvars.
15931         (init_alias_heapvars): Initialize only when not already initialized.
15932         (delete_alias_heapvars): Set heapvar_for_stmt to NULL.
15933
15934 2007-01-19  Roger Sayle  <roger@eyesopen.com>
15935
15936         * common.opt (fsigned-zeros): New command line option.
15937         * flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
15938         of flag_unsafe_math_optimizations.
15939         * opts.c (set_fast_math_flags): The -ffast-math command line option
15940         implies -fno-signed-zeros.
15941         (fast_math_flags_set_p): Likewise.
15942
15943         * doc/invoke.texi: Document new -fno-signed-zeros option, and update
15944         the documentation of -ffast-math appropriately.  Wrap long lines.
15945
15946 2007-01-19  Steve Ellcey  <sje@cup.hp.com>
15947
15948         * system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
15949         * varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef.
15950
15951 2007-01-19  Tomas Bily  <tbily@suse.cz>
15952
15953         * cgraphunit.c (cgraph_finalize_function): Updating of pid
15954         * tree-profile.c:
15955         (tree_init_ic_make_global_vars): New function
15956         (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
15957         (tree_gen_ic_profiler): New function
15958         (tree_gen_ic_func_profiler): New function
15959         (tree_profiling): Added calling of tree_gen_ic_func_profiler
15960         (tree_profile_hooks): Added hook for indirec/virtual calls
15961         * value-prof.c (tree_find_values_to_profile): New case for
15962         indirect calls
15963         (tree_values_to_profile): Call for determining indirect/virtual
15964         counters
15965         (tree_indirect_call_to_profile): New function
15966         (tree_ic_transform): New function
15967         (tree_ic): New function
15968         (find_func_by_pid): New function
15969         (init_pid_map): New function
15970         (tree_value_profile_transformations): Added check for
15971         indirect/virtual call transformation
15972         * value-prof.h (enum hist_type): New counter type for
15973         indirect/virtual calls
15974         (profile_hooks): Added new hook for profiling indirect/virtual
15975         calls
15976         * profile.c (instrument_values): New case for indirect/virtual
15977         call added
15978         * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
15979         (GCOV_COUNTER_V_INDIR): New counter type
15980         (GCOV_COUNTER_NAMES): New name of counter "indirect" added
15981         (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
15982         call added
15983         * cgraph.c: Definition of cgraph_max_pid
15984         (cgraph_create_node): Default init of pid attribute
15985         * cgraph.h: Declaration of cgraph_max_pid
15986         (struct cgraph_node): Added pid attribute
15987         * libgcov.c (__gcov_indirect_call_profiler): New function
15988         (__gcov_one_value_profiler_body): New function
15989         (__gcov_one_value_profiler): Body was moved to
15990         __gcov_one_value_profiler_body and calls it
15991
15992 2007-01-19  Basile Starynkevitch  <basile@starynkevitch.net>
15993
15994         * doc/gty.texi (Options): Document the mark_hook option to GTY.
15995         * gengtype.c (write_types_data, write_func_for_structure,
15996         write_types, ggc_wtd, pch_wtd): Add skip_hooks to
15997         write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
15998         (walk_type, write_func_for_structure): Generate the mark_hook if
15999         needed.
16000
16001 2007-01-19  Jan Hubicka  <jh@suse.cz>
16002
16003         * ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of
16004         'early' argument take inlining mode argument specifying whether to
16005         inline for size/speeed or all functions; add support for flattening;
16006         improve dumpting.
16007         (cgraph_early_inlining): Update call of decide_inlining_incrementally.
16008
16009 2007-01-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16010
16011         PR c++/17947
16012         * toplev.c (warn_deprecated_use): Use %qD instead of %qs to print
16013         the name of the declared identifier.
16014
16015 2007-01-19  Dirk Mueller  <dmueller@suse.de>
16016
16017         * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
16018         result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
16019         duplicate evaluation.
16020
16021 2007-01-19  Uros Bizjak  <ubizjak@gmail.com>
16022
16023         * config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
16024         Macroize expander using X87MODEF12 mode macro.  Extend operand 1
16025         to XFMode, use acosxf2 and truncate result to requested mode.
16026         Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
16027         (asin<mode>2): Similarly, with asin expanders.
16028         (*fscalexf4_i387): Rename from *fscalexf4.
16029         (expNcorexf3): New expander.
16030         (expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
16031         (exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
16032         X87MODEF12 mode macro.  Extend operand 1 to XFMode, use expxf2 and
16033         truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
16034         patterns for SSE math.
16035         (exp10<mode>2): Similarly, with exp10 expanders.
16036         (exp2<mode>2): Similarly, with exp2 expanders.
16037         (expm1<mode>2): Similarly, with expm1 expanders.
16038         (ldexp<mode>3): Similarly, with ldexp expanders.
16039         (log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
16040         Use gen_truncxf<mode>2_i387_noop to truncate result.
16041
16042 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
16043
16044         * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
16045         for ColdFire targets.
16046
16047 2007-01-19  Nathan Sidwell  <nathan@codesourcery.com>
16048             Richard Sandiford  <richard@codesourcery.com>
16049
16050         * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
16051         (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
16052         (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
16053         * config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
16054         (M68K_STATIC_CHAIN_REG_NAME): Likewise.
16055         * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
16056
16057 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
16058
16059         * config/m68k/m68k.md (adddi_dilshr32): Rename to...
16060         (*adddi_dilshr32): ...this.  Fix formatting.  Remove commented-out
16061         non-canonical pattern.  Restrict to !TARGET_COLDFIRE.
16062         (*adddi_dilshr32_cf): New pattern.
16063         (adddi3, subdi3): Remove first alternatives.
16064
16065 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
16066
16067         * config/m68k/m68k.c (notice_update_cc): If an SFmode move is
16068         implemented using move.l, do not use its cc result for floating-point
16069         comparisons.
16070
16071 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
16072
16073         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
16074         from accepting 's' constraints if flag_pic.
16075
16076 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
16077
16078         * config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
16079         (bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
16080         (bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
16081         condition from TARGET_68881 to TARGET_HARD_FLOAT.
16082
16083 2007-01-19  Sandra Loosemore  <sandra@codesourcery.com>
16084
16085         * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
16086         ColdFire alternatives.
16087         * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
16088         * config/m68k/m68k.md (clzsi2):  Define for ColdFire
16089         architectures that support ff1 instruction.
16090
16091 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
16092             Julian Brown  <julian@codesourcery.com>
16093
16094         * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
16095         * config/m68k/m68k.md (*movsi_cfv4): Fold into...
16096         (*movsi_cf): ...here.  Remove unnecessary 'R' from 'Rg'.
16097         Add commentary.
16098
16099 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
16100
16101         * config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
16102         and return a bool.
16103         (output_move_const_into_data_reg, output_move_simode_const): Delete.
16104         * config/m68k/m68k.c (const_method, const_int_cost): Take a
16105         HOST_WIDE_INT instead of an rtx.
16106         (m68k_rtx_costs): Update call accordingly.
16107         (output_move_const_into_data_reg): Likewise.  Fix formatting.
16108         (valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
16109         Return a bool.
16110         (output_move_simode_const): Update calls after above changes.
16111         Rework to use automatic variables and predicates like MEM_P.
16112         * config/m68k/m68k.md (pushexthisi_const): Update call to
16113         valid_mov3q_const.
16114
16115 2007-01-19  Dirk Mueller  <dmueller@suse.de>
16116
16117         * tree-ssa-alias.c (perform_var_substitution): Fix typo
16118         in dump_flags test.
16119
16120 2007-01-19  Richard Guenther  <rguenther@suse.de>
16121
16122         * builtins.c (expand_builtin_cexpi): Fall back to expanding
16123         via cexp in case sincos is not available.
16124
16125 2007-01-19  Richard Guenther  <rguenther@suse.de>
16126
16127         * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
16128         * defaults.h (TARGET_HAS_SINCOS): Default to off.
16129         * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
16130         * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
16131         * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
16132         * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
16133         * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
16134         * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
16135
16136 2007-01-19  Uros Bizjak  <ubizjak@gmail.com>
16137
16138         * config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
16139         New insn patterns.
16140         (atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
16141         (atan2xf3): Directly generate RTL pattern.
16142         (atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
16143         patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
16144         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
16145         disable patterns for SSE math.
16146         (atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
16147         patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
16148         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
16149         disable patterns for SSE math.
16150
16151 2007-01-19  Alexandre Oliva  <aoliva@redhat.com>
16152
16153         * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0.
16154
16155 2007-01-18  Roger Sayle  <roger@eyesopen.com>
16156
16157         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
16158         VIEW_CONVERT_EXPR to the same type as it's operand.
16159
16160 2007-01-18  David Edelsohn  <edelsohn@gnu.org>
16161
16162         * config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
16163         configured for long double 128.
16164
16165 2007-01-18  Mike Stump  <mrs@apple.com>
16166
16167         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build
16168         error.
16169
16170 2007-01-18  Michael Meissner  <michael.meissner@amd.com>
16171
16172         * i386.c (ix86_compute_frame_layout): Make fprintf's in #if 0 code
16173         type correct.
16174
16175 2007-01-18  Jan Hubicka  <jh@suse.cz>
16176
16177         * tree-ssa-operands.c (vop_free_bucket_size): Never return value
16178         greater than NUM_VOP_FREE_BUCKETS.
16179
16180 2007-01-18  Daniel Berlin  <dberlin@dberlin.org>
16181
16182         * tree-ssa-structalias.c: Update comments.
16183         (ptabitmap_obstack): Removed.
16184         (pta_obstack): New.
16185         (oldpta_obstack): Ditto.
16186         (stats): Add a few members.
16187         (struct variable_info): Remove node, complex, address_taken, and
16188         indirect_target members. Add oldsolution member.
16189         (new_var_info): Do not initialize removed members.
16190         (constraint_expr_type): Remove INCLUDES.
16191         (constraint_graph): Add size, implicit_preds, rep,
16192         indirect_cycles, eq_rep, label, direct_nodes, and complex members.
16193         (FIRST_REF_NODE): New macro.
16194         (LAST_REF_NODE): Ditto.
16195         (FIRST_ADDR_NODE): Ditto.
16196         (find): New function.
16197         (unite): Ditto.
16198         (dump_constraint): Do not handle INCLUDES.
16199         (insert_into_complex): Do not insert duplicate constraints.
16200         (condense_varmap_nodes): Renamed and rewritten into ...
16201         (merge_node_constraints): This. Also fix bug in handling of
16202         offseted copy constraints.
16203         (clear_edges_for_node): No longer need to deal with preds at all,
16204         or removing associated preds/succs.
16205         (merge_graph_nodes): Deal with indirect_cycles.
16206         Don't deal with predecessors.
16207         (add_implicit_graph_edge): New function.
16208         (add_pred_graph_edge): Ditto.
16209         (add_graph_edge): Don't deal with predecessors.
16210         (build_constraint_graph): Removed.
16211         (build_pred_graph): New function.
16212         (build_succ_graph): Ditto.
16213         (struct scc_info): Removed in_component. Added roots, dfs, and
16214         node_mapping. Remove visited_index, unification_queue.
16215         (scc_visit): Deal with union-find we do now.
16216         Deal with cycles with REF nodes.
16217         (collapse_nodes): Renamed and rewritten to ...
16218         (unify_nodes): This.
16219         (process_unification_queue): Removed.
16220         (topo_visit): Cleanup
16221         (do_da_constraint): Use find.
16222         (do_sd_constraint): Ditto.
16223         (do_ds_constraint): Ditto.
16224         (do_complex_constraint): Ditto.
16225         (init_scc_info): Update for removed and added members.
16226         (find_and_collapse_graph_cycles): Renamed and rewritten into ...
16227         (find_indirect_cycles): This.
16228         (equivalence_class): New variable.
16229         (label_visit): New function.
16230         (perform_variable_substitution): Rewritten.
16231         (free_var_substitution_info): New function.
16232         (find_equivalent_node): Ditto.
16233         (move_complex_constraints): Ditto.
16234         (eliminate_indirect_cycles): Ditto.
16235         (solve_graph): Only propagate changed bits.
16236         Use indirect cycle elimination.
16237         Use find.
16238         (tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
16239         (tree_id_eq): Renamed to ...
16240         (tree_vi_eq): This. Update for member change
16241         (insert_id_for_tree): Renamed and rewritten to ...
16242         (insert_vi_for_tree): This.
16243         (lookup_id_for_tree): Renamed and rewritten to ...
16244         (lookup_vi_for_tree): This.
16245         (get_id_for_tree): Renamed and rewritten to ...
16246         (get_vi_for_tree): Ditto.
16247         (get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
16248         (process_constraint): Don't handle INCLUDES.
16249         Remove special ADDRESSOF case.
16250         (find_func_aliases): Rewrite to use vi functions instead of id
16251         ones.
16252         (create_function_info_for): Ditto.
16253         (create_variable_info_for): Ditto.
16254         (intra_create_variable_infos): Ditto.
16255         (merge_smts_into): Ditto.
16256         (find_what_p_points_to): Ditto.
16257         (init_base_vars): Ditto.
16258         (init_alias_vars): Ditto.
16259         (remove_preds_and_fake_succs): New function.
16260         (dump_sa_points_to_info): Dump new stats.
16261         (dump_solution_for_var): Use find.
16262         (set_used_smts): Fix formatting.
16263         (compute_points_to_sets): Updated for new functions.
16264         (ipa_pta_execute): Ditto.
16265
16266 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
16267             Richard Sandiford  <richard@codesourcery.com>
16268
16269         * doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
16270         parallels.
16271         * calls.c (expand_call): If the return value is a PARALLEL,
16272         extract its first member.
16273         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
16274         * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
16275         use FUNCTION_EXTRA_EPILOGUE.
16276         (m68k_function_value): Return a PARALLEL if the return value
16277         is of a pointer type.
16278         * config/m68k/netbsd-elf.h (current_function_returns_pointer)
16279         (FUNCTION_EXTRA_EPILOGUE): Remove.
16280         * config/m68k/m68k.md (D0_REG): New constant.
16281
16282 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
16283
16284         * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
16285         output a NOP for empty epilogues.
16286
16287 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16288
16289         * config/m68k/m68k.c (m68k_use_return_insn): Update comments
16290         before function.  Extend register save check to include all
16291         registers, not just integer ones.
16292
16293 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
16294
16295         * config/m68k/m68k-protos.h (use_return_insn): Rename to...
16296         (m68k_use_return_insn): ...this.
16297         * config/m68k/m68k.h (USE_RETURN_INSN): Delete.
16298         * config/m68k/m68k.c (use_return_insn): Rename to...
16299         (m68k_use_return_insn): ...this.
16300         * config/m68k/m68k.md (return): Use m68k_use_return_insn instead
16301         of USE_RETURN_INSN.
16302
16303 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
16304
16305         * config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
16306         nearest even, fix denormal rounding overflow.
16307
16308 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16309
16310         * config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
16311         f%$smove and f%$move.
16312         (movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
16313         (extendsfdf2_cf): Use fdmove instead of f%&move.
16314         (truncdfsf2_cf): Use fsmove instead of f%$smove.
16315         (add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.
16316
16317 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16318
16319         * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
16320         GPR<-GPR moves.
16321
16322 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16323
16324         * real.h (real_format): Add a canonical_nan_lsbs_set field.
16325         (coldfire_single_format): Declare.
16326         (coldfire_double_format): Likewise.
16327         * real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
16328         of qnan_msb_set to determine the lower bits of a canonical
16329         NaN significand.
16330         (encode_ieee_double): Likewise.
16331         (encode_ieee_quad): Likewise.
16332         (ieee_single_format): Initialize canonical_nan_lsbs_set.
16333         (mips_single_format): Likewise.
16334         (ieee_double_format): Likewise.
16335         (mips_double_format): Likewise.
16336         (ieee_extended_motorola_format): Likewise.
16337         (ieee_extended_intel_96_format): Likewise.
16338         (ieee_extended_intel_128_format): Likewise.
16339         (ieee_extended_intel_96_round_53_format): Likewise.
16340         (ibm_extended_format): Likewise.
16341         (mips_extended_format): Likewise.
16342         (ieee_quad_format): Likewise.
16343         (mips_quad_format): Likewise.
16344         (vax_f_format): Likewise.
16345         (vax_d_format): Likewise.
16346         (vax_g_format): Likewise.
16347         (i370_single_format): Likewise.
16348         (i370_double_format): Likewise.
16349         (decimal_single_format): Likewise.
16350         (decimal_double_format): Likewise.
16351         (decimal_quad_format): Likewise.
16352         (c4x_single_format): Likewise.
16353         (c4x_extended_format): Likewise.
16354         (real_internal_format): Likewise.
16355         (coldfire_single_format): New real_format.
16356         (coldfire_double_format): Likewise.
16357         * config/pdp11/pdp11.c (pdp11_f_format): Initialize
16358         canonical_nan_lsbs_set.
16359         (pdp11_d_format): Likewise.
16360         * config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
16361         if TARGET_COLDFIRE_CPU.
16362
16363 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16364
16365         * config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
16366         (output_call, m68k_legitimize_call_address): Declare.
16367         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
16368         parenthesees.  Add support for a 'W' constraint.
16369         (LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
16370         (PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
16371         (m68k_symbolic_call, m68k_symbolic_jump): Declare.
16372         * config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
16373         variables.
16374         (override_options): Initialize them.  Do not set flag_no_function_cse
16375         for TARGET_ID_SHARED_LIBRARY.
16376         (m68k_output_pic_call): Delete.
16377         (m68k_legitimize_call_address): New function.
16378         (print_operand): Remove the %o prefix.  Handle the %p prefix.
16379         (output_call): New function.
16380         (m68k_output_mi_thunk): Use m68k_symbolic_jump.  Always load the
16381         target address from the GOT if symbolic jumps are not allowed.
16382         * config/m68k/m68k.md (call, general_operand): Do not set
16383         SYMBOL_REF_FLAG.  Use m68k_legitimize_call_address instead.
16384         Merge separate flag_pic and !flag_pic define_insns into...
16385         (*call, *call_value): ...these new patterns.  Match the address
16386         rather than the containing MEM and require it to be a call_operand.
16387         Use output_call to generate the asm template.
16388         * config/m68k/predicates.md (const_call_operand): New predicate.
16389         (call_operand): Likewise.
16390
16391 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
16392
16393         * config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
16394         (STACK_GROWS_DOWNWARD): Define to 1.
16395         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
16396         comments, emphasizing that these values are only defaults.
16397         * config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
16398         * config/m68k/m68k.c (const_method): Remove trailing whitespace.
16399
16400 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16401
16402         * config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.
16403
16404 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
16405             Richard Sandiford  <richard@codesourcery.com>
16406
16407         * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
16408         (FP_REGNO_P): New macros.
16409         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
16410         (REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
16411         (EH_RETURN_STACKADJ_RTX): Use A0_REG.
16412         * config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.
16413
16414 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
16415
16416         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
16417         (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
16418         to $tmake_file.
16419         * config/m68k/t-floatlib: New file, extracting common code from...
16420         * config/m68k/t-m68kbare, config/m68k/t-m68kelf,
16421         * config/m68k/t-uclinux: Here.
16422         * config/m68k/fpgnulib.c: Do not compile extendeed precision
16423         routines on ColdFire targets.
16424
16425 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
16426
16427         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
16428         (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
16429         (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
16430         (m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
16431         explicitly set MOTOROLA to 1.
16432         * config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.
16433
16434 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16435             Nathan Sidwell  <nathan@codesourcery.com>
16436
16437         * config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
16438         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
16439         * config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
16440         * config/m68k/m68020-elf.h (LIB_SPEC): Delete.
16441         * config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
16442         * config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
16443         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
16444         (NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
16445         (BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
16446         * config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
16447         * config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
16448         (WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
16449         (TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
16450         (DBX_REGISTER_NUMBER): Delete.
16451         * config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
16452         (PCC_STATIC_STRUCT_RETURN): Don't undefine.
16453         * config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.
16454
16455 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16456
16457         * config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
16458         * config/flat.h: New file.
16459         * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
16460         OBJECT_FORMAT_FLAT.
16461         * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
16462         indirect references for -msep-data or -mid-shared-library.
16463         Do not use PC-relative code addresses either.
16464         * config/m68k/m68k.c (override_options): Restrict -fPIC error
16465         to -mpcrel.
16466         * config/m68k/uclinux.h (STARTFILE_SPEC): Define.  Use Scrt1.o
16467         for shared libraries and crt1.o for executables.  Use crti.o and
16468         crtbegin.o.
16469         (ENDFILE_SPEC): Use crtend.o and crtn.o.
16470         (LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
16471         Do not add -elf2flt or -shared-lib-id options here.
16472         (LINK_SPEC): Define.  Pass -elf2flt if no -elf2flt option is given.
16473         Pass -shared-lib-id if -mid-shared-library, taking the library
16474         identifier from -mshared-library-id if given, otherwise
16475         defaulting to 0.
16476         (EH_FRAME_IN_DATA_SECTION): Do not undefine.
16477         (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
16478         (TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
16479         and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
16480         (DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
16481         * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
16482         and crtend.o.
16483         * config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
16484         jump sequence for ISA A and ISA A+.
16485         (PICJUMP): Likewise.
16486
16487 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16488
16489         * config.gcc (m68k-*-uclinux*): Base the port on the common
16490         and m68k GNU/Linux files rather than on the generic ELF ones.
16491         * config/m68k/uclinux.h (TARGET_VERSION): Override.
16492         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
16493
16494 2007-01-18  Julian Brown  <julian@codesourcery.com>
16495             Richard Sandiford  <richard@codesourcery.com>
16496
16497         * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
16498         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
16499         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
16500         before redefining.
16501         * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
16502         80 unconditionally.
16503         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
16504
16505 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
16506
16507         * doc/install.texi: Document m68k-uclinuxoldabi.
16508         * config.gcc (m68k-*-uclinuxoldabi): New configuration.
16509         * config/m68k/uclinux-oldabi.h: New file, copied from
16510         config/m68k/uclinux.h.
16511
16512 2007-01-18  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
16513
16514         * config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
16515         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
16516         (m32r_compute_frame_size): Use unsigned for regno.
16517         (m32r_reload_lr): Use gen_frame_mem.
16518         (pop): New.
16519         (m32r_output_function_epilogue): Don't output the function epilogue
16520         textually here.
16521         (m32r_expand_epilogue): New.
16522         (direct_return): Return false if the function has the interrupt
16523         attribute.
16524         (m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
16525         * config/m32r/m32r.md (epilogue): New expander.
16526         (return_lr, return_rte): New insns.
16527         (return): Make it expander.
16528         (return_normal): New expander.
16529
16530 2007-01-18  Josh Conner  <jconner@apple.com>
16531
16532         PR target/30485
16533         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
16534         support for UNLE, UNLT, UNGE, and UNGT.
16535
16536 2007-01-18  Jan Hubicka  <jh@suse.cz>
16537
16538         * tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
16539         * tree-tailcall (add_virtual_phis): Likewise.
16540         (optimize_tail_call): Return TODOs.
16541         (execute_tail_calls): Return TODOs.
16542         * tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
16543         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
16544         changed.
16545         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
16546         Cleanup cfg using TODO.
16547         * tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
16548         * passes.c (execute_function_todo): When cleanup did something, remove
16549         unused locals.
16550         * tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
16551         (make_edges): Don't cleanup_cfg.
16552
16553 2007-01-18  Uros Bizjak  <ubizjak@gmail.com>
16554
16555         * reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
16556         UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
16557         operate on the top of stack.
16558         [UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
16559         register handling of instructions that output to the second
16560         stack slot.
16561         [UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
16562         (move_for_stack_reg): Special-case check for dead destination
16563         stack slot for constant load of 1.0 inside UNSPEC_TAN.
16564
16565         * config/i386/i386.md (UNSPEC_TAN): New constant.
16566         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
16567         (fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
16568         to correctly model move of constant 1.0 to top stack slot.
16569         (*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
16570         (unnamed peephole2 pattern): Remove corresponding peephole2
16571         pattern that optimizes tan insn and loading of constant 1.0.
16572         (tanxf2): Use fptanxf4_i387.
16573         (tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
16574         patterns using X87MODEF12 mode macro.  Use fptan_extend<mode>xf4_i387
16575         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
16576         disable patterns for SSE math.
16577         (sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
16578         (fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.
16579
16580 2007-01-18  Dirk Mueller  <dmueller@suse.de>
16581             Richard Guenther <rguenther@suse.de>
16582
16583         PR diagnostic/8268
16584         * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
16585         * common.opt (Warray-bounds): Add new warning option.
16586         * c-opts.c (c_common_handle_option): Define -Warray-bounds
16587         if -Wall is given.
16588         * Makefile.in: make tree-vrp.o depend on toplev.h
16589         * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
16590         is enabled.
16591         (check_array_refs, check_array_bounds, check_array_ref): New.
16592
16593 2007-01-18  Jan Hubicka  <jh@suse.cz>
16594
16595         * tree-ssa-ccp.c (ccp_finalize): Return if something changed.
16596         (execute_ssa_ccp): Return flags conditionally.
16597         * tree-ssa-propagate.c (substitue_and_fold): Return if something was
16598         changed.
16599         * tree-ssa-propagate.h (substitute_and_fold): Update prototype.
16600
16601 2007-01-18  Steven Bosscher  <steven@gcc.gnu.org>
16602
16603         * cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
16604         the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
16605
16606         * Makefile.c (GTFILES): Add cfglayout.h.
16607         * gengtype.c (open_base_files): Likewise.
16608         * cfglayout.c (cfg_layout_function_footer,
16609         cfg_layout_function_header) Reindent to make gengtype happy.
16610         * cfglayout.h (cfg_layout_function_footer,
16611         cfg_layout_function_header): Add GTY(()) marker.
16612
16613         * ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.
16614
16615 2007-01-18  Ben Elliston  <bje@au.ibm.com>
16616
16617         * genautomata.c (write_automata): Include xstrerror output in the
16618         error message if writing the DFA description file fails.
16619
16620 2007-01-17  H.J. Lu  <hongjiu.lu@intel.com>
16621
16622         * config/mips/mips-protos.h (mips_output_external): Make it
16623         return void.
16624         * config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
16625         * config/mips/mips.c (irix_output_external_libcall): Likewise.
16626         (extern_list): Likewise.
16627         (extern_head): Likewise.
16628         (TARGET_ASM_FILE_END): Likewise.
16629         (mips_file_end): Likewise.
16630         (mips_output_external): Rewritten.
16631
16632 2007-01-18  Ben Elliston  <bje@au.ibm.com>
16633
16634         * genpreds.c (write_insn_preds_c): Only write out the function
16635         body for regclass_for_constraint if we have register constraints.
16636
16637 2007-01-17  Tom Tromey  <tromey@redhat.com>
16638
16639         * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
16640         * doc/install.texi (Testing): Use sourceware.org.
16641         (Binaries): Likewise.
16642         (Specific): Likewise.
16643         * doc/contrib.texi (Contributors): Use sourceware.org.
16644
16645 2007-01-17  Anatoly Sokolov <aesok@post.ru>
16646
16647         * config/avr/avr.h (AVR_HAVE_LPMX): New macro.
16648         (AVR_ENHANCED): Rename to ...
16649         (AVR_HAVE_MUL): ... new.
16650         (avr_enhanced_p): Rename to ...
16651         (avr_have_mul_p): ... new.
16652         (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of
16653         'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
16654         * config/avr/avr.c (avr_enhanced_p): Rename to ...
16655         (avr_have_mul_p): ... new.
16656         (base_arch_s): Rename 'enhanced' to 'have_mul'.
16657         (avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
16658         'avr_enhanced_p' and 'enhanced'.
16659         (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use
16660         AVR_HAVE_MUL instead of AVR_ENHANCED.
16661         * avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
16662         (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3,
16663         *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL
16664         instead of AVR_ENHANCED.
16665         (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
16666         * libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
16667         (__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.
16668
16669 2007-01-17  Ian Lance Taylor  <iant@google.com>
16670
16671         * vec.h (VEC_reserve_exact): Define.
16672         (vec_gc_p_reserve_exact): Declare.
16673         (vec_gc_o_reserve_exact): Declare.
16674         (vec_heap_p_reserve_exact): Declare.
16675         (vec_heap_o_reserve_exact): Declare.
16676         (VEC_OP (T,A,reserve_exact)): New static inline function, three
16677         versions.
16678         (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
16679         negative parameter.
16680         (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
16681         (VEC_OP (T,A,copy)) [all versions]: Likewise.
16682         (VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
16683         * vec.c (calculate_allocation): Add exact parameter.  Change all
16684         callers.
16685         (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
16686         (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
16687         (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
16688         (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
16689         (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
16690         (vec_heap_p_reserve_exact): New function.
16691         (vec_heap_o_reserve_exact): New function.
16692
16693 2007-01-17  Jan Hubicka  <jh@suse.cz>
16694
16695         * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p.
16696
16697 2007-01-17  Eric Christopher  <echristo@apple.com>
16698
16699         * config.gcc: Support core2 processor.
16700
16701 2007-01-16  Jan Hubicka  <jh@suse.cz>
16702
16703         * tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
16704         the names, just unlink the chain so we don't crash on dangling
16705         pointers
16706         to dead SSA names.
16707
16708 2007-01-16  Jan Hubicka  <jh@suse.cz>
16709
16710         * cgraph.h (cgraph_decide_inlining_incrementally): Kill.
16711         * tree-pass.h: Reorder to make IPA passes appear toegher.
16712         (pass_early_inline, pass_inline_parameters, pass_apply_inline):
16713         Declare.
16714         * cgraphunit.c (cgraph_finalize_function): Do not compute inling
16715         parameters, do not call early inliner.
16716         * ipa-inline.c: Update comments.  Include tree-flow.h
16717         (cgraph_decide_inlining): Do not compute inlining parameters.
16718         (cgraph_decide_inlining_incrementally): Return TODOs; assume to
16719         be called with function context set up.
16720         (pass_ipa_inline): Remove unreachable functions before pass.
16721         (cgraph_early_inlining): Simplify assuming to be called from the
16722         PM as local pass.
16723         (pass_early_inline): New pass.
16724         (cgraph_gate_ipa_early_inlining): New gate.
16725         (pass_ipa_early_inline): Turn into simple wrapper.
16726         (compute_inline_parameters): New function.
16727         (gate_inline_passes): New gate.
16728         (pass_inline_parameters): New pass.
16729         (apply_inline): Move here from tree-optimize.c
16730         (pass_apply_inline): New pass.
16731         * ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after
16732         transforming.
16733         * tree-inline.c (optimize_inline_calls): Return TODOs rather than
16734         doing them by hand.
16735         (tree_function_versioning): Do not allocate dummy struct function.
16736         * tree-inline.h (optimize_inline_calls): Update prototype.
16737         * tree-optimize.c (execute_fixup_cfg): Export.
16738         (pass_fixup_cfg): Remove
16739         (tree_rest_of_compilation): Do not apply inlines.
16740         * tree-flow.h (execute_fixup_cfg): Declare.
16741         * Makefile.in (gt-passes.c): New.
16742         * passes.c: Include gt-passes.h
16743         (init_optimization_passes): New passes.
16744         (nnodes, order): New static vars.
16745         (do_per_function_toporder): New function.
16746         (execute_one_pass): Dump current pass here.
16747         (execute_ipa_pass_list): Don't dump current pass here.
16748
16749 2007-01-16  Janis Johnson  <janis187@us.ibm.com>
16750
16751         * config/dfp-bit.c (dfp_compare_op): Return separate value for NaN.
16752         (DFP_NE, DFP_LE, DFP_GE): Return false for NaN.
16753
16754 2007-01-16  David Edelsohn  <edelsohn@gnu.org>
16755
16756         * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
16757         (strong_alias): Define.
16758         (__gcc_qmul): Provide non-FMA for soft-float.
16759         (__gcc_qdiv): Same.
16760         (__gcc_qneg): New.
16761         (__gcc_qeq): New.
16762         (__gcc_qle): New.
16763         (__gcc_qge): New.
16764         (__gcc_qunord): New.
16765         (__gcc_stoq): New.
16766         (__gcc_dtoq): New.
16767         (__gcc_qtos): New.
16768         (__gcc_qtod): New.
16769         (__gcc_qtoi): New.
16770         (__gcc_qtou): New.
16771         (__gcc_itoq): New.
16772         (__gcc_utoq): New.
16773         (fmsub): New.
16774         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
16775         soft-float functions.
16776         * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
16777         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
16778         about long double soft float.
16779
16780 2007-01-16  Dorit Nuzman  <dorit@il.ibm.com>
16781             Tehila Meyzels  <tehila@il.ibm.com>
16782
16783         * tree-vectorizer.h (is_pattern_stmt_p): New.
16784         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix
16785         formatting (tabs instead of spaces). Cleanup and clarify setting
16786         of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p.
16787         * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo.
16788         (vectorizable_type_demotion): Check that types are integral.
16789         (vectorizable_type_promotion): Likewise.
16790         (vectorizable_store): Fix typo.  Eliminate new-line at end of
16791         comments.
16792
16793 2007-01-16  Jan Hubicka  <jh@suse.cz>
16794
16795         * tree-ssanames.c (release_dead_ssa_names): Remove invalidated
16796         cgraph edges too.
16797
16798 2007-01-15  Eric Christopher  <echristo@apple.com>
16799
16800         * ifcvt.c: Include vec.h, vecprim.h.
16801         (check_cond_move_block): New argument regs.
16802         Reorganize. Add registers used to regs.
16803         (cond_move_process_if_block): Use regs set above as
16804         loop bounds.
16805
16806 2007-01-15  Eric Christopher  <echristo@apple.com>
16807
16808         * config/darwin.h: Update copyright.
16809         (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
16810         (LINK_COMMAND_SPEC): Add -u.
16811         (LINK_SPEC): Fix umbrella for above.
16812
16813 2007-01-15  Joseph S. Myers  <joseph@codesourcery.com>
16814
16815         * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
16816         glibc CVS.
16817
16818 2007-01-15  Tom Tromey  <tromey@redhat.com>
16819
16820         * doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
16821         * doc/install.texi (Testing): Don't mention jacks.
16822         (Configuration): Document --enable-java-maintainer-mode.  Move
16823         --with-java-home to libgcj-specific section.  Document
16824         --with-ecj-jar.
16825         (Prerequisites): Mention --enable-java-maintainer-mode, ecj1.
16826
16827 2007-01-15  Jan Hubicka  <jh@suse.cz>
16828
16829         * tree-ssa-dce.c (DCE_TODOs): New.
16830         (propagate_necessity): Return if something changed.
16831         (eliminate_unnecessary_stmts): Likewise.
16832         (perform_tree_ssa_dce): Return TODO flags when needed.
16833         (pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags.
16834
16835 2007-01-15  Uros Bizjak  <ubizjak@gmail.com>
16836
16837         * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
16838         (fyl2x_extend<mode>xf3_i387): New insn pattern.
16839         (log<mode>2): Rename from logsf2 and logdf2 and macroize insn
16840         patterns using X87MODEF12 mode macro.  Extend operand 1
16841         to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
16842         (log10<mode>2): Ditto.
16843         (log2<mode>2): Ditto.
16844         (log1p<mode>2): Ditto.
16845         (logb<mode>2): Ditto.
16846         (fyl2xp1xf3_i387): Rename from fyl2xp1_xf3.
16847         (fyl2xp1_extend<mode>xf3_i387): New insn pattern.
16848         (*fxtractxf3_i387): Rename from *fxtractxf3.
16849         (fxtract_extend<mode>xf3_i387): New insn pattern.
16850         (ilogbsi2): Use match_dup 3, not match_operand:XF 3.
16851         * config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
16852         and gen_fyl2xxf3_i387().
16853
16854 2007-01-14  Zdenek Dvorak <dvorakz@suse.cz>
16855
16856         * loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
16857         * cfgloopmanip.c (fix_loop_placement): Made static.  Use
16858         get_loop_exit_edges.  Changed return type to bool.
16859         * cfgloop.h (fix_loop_placement): Declaration removed.
16860
16861 2007-01-14  Dorit Nuzman  <dorit@il.ibm.com>
16862
16863         * param.h (MIN_VECT_LOOP_BOUND): New.
16864         * params.def (MIN_VECT_LOOP_BOUND): New.
16865         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
16866         argument - minimum threshold for number of iterations.
16867         * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
16868         argument to declaration.
16869         * tree-vect-analyze.c (vect_analyze_operations): Check value of
16870         MIN_VECT_LOOP_BOUND.
16871         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
16872         slpeel_tree_peel_loop_to_edge with additional argument.
16873         (vect_do_peeling_for_alignment): Likewise.
16874         * doc/invoke.texi (min-vect-loop-bound): Document new param option.
16875
16876 2007-01-14  Uros Bizjak  <ubizjak@gmail.com>
16877
16878         PR target/30413
16879         * config/i386/i386.c (print_operand) ['z']: Output 'b' for
16880         operands of size 1.
16881
16882 2007-01-14  Jan Hubicka  <jh@suse.cz>
16883
16884         * tree-dfa.c (remove_referenced_var): New function.
16885         * tree-ssa-live.c (remove_unused_locals): Walk referenced vars and
16886         prune referenced vars list too.
16887         * tree-flow.h (remove_referenced_var): Declare.
16888
16889 2007-01-14  Jan Hubicka  <jh@suse.cz>
16890
16891         * tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs
16892         separately.
16893         (remove_stmt_from_eh_region_fn): Do not remove call_exprs.
16894         (verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill.
16895         * except.h (verify_eh_throw_table_statements): Kill prototype.
16896         * cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions
16897         into call exrepssions.
16898         * tree-optimize.c (execute_free_cfg_annotatiosn): Do not call
16899         eh trhow verifier.
16900         * tree-cfg.c: Include pointer-set.h.
16901         (verify_node_sharing): Work on pointer set.
16902         (verify_eh_throw_stmt_node): New.
16903         (verify_stmts): Use pointers sets, verify throw_stmt.
16904
16905 2007-01-13  Zdenek Dvorak <dvorakz@suse.cz>
16906
16907         * ipa-reference.c (analyze_function): Consider also addresses taken
16908         in phi nodes.
16909
16910 2007-01-12  Roger Sayle  <roger@eyesopen.com>
16911
16912         * c-typeck.c (null_pointer_constant_p): Replace use of
16913         TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
16914         (build_c_cast): Likewise.
16915
16916 2007-01-12  Roger Sayle  <roger@eyesopen.com>
16917
16918         * tree.h (force_fit_type_double): Remove unused final argument.
16919         * c-common.c (constant_expression_warning): Replace use of
16920         TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
16921         (convert_and_check): Likewise.
16922         (shorten_compare): Update call to force_fit_type_double.
16923         (c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop.
16924         * convert.c (convert_to_pointer): Update call to
16925         force_fit_type_double.
16926         * fold-const.c (force_fit_type_double): Remove overflowed_const
16927         argument.
16928         (int_const_binop, fold_convert_const_int_from_int,
16929         fold_convert_const_int_from_real, fold_div_compare,
16930         fold_sign_changed_comparison, fold_unary, fold_negate_const,
16931         fold_abs_const, fold_not_const): Remove the final argument from
16932         calls to force_fit_type_double.
16933
16934 2007-01-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16935
16936         * configure.ac: Set insn to "nop" for spu-*-* also.
16937         * configure: Regenerate.
16938
16939 2007-01-12  Olga Golovanevsky  <olga@il.ibm.com>
16940
16941         * builtins.def : Add BUILT_IN_FREE.
16942
16943 2007-01-12  Jan Hubicka  <jh@suse.cz>
16944
16945         PR tree-optimization/30443
16946         * tree-inline.c (tree_function_versioning): Do not optimize when
16947         cloning for inlining.
16948
16949 2007-01-12  Zdenek Dvorak <dvorakz@suse.cz>
16950
16951         * doc/loop.texi: Document recording of loop exits.
16952         * cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
16953         (update_single_exits_after_duplication,
16954         update_single_exit_for_duplicated_loop,
16955         update_single_exit_for_duplicated_loops): Removed.
16956         (duplicate_loop_to_header_edge): Do not call
16957         update_single_exits_after_duplication and
16958         update_single_exit_for_duplicated_loops.
16959         (loop_version): Do not update single_exit information.
16960         (fix_loop_structure): Use record_loop_exits instead of
16961         mark_single_exit_loops.
16962         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
16963         the lists of loop exits.
16964         * cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
16965         split_edge, merge_blocks): Update the lists of loop exits.
16966         * modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
16967         loop_optimizer_init.
16968         * loop-init.c (loop_optimizer_init): Call record_loop_exits instead
16969         of mark_single_exit_loops.
16970         (loop_optimizer_finalize): Call release_recorded_exits.
16971         * tree-ssa-loop.c (tree_loop_optimizer_init): Pass
16972         LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
16973         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
16974         update single exit information.
16975         * lambda-code.c (perfect_nestify): Ditto.
16976         * cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
16977         (mark_single_exit_loops): Removed.
16978         (alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
16979         get_exit_descriptions, rescan_loop_exit, record_loop_exits,
16980         dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
16981         functions.
16982         (get_loop_exit_edges, single_exit): Use recorded exit lists.
16983         (add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
16984         (verify_loop_structure): Verify consistency of the exit lists.
16985         (flow_loops_find): Use alloc_loop.  Initialize exits hash.
16986         (set_single_exit): Removed.
16987         * cfgloop.h (struct loop_exit): New function.
16988         (struct loop): single_exit_ field replaced by exits field.
16989         (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by
16990         LOOPS_HAVE_RECORDED_EXITS.
16991         (struct loops): Added exits hash.
16992         (mark_single_exit_loops, set_single_exit): Declaration removed.
16993         (release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.
16994
16995 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
16996
16997         * doc/invoke.texi: Avoid use of @headitem.
16998
16999 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
17000
17001         * cse.c (cse_insn): Move HAVE_CC0 code after declarations.
17002
17003 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
17004
17005         * doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the
17006         list of targets.
17007
17008 2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
17009             Richard Sandiford  <richard@codesourcery.com>
17010
17011         * doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short.
17012         * config/m68k/m68k.opt: Resort options.
17013         (mbitfield, mrtd, mshort): Remove RejectNegative properties.
17014
17015 2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
17016             Richard Sandiford  <richard@codesourcery.com>
17017
17018         * doc/invoke.texi: Document the macros that are defined by
17019         m68k's -mtune and -mhard-float options.
17020         * config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare.
17021         (m68k_cpp_cpu_family): Likewise.
17022         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set
17023         of __ucfv*__ macros.  Define __mcffpu__ if generating code for
17024         ColdFire FPUs.  Define __mcf_cpu_* and __mcf_family_* macros.
17025         * config/m68k/m68k.c (m68k_cpp_cpu_ident): New function.
17026         (m68k_cpp_cpu_family): Likewise.
17027
17028 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
17029
17030         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68*
17031         macros besides mc68000 as tuning macros.  Use a switch statement
17032         to set them and mcpu32.
17033
17034 2007-01-12  Julian Brown  <julian@codesourcery.com>
17035
17036         * config/m68k/m68k.h: Use TARGET_68040 instead of TARGET_68040_ONLY.
17037         (TARGET_68040_ONLY): Rename to...
17038         (TARGET_68040): ...this.
17039         * config/m68k/m68k.c: Use TARGET_68040 instead of TARGET_68040_ONLY.
17040         * config/m68k/m68k.md: Likewise.
17041
17042 2007-01-12  Julian Brown  <julian@codesourcery.com>
17043             Nathan Sidwell  <nathan@codesourcery.com>
17044             Richard Sandiford  <richard@codesourcery.com>
17045
17046         * config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to
17047         the -mcpu= argument associated with the --with-cpu setting.
17048         Define M68K_DEFAULT_TUNE to the default -mtune= option,
17049         if different from the one implied by the -mcpu setting.
17050         Accept --with-cpu=FOO if FOO is listed in m68k-devices.def,
17051         using mcpu=FOO as the default CPU option.  Set target_cpu_default2.
17052         * doc/invoke.texi: Mention ColdFire in the introduction to the
17053         m68k options.  Document the new -march, -mcpu, -mtune, -mdiv,
17054         -mno-div and -mhard-float options.  Make -m68881 a synonym for
17055         -mhard-float.  Document the previously-undocumented -m5206e,
17056         -m528x, -m5307 and -m5407 options.  Tweak the existing option
17057         documentation for consistency.
17058         * doc/install.texi: Mention new --with-cpu arguments.
17059         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the
17060         default CPU if neither -mcpu nor -march are specified.
17061         (ASM_CPU_SPEC): Pass down -mcpu and -march options.
17062         (TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from
17063         TARGET_ISA*.  Set the legacy __mcf*__ cpu macros in the same way,
17064         using m68k_tune to decide between families that implement the
17065         same ISA.  Use m68k_tune to set __mcfv4e__.
17066         (FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC)
17067         (FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000)
17068         (FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B)
17069         (FL_ISA_C, FL_ISA_MMU): New macros.
17070         (MASK_COLDFIRE): Delete.
17071         (TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE)
17072         (TARGET_ISAB): Redefine in terms of m68k_cpu_flags.
17073         (TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu.
17074         (TARGET_HARD_FLOAT): Do not define here.
17075         (TARGET_ISAAPLUS, TARGET_ISAC): New macros.
17076         (TUNE_68000): New macro.
17077         (TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010.
17078         (TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32)
17079         (TUNE_CFV2): Redefine in terms of m68k_tune.
17080         (uarch_type, target_device, fpu_type): New enums.
17081         (m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare.
17082         * config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881.
17083         (FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40)
17084         (FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b)
17085         (FL_FOR_isa_c): New macros.
17086         (m68k_isa): New enum.
17087         (m68k_target_selection): New structure.
17088         (all_devices, all_isas, all_microarchs): New tables.
17089         (m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu)
17090         (m68k_tune, m68k_fpu, m68k_cpu_flags): New variables.
17091         (MASK_ALL_CPU_BITS): Delete.
17092         (m68k_find_selection): New function.
17093         (m68k_handle_option): Handle -mcpu=, -march= and -mtune=.
17094         Map the legacy target options to a combination of the new ones.
17095         (override_options): Set m68k_cpu, m68k_tune, m68k_fpu and
17096         m68k_cpu_flags.  Handle M68K_DEFAULT_TUNE.  Use m68k_cpu_flags
17097         to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT
17098         settings.
17099         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e)
17100         (m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask
17101         properties.
17102         (m68881, msoft-float): Change mask from 68881 to HARD_FLOAT.
17103         (march=, mcpu=, mdiv, mhard-float, mtune=): New options.
17104         * config/m68k/m68k-devices.def: New file.
17105
17106 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
17107             Nathan Sidwell  <nathan@codesourcery.com>
17108
17109         * config/m68k/m68k.h (ASM_CPU_SPEC, ASM_SPEC, EXTRA_SPECS)
17110         (SUBTARGET_EXTRA_SPECS): New macros.
17111         * config/m68k/linux.h (ASM_SPEC): Remove CPU flags;
17112         use %(asm_cpu_spec) instead.
17113         * config/m68k/m68k-none.h (ASM_SPEC): Likewise.
17114         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
17115         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
17116         (EXTRA_SPECS): Rename to...
17117         (SUBTARGET_EXTRA_SPECS): ...this.
17118
17119 2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
17120             Richard Sandiford  <richard@codesourcery.com>
17121             Julian Brown  <julian@codesourcery.com>
17122
17123         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
17124         (m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu
17125         to the configuration's default CPU.
17126         (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise.
17127         Remove default masks.
17128         (m680[012]0-*-*): Set the default with_cpu to the first part of
17129         the target name.
17130         (m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu.
17131         (m68k*-*-linux): Extend the --with-cpu handling to...
17132         (m680[012]0-*-*, m68k*-*-*): ...these configurations.  Allow m68000
17133         and m68010.  Don't set target_cpu_default2.
17134         * doc/install.texi: Document --with-cpu for m68k.
17135         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define.
17136         * config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k)
17137         (M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030)
17138         (M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT)
17139         (ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete.
17140         (ASM_SPEC): Remove use of %(asm_cpu_default).
17141         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete.
17142         * config/m68k/linux.h (TARGET_DEFAULT): Delete.
17143         (CPP_SPEC): Merge definitions.  Do not handle __HAVE_68881__ here.
17144         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
17145         __HAVE_FPU__ if TARGET_HARD_FLOAT.
17146         (TARGET_DEFAULT): Delete.
17147         (EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec,
17148         cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec.
17149         (CPP_CPU_SPEC): Delete.
17150         (TARGET_VERSION): Merge definitions, using TARGET_68010 to pick
17151         the appropriate string.
17152         (CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete.
17153         (CPP_SPEC): Define to NETBSD_CPP_SPEC.
17154         (ASM_SPEC): Don't use %(asm_default_spec).
17155         * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
17156         TARGET_DEFAULT and add MASK_68881.
17157         * config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments.
17158
17159 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
17160
17161         * config.gcc (m68010-*-netbsdelf*): Add MASK_68010.
17162         (m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add
17163         MASK_68010 alongside MASK_68020.
17164         * doc/invoke.texi: Document -m68010.
17165         * config/m68k/m68k.opt (m68010): New.
17166         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010
17167         if TUNE_68010.
17168         (TUNE_68010): New macro.
17169         * config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010)
17170         (M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040)
17171         (M68K_CPU_m68332): Add MASK_68010.
17172         * config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to
17173         fallback definition.
17174         * config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant
17175         defines.
17176         * config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010.
17177         (m68k_handle_option): Handle OPT_m68010.  Add MASK_68010
17178         to all entries that use MASK_68020.
17179         (output_move_simode_const, output_move_himode, output_move_qimode)
17180         (output_move_stricthi, output_move_strictqi): Use TARGET_68010
17181         instead of TARGET_68020 to select clr behavior.  Remove comment
17182         about there being no TARGET_68010.
17183         * config/m68k/m68k.md: Likewise throughout.
17184
17185 2007-01-12  Julian Brown  <julian@codesourcery.com>
17186
17187         * config/m68k/m68k.h (TARGET_ISAB): New macro.
17188         * config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4.
17189         * config/m68k/m68k.md: Likewise.
17190
17191 2007-01-12  Julian Brown  <julian@codesourcery.com>
17192
17193         * config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use
17194         TARGET_COLDFIRE_FPU instead of TARGET_CFV4E.
17195
17196 2007-01-12  Julian Brown  <julian@codesourcery.com>
17197
17198         * config/m68k/m68k.h (TUNE_68040_60): New macro.
17199         * config/m68k/m68k.c (standard_68881_constant_p): Use it.
17200         * config/m68k/m68k.md: Likewise.
17201
17202 2007-01-12  Julian Brown  <julian@codesourcery.com>
17203             Richard Sandiford  <richard@codesourcery.com>
17204
17205         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030
17206         instead of TARGET_68030, TUNE_68040 instead of TARGET_68040,
17207         TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of
17208         TARGET_CPU32.
17209         (TARGET_CPU32): Rename to...
17210         (TUNE_CPU32): ...this.
17211         (TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060)
17212         (TUNE_CFV2): New macros.
17213         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify;
17214         remove conditions that are implied by TARGET_68020.
17215         * config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040
17216         instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32.
17217         (m68k_output_function_epilogue): Likewise.
17218         (m68k_rtx_costs): Likewise.  Use TUNE_68060 instead of TARGET_68060
17219         and TUNE_CFV2 instead of TARGET_5200.  Use TUNE_68000_10 instead of
17220         "!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and
17221         non-68000 timings.  Refactor multiplication and division costs.
17222         (output_addsi3): Use TUNE_68040 instead of TARGET_68040 and
17223         TUNE_CPU32 instead of TARGET_CPU32.
17224         (standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040
17225         and TUNE_68060 instead of TARGET_68060.
17226         * config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040,
17227         TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of
17228         TARGET_CPU32.
17229         (movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020
17230         && !TARGET_COLDFIRE" to choose between moveq and clr.
17231         Likewise in the unnamed movsf pattern.
17232         (ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than
17233         "!TARGET_68020 && !TARGET_COLDFIRE".  Likewise the unnamed
17234         ashiftrt pattern.
17235
17236 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
17237
17238         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount
17239         of tabbing before backslashes.
17240
17241 2007-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17242
17243         * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
17244         * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
17245         (ASM_OUTPUT_INTERNAL_LABEL): Define.
17246
17247 2007-01-11  Zdenek Dvorak <dvorakz@suse.cz>
17248
17249         * tree-ssa-loop-ivopts.c (extract_cond_operands): Split from
17250         find_interesting_uses_cond.
17251         (find_interesting_uses_cond): Use extract_cond_operands.
17252         (rewrite_use_compare): Use extract_cond_operands and
17253         force_gimple_operand_bsi.  Do not call update_stmt.
17254         (determine_use_iv_cost_condition): Use extract_cond_operands.
17255         Return cheaper of using original bound and changing the exit bound.
17256
17257 2007-01-11  Zdenek Dvorak <dvorakz@suse.cz>
17258
17259         PR tree-optimization/29516
17260         * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
17261         most_expensive_mult_to_index, addr_to_parts,
17262         create_mem_ref, maybe_fold_tmr): Make the type of
17263         fields of TARGET_MEM_REF sizetype.
17264         (move_fixed_address_to_symbol, move_pointer_to_base):
17265         New functions.
17266         * tree.def (TARGET_MEM_REF): Add comment on types of
17267         the operands.
17268
17269 2007-01-11  Joseph Myers  <joseph@codesourcery.com>
17270
17271         * c-common.c (vector_types_convertible_p): Treat opaque types as
17272         always convertible if they have the same size, but not otherwise.
17273
17274 2007-01-11  Steven Bosscher  <steven@gcc.gnu.org>
17275
17276         * ifcvt.c (struct noce_if_info): Add comments to the fields.
17277         Remove the b_unconditional field.
17278         (noce_try_sign_mask): Do not look at b_unconditional.
17279         (noce_process_if_block): Do not use merge_if_blocks.  Update
17280         the CFG here.  Do not set b_unconditional.
17281         (cond_move_process_if_block): Likewise.
17282         (find_cond_trap): Likewise.
17283         (check_cond_move_block): Require simple jump insns at the end
17284         of the basic block.
17285
17286 2007-01-11  Jan Hubicka  <jh@suse.cz>
17287
17288         PR tree-optimization/1046
17289         * tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE
17290         when alias info is not ready.
17291         (pass_tail_recursion): Do not require aliasing.
17292         * tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise.
17293         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise.
17294         * tree-ssa-copy.c (pass_copy_prop): Likewise.
17295         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
17296         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise.
17297         * passes.c (init_optimization_passes): Execute rename_ssa_copies,
17298         ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion
17299         before inlining.
17300         * tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand):
17301         When aliasing is not build, mark statement as volatile.
17302
17303 2007-01-11  Tom Tromey  <tromey@redhat.com>
17304
17305         PR preprocessor/15185, PR preprocessor/20989:
17306         * doc/cppopts.texi <-MT>: Update description of algorithm for
17307         computing default target.
17308         <-M, -MD>: Reword "basename" text.
17309
17310 2007-01-11  Roger Sayle  <roger@eyesopen.com>
17311
17312         * builtins.c (expand_builtin_pow, expand_builtin_powi,
17313         fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc,
17314         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
17315         fold_builtin_int_int_roundingfn, fold_builtin_bitop,
17316         fold_builtin_bswap, real_constp, fold_builtin_pow,
17317         fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign,
17318         do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace
17319         uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
17320         * convert.c (convert_to_pointer): Likewise.
17321         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
17322         * fold-const.c (force_fit_type, fold_negate_expr, int_const_binop,
17323         const_binop, fold_convert_const_int_from_int,
17324         fold_convert_const_int_from_real,
17325         fold_convert_const_real_from_real, sign_bit_p,
17326         optimize_minmax_comparison, extract_muldiv_1, fold_div_compare,
17327         fold_sign_changed_comparison, fold_unary, fold_comparison,
17328         fold_binary, multiple_of_p, tree_Expr_non_zero_p,
17329         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
17330         * print-tree.c (print_node_brief, print_node): Likewise.
17331         * stor-layout.c (place_field, layout_type): Likewise.
17332         * tree-chrec.c (keep_cast): Likewise.
17333         * tree.c (build_vector, build_real, build_real_from_int_cst,
17334         build_complex): Likewise.
17335
17336 2007-01-11  Roger Sayle  <roger@eyesopen.com>
17337
17338         * tree.h (TREE_CONSTANT_OVERFLOW): Obsolete.  For the time being,
17339         treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW.
17340
17341 2007-01-11  Paolo Bonzini  <bonzini@gnu.org>
17342
17343         * configure.ac (strict1_warn): Rename to strict_warn.
17344         (WERROR, --enable-werror, symlink hacks, stage1_cflags,
17345         cc_set_by_configure, quoted_cc_set_by_configure,
17346         stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
17347         all_boot_languages, all_stagestuff): Remove.
17348         (target_list): Remove bootstrap targets.
17349         * Makefile.in (quickstrap): Unconditionally make a synonym of all.
17350         (BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
17351         REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
17352         SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
17353         VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
17354         STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
17355         stage1_copy, stage2_build, stage2_copy, stageprofile_build,
17356         stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
17357         stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
17358         bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
17359         bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
17360         unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
17361         restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
17362         cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
17363         *compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
17364         stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
17365         stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
17366         risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
17367         (ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
17368         (STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
17369         (mostlyclean): Adjust.
17370         (clean, distclean): Don't mention bootstrap stuff.
17371         * configure: Regenerate.
17372         * ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
17373         java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
17374         treelang/config-lang.in (stagestuff): Remove.
17375         * doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
17376         stageprofile, stagefeedback, stagestuff): Remove mention.
17377
17378 2007-01-11  Nick Clifton  <nickc@redhat.com>
17379
17380         * config/mcore/predicates.md (mcore_general_movesrc_operand):
17381         Accept CONSTs.
17382         (mcore_general_movdst_operand): Do not accept CONST_INTs.
17383         (mcore_arith_K_S_operand): Run the test for the S constraint not
17384         the test for the M constraint.
17385         (mcore_addsub_operand): Do not accept integer values that are
17386         larger than 32 bits.
17387         * config/mcore/mcore.md: Remove unused constraints from split.
17388         (andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL.
17389         (addsi3): Likewise.
17390         (allocate_stack): Likewise.
17391         * config/mcore/mcore.c (mcore_print_operand): Restrict output of P
17392         operands to 32 bits.
17393         (mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an
17394         INTVAL.
17395         (mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore,
17396         mcore_const_ok_for_inline, mcore_const_trick_uses_not,
17397         try_constant_tricks, mcore_num_ones, mcore_num_zeros,
17398         mcore_output_bclri, mcore_output_andn, output_inline_const,
17399         mcore_output_move, mcore_output_movedouble): Likewise.
17400         (mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N.
17401         (output_inline_const): Likewise.
17402         (output_inline_const): Fix format strings used in sprintf
17403         statements.
17404         * config/mcore/mcore-protos.h: Update prototypes for changed
17405         functions in mcore.c.
17406         * config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to
17407         HOST_WIDE_INT and not int.
17408         (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M,
17409         CONST_OK_FOR_N): Likewise.
17410         (LEGITIMATE_CONSTANT_P): Also check CONSTANT_P.
17411         (GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold
17412         an INTVAL.
17413
17414 2007-01-10  Jan Hubicka  <jh@suse.cz>
17415
17416         * tree-vrp.c (remove_range_assertions): Release defs.
17417         * tree-ssa-loop-ivopts.c (rmeove_statement): Likewise.
17418         * tree-ssa-dom.c (remove_stmt_or_phi): Likewise.
17419
17420 2007-01-10  Paul Brook  <paul@codesourcery.com>
17421
17422         * config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract.
17423         * config/arm/arm.md (mulsi3subsi): New insn.
17424
17425 2007-01-10  Zdenek Dvorak <dvorakz@suse.cz>
17426
17427         * tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ...
17428         (tree_transform_and_unroll_loop): New.
17429         * tree-flow.h (transform_callback, tree_transform_and_unroll_loop):
17430         Declare.
17431
17432 2007-01-10  Robert Kennedy <jimbob@google.com>
17433
17434         * fold-const.c (fold_comparison): Fold comparisons like (x *
17435         1000 < 0) to (x < 0).
17436
17437 2007-01-10  Ian Lance Taylor  <iant@google.com>
17438
17439         * tree-pretty-print.c (dump_generic_node): Print parentheses when
17440         operands have the same priority.
17441
17442 2007-01-10  Tom Tromey  <tromey@redhat.com>
17443
17444         * fold-const.c (fold_truthop): Don't check can_use_bit_fields_p.
17445         (fold_binary): Likewise.
17446         * langhooks.c (lhd_can_use_bit_fields_p): Removed.
17447         * langhooks-def.h (lhd_can_use_bit_fields_p): Removed.
17448         (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
17449         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P.
17450         * langhooks.h (struct lang_hooks): Removed field
17451         'can_use_bit_fields_p'.
17452
17453 2007-01-10  Ralf Corsépius <ralf.corsepius@rtems.org>
17454
17455         * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
17456
17457 2007-01-10  Razya Ladelsky  <razya@il.ibm.com>
17458
17459         * function.c (get_last_funcdef_no): New function.
17460         * function.h (get_last_funcdef_no): Declare.
17461         * tree-inline.c (initialize_cfun): Add initialization.
17462         (tree_function_versioning): Cleanup.
17463
17464 2007-01-10  Jan Hubicka  <jh@suse.cz>
17465
17466         * tree-inline.c (setup_one_parameter): Do not propagate into abnormal
17467         PHIs.
17468
17469 2007-01-10  Sa Liu  <saliu@de.ibm.com>
17470             Ben Elliston  <bje@au.ibm.com>
17471
17472         * spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode
17473         for SAVE_NONLOCAL and Pmode for any other save level.
17474         * spu-protos.h (spu_restore_stack_block): Declare.
17475         * spu.md (save_stack_block): Remove.
17476         (restore_stack_block): Call spu_restore_stack_block.
17477         * spu.c (spu_restore_stack_block): New function.
17478         (spu_expand_epilogue): Remove old comment.
17479
17480 2007-01-09  Zdenek Dvorak <dvorakz@suse.cz>
17481
17482         PR tree-optimization/30322
17483         * tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed.
17484         (cand_value_at): Return the value as aff_tree.
17485         (may_eliminate_iv): Convert the bound from aff_tree to tree.
17486         * tree-affine.c (aff_combination_add_cst, aff_combination_add_product,
17487         aff_combination_mult): New functions.
17488         (aff_combination_add): Use aff_combination_add_cst.
17489         (aff_combination_convert): Allow conversions to a wider type.
17490         (tree_to_aff_combination): Handle BIT_NOT_EXPR.
17491         * tree-affine.h (aff_combination_mult): Declare.
17492
17493 2007-01-09  Carlos O'Donell  <carlos@codesourcery.com>
17494
17495         * doc/tm.texi: Update documentation to reflect reality of exec
17496         and start file search behaviours. Update copyright year.
17497         * doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find
17498         header file directories.
17499
17500 2007-01-09  Uros Bizjak  <ubizjak@gmail.com>
17501
17502         * config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
17503         (*cosxf2): Rename to cosxf2_i387.
17504         (*sindf2, *sinsf2): Extend operand 1 to XFmode.  Macroize patterns
17505         using X87MODEF12 mode macro. Rename patterns to
17506         *sin_extend<mode>xf2_i387.  Use SSE_FLOAT_MODE_P to disable patterns
17507         for SSE math.
17508         (*cosdf2, *cossf2): Ditto.
17509         (sincosdf3, sincossf3): Ditto.  Rewrite corresponding splitters
17510         to match extended input operands.
17511         (sincos<mode>3): New expander.
17512         (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove
17513         insn patterns and corresponding splitters.
17514
17515 2007-01-09  Kaz Kojima  <kkojima@gcc.gnu.org>
17516
17517         * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
17518         (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.
17519
17520 2007-01-09  Nicolas Pitre  <nico@cam.org>
17521
17522         PR target/30173
17523         * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
17524
17525 2007-01-08  Geoffrey Keating  <geoffk@apple.com>
17526
17527         * target.h (struct gcc_target): New field library_rtti_comdat.
17528         * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
17529         (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
17530         * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
17531         * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
17532
17533 2007-01-08  Geoffrey Keating  <geoffk@apple.com>
17534
17535         * doc/invoke.texi (Optimize Options): Correct description of -O0.
17536
17537 2007-01-08  Richard Guenther  <rguenther@suse.de>
17538
17539         * tree.h (force_fit_type_double): Export.
17540         (force_fit_type): Remove.
17541         * fold-const.c (force_fit_type_double): New function.
17542         (force_fit_type): Remove.
17543         (int_const_binop): Use it.
17544         (fold_convert_const_int_from_int): Likewise.
17545         (fold_convert_const_int_from_real): Likewise.
17546         (fold_div_compare): Likewise.
17547         (fold_sign_changed_comparison): Likewise.
17548         (fold_unary): Likewise.
17549         (fold_negate_const): Likewise.
17550         (fold_abs_const): Likewise.
17551         (fold_not_const): Likewise.
17552         * c-common.c (shorten_compare): Use force_fit_type_double.
17553         * convert.c (convert_to_pointer): Likewise.
17554
17555 2007-01-08  Richard Guenther  <rguenther@suse.de>
17556
17557         * tree.h (build_int_cst_wide_type): Export.
17558         * tree.c (build_int_cst_wide_type): New function.
17559         (build_int_cst_wide): Fix comment.
17560         * builtins.c (fold_builtin_object_size): Use build_int_cst
17561         to build -1 or 0 of the correct type.  Use fit_double_type
17562         to check for overflow.
17563         * fold-const.c (optimize_bit_field_compare): Use build_int_cst_type
17564         to build the mask.
17565         (decode_field_reference): Likewise.
17566         (all_ones_mask_p): Likewise.
17567         (native_interpret_int): Use build_int_cst_wide_type.
17568         (fold_binary): Use build_int_cst_type to build an all-ones
17569         value.
17570         * stor-layout.c (set_sizetype): Use build_int_cst_wide_type.
17571
17572 2007-01-08  Daniel Jacobowitz  <dan@codesourcery.com>
17573
17574         * config/pa/t-pa64 (libgcc_stub.a): Use $(T).
17575
17576 2007-01-09  Ben Elliston  <bje@au.ibm.com>
17577
17578         * genautomata.c (STATS_OPTION): New option.
17579         (stats_flag): New flag.
17580         (gen_automata_option): Handle it.
17581         (initiate_automaton_gen): Ditto.
17582         (write_automata): Output statistics only if stats_flag is
17583         set. Likewise, output time statistics only if time_flag is set.
17584         * doc/md.texi (Processor pipeline description): Document new flag.
17585
17586 2007-01-08  Richard Guenther  <rguenther@suse.de>
17587
17588         * builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
17589         * tree.c (build_int_cst_type): Likewise.
17590         (size_in_bytes): Don't call force_fit_type on the result.
17591         (int_fits_type_p): Use fit_double_type.
17592         * fold-const.c (fit_double_type): New function.
17593         (force_fit_type): Use it.
17594         * tree.h (fit_double_type): Export.
17595
17596 2007-01-08  Jan Hubicka  <jh@suse.cz>
17597
17598         * tree-vectorizer.c (gate_increase_alignment): Fix return type.
17599         * ipa.c (function_and_variable_visibility): Fix return type.
17600
17601 2007-01-08  Richard Guenther  <rguenther@suse.de>
17602
17603         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
17604         of offset to build the index.
17605         * tree-pretty-print.c (dump_generic_node): Don't build negated
17606         const just for printing.
17607         * c-pretty-print.c (pp_c_integer_constant): Likewise.
17608         * builtins.c (fold_builtin_int_roundingfn): Check if result
17609         fits the type by using force_fit_type and comparing the result.
17610         * predict.c (predict_loops): Use compare_tree_int for comparison.
17611         * tree.c (build_int_cst): Fall back to integer_type_node for
17612         NULL_TREE type.
17613         (build_int_cst_wide): Assert type is non-null.
17614
17615 2007-01-08  Roberto Costa  <roberto.costa@st.com>
17616
17617         * tree-vrp.c (extract_range_from_cond_expr): New.
17618         (extract_range_from_expr): Handle COND_EXPR nodes used as expressions.
17619         * tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used
17620         as expressions.
17621         (fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs.
17622         * tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond,
17623         tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes
17624         used as expressions.
17625         * tree-object-size.c (cond_expr_object_size): New.
17626         (collect_object_sizes_for): Handle COND_EXPR nodes used as expressions.
17627
17628 2007-01-08  Jan Hubicka  <jh@suse.cz>
17629
17630         * tree-ssa-forwprop.c (forward_propagate_into_cond,
17631         tree_ssa_forward_propagate_single_use_va): Release defs of propagated
17632         statement.
17633
17634 2007-01-08  Richard Guenther  <rguenther@suse.de>
17635
17636         PR tree-optimization/23603
17637         * tree-vrp.c (set_value_range_to_truthvalue): New function.
17638         (extract_range_from_binary): Fall back to truthvalue instead of
17639         varying for TRUTH_*_EXPR.
17640         (extract_range_from_comparison): Fall back to truthvalue instead of
17641         varying.
17642         (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF
17643         if all visited PHI values were constant.
17644
17645 2007-01-08  Jan Hubicka  <jh@suse.cz>
17646
17647         * cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
17648         (cgraph_analyze_function): break out from ...
17649         (cgraph_finalize_compilation_unit): ... here.
17650         (cgraph_expand_function): Remove forgoten commented out line.
17651         (cgraph_optimize): Analyze functions.
17652
17653 2007-01-08  Jan Hubicka  <jh@suse.cz>
17654
17655         * tree-pas.h (TODO_remove_function): New flag.
17656         (TODO_update*): Renumber.
17657         (pass_ipa_increase_alignment,
17658         pass_ipa_function_and_variable_visibility): New passes.
17659         * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c
17660         (cgraph_function_and_variable_visibility): Move to ipa.c
17661         (cgraph_optimize): Don't call cgraph_function_and_variable_visibility,
17662         cgraph_increase_alignment.
17663         * ipa-inline.c (cgraph_decide_inlining): Don't push timevar.
17664         (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before
17665         calling tree-inline.
17666         (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes.
17667         (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions
17668         * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c
17669         (gate_increase_alignment): New function.
17670         (pass_ipa_increase_alignment): New pass.
17671         * ipa.c: Inline tree-pass.h and timevar.h
17672         (function_and_variable_visibility): Move here from cgraphunit.c
17673         * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions.
17674         * passes.c (init_optimization_passes): Add the two new passes.
17675         (execute_todo): Handle cgraph_remove_functions.
17676
17677 2007-01-08  Nick Clifton  <nickc@redhat.com>
17678
17679         * config/frv/predicates.md (reg_or_0_operand): Accept
17680         CONST_DOUBLEs.
17681
17682 2007-01-08  Ralf Corsépius <ralf.corsepius@rtems.org>
17683
17684         * config/bfin/rtems.h, config/bfin/t-rtems: New.
17685         * config.gcc: Add bfin*-rtems*.
17686
17687 2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>
17688
17689         * c.opt: Add -flax-vector-conversions.
17690         * c-typeck.c (convert_for_assignment): Pass flag to
17691         vector_types_convertible_p to allow emission of note.
17692         (digest_init): Likewise.
17693         * c-opts.c: Handle -flax-vector-conversions.
17694         * c-common.c (flag_lax_vector_conversions): New.
17695         (vector_types_convertible_p): Unless -flax-vector conversions
17696         has been passed, disallow conversions between vectors with
17697         differing numbers of subparts and/or element types.  If such
17698         a conversion is disallowed, possibly emit a note on the first
17699         occasion only to inform the user of -flax-vector-conversions.
17700         The new last argument specifies this.
17701         * c-common.h (flag_lax_vector_conversions): New.
17702         (vector_types_convertible_p): Add extra argument.
17703         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
17704         char_type_node for V*QI type vectors.
17705         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
17706         Update to satisfy new typechecking rules.
17707         * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
17708         C and C++ variants.
17709         * doc/invoke.texi (C Dialect Options): Document
17710         -flax-vector-conversions.
17711
17712 2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>
17713
17714         PR tree-optimization/29877
17715         * tree-ssa-ter.c (is_replaceable_p): Deem assignments with
17716         a register variable on the RHS to not be replaceable.
17717
17718 2007-01-08  Chen Liqin  <liqin@sunnorth.com.cn>
17719         * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
17720         * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
17721         const_simm15, const_pow2, const_npow2): Added.
17722         * config/score/misc.md (insv, extv, extzv, movmemsi,
17723         move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
17724         * config/score/score.c (score_address_cost, score_select_cc_mode):
17725         Added.
17726         Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
17727         Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
17728         Update score_print_operand.
17729         * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
17730         Adjust register allocate order and update some macro define.
17731         * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
17732         mdx_block_move_straight, mdx_block_move_loop_head,
17733         mdx_block_move_loop_body, mdx_block_move_loop_foot,
17734         mdx_block_move_loop, mdx_block_move): Added.
17735         (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
17736         mdp_limm): Updated and fix some bug and typo.
17737         * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
17738         (movsf, movdf, doloop_end): Added.
17739
17740 2007-01-08  Kazu Hirata  <kazu@codesourcery.com>
17741
17742         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
17743         config/arm/thumb2.md: Fix comment typos.
17744         * doc/extend.texi: Fix a typo.
17745
17746 2007-01-07  Eric Christopher  <echristo@apple.com>
17747
17748         * configure.ac: Check for __stack_chk_fail for darwin.
17749         * configure: Regenerate.
17750
17751 2007-01-07  Richard Guenther  <rguenther@suse.de>
17752
17753         * tree-vrp.c (extract_range_from_assert): CSE calls to
17754         compare_values where possible.
17755         (extract_range_from_unary_expr): Likewise.
17756
17757 2007-01-07  Anatoly Sokolov <aesok@post.ru>
17758
17759         * config/avr/avr-protos.h (call_insn_operand): Delete prototype.
17760         * config/avr/avr.c (call_insn_operand): Delete function.
17761         * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
17762         instead of register number. Use predicates.
17763         * config/avr/predicates.md (const0_operand, reg_or_0_operand,
17764         call_insn_operand): Add.
17765
17766 2007-01-06  Jan Hubicka  <jh@suse.cz>
17767
17768         * tree-pass.h (pass_build_cgraph_edges): Declare.
17769         * cgraphunit.c (record_refernece): Move to cgraphbuild.c
17770         (visited_nodes): Remove.
17771         (cgraph_create_edges): Move to cgraphbuild.c; rename to
17772         build_cgrpah_edges; make visited_nodes local.
17773         (cgraph_process_new_functions): DO not call initialize_inline_failed.
17774         (record_references_in_initializer): Move to cgraphbuild.c
17775         (initialize_inline_failed, rebuild_cgraph_edges,
17776         pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
17777         (verify_cgraph_node): Make visited_nodes local.
17778         (cgraph_analyze_function): Do not call cgraph_create_edges and
17779         initialize_inline_failed.
17780         (cgraph_expand_function): Do not call cgraph_lower_function;
17781         assert that function is already lowered.
17782         * Makefile.in (cgraphbuild.o): New.
17783         * passes.c (init_optimization_passes): Add pass_build_cgraph_edges
17784         at the end of lowering passes.
17785
17786 2007-01-06  Steven Bosscher  <steven@gcc.gnu.org>
17787
17788         * ifcvt.c (cond_move_convert_if_block): New function, code
17789         factored out from...
17790         (cond_move_process_if_block): ...here.  Call the new function
17791         on the THEN and ELSE blocks.
17792         (merge_if_block): Do not copy global_live_at_end, merge_blocks
17793         already takes care of this.
17794
17795 2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17796
17797         PR c/19978
17798         * tree.h (TREE_OVERFLOW_P): New.
17799         * c-typeck.c (parser_build_unary_op): Warn only if result
17800         overflowed and operands did not.
17801         (parser_build_binary_op): Likewise.
17802         (convert_for_assignment): Remove redundant overflow_warning.
17803         * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.
17804
17805 2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17806
17807         * c-typeck.c (store_init_value): Split over two lines to follow
17808         the GNU coding style.
17809
17810 2007-01-05  Benjamin Kosnik  <bkoz@redhat.com>
17811
17812         * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
17813         __GXX_EXPERIMENTAL_CXX0X__.
17814         * doc/cpp.texi: Same.
17815
17816 2007-01-05  Richard Guenther  <rguenther@suse.de>
17817
17818         PR middle-end/27826
17819         * tree.c (get_narrower): Do not construct COMPONENT_REFs
17820         with mismatched types.  Instead explicitly build a
17821         conversion NOP_EXPR.
17822
17823 2007-01-05  Ian Lance Taylor  <iant@google.com>
17824
17825         * c-common.c (decl_with_nonnull_addr_p): New function.
17826         (c_common_truthvalue_conversion): Call it.
17827         * c-typeck.c (build_binary_op): Likewise.
17828         * c-common.h (decl_with_nonnull_addr_p): Declare.
17829
17830 2007-01-05  Jakub Jelinek  <jakub@redhat.com>
17831
17832         PR c/30360
17833         * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
17834         denom against 0.0.
17835
17836 2007-01-05  Joel Brobecker  <brobecker@adacore.com>
17837
17838         * doc/install.texi (Final install): Document the fact that
17839         the GNAT runtime should not be stripped.
17840
17841 2007-01-04  Jan Hubicka  <jh@suse.cz>
17842
17843         * tree-inline.c (fold_marked_statements): Update operand caches
17844         and EH after folding
17845
17846 2007-01-04  Ian Lance Taylor  <iant@google.com>
17847
17848         * c-common.c (check_function_nonnull): Whitespace fix.
17849
17850 2007-01-04  Jan Hubicka  <jh@suse.cz>
17851
17852         * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
17853         comitted older version of patch.
17854         (pass_fixup_cfg): Add TODOs to verify flow and statements, dump
17855         function, celanup cfg and collect garbage.
17856
17857 2007-01-04  Mike Stump  <mrs@apple.com>
17858
17859         * Makefile.in (mostlyclean): Don't remove libgcc anymore.
17860         (clean): Likewise.
17861
17862 2007-01-04  Eric Christopher  <echristo@apple.com>
17863
17864         * libgcc2.c (__bswapsi2): Use SItype.
17865         (__bswapdi2): Use DItype.
17866         * libgcc2.h: Update for above.
17867
17868 2007-01-04  Paul Brook  <paul@codesourcery.com>
17869
17870         * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
17871         mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0,
17872         mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3,
17873         umulsidi3, umulsidi3adddi, smulsi3_highpart,
17874         umulsi3_highpart): Make conditional on !arm_arch6.
17875         (arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6,
17876         mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6,
17877         mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6,
17878         umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6,
17879         umulsi3_highpart_v6): New insns.
17880
17881 2007-01-04  Roger Sayle  <roger@eyesopen.com>
17882
17883         * fold-const.c (fold_convert): When casting an expression to void,
17884         fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
17885         have a type.  Instead of attempting to build a NOP_EXPR, return
17886         these "special" trees directly.
17887
17888 2007-01-04  Joseph Myers  <joseph@codesourcery.com>
17889
17890         * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
17891         MULT inside MINUS as either argument.  Use rs6000_cost->dmul -
17892         rs6000_cost->fp not 0 as adjustment for outer NEG.
17893
17894 2007-01-04  Jan Hubicka  <jh@suse.cz>
17895
17896         * cgraph.c (cgraph_release_function_body): New function.
17897         (cgraph_remove_node): Use it.
17898         * cgraph.h (cgraph_release_function_body): Declare.
17899         * cgraphunit.c (cgraph_expand_function): Use it.
17900         * ipa.c (cgraph_remove_unreahchable_nodes): Use it.
17901         * tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing
17902         is initialized and while compilation of other function is running.
17903         * tree-optimize.c (execute_free_cfg_annotations): Move code to clear
17904         statement CFG annotations from here to ...
17905         * tree-cfg.c (delete_tree_cfg_annotations): ... here.
17906
17907 2007-01-04  Zdenek Dvorak <dvorakz@suse.cz>
17908
17909         * cfgloop.h (enum li_flags): Make the constants powers of two.
17910
17911 2007-01-04  Jan Hubicka  <jh@suse.cz>
17912
17913         * tree-inline.c (copy_bb): Insert new statements to statements_to_fold
17914         set.
17915         (fold_marked_statements): New function.
17916         (optimize_inline_calls, tree_function_versioning): Fold new statements.
17917         * tree-inline.h (copy_body_data): Add statements_to_fold.
17918
17919 2007-01-03  Daniel Jacobowitz  <dan@codesourcery.com>
17920
17921         * config.gcc: Mention libgcc/config.host.
17922         * Makefile.in: Update comments mentioning libgcc.
17923         (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
17924         (all.cross, start.encap, rest.encap, rest.cross): Update
17925         dependencies for libgcc move.
17926         (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
17927         (clean-target, clean-target-libgcc): Delete.
17928         (srcdirify, GCC_EXTRA_PARTS): New macros.
17929         (libgcc-support, libgcc.mvars): New rules.
17930         (distclean): Remove mention of mklibgcc.
17931         (install): Don't reference INSTALL_LIBGCC.
17932         (install-common): Don't reference EXTRA_PARTS.
17933         (install-libgcc, install-multilib): Delete rules.
17934         * mklibgcc.in: Delete file.
17935         * doc/configfiles.texi: Don't mention mklibgcc.
17936
17937         * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
17938         * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
17939         * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
17940         * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
17941         (mklibgcc, ldblspecs): Likewise.
17942
17943         * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
17944         (posixpre.def): Use $(T).
17945         (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
17946         (SHLIB_SRC, SHLIB_INSTALL): Delete.
17947         (SHLIB_LINK): Make dummy.
17948         * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.
17949
17950         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.
17951
17952         * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
17953         * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
17954         config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
17955         config/rs6000/t-newas, config/sparc/t-elf: Likewise.
17956
17957         * configure.ac (all_outputs): Remove mklibgcc.
17958         * configure: Regenerated.
17959
17960 2007-01-03  Josh Conner  <jconner@apple.com>
17961
17962         PR middle-end/29683
17963         * calls.c (compute_argument_addresses): Set stack and stack_slot
17964         for partial args, too.
17965         (store_one_arg): Use locate.size.constant for the size when
17966         generating a save_area.
17967
17968 2007-01-03  Robert Kennedy <jimbob@google.com>
17969
17970         * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
17971         whose definitions are deleted due to basic block merging.
17972
17973 2007-01-03  Paul Brook  <paul@codesourcery.com>
17974
17975         PR target/16634
17976         * config/arm/arm.c (output_return_instruction): Pop PC in interrupt
17977         functions.
17978         (use_return_insn): Return 0 for Thumb interrupt functions.
17979         (print_multi_reg): Add rfe argument for IRQ returns.
17980         (arm_output_epilogue): Pop interrupt return address directly into PC.
17981         (arm_expand_prologue): Only adjust IRQ return address in Arm mode.
17982
17983 2007-01-03  Paul Brook  <paul@codesourcery.com>
17984
17985         Merge from sourcerygxx-4_1.
17986         * config/arm/thumb2.md: New file.
17987         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
17988         Thumb-2.
17989         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
17990         * config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
17991         (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
17992         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
17993         tables.
17994         (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
17995         * config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
17996         comptibility.
17997         * config/arm/ieee754-sf.S: Ditto.
17998         * config/arm/arm.c (thumb_base_register_rtx_p): Rename...
17999         (thumb1_base_register_rtx_p): ... to this.
18000         (thumb_index_register_rtx_p): Rename...
18001         (thumb1_index_register_rtx_p): ... to this.
18002         (thumb_output_function_prologue): Rename...
18003         (thumb1_output_function_prologue): ... to this.
18004         (thumb_legitimate_address_p): Rename...
18005         (thumb1_legitimate_address_p): ... to this.
18006         (thumb_rtx_costs): Rename...
18007         (thumb1_rtx_costs): ... to this.
18008         (thumb_compute_save_reg_mask): Rename...
18009         (thumb1_compute_save_reg_mask): ... to this.
18010         (thumb_final_prescan_insn): Rename...
18011         (thumb1_final_prescan_insn): ... to this.
18012         (thumb_expand_epilogue): Rename...
18013         (thumb1_expand_epilogue): ... to this.
18014         (arm_unwind_emit_stm): Rename...
18015         (arm_unwind_emit_sequence): ... to this.
18016         (thumb2_legitimate_index_p, thumb2_legitimate_address_p,
18017         thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
18018         thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
18019         arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
18020         thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
18021         thumb2_output_casesi): New functions.
18022         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
18023         (FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
18024         FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
18025         THUMB2_WORK_REGS): Define.
18026         (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
18027         arm_condexec_mask, arm_condexec_masklen)): New variables.
18028         (all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
18029         (arm_override_options): Check new CPU capabilities.
18030         Set new architecture flag variables.
18031         (arm_isr_value): Handle v7m interrupt functions.
18032         (user_return_insn): Return 0 for v7m interrupt functions.  Handle
18033         Thumb-2.
18034         (const_ok_for_arm): Handle Thumb-2 constants.
18035         (arm_gen_constant): Ditto.  Use movw when available.
18036         (arm_function_ok_for_sibcall): Return false for v7m interrupt
18037         functions.
18038         (legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
18039         (thumb_find_work_register, arm_load_pic_register,
18040         legitimize_tls_address, arm_address_cost, load_multiple_sequence,
18041         emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
18042         print_multi_reg, output_mov_long_double_fpa_from_arm,
18043         output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
18044         output_mov_double_fpa_from_arm, output_move_double,
18045         arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
18046         output_return_instruction, arm_output_function_prologue,
18047         arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
18048         arm_output_mi_thunk, thumb_set_return_address): Ditto.
18049         (arm_expand_prologue): Handle Thumb-2.  Use arm_save_coproc_regs.
18050         (arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
18051         (arithmetic_instr, shift_op): Use arm_shift_nmem.
18052         (arm_print_operand): Use arm_print_condition.  Handle '(', ')', '.',
18053         '!' and 'L'.
18054         (arm_final_prescan_insn): Use extract_constrain_insn_cached.
18055         (thumb_expand_prologue): Use thumb_set_frame_pointer.
18056         (arm_file_start): Output directive for unified syntax.
18057         (arm_unwind_emit_set): Handle stack alignment instruction.
18058         * config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
18059         Add v6t2, v7, v7a, v7r and v7m.
18060         (RETLDM): Add Thumb-2 code.
18061         (do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
18062         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
18063         (TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
18064         TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
18065         THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
18066         ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
18067         THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
18068         CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
18069         ADJUST_INSN_LENGTH): Define.
18070         (TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
18071         STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
18072         BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
18073         PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
18074         SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
18075         TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
18076         HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
18077         HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
18078         REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
18079         REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
18080         LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
18081         GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
18082         ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
18083         FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
18084         PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
18085         (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
18086         * config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
18087         cortex-m3.
18088         * config/arm/arm-tune.md: Regenerate.
18089         * config/arm/arm-protos.h: Update prototypes.
18090         * config/arm/vfp.md: Enable patterns for Thumb-2.
18091         (arm_movsi_vfp): Add movw alternative.  Use output_move_vfp.
18092         (arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
18093         (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
18094         thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
18095         * config/arm/libunwind.S: Add Thumb-2 code.
18096         * config/arm/constraints.md: Update include Thumb-2.
18097         * config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
18098         * config/arm/ieee754-df.S: Ditto.
18099         * config/arm/bpabi.S: Ditto.
18100         * config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
18101         * config/arm/predicates.md (low_register_operand,
18102         low_reg_or_int_operand, thumb_16bit_operator): New.
18103         (thumb_cmp_operand, thumb_cmpneg_operand): Rename...
18104         (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
18105         * config/arm/t-arm-elf: Add armv7 multilib.
18106         * config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
18107         Include thumb2.md.
18108         (UNSPEC_STACK_ALIGN, ce_count): New.
18109         (arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
18110         arm_zero_extendsidi2, arm_zero_extendqidi2): New
18111         insns/expanders.
18112         * config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
18113         (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
18114         thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
18115         * config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
18116         (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
18117         thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
18118         insns.
18119         * doc/extend.texi: Document ARMv7-M interrupt functions.
18120         * doc/invoke.texi: Document Thumb-2 new cores+architectures.
18121
18122 2007-01-03  Jakub Jelinek  <jakub@redhat.com>
18123
18124         * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
18125         (struct _Unwind_Context): Rename args_size to flags, remove
18126         signal_frame field, add a new args_size field and version field.
18127         (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
18128         _Unwind_IsExtendedContext): New inline functions.
18129         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
18130         Assume by_value array is only present if _Unwind_IsExtendedContext.
18131         (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
18132         _Unwind_IsSignalFrame.
18133         (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
18134         (uw_update_context_1): Use _Unwind_SetSignalFrame.
18135         (uw_init_context_1): Initialize context->flags to
18136         EXTENDED_CONTEXT_BIT.
18137         * config/rs6000/linux-unwind.h (frob_update_context): Use
18138         _Unwind_SetSignalFrame.
18139
18140 2007-01-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18141
18142         PR middle-end/30353
18143         * gimplify.c (gimplify_modify_expr_complex_part): Move below
18144         tree_to_gimple_tuple.  Call tree_to_gimple_tuple when we need
18145         the value.
18146
18147 2007-01-03  Kazu Hirata  <kazu@codesourcery.com>
18148
18149         * config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P,
18150         REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER,
18151         RET, AT_SP): Remove.
18152         * config/i386/i386.md (*sse_prologue_save_insn): Use return
18153         instead of RET.
18154
18155         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
18156         * cfgbuild.c (find_basic_blocks): Likewise.
18157         * cfgrtl.c (rtl_create_basic_block): Likewise.
18158         * function.c (temp_slots_at_level): Likewise.
18159         * reg-stack.c (stack_regs_mentioned): Likewise.
18160         * regclass.c (allocate_reg_info): Likewise.
18161         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
18162         set_bb_for_stmt, move_block_to_fn): Likewise.
18163         * tree-complex.c (tree_lower_complex): Likewise.
18164         * vec.h (VEC_safe_grow_cleared): New.
18165
18166         * cgraphunit.c, tree-ssa-alias.c: Fix comment typos.
18167
18168 2007-01-03  Zdenek Dvorak <dvorakz@suse.cz>
18169
18170         * loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
18171         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities
18172         to loop_version.
18173         * cfgloopmanip.c (scale_loop_frequencies): Export.
18174         (loopify): Scale the frequencies by prescribed coefficients.
18175         (set_zero_probability): New function.
18176         (duplicate_loop_to_header_edge): Improve updating of frequencies.
18177         (lv_adjust_loop_entry_edge, loop_version): Set probabilities
18178         and frequencies according to arguments.
18179         * tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities
18180         correctly.
18181         * cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up.
18182         * modulo-sched.c (sms_schedule): Set probabilities for entering
18183         versioned loop correctly.
18184         * tree-vect-transform.c (vect_transform_loop): Ditto.
18185         * cfgloop.h (loopify, loop_version): Declaration changed.
18186         (scale_loop_frequencies): Declared.
18187
18188 2007-01-02  Jan Hubicka  <jh@suse.cz>
18189
18190         * cgraph.c: Include tree-flow.h
18191         (cgraph_add_new-function): Handle IPA_SSA mode; execute
18192         early_local_passes.
18193         * cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
18194         * tree-pass.h (pass_all_early_optimizations): Declare.
18195         * cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
18196         early_local_passes.
18197         (cgraph_analyze_function): Do early_local_passes.
18198         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
18199         Do not add referenced vars.
18200         * tree-optimize.c (gate_all_optimizations): Do not execute when not in
18201         SSA form.
18202         (gate_all_early_local_passes): New gate.
18203         (pass_early_local_passes): Use new gate.
18204         (execute_early_local_optimizations): New functions.
18205         (gate_all_early_optimizations): New gate.
18206         (pass_all_early_optimizations): New pass.
18207         (execute_free_datastructures): Free SSA only when initialized.
18208         (gate_init_datastructures): Init only when optimizing.
18209         (tree_lowering_passes): Do early local passes when called late.
18210         * tree-profile.c (do_tree_profiling): Don't profile functions added
18211         late.
18212         (do_early_tree_profiling, pass_early_tree_profile): Kill.
18213         * tree-cfg.c (update_modified_stmts): Do not update when operands are
18214         not active.
18215         * passes.c (init_optimizations_passes): Reorder so we go into SSA
18216         during early_local_passes.
18217         * Makefile.in (cgraph.o): Add dependency on tree-flow.h.
18218
18219
18220 2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>
18221
18222         * Makefile.in: Update copyright year.
18223
18224 2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>
18225
18226         * Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST)
18227         in $(lang_checks) and check-consistency targets.
18228
18229 2007-01-02  Jan Hubicka  <jh@suse.cz>
18230
18231         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
18232         Do not add referenced vars.
18233         * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
18234         are not active.
18235         * passes.c (init_optimization_passes): Put mudflap_2 after
18236         free_datastructures.
18237
18238 2007-01-02  Jan Hubicka  <jh@suse.cz>
18239
18240         * tree-optimize (execute_fixup_cfg): Set after_inlining flag.
18241         Set NOTHROW flag on call statements proved to be nothrow.
18242         Update statement of local calls so new pure/const functions are
18243         updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal
18244         goto receivers.
18245         (tree_rest_of_compilation): Register hooks and initialize bitmap
18246         early. Do not set after_inlining flag.
18247
18248 2007-01-02  Steve Ellcey  <sje@cup.hp.com>
18249
18250         * sbitmap.c (HOST_BITS_PER_LONG_LONG):  Change to
18251         HOST_BITS_PER_LONGLONG
18252
18253 2007-01-02  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18254
18255         PR c/19977
18256         * c-typeck.c (store_init_value): Don't emit pedantic overflow
18257         warning for non-static initializers.
18258
18259 2007-01-02  Steven Bosscher  <steven@gcc.gnu.org>
18260
18261         * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
18262         m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
18263         rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
18264         Always use set_unique_reg_note to add REG_EQUAL notes.
18265
18266 2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
18267
18268         Revert:
18269         2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
18270
18271         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
18272         * cfgbuild.c (find_basic_blocks): Likewise.
18273         * cfgrtl.c (rtl_create_basic_block): Likewise.
18274         * function.c (temp_slots_at_level): Likewise.
18275         * reg-stack.c (stack_regs_mentioned): Likewise.
18276         * regclass.c (allocate_reg_info): Likewise.
18277         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
18278         set_bb_for_stmt, move_block_to_fn): Likewise.
18279         * tree-complex.c (tree_lower_complex): Likewise.
18280         * vec.h (VEC_safe_grow_cleared): New.
18281
18282 2007-01-02  Ian Lance Taylor  <iant@google.com>
18283
18284         * c-common.c (c_common_truthvalue_conversion): When warning about
18285         using an assignment as a truth value, set TREE_NO_WARNING.
18286
18287 2007-01-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18288
18289         PR middle-end/7651
18290         * c.opt (Wold-style-declaration): New.
18291         * doc/invoke.texi (C-only Warning Options): New.
18292         (Wold-style-declaration): Document it.
18293         (Wextra): Enabled by -Wextra.
18294         * c-opts.c (c_common_post_options): Enabled by -Wextra.
18295         * c-decl.c (declspecs_add_scspec): Replace -Wextra with
18296         -Wold-style-declaration.
18297
18298 2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
18299
18300         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
18301         * cfgbuild.c (find_basic_blocks): Likewise.
18302         * cfgrtl.c (rtl_create_basic_block): Likewise.
18303         * function.c (temp_slots_at_level): Likewise.
18304         * reg-stack.c (stack_regs_mentioned): Likewise.
18305         * regclass.c (allocate_reg_info): Likewise.
18306         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
18307         set_bb_for_stmt, move_block_to_fn): Likewise.
18308         * tree-complex.c (tree_lower_complex): Likewise.
18309         * vec.h (VEC_safe_grow_cleared): New.
18310
18311 2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
18312
18313         * c-common.c (c_common_nodes_and_builtins): Since variants of
18314         void_type_node get built before it is given a name, we need to
18315         give those variants the name, too.
18316         (complete_array_type): We need to work with the canonical main
18317         type of the array, from which we will build the qualified version.
18318         * params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
18319         * print-tree.c (print_node): Display canonical type information
18320         for each type.
18321         * stor-layout.c (layout_type): When we don't know the
18322         alignment of a type for which we're building an array, we end up
18323         guessing wrong, so make the type require structural equality.
18324         * tree.c (make_node_stat): When we build a new type, it is its
18325         own canonical type.
18326         (build_type_attribute_qual_variant): When building an attribute
18327         variant, its canonical type is the non-attribute variant. However,
18328         if the attributes are target-dependent and they differ, we need to
18329         use structural equality checks for this type.
18330         (build_qualified_type): A qualified type is not equivalent to its
18331         unqualified variant; set the canonical type appropriately.
18332         (build_distinct_type_copy): When building a distinct type from
18333         another type, the new type is its own canonical type.
18334         (build_variant_type_copy): When building a new type variant, we
18335         assume that it is equivalent to the original type.
18336         (build_pointer_type_for_mode): When building a pointer type, also
18337         build a canonical type pointer.
18338         (build_reference_type_for_mode): When building a reference type,
18339         also build a canonical type reference.
18340         (build_index_type): When we can't hash an index type (e.g.,
18341         because its maximum value is negative), the index type requires
18342         structural equality tests.
18343         (build_array_type): Build the canonical form of an array type.
18344         (build_function_type): Function types require structural equality,
18345         because they contain default arguments, attributes, etc.
18346         (build_method_type_directly): Ditto for method types.
18347         (build_offset_type): Build the canonical offset type.
18348         (build_complex_type): Build the canonical vector type.
18349         (make_vector_type): Build the canonical vector type.
18350         * tree.h (TYPE_CANONICAL): New.
18351         (TYPE_STRUCTURAL_EQUALITY_P): New.
18352         (SET_TYPE_STRUCTURAL_EQUALITY): New.
18353         (struct tree_type): Added "canonical" field.
18354         * params.h (VERIFY_CANONICAL_TYPES): New.
18355         * doc/c-tree.texi (TYPE_CANONICAL): Document.
18356         (TYPE_STRUCTURAL_EQUALITY_P): Document.
18357         (SET_TYPE_STRUCTURAL_EQUALITY): Document.
18358         * doc/invoke.texi (verify-canonical-types): Document --param
18359         parameter for verifying canonical types.
18360
18361 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
18362
18363         * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
18364         powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*,
18365         powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae,
18366         powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to
18367         tm_file.
18368         * config/rs6000/e500.h: New.
18369         * config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500,
18370         TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE):
18371         Remove.
18372         * config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE,
18373         TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE,
18374         TARGET_E500_DOUBLE): Remove.
18375         * config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE,
18376         TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove.
18377         * config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define.
18378         * config/rs6000/rs6000.c (rs6000_override_options): Use
18379         CHECK_E500_OPTIONS.
18380
18381 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
18382
18383         * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
18384         TARGET_E500_DOUBLE), not TARGET_E500, for %y.
18385         (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
18386         rs6000_emit_cmove): Don't check TARGET_E500.
18387         * config/rs6000/rs6000.md (bunordered, bordered, sunordered,
18388         sordered): Don't check TARGET_E500.
18389
18390 2007-01-01  Eric Christopher  <echristo@apple.com>
18391
18392         * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use
18393         HARD_REGISTER_NUM_P.
18394
18395 2007-01-01  Roger Sayle  <roger@eyesopen.com>
18396
18397         * fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
18398         "X eq/ne (C1^C2)".  Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
18399         has no side-effects.  Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
18400         eq/ne Y".
18401
18402 2007-01-01  Mike Stump  <mrs@apple.com>
18403
18404         * configure.ac: Remove support for building with Apple's gcc-3.1.
18405
18406 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
18407
18408         PR middle-end/30311
18409         * caller-save.c (add_stored_regs): Only handle SUBREGs if inner
18410         REG is a hard register.  Do not modify REG before calling
18411         subreg_nregs.
18412         * rtlanal.c (subreg_get_info): Don't assert size of XMODE is a
18413         multiple of the size of YMODE for certain lowpart cases.
18414
18415 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
18416
18417         PR middle-end/30253
18418         * gimplify (voidify_wrapper_expr): Update for
18419         GIMPLE_MODIFY_STMT.
18420
18421 2007-01-01  Andreas Schwab  <schwab@suse.de>
18422
18423         PR target/29166
18424         * config/ia64/ia64.c (ia64_compute_frame_size): Account space for
18425         save of BR0 in extra_spill_size instead of spill_size.
18426         (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
18427         area.
18428         (ia64_expand_epilogue): Restore BR0 from its new location.
18429
18430 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
18431
18432         * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
18433         Use a temporary variable if the left hand side is not a gimple
18434         register.
18435
18436 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
18437
18438         * gimplify.c (gimplify_return_expr): Make the temporary variable
18439         for the return expression, a gimple register variable.
18440
18441 2007-01-01  Jan Hubicka  <jh@suse.cz>
18442
18443         * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
18444         INSN_LIST.
18445
18446 2007-01-01  Mike Stump  <mrs@apple.com>
18447
18448         * configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
18449         .literal16.
18450         * config/darwin.c (machopic_select_rtx_section): Use
18451         HAVE_GAS_LITERAL16.
18452         (darwin_mergeable_constant_section): Likewise.
18453         * configure: Regenerate.
18454         * config.in: Regenerate.
18455
18456 2007-01-01  Jan Hubicka  <jh@suse.cz>
18457             Andrew Pinski  <pinskia@gmail.com>
18458
18459         * cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
18460         before starting IPA passes.