OSDN Git Service

d163f6ac4047dcf2ea12649312b2a541acb61f8c
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
2         
3         * config/i386/i386.c:
4         (k8_cost, amdfam10_cost): Branch costs for vectorization tuned.
5         
6 2008-01-08  Richard Guenther  <rguenther@suse.de>
7
8         PR tree-optimization/34683
9         * tree-ssa-operands.c (operand_build_cmp): Export.
10         * tree-ssa-operands.h (operand_build_cmp): Declare.
11         * tree-vn.c (vuses_compare): Remove.
12         (sort_vuses): Use operand_build_cmp.
13         (sort_vuses_heap): Likewise.
14         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
15         to re-use old VEC if available.  Do not sort already sorted VUSEs.
16         (vdefs_to_vec): Do not sort already sorted VDEFs.
17
18 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
19
20         PR middle-end/34694
21         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
22
23 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
24
25         PR target/34702
26         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
27         limitations of reciprocal sequences on x86 targets.
28
29 2008-01-08  Richard Guenther  <rguenther@suse.de>
30
31         PR tree-optimization/34683
32         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
33
34 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
35
36         PR target/34622
37         * config/darwin.c (darwin_mergeable_string_section): Don't use
38         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
39
40 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
41
42         PR target/34682
43         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
44         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
45         predicates of op0 and op1 to register_operand.
46         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
47         expander using X87MODEF mode iterator.  Change predicates of
48         op0 and op1 to register_operand.
49         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
50         corresponding patterns and macroize using MODEF macro.  Change
51         predicates of op0 and op1 to register_operand and remove
52         "m" constraint. Disparage "r" alternative with "!".
53         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
54         macroize using X87MODEF macro.  Change predicates of op0 and op1
55         to register_operand and remove "m" constraint.  Disparage "r"
56         alternative with "!".
57         (absneg splitter with memory operands): Remove.
58         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
59         patterns and macroize using X87MODEF mode iterator.
60         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
61         Change predicate of op1 to register_operand.
62         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
63         for memory operands.
64
65 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
66
67         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
68
69 2008-01-07  Richard Guenther  <rguenther@suse.de>
70
71         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
72         fields.
73
74 2008-01-07  Richard Guenther  <rguenther@suse.de>
75
76         PR tree-optimization/34683
77         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
78         VOPs of the needed size to save memory.  Use VEC_quick_push
79         to save compile-time.
80         (vdefs_to_vec): Likewise.
81
82 2008-01-07  Sa Liu  <saliu@de.ibm.com>
83
84         * config/spu/spu.md (divdf3): Genetate inline code for double
85         division.  The implementation doesn't handle INF or NAN, therefore it
86         only applies when -ffinite-math-only is given.
87
88 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
89
90         PR libstdc++/34680
91         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
92         * doc/cpp.texi ([Common Predefined Macros]): Document.
93
94 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
95
96         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
97         order to use commutative addition instead of subtraction.
98
99 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
100             Mircea Namolaru  <namolaru@il.ibm.com>
101             Vladimir Yanovsky  <yanov@il.ibm.com>
102             Revital Eres  <eres@il.ibm.com>
103
104         PR tree-optimization/34263
105         * tree-outof-ssa.c (process_single_block_loop_latch,
106         contains_tree_r): New functions.
107         (analyze_edges_for_bb): Call process_single_block_loop_latch
108         function to empty single-basic-block latch block if possible.
109
110 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
111
112         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
113         for TARGET_RECIP.
114         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
115
116 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
117
118         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
119
120 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
121
122         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
123
124 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
125
126         PR tree-optimization/34618
127         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
128         flag from T.
129
130 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
131
132         PR target/34673
133         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
134         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
135         Update copyright year.
136
137         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
138         Update copyright year.
139         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
140         using NR fixup.
141
142 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
143
144         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
145         edge does not point to current bb before changing need_assert.
146
147 2008-01-04  Richard Guenther  <rguenther@suse.de>
148
149         PR middle-end/34029
150         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
151         for verifying purposes if they are is_gimple_min_invariant.
152
153 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
154
155         PR tree-optimization/34448
156         PR tree-optimization/34465
157         * gimplify.c (gimplify_init_constructor): Add new parameter
158         notify_temp_creation.  Use it.
159         (gimplify_modify_expr_rhs): Take volatiles into account when
160         optimizing constructors.
161         Do not optimize constructors if gimplify_init_constructor will dump to
162         memory.
163         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
164         * gcc.c-torture/compile/pr34448.c: New.
165
166 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
167
168         PR gcov-profile/34609
169         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
170         return_slot if result is TREE_ADDRESSABLE.
171
172 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
173
174         * config/mips/mips.md (sqrt_condition): Tweak comment.
175         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
176
177 2008-01-03  Tom Tromey  <tromey@redhat.com>
178
179         PR c/34457
180         * c-common.c (c_type_hash): Handle VLAs.
181
182 2008-01-03  Jan Hubicka  <jh@suse.cz>
183
184         PR tree-optimization/31081
185         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
186         0 when inlining and not inlining to first basic block.
187         (remap_decl): When var is initialized to 0, don't set default_def.
188         (expand_call_inline): Set entry_bb.
189         * tree-inline.h (copy_body_data): Add entry_bb.
190
191 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
192
193         PR c++/34619
194         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
195         before returning.
196
197         PR tree-optimization/29484
198         * tree-inline.c (inline_forbidden_p_2): New function.
199         (inline_forbidden_p): Disallow inlining if some static var
200         has an address of a local LABEL_DECL in its initializer.
201         * doc/extend.texi (Labels as Values): Document &&foo behaviour
202         vs. inlining.
203
204 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
205
206         PR tree-optimization/34635
207         * tree-data-ref.c (add_other_self_distances): Make sure that the
208         evolution step is constant.
209
210 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
211
212         PR middle-end/34608
213         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
214
215 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
216
217         * tree-sra.c (scalarize_init): Insert the generate_element_init
218         statements after the generate_element_zero statements.
219
220 2008-01-02  Richard Guenther  <rguenther@suse.de>
221
222         PR middle-end/34093
223         PR middle-end/31976
224         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
225         for very large number of operands instead of ICEing.
226
227 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
228
229         PR target/34013
230         * gcc/config/i386/i386.c (ix86_expand_prologue): Save red-zone
231         while stack probing.
232
233 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
234
235         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
236         in C++0x mode.
237
238 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
239
240         PR libmudflap/26442
241         * tree-mudflap.c (mx_register_decls): Guard warning by
242         !DECL_ARTIFICIAL check.
243
244 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
245
246         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
247         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
248         sse5_perm<mode>): Fix constraints.
249
250 2007-12-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
251
252         PR driver/33772
253         * collect2.c (SHLIB_SUFFIX): Define if not defined.
254         (write_c_file_stat): Use SHLIB_SUFFIX.
255         * som.h (SHLIB_SUFFIX): Define.
256         * doc/tm.texi (SHLIB_SUFFIX): Document.
257
258 2007-12-29  Uros Bizjak  <ubizjak@gmail.com>
259
260         * config/i386/sse.md ("*divv4sf3"): Rename to "sse_divv4sf3".
261         ("*sse_rsqrtv4sf2"): Export.
262         ("*sse_sqrtv4sf2"): Ditto.
263         * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_RSQRTPS_NR,
264         IX86_BUILTIN_SQRTPS_NR]: New constants.
265         (struct builtin_description) [IX86_BUILTIN_DIVPS]: Use
266         CODE_FOR_sse_divv4sf3.
267         [IX86_BUILTIN_SQRTPS]: Use CODE_FOR_sse_sqrtv4sf2.
268         [IX86_BUILTIN_SQRTPS_NR]: New.
269         [IX86_BUILTIN_RSQRTPS_NR]: Ditto.
270         (ix86_init_mmx_sse_builtins): Initialize __builtin_ia32_rsqrtps_nr and
271         __builtin_ia32_sqrtps_nr.
272         (ix86_builtin_vectorized_function): Convert BUILT_IN_SQRTF to
273         IX86_BUILTIN_SQRTPS_NR.
274         (ix86_builtin_reciprocal): Convert IX86_BUILTIN_SQRTPS_NR to
275         IX86_BUILTIN_RSQRTPS_NR.
276
277 2007-12-27  Brian Dessent  <brian@dessent.net>
278
279         * doc/invoke.texi (Optimize Options): Add missing opindex for
280         -fno-toplevel-reorder.
281
282 2007-12-27  Dorit Nuzman  <dorit@il.ibm.com>
283
284         PR tree-optimization/34591
285         * tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip
286         stmts (including reduction stmts) that are not live.
287
288 2007-12-27  Jakub Jelinek  <jakub@redhat.com>
289
290         PR target/34281
291         * config/arm/arm.c (arm_setup_incoming_varargs): If last named
292         argument needs double word alignment and cum->nregs is odd, account
293         for the inserted padding.
294
295         PR debug/34535
296         * tree-mudflap.c (mf_make_builtin): Make decl artificial
297         and don't emit debug info for it.
298
299 2007-12-26  Anatoly Sokolov <aesok@post.ru>
300
301         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Move AT90USB82 
302         and AT90USB162 devices from 'avr5' to 'avr35' architecture.
303         (ASM_SPEC): Add 'avr35' architecture.
304         * config/avr/avr.c (avr_mcu_types): Move AT90USB82 and AT90USB162 
305         devices from 'avr5' to 'avr35' architecture.
306         (avr_arch_types): Add "avr23" entries.
307         (avr_arch): Add 'ARCH_AVR35'.
308         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add 'avr35'.
309         (MULTILIB_MATCHES): Move AT90USB82 and AT90USB162 devices from 'avr5'
310         to 'avr35' architecture.
311
312 2007-12-22  David Daney  <ddaney@avtrex.com>
313
314         * doc/install.texi (disable-libgcj-bc): Document new option.
315
316 2007-12-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
317
318         * config/pa/pa.c (hppa_legitimize_address): Use INT14_OK_STRICT in
319         mask selection.
320
321         PR target/34525
322         * pa.c (legitimize_pic_address): Emit insn to load function label
323         forced to memory.
324
325 2007-12-21  Andrew Pinski  <pinskia@gmail.com>
326         Rask Ingemann Lambertsen  <rask@sygehus.dk>
327
328         PR target/8835
329         * config/mcore/mcore.c (mcore_function_value): Call promote_mode
330         instead of PROMOTE_MODE.
331
332 2007-12-21  Sebastian Pop  <sebastian.pop@amd.com>
333
334         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix typo.
335
336 2007-12-21  Sebastian Pop  <sebastian.pop@amd.com>
337
338         * tree-data-ref.c (signed_type_for_types): New.
339         (affine_fn_op): Use signed_type_for_types and signed_type_for instead
340         of long_integer_type_node.
341         (analyze_ziv_subscript): Same.
342         (analyze_siv_subscript_cst_affine): Same.
343         (analyze_miv_subscript): Same.
344         (omega_setup_subscript): Same.
345
346 2007-12-21  Richard Sandiford  <rsandifo@nildram.co.uk>
347
348         * config/mips/mips.c (mips_emit_loadgp): Replace gen_* calls with
349         separate gen_*_si and gen_*_di calls.  Pass pic_offset_table_rtx
350         as the first argument.
351         * config/mips/mips.md (loadgp_newabi, loadgp_absolute)
352         (loadgp_rtp): Rename to...
353         (loadgp_newabi_<mode>, loadgp_absolute<mode>, loadgp_rtp<mode>):
354         ...these.  Add modes to all operands.  Add the target register
355         as an operand.  Combine loadgp_rtp<mode> with its splitter.
356
357 2007-12-20  Bob Wilson  <bob.wilson@acm.org>
358
359         * config/xtensa/xtensa.md (fix_return_addr): Remove.
360         * config/xtensa/xtensa-protos.h (xtensa_initialize_trampoline): New.
361         (xtensa_trampoline_template): New.
362         * config/xtensa/xtensa.c (MIN_FRAME_SIZE): Moved here from xtensa.h.
363         (xtensa_return_addr): Expand to standard Xtensa insns instead of
364         fix_return_addr.  Get high bits from a local label.
365         (xtensa_trampoline_template): New function with code moved from
366         TRAMPOLINE_TEMPLATE in xtensa.h.  Use L32R instead of CALL0 except
367         when using CONST16 or absolute-mode literals.
368         (xtensa_initialize_trampoline): New function with code moved from
369         INITIALIZE_TRAMPOLINE in xtensa.h.  Use different offsets depending
370         on which trampoline version is used.
371         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Add comment.
372         * config/xtensa/xtensa.h (TARGET_ABSOLUTE_LITERALS): Define.
373         (MIN_FRAME_SIZE): Moved to xtensa.c.
374         (TRAMPOLINE_TEMPLATE): Use xtensa_trampoline_template.
375         (TRAMPOLINE_SIZE): Two versions of the trampoline have different sizes.
376         (INITIALIZE_TRAMPOLINE): Use xtensa_initialize_trampoline.
377         * config/xtensa/ieee754-df.S (XCHAL_NO_MUL): Define.
378         (__muldf3): Use CALL12 instead of CALL0 to invoke .Lmul_mulsi3
379         helper when not using the CALL0 ABI.  Change .Lmul_mulsi3 to match.
380         * config/xtensa/lib1funcs.asm (__umulsidi3): Likewise.
381         * config/xtensa/ieee754-sf.S (__mulsf3): Likewise.
382         
383 2007-12-20  Jakub Jelinek  <jakub@redhat.com>
384
385         PR c++/34459
386         * tree-ssa-dse.c (dse_optimize_stmt): Don't eliminate store if
387         USE_STMT not only stores into the same object as STMT, but might
388         read it too.
389
390 2007-12-19  Sebastian Pop  <sebastian.pop@amd.com>
391
392         PR tree-optimization/34413
393         * tree-data-ref.c (affine_fn_op, analyze_ziv_subscript,
394         analyze_siv_subscript_cst_affine, analyze_miv_subscript,
395         omega_setup_subscript): Use long_integer_type_node instead of
396         integer_type_node.
397
398 2007-12-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
399
400         PR target/34525
401         * pa.c (legitimize_pic_address): Force function labels into memory.
402
403 2007-12-19  Zdenek Dvorak  <ook@ucw.cz>
404
405         * omp-low.c (build_omp_regions_1): Recognition of combined parallels
406         moved ...
407         (expand_omp): ... here.
408
409 2007-12-19  Zdenek Dvorak  <ook@ucw.cz>
410
411         PR tree-optimization/34355
412         * tree-parloops.c (take_address_of): Handle expresions
413         instead of just variables.
414         (eliminate_local_variables_1): Force whole invariant
415         address to ssa name.
416
417 2007-12-19  Alexander Monakov  <amonakov@ispras.ru>
418             Revital Eres  <eres@il.ibm.com>
419
420         * modulo-sched.c (generate_reg_moves): Insert the reg-moves
421         right before the notes which precedes the insn, if they exists.
422         (loop_canon_p): Add dump info.
423         (sms_schedule): Likewise.
424
425 2007-12-19  Richard Sandiford  <rsandifo@nildram.co.uk>
426
427         * tree.h (set_decl_incoming_rtl): Add a by_reference_p parameter.
428         * emit-rtl.c (set_decl_incoming_rtl): Likewise.  Don't set the
429         rtl's register attributes when the parameter is true.
430         * function.c (assign_parms_unsplit_complex, assign_parms)
431         (expand_function_start): Update calls to set_decl_incoming_rtl.
432
433 2007-12-19  Richard Sandiford  <rsandifo@nildram.co.uk>
434
435         * rtl.def (SUBREG): Update comments.
436         * rtl.h (reg_attrs): Be explicit about the type of offset used.
437         (set_reg_attrs_from_mem): Rename to...
438         (set_reg_attrs_from_value): ...this.
439         (adjust_reg_mode, byte_lowpart_offset): Declare.
440         * emit-rtl.c (byte_lowpart_offset): New function.
441         (update_reg_offset): Remove special offset handling for big-endian
442         targets.
443         (gen_rtx_REG_offset, gen_reg_rtx_offset): Explicitly say that the
444         offset parameter is added to REG_OFFSET.
445         (adjust_reg_mode): New function.
446         (set_reg_attrs_for_mem): Rename to...
447         (set_reg_attrs_for_value): ...this and generalize to all values.
448         If the register is a lowpart of the value, adjust the offset
449         accordingly.
450         (set_reg_attrs_for_parm): Update after the above renaming.
451         (set_reg_attrs_for_decl_rtl): New function, split out from
452         set_decl_incoming_rtl.  Set the offset of plain REGs to the
453         offset of the REG's mode from the decl's.  Assert that all
454         subregs are lowparts and handle their inner registers in the
455         same way as plain REGs.
456         (set_decl_rtl, set_incoming_decl_rtl): Use reg_attrs_for_decl_rtl.
457         (subreg_lowpart_offset): Explicitly say that the returned offset
458         is a SUBREG_BYTE.
459         * combine.c (do_SUBST_MODE, try_combine, undo_all): Use adjust_reg_mode
460         instead of PUT_MODE.
461         * final.c (alter_subreg): Fix/update argument to gen_rtx_REG_offset.
462         * config/ia64/ia64.c (ia64_expand_load_address): Likewise.
463         * regclass.c (reg_scan_mark_refs): Use set_reg_attrs_from_value.
464         * reload.c (find_reloads_subreg_address): Call set_mem_offset
465         when offseting a MEM.
466         * var-tracking.c (offset_valid_for_tracked_p): Delete.
467         (mode_for_reg_attrs): Replace with...
468         (track_loc_p): ...this new function.  Return the mode and offset
469         to the caller, checking that the latter is valid.  If the rtx is
470         a paradoxical lowpart of the decl, use the decl's mode instead.
471         Do the same when storing to a register that contains the entire decl.
472         (var_lowpart): Use byte_lowpart_offset rather than
473         subreg_lowpart_offset when adjusting the offset attribute.
474         (count_uses, add_uses, add_stores): Use track_reg_p instead of
475         REG_EXPR, MEM_EXPR, REG_OFFSET, INT_MEM_OFFSET, track_expr_p,
476         offset_valid_for_tracked_p and mode_for_reg_attrs.  Generate
477         lowparts for MEMs as well as REGs.
478         (vt_add_function_parameters): When obtaining the information from
479         the decl_rtl, adjust the offset to match incoming.  Use track_loc_p
480         and var_lowpart.
481
482 2007-12-18  Sebastian Pop  <sebastian.pop@amd.com>
483
484         PR tree-optimization/34123
485         * lambda-code.c (can_duplicate_iv): New.
486         (cannot_convert_modify_to_perfect_nest): New.
487         (cannot_convert_bb_to_perfect_nest): New.
488         (can_convert_to_perfect_nest): Split up.
489
490 2007-12-18  David Daney  <ddaney@avtrex.com>
491
492         * config/mips/mips.md (clear_hazard): Use PRINT_OPERAND punctuation
493         instead of .set push and .set pop.
494
495 2007-12-18  Rask Ingemann Lambertsen  <rask@sygehus.dk>
496
497         PR target/33474
498         * config/bfin/bfin.c (bfin_adjust_cost): Dig into PARALLELs to find
499         the SET.
500
501 2007-12-18  Razya Ladelsky <razya@il.ibm.com>
502
503         * tree-parloops.c (reduiction_info): Change documentation of
504         reduction_initial field.
505         (initialize_reductions): Remove creation of reduction_initial variable.
506         (create_loads_for_reductions): don't join reduction_initial to
507         the loaded value.
508
509 2007-12-18  Kaz Kylheku  <kaz@zeugmasystems.com>
510
511         PR rtl-optimization/34456
512         * resource.c (mark_set_resources): Use regs_invalidated_by_call
513         rather than call_used_regs and global_regs.
514
515 2007-12-18  Jakub Jelinek  <jakub@redhat.com>
516
517         PR rtl-optimization/34490
518         * simplify-rtx.c (simplify_const_relational_operation): If !sign,
519         don't reduce mmin/mmax using num_sign_bit_copies.
520
521 2007-12-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
522
523         * doc/install.texi: Change recommended MPFR from 2.2.1 > 2.3.0.
524
525 2007-12-17  Andreas Schwab  <schwab@suse.de>
526
527         * doc/invoke.texi (Warning Options): Use @itemx.
528
529 2007-12-17  Dorit Nuzman  <dorit@il.ibm.com>
530
531         * tree-vectorizer.h (verbosity_levels): Add new verbosity level
532         REPORT_COST.
533         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Change
534         verbosity level to REPORT_COST.
535         (vect_model_reduction_cost): Likewise.
536         (vect_model_induction_cost): Likewise.
537         (vect_model_simple_cost): likewise.
538         (vect_model_store_cost): likewise.
539         (vect_model_load_cost): likewise.
540         (conservative_cost_threshold): Likewise. Remove print.
541
542 2007-12-17  Rask Ingemann Lambertsen  <rask@sygehus.dk>
543
544         * doc/tm.texi (TARGET_SECONDARY_RELOAD): Fix typos.
545
546 2007-12-17  Jakub Jelinek  <jakub@redhat.com>
547
548         PR c/34506
549         * c-parser.c (c_parser_omp_all_clauses): Accept optional comma
550         in between clauses.
551
552 2007-12-17  Dorit Nuzman  <dorit@il.ibm.com>
553
554         PR tree-optimization/34445
555         * tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip 
556         stmts (including live stmts) that are not relevant.
557
558 2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>
559
560         PR target/34025
561         * config/i386/t-crtpc: Add $(MULTILIB_CFLAGS).
562         * config/i386/t-crtfm: Likewise.
563
564 2007-12-17  Uros Bizjak  <ubizjak@gmail.com>
565
566         * config/i386/i386.h (WIDEST_HARDWARE_FP_SIZE): Define.
567
568 2007-12-16  Uros Bizjak  <ubizjak@gmail.com>
569
570         * tree-vect-transform.c (conservative_cost_threshold): Add missing
571         space to "not vectorized" message.
572
573 2007-12-16  Richard Sandiford  <rsandifo@nildram.co.uk>
574
575         PR rtl-optimization/34415
576         * df.h (DF_LR_IN, DF_LR_OUT): Update comments.
577         * resource.c (mark_target_live_regs): Use DF_LR_IN rather than
578         df_get_live_in.  Don't handle pseudos.
579
580 2007-12-16  Jakub Jelinek  <jakub@redhat.com>
581
582         PR bootstrap/34003
583         * c-decl.c (merge_decls): Copy RTL from olddecl to newdecl.
584         * config/pa/pa.c (pa_encode_section_info): If !first, preserve
585         SYMBOL_FLAG_REFERENCED flag.
586
587 2007-12-15  Alexandre Oliva  <aoliva@redhat.com>
588
589         * tree.c (type_hash_add): Fix whitespace.
590
591 2007-12-15  Hans-Peter Nilsson  <hp@axis.com>
592
593         Add CRIS v32 support.  Fix -mcc-init.
594         * config.gcc: Make crisv32-* have cpu_type cris.  Handle
595         crisv32-*-elf and crisv32-*-none like cris-*-elf and cris-*-none
596         but without multilibs and with target_cpu_default=32.
597         (crisv32-*-linux*): Handle as cris-*-linux*.  Set
598         target_cpu_default to 32 and 10 accordingly.
599         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Remove unused macro.
600         (cris_movem_load_rest_p, cris_store_multiple_op_p): Remove FIXME.
601         Change regno_dir and regno only if !TARGET_V32.
602         (cris_conditional_register_usage): If TARGET_V32, set
603         reg_alloc_order as per REG_ALLOC_ORDER_V32 and make
604         CRIS_ACR_REGNUM non-fixed.
605         (cris_print_base): Add gcc_assert for post_inc on CRIS_ACR_REGNUM.
606         (cris_print_operand) <case 'Z', case 'u'>: New cases.
607         <case REG of case 'H'>: Allow for CRIS_SRP_REGNUM.
608         (cris_reload_address_legitimized): Always return false for TARGET_V32.
609         (cris_register_move_cost): New function, guts from
610         REGISTER_MOVE_COST adjusted for CRIS v32.
611         (cris_normal_notice_update_cc): New function split out from...
612         (cris_notice_update_cc): Set cc_status.flags CC_REVERSED for
613         TARGET_CCINIT.  Call cris_normal_notice_update_cc for CC_REV,
614         CC_NOOV32 and CC_NORMAL, but set cc_status.flags CC_NO_OVERFLOW
615         for CC_NOOV32 and TARGET_V32.
616         (cris_simple_epilogue): Always return false for TARGET_V32 if
617         cris_return_address_on_stack yields true.
618         (cris_cc0_user_requires_cmp): New function.
619         (cris_valid_pic_const): Add argument ANY_OPERAND.  All callers
620         changed.  Handle CRIS_UNSPEC_PLT_PCREL and CRIS_UNSPEC_PCREL.
621         (cris_asm_output_case_end): New function, guts from
622         ASM_OUTPUT_CASE_END adjusted for CRIS v32.
623         (cris_override_options): Adjust for CRIS v32.  Mask out
624         TARGET_SIDE_EFFECT_PREFIXES and TARGET_MUL_BUG if v32.
625         (cris_asm_output_mi_thunk, cris_expand_epilogue)
626         (cris_gen_movem_load, cris_emit_movem_store)
627         (cris_expand_pic_call_address, cris_asm_output_symbol_ref)
628         (cris_asm_output_label_ref, cris_output_addr_const_extra): Adjust
629         for CRIS v32.
630         (cris_split_movdx): Copy re-used MEM.
631         * config/cris/t-elfmulti: Add multilib v32 for -march=v32.
632         * config/cris/predicates.md
633         ("cris_general_operand_or_pic_source"): New predicate.
634         ("cris_general_operand_or_plt_symbol"): Replace by...
635         ("cris_nonmemory_operand_or_callable_symbol"): New predicate.
636         * config/cris/linux.h: Sanity-check TARGET_CPU_DEFAULT for
637         presence and contents.
638         (CRIS_SUBTARGET_DEFAULT_ARCH): New macro, MASK_AVOID_GOTPLT for
639         v32, 0 otherwise.
640         (CRIS_CPP_SUBTARGET_SPEC, CRIS_CC1_SUBTARGET_SPEC,
641         CRIS_ASM_SUBTARGET_SPEC): Adjust for different TARGET_CPU_DEFAULT.
642         (CRIS_SUBTARGET_DEFAULT): Add CRIS_SUBTARGET_DEFAULT_ARCH.
643         * config/cris/cris.h: Sanity-check TARGET_CPU_DEFAULT for contents.
644         (CRIS_DEFAULT_TUNE, CRIS_ARCH_CPP_DEFAULT)
645         (CRIS_DEFAULT_ASM_ARCH_OPTION): New macros.
646         (CRIS_CC1_SUBTARGET_SPEC): Change default tuning to use
647         CRIS_DEFAULT_TUNE. 
648         (CRIS_CPP_SUBTARGET_SPEC): Ditto.  Add CRIS_ARCH_CPP_DEFAULT.
649         (ASM_SPEC): Add sanity-check erroring out when both -march= and
650         -mcpu= are specified.  Pass on either as --march=v32.
651         (CRIS_ASM_SUBTARGET_SPEC): When neither -march= or -mcpu= are
652         specified, pass on CRIS_DEFAULT_ASM_ARCH_OPTION.
653         (CRIS_CPU_V32): New macro.
654         [!TARGET_CPU_DEFAULT]: Default-define as CRIS_CPU_BASE.
655         [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]: Move default
656         TARGET_DEFAULT definition after new TARGET_CPU_DEFAULT definition.
657         Define v32-adjusted TARGET_DEFAULT.
658         (CRIS_DEFAULT_CPU_VERSION): Change to TARGET_CPU_DEFAULT from
659         CRIS_CPU_BASE.
660         (TARGET_V32): New macro.
661         (REG_ALLOC_ORDER_V32): New macro.
662         (HARD_REGNO_MODE_OK): Do not allow larger-than-register-size modes
663         into CRIS_ACR_REGNUM.
664         (enum reg_class): New classes ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS
665         and SPEC_GENNONACR_REGS.
666         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Adjust for new classes.
667         (REGNO_REG_CLASS): Give ACR_REGS for CRIS_ACR_REGNUM.
668         (MODE_CODE_BASE_REG_CLASS): Define, give for OCODE POST_INC
669         GENNONACR_REGS, BASE_REG_CLASS otherwise.
670         (REG_CLASS_FROM_LETTER): 'a' is for ACR_REGS.
671         (REGNO_MODE_CODE_OK_FOR_BASE_P): Define, refusing OCODE POST_INC
672         for CRIS_ACR_REGNUM.
673         (PREFERRED_RELOAD_CLASS): Keep ACR_REGS as preferred.
674         (HARD_REGNO_RENAME_OK): Refuse CRIS_ACR_REGNUM as TO.
675         (EXTRA_CONSTRAINT): New constraint 'U'.
676         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE)
677         (ASM_OUTPUT_ADDR_DIFF_ELT): Adjust for CRIS v32.
678         (BASE_OR_AUTOINCR_P): Refuse POST_INC for CRIS_ACR_REGNUM.
679         (SIMPLE_ADDRESS_P): Remove.
680         (GO_IF_LEGITIMATE_ADDRESS): Use BASE_OR_AUTOINCR_P, not redundant
681         SIMPLE_ADDRESS_P.  Make one chained if-else, finishing as
682         non-match after BASE_OR_AUTOINCR_P for TARGET_V32.
683         (REGISTER_MOVE_COST): Just call the new function
684         cris_register_move_cost.
685         (enum cris_pic_symbol_type): Rename cris_gotrel_symbol to
686         cris_rel_symbol.  All users changed.
687         (REGISTER_NAMES): Replace "pc" with "acr".
688         (ADDITIONAL_REGISTER_NAMES): Add "pc" for 15.
689         (ASM_OUTPUT_REG_PUSH): Change to v32-compatible sequence.
690         (ASM_OUTPUT_REG_POP): Change to v32-compatible syntax.
691         (ASM_OUTPUT_CASE_END): Just call the new function
692         cris_asm_output_case_end.
693         * gcc/config/cris/cris.md: Group related constants together, with
694         comments local.
695         (CRIS_UNSPEC_PLT_GOTREL, CRIS_UNSPEC_PLT_PCREL, CRIS_UNSPEC_PCREL)
696         (CRIS_UNSPEC_CASESI): New constants.
697         (CRIS_UNSPEC_PLT): Remove constant.
698         (CRIS_ACR_REGNUM): New constant.
699         ("slottable"): New attr alternatives "has_return_slot" and
700         "has_call_slot".
701         ("cc"): New attr alternatives "noov32" and "rev".
702         ((eq_attr "slottable" "has_call_slot"))
703         ((eq_attr "slottable" "has_return_slot")): New define_delays.
704         ("movdi", "movsi"): Adjust operands for CRIS v32.
705         ("tstdi", "cmpdi", "adddi3", "subdi3", "uminsi3")
706         ("indirect_jump"): Ditto.  Make define_expand.
707         ("*tstdi_non_v32", "*tstdi_v32", "*tst<mode>_cmp")
708         ("*tst<mode>_non_cmp", "*cmpdi_non_v32", "*cmpdi_v32")
709         ("*movdi_v32", "*adddi3_non_v32", "*adddi3_v32")
710         ("*addsi3_non_v32", "*addsi3_v32", "*addhi3_non_v32")
711         ("*addhi3_v32", "*addqi3_non_v32", "*addqi3_v32")
712         ("*subdi3_non_v32", "*subdi3_v32", "*subsi3_non_v32")
713         ("*subsi3_v32", "*sub<mode>3_nonv32", "*sub<mode>3_v32")
714         ("*andqi3_non_v32", "*andqi3_v32", "*iorsi3_non_v32")
715         ("*iorsi3_v32", "*iorhi3_non_v32", "*iorhi3_v32")
716         ("*iorqi3_non_v32", "*iorqi3_v32", "*uminsi3_non_v32")
717         ("*uminsi3_v32", "*indirect_jump_non_v32", "*indirect_jump_v32")
718         ("*expanded_call_v32", "*expanded_call_value_v32"): New patterns,
719         for the corresponding standard name.
720         ("tst<mode>"): Limit to BW and make define_expand.
721         ("tstsi"): Make separate insn, adjusting for CRIS v32.
722         ("*cmp_swapext<mode>"): Adjust for v32.  Specify "rev" for attr "cc".
723         ("cmpsi", "cmp<mode>"): Remove special cases for zero.  Specify
724         attr "cc".
725         ("*btst"): Don't match for TARGET_CCINIT.  Replace test of
726         register with compatible "cmpq 0".  Specify attr "cc".
727         ("*movdi_insn_non_v32"): New pattern, replacing "*movdi_insn" and
728         define_split.
729         (define_split for DI move): Match CRIS v32 only.
730         ("*movsi_got_load", "*movsi_internal", "*addi"): Adjust for CRIS v32.
731         ("load_multiple", "store_multiple", "*addsbw_v32", "*addubw_v32")
732         ("*adds<mode>_v32", "*addu<mode>_v32", "*bound<mode>_v32")
733         ("*casesi_jump_v32", "*expanded_andsi_v32", "*expanded_andhi_v32")
734         ("*extop<mode>si_v32", "*extopqihi_v32", "*andhi_lowpart_v32")
735         ("*andqi_lowpart_v32", "cris_casesi_v32"): New patterns. 
736         ("add<mode>3"): Make addsi3, addhi3 and addqi3 define_expand.
737         ("sub<mode>3"): Ditto subsi3, subhi3 and subqi3.
738         ("ior<mode>3"): Ditto iorsi3, iorhi3 and iorqi3.
739         ("*extopqihi_non_v32"): Replace "*extopqihi".
740         ("*extop<mode>si_non_v32"): Replace "*extop<mode>si".
741         ("*addxqihi_swap_non_v32"): Rename from "*extopqihi_swap", make
742         non-v32 only.
743         ("*extop<mode>si_swap_non_v32"): Ditto "*extop<mode>si_swap".
744         ("*expanded_andsi_non_v32"): Ditto "*expanded_andsi".
745         ("*expanded_andhi_non_v32"): Ditto "*expanded_andhi".
746         ("*andhi_lowpart_non_v32"): Ditto "*andhi_lowpart".
747         ("*andqi_lowpart_non_v32"): Ditto "*andqi_lowpart".
748         ("*expanded_call_non_v32"): Ditto "*expanded_call".  Change from
749         "cris_general_operand_or_plt_symbol" to "general_operand".
750         ("*expanded_call_value_non_v32") Ditto "*expanded_call_value".
751         ("*casesi_adds_w", "mstep_shift", "mstep_mul")
752         ("*expanded_call_side", "*expanded_call_value_side")
753         (op-extend-split, op-extend-split-rx=rz, op-extend-split-swapped)
754         (op-extend-split-swapped-rx=rz, op-extend, op-split-rx=rz)
755         (op-split-swapped, op-split-swapped-rx=rz): Make non-v32 only.
756         ("dstep_mul", "xorsi3", "one_cmplsi2", "<shlr>si3")
757         ("*expanded_<shlr><mode>", "*<shlr><mode>_lowpart", "ashl<mode>3")
758         ("*ashl<mode>_lowpart", "abssi2", "clzsi2", "bswapsi2")
759         ("cris_swap_bits"): Specify "noov32" for attr "cc".
760         ("<su>mulsi3_highpart"): Ditto.  Correct operand 0 to register_operand.
761         ("andqi3"): Make define_expand.
762         ("*return_expanded"): For attr "slottable", change from "has_slot"
763         to "has_return_slot".
764         ("cris_casesi_non_v32"): New pattern, old contents of "casesi".
765         ("casesi"): Divert into "cris_casesi_v32" and "cris_casesi_non_v32".
766         (moversideqi, movemsideqi, mover2side): Require
767         TARGET_SIDE_EFFECT_PREFIXES.
768         (gotplt-to-plt, gotplt-to-plt-side): Change from CRIS_UNSPEC_PLT
769         to CRIS_UNSPEC_PLT_GOTREL.
770         * config/cris/cris-protos.h (cris_register_move_cost)
771         (cris_cc0_user_requires_cmp, cris_asm_output_case_end): Declare.
772
773 2007-12-15  Alexandre Oliva  <aoliva@redhat.com>
774
775         PR debug/7081
776         * dwarf2out.c (dwarf_tag_name): Synchronize with dwarf2.h.
777         (is_type_die): Cover interface types.
778         (class_or_namespace_scope_p): Cover interface and class types.
779         (record_type_tag): New.
780         (gen_inlined_structure_type_die): Use it.
781         (gen_struct_or_union_type_die): Likewise.
782         (prune_unused_types_walk): Cover interface types.
783         * langhooks.h (classify_record): New enum.
784         (classify_record): New member in struct langhooks_for_types.
785         * langhooks-def.h (LANG_HOOKS_CLASSIFY_RECORD): New.
786         (LANGHOOKS_FOR_TYPES_INITIALIZER): Adjust.
787
788 2007-12-15  Alexandre Oliva  <aoliva@redhat.com>
789
790         * dwarf2out.c (reference_to_unused): Don't emit strings in
791         initializers just because of debug information.
792         * tree.h (TREE_ASM_WRITTEN): Document use for STRING_CSTs.
793
794 2007-12-15  Sebastian Pop  <sebastian.pop@amd.com>
795
796         * tree-scalar-evolution.c (number_of_iterations_for_all_loops): Replace
797         print_loop_ir with print_loops.
798         * tree-flow.h (dot_cfg, debug_loops, debug_loop, debug_loop_num,
799         print_loops, print_loops_bb): Declare.
800         * tree-cfg.c (print_loops_bb): New.
801         (print_loop): Print header, latch, bounds, estimation of iterations.
802         (print_loop_and_siblings): New.
803         (print_loop_ir): Renamed print_loops.
804         (debug_loop_ir): Renamed debug_loops.
805         (debug_loop, debug_loop_num): New.
806
807 2007-12-15  Bernhard Fischer  <aldot@gcc.gnu.org>
808
809         * tree-flow-inline.h.c (next_readonly_imm_use): Fix typo in comment.
810
811 2007-12-15  Bernhard Fischer  <aldot@gcc.gnu.org>
812
813         * toplev.c (process_options): Fix typo in warning.
814
815 2007-12-14  Jakub Jelinek  <jakub@redhat.com>
816
817         PR target/29978
818         * config/i386/i386.c (ix86_expand_branch): Optimize LE/LEU/GT/GTU
819         DImode comparisons against constant with all 1's in the lower word.
820
821 2007-12-14  Uros Bizjak  <ubizjak@gmail.com>
822
823         * config/i386/sse.md (sse4_2_pcmpestr): Use reg_not_xmm0_operand
824         constraint for operand 2.  Use nonimm_not_xmm0_operand constraint
825         for operand 4.  Update arguments in the call to
826         gen_sse4_2_pcmpestr_cconly.
827         (sse_4_2_pcmpestr_cconly): Renumber insn operands and update insn
828         template accordingly.
829         (sse4_2_pcmpistr): Use reg_not_xmm0_operand constraint for operand2.
830         Use nonimm_not_xmm0_operand constraint for operand 3.  Update
831         arguments in the call to gen_sse4_2_pcmpistr_cconly.
832         (sse_4_2_pcmpistr_cconly): Renumber insn operands and update insn
833         template accordingly.
834
835 2007-12-14  Richard Guenther  <rguenther@suse.de>
836
837         PR middle-end/34462
838         * tree-ssa-operands.h (create_ssa_artificial_load_stmt): Add
839         parameter to say whether to unlink immediate uses.
840         * tree-ssa-operands.c (create_ssa_artificial_load_stmt): Do not
841         mark the artificial stmt as modified.  Unlink immediate uses
842         only if requested.
843         * tree-ssa-dom.c (record_equivalences_from_stmt): Update caller.
844         * tree-ssa-pre.c (insert_fake_stores): Likewise.
845
846 2007-12-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
847
848         PR middle-end/33088
849         * gimplify.c (gimplify_modify_expr_complex_part): Add note to comment.
850         * tree-complex.c (init_dont_simulate_again): Return true if there are
851         uninitialized loads generated by gimplify_modify_expr_complex_part.
852         * tree-gimple.c (is_gimple_reg_type): Return false for complex types
853         if not optimizing.
854         * tree-ssa.c (ssa_undefined_value_p): New predicate extracted from...
855         (warn_uninit): ...here.  Use ssa_undefined_value_p.
856         * tree-ssa-pre.c (is_undefined_value): Delete.
857         (phi_translate_1): Use ssa_undefined_value_p.
858         (add_to_exp_gen): Likewise.
859         (make_values_for_stmt): Likewise.
860         * tree-flow.h (ssa_undefined_value_p): Declare.
861
862 2007-12-13  Andrew Pinski  <pinskia@gmail.com>
863             David Daney  <ddaney@avtrex.com>
864
865         PR bootstrap/34144
866         * system.h: Make -Wuninitialized non-fatal if ASSERT_CHECKING
867         is disabled.
868
869 2007-12-13  Jakub Jelinek  <jakub@redhat.com>
870
871         PR rtl-optimization/32636
872         * df-scan.c (df_get_entry_block_def_set): Set struct_value_rtx
873         regno in entry_block_defs even if HAVE_prologue && epilogue_completed.
874
875 2007-12-13  Uros Bizjak  <ubizjak@gmail.com>
876             Richard Guenther  <rguenther@suse.de>
877
878         PR target/34435
879         * config/i386/emmintrin.h (_mm_shuffle_pd, _mm_extract_epi16,
880         _mm_insert_epi16, _mm_shufflehi_epi16, _mm_shufflelo_epi16,
881         _mm_shuffle_epi32): Cast non-constant input values to either __m64,
882         __m128, __m128i or __m128d in a macro version of the intrinsic.
883         Cast constant input values to int.
884         * config/i386/ammintrin.h (_mm_extracti_si64, _mm_inserti_si64): Ditto.
885         * config/i386/bmmintrin.h (_mm_roti_epi8, _mm_roti_epi16,
886         _mm_roti_epi32, _mm_roti_epi64): Ditto.
887         * config/i386/smmintrin.h (_mm_blend_epi16, _mm_blend_ps, _mm_blend_pd,
888         _mm_dp_ps, _mm_dp_pd, _mm_insert_ps, _mm_extract_ps, _mm_insert_epi8,
889         _mm_insert_epi32, _mm_insert_epi64, _mm_extract_epi8, mm_extract_epi32,
890         _mm_extract_epi64, _mm_mpsadbw_epu8, _mm_cmpistrm, _mm_cmpistri,
891         _mm_cmpestrm, _mm_cmpestri, _mm_cmpistra, _mm_cmpistrc, _mm_cmpistro,
892         _mm_cmpistrs, _mm_cmpistrz, _mm_cmpestra, _mm_cmpestrc, _mm_cmpestro,
893         _mm_cmpestrs, _mm_cmpestrz): Ditto.
894         * config/i386/tmmintrin.h (_mm_alignr_epi8, _mm_alignr_pi8): Ditto.
895         * config/i386/xmmintrin.h (_mm_shuffle_ps, _mm_extract_pi16, _m_pextrw,
896         _mm_insert_pi16, _m_pinsrw, _mm_shuffle_pi16, _m_pshufw): Ditto.
897         * config/i386/mmintrin-common.h (_mm_round_pd, _mm_round_sd,
898         _mm_round_ps, _mm_round_ss): Ditto.
899
900 2007-12-13  Richard Guenther  <rguenther@suse.de>
901
902         PR tree-optimization/34450
903         * params.def (PARAM_SCCVN_MAX_SCC_SIZE): New param.
904         * invoke.texi (sccvn-max-scc-size): Document.
905         * Makefile.in (tree-ssa-sccvn.o): Add $(PARAMS_H) dependency.
906         * tree-ssa-sccvn.h (run_scc_vn): Return true on success, false
907         on error.
908         * tree-ssa-sccvn.c (params.h): Include.
909         (DFS): Return true if all went well, return false as soon as
910         a SCC exceeds the size of PARAM_SCCVN_MAX_SCC_SIZE.
911         (run_scc_vn): Return true if all went well, return false if
912         we aborted during DFS.
913         * tree-ssa-pre.c (execute_pre): Check if SCCVN finished
914         successfully, otherwise bail out.
915
916 2007-12-13  Olga Golovanevsky  <olga@il.ibm.com>
917
918         * ipa-struct-reorg.c (is_candidate): Print information to dump 
919         file when the type is initialized.
920         (get_stmt_accesses):  Likewise when a structure has bitfields
921         or field access is too complicate.
922         (safe_cond_expr_check): Likewise for unsafe condition expressions.
923         (exclude_cold_structs): Likewise for cold structures.
924         (collect_structures): Suppress redundant print when there are 
925         no structures to transform.
926         (do_reorg): Print to dump file a number of structures that 
927         will be transformed.
928         (dump_new_types): Print a number of new types to replace 
929         an original structure type.
930         
931 2007-12-13  Olga Golovanevsky  <olga@il.ibm.com>
932
933         * doc/invoke.texi (Optimiza Options): Document new -fipa-struct-reorg
934         option and struct-reorg-cold-struct-ratio parameter.
935         
936 2007-12-13  Torbjorn Granlund  <tege@swox.com>
937
938         * config/i386/i386.c (ix86_rtx_costs) [MULT]: Check op0 for
939         ZERO_EXTEND when computing costs for widening multiplication.
940
941 2007-12-13  Richard Earnshaw  <rearnsha@arm.com>
942
943         PR target/30192
944         * config/arm/ieee754-df.S (floatundidf): Fix for wrong sp value on
945         exit when using hard FPA.
946         * config/arm/ieee754-df.S (floatdidf): Likewise.
947
948 2007-12-12  Jakub Jelinek  <jakub@redhat.com>
949
950         PR bootstrap/30589
951         * doc/install.texi: Document that for MinGW only runtime 3.12 and
952         later is supported.
953
954 2007-12-12  David Edelsohn  <edelsohn@gnu.org>
955
956         * config/rs6000/rs6000.c (is_mem_ref): Ignore STACK_TIE.
957
958 2007-12-12  Aldy Hernandez  <aldyh@redhat.com>
959
960         PR tree-optimization/32901
961         * gimplify.c (gimplify_modify_expr_rhs): Handle the case when we
962         are assigning from a constant constructor.
963         Fix wrapping in function comment.
964
965 2007-12-12  Andreas Krebbel  <krebbel1@de.ibm.com>
966
967         * config/s390/s390.c (s390_O_constraint_str): Limit the range
968         for 'On' to -4G+1..-1.
969         * config/s390/constraints.md: Adjust comment accordingly.
970
971 2007-12-11  Nathan Sidwell  <nathan@codesourcery.com>
972
973         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use frame_reg_rtx
974         for SPE saves.
975
976 2007-12-11  Kai Tietz  <kai.tietz@onevision.com>
977
978         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Handle 64-bit
979         target same as 32-bit.
980
981 2007-12-10  Jakub Jelinek  <jakub@redhat.com>
982
983         PR tree-optimization/34371
984         * tree-vectorizer.h (struct _loop_vec_info): Add num_iters_unchanged
985         field.
986         (LOOP_VINFO_NITERS_UNCHANGED): Define to num_iters_unchanged field.
987         * tree-vectorizer.c (set_prologue_iterations,
988         slpeel_tree_peel_loop_to_edge): Call unshare_expr on
989         LOOP_VINFO_NITERS_UNCHANGED before using it.
990
991 2007-12-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
992
993         PR target/34403
994         * config/i386/i386.c (ix86_expand_movmem): Punt if the count is large.
995         (ix86_expand_setmem): Likewise.
996
997 2007-12-10  Kenneth Zadeck <zadeck@naturalbridge.com>
998
999         PR rtl-optimization/34302
1000         * auto-inc-dec.c (attempt_change): Change place where move is
1001         inserted.
1002
1003 2007-12-10  Jakub Jelinek  <jakub@redhat.com>
1004
1005         * dwarf2out.c (gen_array_type_die, gen_descr_array_type_die): For
1006         Fortran multi-dimensional arrays use DW_AT_ordering
1007         DW_ORD_col_major.
1008
1009 2007-12-10  Paolo Bonzini  <bonzini@gnu.org>
1010
1011         PR target/32086
1012         * config/i386/i386.c (override_options): Enable -fvect-cost-model.
1013
1014 2007-12-10 Uros Bizjak <ubizjak@gmail.com>
1015
1016         * config/i386/i386.c (ix86_function_regparm): Do not check global_regs
1017         array, registers that are members of global_regs are also members of
1018         fixed_regs array.  Use REGPARM_MAX to check that no regparm hard
1019         register is taken by a fixed register variable.  Check up to and
1020         including DI_REG when adjusting regparm value due to fixed regs usage.
1021         (rep_prefix_usable): Check fixed_regs array, not global_regs array for
1022         available hard registers.
1023         (ix86_expand_strlen): Ditto.
1024         * config/i386/i386.md (strmov): Ditto.
1025         (cmpstrnsi): Ditto.
1026
1027 2007-12-10  Kaz Kojima  <kkojima@gcc.gnu.org>
1028
1029         * genopinit.c: Include tm_p.h in generated file.
1030
1031         * config/arm/neon.md (vec_set<mode>_internal): Use INTVAL
1032         to extract the integer from operands[2].
1033         (vec_setv2di_internal): Likewise.
1034
1035         * config/arm/arm.c (arm_size_return_regs): Make return type unsigned.
1036         (arm_init_neon_builtins): Move code after declarations.
1037
1038 2007-12-10  Hans-Peter Nilsson  <hp@axis.com>
1039
1040         * reload.c (find_reloads_address_1): To properly mark as an
1041         autoincdec, pass X for non-NULL OUT in call to push_reload for
1042         autoincdec which can't be trivially used as an address.
1043
1044 2007-12-10  Pranav Bhandarkar  <pranav.bhandarkar@celunite.com>
1045             Hans-Peter Nilsson  <hp@axis.com>
1046
1047         * caller-save.c (insert_one_insn): If inserting before a call_insn
1048         then the registers containing the arguments of the call are
1049         live_throughout in the new insn.
1050
1051 2007-12-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1052
1053         PR middle-end/32889
1054         PR target/34091
1055         * pa.md: Consolidate HImode and QImode move patterns into one pattern
1056         each, eliminating floating-point alternatives.
1057         * pa-protos.h (pa_cannot_change_mode_class, pa_modes_tieable_p):
1058         Declare functions.
1059         * pa-64.h (SECONDARY_MEMORY_NEEDED): Define here.
1060         * pa.c (pa_secondary_reload): Use an intermediate general register
1061         for copies to/from floating-point register classes.  Simplify code
1062         SHIFT_REGS class.  Provide additional comments.
1063         (pa_cannot_change_mode_class, pa_modes_tieable_p): New functions.
1064         * pa.h (MODES_TIEABLE_P): Use pa_modes_tieable_p.
1065         (SECONDARY_MEMORY_NEEDED): Delete define.
1066         (INT14_OK_STRICT): Define.
1067         (MODE_OK_FOR_SCALED_INDEXING_P): Allow SFmode and DFmode when using
1068         soft float.
1069         (MODE_OK_FOR_UNSCALED_INDEXING_P): Likewise.
1070         (GO_IF_LEGITIMATE_ADDRESS): Use INT14_OK_STRICT in REG+D case for
1071         SFmode and DFmode.
1072         (LEGITIMIZE_RELOAD_ADDRESS): Use INT14_OK_STRICT in mask selection.
1073         Align DImode offsets when generating 64-bit code.
1074         * pa32-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
1075         (CANNOT_CHANGE_MODE_CLASS): Define.
1076         * pa64-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
1077         (CANNOT_CHANGE_MODE_CLASS): Define using pa_cannot_change_mode_class.
1078
1079 2007-12-09  Jakub Jelinek  <jakub@redhat.com>
1080
1081         PR fortran/22244
1082         * langhooks-def.h (LANG_HOOKS_GET_ARRAY_DESCR_INFO): Define.
1083         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
1084         * langhooks.h (struct array_descr_info): Forward declaration.
1085         (struct lang_hooks_for_types): Add get_array_descr_info field.
1086         * dwarf2.h (DW_AT_bit_stride, DW_AT_byte_stride): New.
1087         (DW_AT_stride_size, DW_AT_stride): Keep around for Dwarf2
1088         compatibility.
1089         * dwarf2out.h (struct array_descr_info): New type.
1090         * dwarf2out.c (dwarf_attr_name): Rename DW_AT_stride to
1091         DW_AT_byte_stride and DW_AT_stride_size to DW_AT_bit_size.
1092         (descr_info_loc, add_descr_info_field, gen_descr_array_type_die):
1093         New functions.
1094         (gen_type_die_with_usage): Call lang_hooks.types.get_array_descr_info
1095         and gen_descr_array_type_die.
1096
1097 2007-12-08  Richard Guenther  <rguenther@suse.de>
1098
1099         PR tree-optimization/34391
1100         * tree-vect-transform.c (vect_setup_realignment): Mark new
1101         symbols for renaming.
1102
1103 2007-12-07  Bob Wilson  <bob.wilson@acm.org>
1104         
1105         * config/xtensa/xtensa.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
1106         (ASM_OUTPUT_DWARF_PCREL): Define.
1107         
1108 2007-12-07  Richard Guenther  <rguenther@suse.de>
1109
1110         PR middle-end/34382
1111         * opts.c (common_handle_option): Handle OPT_fforce_addr.
1112
1113 2007-12-07  Aldy Hernandez  <aldyh@redhat.com>
1114
1115         * m32c.h (LEGITIMIZE_ADDRESS): Use WIN instead of win.
1116         (LEGITIMIZE_RELOAD_ADDRESS): Same.
1117
1118 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
1119
1120         PR ada/29157
1121         * doc/install.texi: Explain how to check for a clean environment when
1122         building GNAT.
1123
1124 2007-12-07  Richard Guenther  <rguenther@suse.de>
1125
1126         * tree-profile.c (gcov_type_tmp_var): New global variable.
1127         (tree_gen_edge_profiler): Use a single shared variable decl per
1128         function for edge counter incrementing.
1129         (tree_profiling): Re-set the shared variable.
1130
1131 2007-12-06  Bob Wilson  <bob.wilson@acm.org>
1132
1133         * config/xtensa/xtensa.c (xtensa_va_start): Add prototype.
1134
1135 2007-12-06  Tom Tromey  <tromey@redhat.com>
1136
1137         PR c/29172
1138         * c-opts.c (c_common_parse_file): Call cpp_clear_file_cache.
1139
1140 2007-12-06  Richard Sandiford  <rsandifo@nildram.co.uk>
1141
1142         * config/mips/mips.c (mips_function_ok_for_sibcall): Check
1143         targetm.binds_local_p as well as DECL_EXTERNAL.
1144
1145 2007-12-06  Harsha Jagasia <harsha.jagasia@amd.com>
1146
1147         * tree-vectorizer.c (slpeel_add_loop_guard): Gimplify the condition.
1148         (set_prologue_iterations): New. Set the prologue iterations to total
1149         number of scalar iterations if the cost model check indicates that
1150         scalar code should be generated.
1151         (slpeel_tree_peel_loop_to_edge): Add a new parameter and code for 
1152         generating the cost condition for epilog. Call
1153         set_prologue_iterations to generate cost condition for prolog.
1154         (new_loop_vec_info): Initialize LOOP_VINFO_NITERS_UNCHANGED.
1155         * tree-vectorizer.h (LOOP_VINFO_NITERS_UNCHANGED): New.
1156         (slpeel_tree_peel_loop_to_edge): Update declaration.
1157         (set_prologue_iterations): New declaration.
1158         * tree-vect-analyze.c (vect_analyze_loop_form): Update 
1159         LOOP_VINFO_NITERS_UNCHANGED.
1160         * tree-vect-transform.c
1161         (vect_estimate_min_profitable_iters): Add new parameter and
1162         code to  check if run time cost model test is needed.
1163         Remove code that adds builtin vectorization cost to scalar
1164         outside cost for the run time cost model test. If run time
1165         cost model test is needed add the appropriate guard cost to
1166         the scalar outside cost. The guard cost depends on whether
1167         the guard is generated at versioning or at prolog generation
1168         or at epilog generation. Change cost model equation to include
1169         scalar outside cost.
1170         (conservative_cost_threshold): New. Return the less conservative
1171         profitability threshold between the cost model threshold and the
1172         user defined vectorization threshold.
1173         (vect_do_peeling_for_loop_bound): Call conservative_cost_threshold.
1174         (vect_do_peeling_for_alignment): Same.
1175         (vect_loop_versioning): Same.
1176         (vect_create_cond_for_align_checks): ANDs the cost model condition
1177         with the alignment condition.
1178         (vect_transform_loop): Call loop versioning only when there is a
1179         misalignment or an aliasing problem.
1180
1181 2007-12-06  Jakub Jelinek  <jakub@redhat.com>
1182
1183         PR middle-end/20983
1184         * tree-ssa-ccp.c (optimize_stdarg_builtin): New function.
1185         (execute_fold_all_builtins): Call it for BUILT_IN_VA_START,
1186         BUILT_IN_VA_COPY and BUILT_IN_VA_END.
1187
1188         * target.h (struct ggc_target): Add expand_builtin_va_start hook.
1189         * target-def.h (TARGET_EXPAND_BUILTIN_VA_START): Define.
1190         (TARGET_INITIALIZER): Add it.
1191         * builtins.c (expand_builtin_va_start): Use
1192         targetm.expand_builtin_va_start hook instead of
1193         EXPAND_BUILTIN_VA_START macro.
1194         * alpha/alpha.c (alpha_va_start): Made static.
1195         (override_options): Clear targetm.expand_builtin_va_start if
1196         TARGET_UNICOSMK.
1197         (TARGET_EXPAND_BUILTIN_VA_START): Define.
1198         * alpha/unicosmk.h (EXPAND_BUILTIN_VA_START): Remove.
1199         * alpha/alpha.h (EXPAND_BUILTIN_VA_START): Remove.
1200         * alpha/alpha-protos.h (alpha_va_start): Remove prototype.
1201         * xtensa/xtensa.h (EXPAND_BUILTIN_VA_START): Remove.
1202         * xtensa/xtensa.c (TARGET_EXPAND_BUILTIN_VA_START): Define.
1203         (xtensa_va_start): Made static.
1204         * xtensa/xtensa-protos.h (xtensa_va_start): Remove prototype.
1205         * pa/pa-protos.h (hppa_va_start): Remove prototype.
1206         * pa/pa.h (EXPAND_BUILTIN_VA_START): Remove.
1207         * pa/pa.c (hppa_va_start): Made static, add prototype.
1208         (TARGET_EXPAND_BUILTIN_VA_START): Define.
1209         * frv/frv.c (frv_expand_builtin_va_start): Made static, add prototype.
1210         (TARGET_EXPAND_BUILTIN_VA_START): Define.
1211         * frv/frv-protos.h (frv_expand_builtin_va_start): Remove prototype.
1212         * frv/frv.h (EXPAND_BUILTIN_VA_START): Remove.
1213         * i386/i386.c (override_options): Clear
1214         targetm.expand_builtin_va_start if -m32 or 64-bit MS ABI.
1215         (ix86_va_start): Made static.
1216         (TARGET_EXPAND_BUILTIN_VA_START): Define.
1217         * i386/i386.h (EXPAND_BUILTIN_VA_START): Remove.
1218         * i386/i386-protos.h (ix86_va_start, ix86_va_arg): Remove prototypes.
1219         * iq2000/iq2000-protos.h (iq2000_va_start): Remove prototype.
1220         * iq2000/iq2000.h (EXPAND_BUILTIN_VA_START): Remove.
1221         * iq2000/iq2000.c (iq2000_va_start): Made static, add prototype.
1222         (TARGET_EXPAND_BUILTIN_VA_START): Define.
1223         * rs6000/rs6000-protos.h (rs6000_va_start): Remove prototype.
1224         * rs6000/rs6000.c (rs6000_va_start): Made static, add prototype.
1225         (TARGET_EXPAND_BUILTIN_VA_START): Define.
1226         (rs6000_override_options): Clear targetm.expand_builtin_va_start if
1227         DEFAULT_ABI != ABI_V4.
1228         * rs6000/rs6000.h (EXPAND_BUILTIN_VA_START): Remove.
1229         * spu/spu.c (spu_va_start): Made static, add prototype.
1230         (TARGET_EXPAND_BUILTIN_VA_START): Define.
1231         * spu/spu.h (EXPAND_BUILTIN_VA_START): Remove.
1232         * spu/spu-protos.h spu_va_start): Remove prototype.
1233         * stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Remove.
1234         * stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_start):
1235         Remove prototype.
1236         * stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Made static.
1237         (TARGET_EXPAND_BUILTIN_VA_START): Define.
1238         * s390/s390-protos.h (s390_va_start): Remove prototype.
1239         * s390/s390.c (s390_va_start): Made static.
1240         (TARGET_EXPAND_BUILTIN_VA_START): Define.
1241         * s390/s390.h (EXPAND_BUILTIN_VA_START): Remove.
1242         * mn10300/mn10300.h (EXPAND_BUILTIN_VA_START): Remove.
1243         * mn10300/mn10300-protos.h (mn10300_va_start): Remove prototype.
1244         * mn10300/mn10300.c (mn10300_va_start): Made static, add prototype.
1245         (TARGET_EXPAND_BUILTIN_VA_START): Define.
1246         * arc/arc.c (arc_va_start): Made static, add prototype.
1247         (TARGET_EXPAND_BUILTIN_VA_START): Define.
1248         * arc/arc.h (EXPAND_BUILTIN_VA_START): Remove.
1249         * arc/arc-protos.h (arc_va_start): Remove prototype.
1250         * mt/mt-protos.h (mt_va_start): Remove prototype.
1251         * sparc/sparc.c (sparc_va_start): Made static, add prototype.
1252         (TARGET_EXPAND_BUILTIN_VA_START): Define.
1253         * sparc/sparc-protos.h (sparc_va_start): Remove prototype.
1254         * sparc/sparc.h (EXPAND_BUILTIN_VA_START): Remove.
1255         * sh/sh.c (sh_va_start): Made static, add prototype.
1256         (TARGET_EXPAND_BUILTIN_VA_START): Define.
1257         * sh/sh-protos.h (sh_va_start): Remove prototype.
1258         * sh/sh.h (EXPAND_BUILTIN_VA_START): Remove.
1259         * mips/mips-protos.h (mips_va_start): Remove prototype.
1260         * mips/mips.h (EXPAND_BUILTIN_VA_START): Remove.
1261         * mips/mips.c (mips_va_start): Made static.
1262         (TARGET_EXPAND_BUILTIN_VA_START): Define.
1263
1264 2007-12-06  Uros Bizjak  <ubizjak@gmail.com>
1265
1266         * tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when
1267         "flag_tree_parallelize_loops > 1".
1268         
1269 2007-12-06  Zdenek Dvorak  <ook@ucw.cz>
1270             Dorit Nuzman  <dorit@il.ibm.com>
1271             Jakub Jelinek  <jakub@redhat.com>
1272
1273         PR tree-optimization/34005
1274         * tree-gimple.c (is_gimple_formal_tmp_rhs): Add a case for COND_EXPR.
1275         * gimplify.c (gimplify_ctx): Add a new member allow_rhs_cond_expr.
1276         (gimplify_pure_cond_expr): New function.
1277         (generic_expr_could_trap_p): New function.
1278         (gimplify_cond_expr): Call gimplify_pure_cond_expr.
1279         (force_gimple_operand): Initialize new field allow_rhs_cond_expr.
1280
1281 2007-12-06  Andreas Krebbel  <krebbel1@de.ibm.com>
1282
1283         * config/s390/s390.c (s390_emit_stack_tie): New function.
1284         (s390_emit_prologue): Emit a stack tie when writing to the
1285         f8-f15 stack slots.
1286         * config/s390/s390.md ("stack_tie"): New insn definition.
1287
1288 2007-12-06  Ben Elliston  <bje@au.ibm.com>
1289
1290         * SERVICE: Remove.
1291         * doc/sourcebuild.texi (Miscellaneous Docs): Remove SERVICE item.
1292
1293 2007-12-05  Jakub Jelinek  <jakub@redhat.com>
1294
1295         PR middle-end/34337
1296         * fold-const.c (fold_binary) <case BIT_IOR_EXPR>: Don't minimize
1297         number of bits set in C1 if a mode mask for some mode can be used
1298         instead.
1299
1300 2007-12-05  Bernhard Fischer  <aldot@gcc.gnu.org>
1301
1302         * varasm.c (merge_weak, weak_finish, assemble_alias): Commentary typo
1303         fixes.
1304
1305 2007-12-05  Richard Guenther  <rguenther@suse.de>
1306
1307         PR tree-optimization/34138
1308         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1309         Do not forward propagate addresses if that changes volatileness of
1310         the pointed-to type.
1311
1312 2007-12-05  Uros Bizjak  <ubizjak@gmail.com>
1313
1314         PR target/34312
1315         * config/i386/i386.c (ix86_function_regparm): Also check for fixed
1316         registers when checking that regparm registers are available.
1317         Lower regparm value due to fixed registers usage in addition to
1318         global regs usage.
1319
1320 2007-12-05  Bernhard Fischer  <aldot@gcc.gnu.org>
1321
1322         * sparseset.c: Include config.h and system.h before sparseset.h.
1323         * sparseset.h: Remove inclusion of system.h.
1324
1325 2007-12-05  Jakub Jelinek  <jakub@redhat.com>
1326             Richard Sandiford  <rsandifo@nildram.co.uk>
1327
1328         * optabs.c (init_insn_codes): New function.
1329         (new_optab): Delete.
1330         (init_optab, init_optabv): Don't call new_optab.
1331         (init_convert_optab): Don't clear the insn codes.
1332         (init_optabs): Call init_insn_codes.
1333
1334 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
1335
1336         * omp-low.c (optimize_omp_library_calls): New function.
1337         (expand_omp_parallel): Call it if optimizing.
1338
1339         PR middle-end/34134
1340         * stmt.c (expand_stack_restore): Call expand_normal on var to get
1341         rtx for it instead of assuming it will be a VAR_DECL.
1342
1343 2007-12-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1344
1345         * c-parser (c_parser_statement_after_labels): Move error from here...
1346         (c_parser_label): ... to here. Check that the declaration is not
1347         actually just another label.
1348
1349 2007-12-04  Richard Guenther  <rguenther@suse.de>
1350
1351         PR middle-end/34334
1352         PR middle-end/34222
1353         * tree-ssa-operands.c (get_addr_dereference_operands): If we
1354         fall back to using the SMTs aliases, make sure to add virtual
1355         operands for the SMT itself.
1356         (create_ssa_artificial_load_stmt): Fix typo.  Make sure to also
1357         clear the loaded and stored symbols bitmaps.
1358
1359 2007-12-04  Ben Elliston  <bje@au.ibm.com>
1360
1361         * config/spu/spu.h (ASM_FORMAT_PRIVATE_NAME): Remove; use default.
1362
1363 2007-12-04  Ben Elliston  <bje@au.ibm.com>
1364
1365         * doc/tm.texi (Exception Handling): Mention unwind-dw2-xtensa.c.
1366
1367 2007-12-03  Steven Bosscher  <stevenb.gcc@gmail.com>
1368
1369         PR middle-end/33713
1370         * doc/invoke.texi: Remove -fforce-addr documentation.
1371         * expr.c (emit_move_insn): Remove use of flag_force_addr.
1372         (expand_expr_real_1): Same.
1373         (do_tablejump): Same.
1374         Call memory_address instead of memory_address_noforce.
1375         * expr.h (memory_address_noforce): Remove prototype.
1376         * explow.c (memory_address): Remove support for flag_force_addr.
1377         (validize_mem): Same.
1378         (memory_address_noforce): Remove.
1379         * common.opt: Add dummy documentation for -fforce-addr.
1380         * combine.c (can_combine_p): Remove -fforce-addr comment.
1381         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove set of
1382         flag_force_addr.
1383         * config/m68k/m68k.h (PIC_CASE_VECTOR_ADDRESS): Remove comment
1384         relating to memory_address_noforce.
1385         * testsuite/gcc.c-torture/compile/20050802-1.c: Remove.
1386         * testsuite/gcc.c-torture/compile/20011113-1.c: Remove.
1387         
1388 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
1389
1390         * omp-low.c (lookup_decl_in_outer_ctx): Allow calling this
1391         with !ctx->is_nested.
1392         (maybe_lookup_decl_in_outer_ctx): Look up in outer contexts
1393         even if !ctx->is_nested.
1394         (lower_copyprivate_clauses, lower_send_clauses,
1395         lower_send_shared_vars): Call lookup_decl_in_outer_ctx
1396         unconditionally.
1397
1398         PR middle-end/29749
1399         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Optimize
1400         (X << C1) & C2 into (X << C1) & (C2 | ((1 << C1) - 1))
1401         and (X >> C1) & C2 into (X >> C1) & (C2 | ~((type) -1 >> C1)).
1402         (fold_binary) <case LSHIFT_EXPR, case RSHIFT_EXPR>: Optimize
1403         (X & C2) << C1 into (X << C1) & (C2 << C1) and
1404         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) if that allows further
1405         optimizations.
1406
1407         PR tree-optimization/33453
1408         * tree-data-ref.c (split_constant_offset): Use POINTER_PLUS_EXPR
1409         for pointer addition.
1410         * tree-parloops.c (canonicalize_loop_ivs): Likewise.
1411         (separate_decls_in_loop_name): Copy DECL_GIMPLE_REG_P from var to
1412         var_copy.
1413
1414 2007-12-03  Bernd Schmidt  <bernd.schmidt@analog.com>
1415
1416         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __FDPIC__ as
1417         necessary.
1418
1419 2007-12-03  Razya Ladelsky <razya@il.ibm.com>
1420
1421         * doc/invoke.texi (fipa-cp, fipa-matrix-reorg): Add documentation.
1422
1423 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
1424
1425         PR middle-end/34317
1426         * opts.c (common_handle_option): Handle OPT_ftree_store_copy_prop.
1427         * common.opt (ftree-store-copy-prop): Use the same help text as for
1428         other nop switches.
1429
1430 2007-12-02  Ayal Zaks  <zaks@il.ibm.com>
1431             Revital Eres  <eres@il.ibm.com>
1432
1433         * modulo-sched.c (calculate_must_precede_follow,
1434         try_scheduling_node_in_cycle): New functions.
1435         (sms_schedule_by_order): Call the new functions.
1436         (ps_insn_find_column): Use must_follow and must_precede only if
1437         they are not NULL.
1438         (ps_insn_advance_column): Likewise.
1439
1440 2007-12-02  Ayal Zaks  <zaks@il.ibm.com>
1441             Revital Eres  <eres@il.ibm.com>
1442
1443         * modulo-sched.c (get_sched_window): Fix the direction of the
1444         scheduling window and add dump info.
1445
1446 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
1447
1448         * config/sh/sh.md (cmpgeusi_t): Fix condition.
1449
1450 2007-11-30  Jan Hubicka  <jh@suse.cz>
1451
1452         * ggc-common.c (dump_ggc_loc_statistics): Reset ggc_force_collect flag.
1453
1454 2007-11-30  Seongbae Park <seongbae.park@gmail.com>
1455
1456         PR rtl-optimization/34171
1457         * cfgrtl.c (update_bb_for_insn_chain): New function,
1458         refactored from update_bb_for_insn.
1459         (update_bb_for_insn): Call update_bb_for_insn.
1460         (rtl_merge_blocks, try_redirect_by_replacing_jump):
1461         Replace a loop with update_bb_for_insn_chain call.
1462         (cfg_layout_merge_blocks): Add a call to
1463         update_bb_for_insn_chain. Replace the for loop
1464         with a call to update_bb_for_insn_chain.
1465
1466 2007-11-30  Ben Elliston  <bje@au.ibm.com>
1467
1468         * config/vax/vax.h (ASM_FORMAT_PRIVATE_NAME): Remove. Use default.
1469
1470 2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
1471
1472         PR tree-optimization/34244
1473         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
1474         (record_numbers_of_iterations): New function.
1475         (execute_vrp): Cache the numbers of iterations of loops.
1476         * tree-scalar-evolution.c (scev_reset_except_niters): New function.
1477         (scev_reset): Use scev_reset_except_niters.
1478         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
1479
1480 2007-11-29  Jan Hubicka  <jh@suse.cz>
1481             Jakub Jelinek  <jakub@redhat.com>
1482
1483         PR tree-optimization/33434
1484         * tree-inline.c (setup_one_parameter): If the value passed to
1485         a parameter is never used, don't set it up.
1486
1487 2007-11-29  Jakub Jelinek  <jakub@redhat.com>
1488
1489         PR target/32130
1490         * config/rs6000/eabi-cn.asm (__DTOR_END__): Make it weak.
1491         * config/rs6000/sol-cn.asm (__DTOR_END__): Likewise.
1492
1493 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
1494
1495         * Makefile.in: Use separate vpath lines for each path.
1496
1497 2007-11-29  Ben Elliston  <bje@au.ibm.com>
1498
1499         * SERVICE: Update URL.
1500
1501 2007-11-28  Jakub Jelinek  <jakub@redhat.com>
1502
1503         PR tree-optimization/34140
1504         * tree-if-conv.c (if_convertible_phi_p): Fail if BB other than
1505         loop->header has virtual phi nodes.
1506
1507 2007-11-28  Richard Sandiford  <rsandifo@nildram.co.uk>
1508
1509         PR target/32406
1510         * builtins.c (expand_builtin_nonlocal_goto): Also emit a use
1511         of GP register, if valid and fixed.
1512
1513         Revert:
1514         2007-06-21  David Daney  <ddaney@avtrex.com>
1515
1516         PR target/32406
1517         * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
1518         to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
1519         (exception_receiver): Renamed to ...
1520         (nonlocal_goto_receiver): ... this.
1521
1522 2007-11-27  H.J. Lu  <hongjiu.lu@intel.com>
1523             Joey Ye <joey.ye@intel.com>
1524
1525         PR target/34001
1526         * config/i386/i386.c (function_arg_32): Don't pass aggregate
1527         arguments in ECX/EDX for fastcall.
1528
1529 2007-11-28  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1530
1531         * config/i386/linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline
1532         asm to macro.
1533         * config/i386/sco5.h (CRT_GET_RFIB_DATA): Likewise.
1534         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Likewise.
1535
1536 2007-11-28  Ben Elliston  <bje@au.ibm.com>
1537
1538         * config/rs6000/aix64.opt (maix64): Add Negative(maix32).
1539         (maix32): Add Negative(maix64).
1540
1541 2007-11-27  Jakub Jelinek  <jakub@redhat.com>
1542
1543         PR tree-optimization/34016
1544         * tree-ssa-loop.c (pass_linear_transform): Add
1545         TODO_update_ssa_only_virtuals to todo_flags_finish.
1546
1547 2007-11-27  Eric B. Weddington  <eric.weddington@atmel.com>
1548
1549         * config/avr/avr.c (avr_mcu_types): Add atmega32hvb.
1550         * config/avr/avr.h (LINK_SPEC): Likewise.
1551         (CRT_BINUTILS_SPECS): Likewsie.
1552         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1553         
1554 2007-11-27  Jakub Jelinek  <jakub@redhat.com>
1555
1556         PR target/34225
1557         * config/rs6000/rs6000.c (adjacent_mem_locations): Don't assume
1558         MEM_SIZE is set on all MEMs.
1559
1560 2007-11-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1561
1562         * config/s390/s390.opt (mhard-float): Add the option to be
1563         overridden.  That was missing in my last patch.
1564
1565 2007-11-27  Richard Guenther  <rguenther@suse.de>
1566
1567         PR tree-optimization/34241
1568         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Make sure
1569         to only delete real conversion chains.
1570
1571 2007-11-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1572
1573         * config/s390/s390.opt (m31, m64, mesa, mzarch, msoft-float,
1574         mhard-float, mlong-double-64, mlong-double-128): Add the
1575         option to be overridden.
1576
1577 2007-11-27  Richard Guenther  <rguenther@suse.de>
1578
1579         * builtins.c (fold_builtin_1): Verify the argument types
1580         of BUILT_IN_ISNORMAL.
1581         (fold_builtin_n): Verify the number of arguments to variadic
1582         built-in functions.
1583
1584 2007-11-27  Bernd Schmidt  <bernd.schmidt@analog.com>
1585
1586         * config/bfin/elf.h (SUBTARGET_DRIVER_SELF_SPECS): New macro.
1587         * doc/invoke.texi (Blackfin Options): Document the effects.
1588
1589 2007-11-27  Ben Elliston  <bje@au.ibm.com>
1590
1591         * config/rs6000/sysv4.opt (m32): Add Negative(m64).
1592         (m64): Add Negative(m32).
1593         * config/rs6000/darwin.opt (m32): Add Negative(m64).
1594         (m64): Add Negative(m32).
1595
1596 2007-11-26  Eric Botcazou  <ebotcazou@adacore.com>
1597
1598         * tree-ssa-propagate.c (set_rhs) <GIMPLE_MODIFY_STMT>: Fix typo.
1599
1600 2007-11-26  Michael Meissner  <michael.meissner@amd.com>
1601
1602         PR target/34077
1603         * config/i386/i386.c (ix86_expand_movmem): If the copy size is a
1604         constant, avoid calling emit_cmp_and_jump_insns.  Use counter_mode
1605         to get the mode for loading a pseudo register with a count rather
1606         than duplicating code.
1607
1608 2007-11-25  Eric B. Weddington  <eric.weddington@atmel.com>
1609
1610         * config/avr/avr.c (avr_mcu_types): Add atmega1284p.
1611         * config/avr/avr.h (LINK_SPEC): Likewise.
1612         (CRT_BINUTILS_SPECS): Likewsie.
1613         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1614
1615 2007-11-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1616         
1617         * c-common.c (conversion_warning): Use get_unwidened instead of
1618         get_narrower.
1619         
1620 2007-11-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1621
1622         PR c/23722
1623         * c-parser.c (struct c_parser): New bit in_if_block.
1624         (c_parser_compound_statement_nostart): Handle unexpected 'else'
1625         keyword.
1626         (c_parser_statement_after_labels): Set in_if_block to false while
1627         parsing.
1628         (c_parser_if_body): Don't call c_parser_statement_after_labels if
1629         a semicolon is found, just consume it. Don't call
1630         c_parser_statement_after_labels if an open brace is found, call
1631         c_parser_compound_statement instead.
1632         (c_parser_else_body): New.
1633         (c_parser_if_statement): Set in_if_block to true when parsing the
1634         body of the 'if' statement. Use c_parser_else_body.
1635
1636 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
1637
1638         PR c++/34081
1639         * c-decl.c (store_parm_decls): Pass 'false' for the new
1640         allocate_struct_function parameter.
1641         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
1642         * tree-parloops.c (create_loop_fn): Likewise.
1643         * function.c (push_function_context_to, push_struct_function,
1644         init_function_start): Likewise.
1645         (allocate_struct_function): Add boolean parameter.
1646         * tree.h (allocate_struct_function): Add boolean parameter.
1647         * function.h (struct function): Move returns_struct and
1648         returns_pcc_struct to the end of the structure definiton.
1649
1650 2007-11-26  Uros Bizjak  <ubizjak@gmail.com>
1651
1652         PR target/34215
1653         * config/i386/i386.md (truncdfsf2): Select SLOT_TEMP stack slot if
1654         virtual registers are already instantiated.
1655         (truncxf<mode>2): Ditto.
1656         (floatsi<mode>2): Ditto.
1657         (floatdisf2): Ditto.
1658         (floatdidf2): Ditto.
1659
1660 2007-11-26  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1661
1662         PR target/34174
1663         * config/fr30/fr30.c (fr30_move_double): Sanitize mem->reg case. Copy
1664         the address before it is clobbered.
1665
1666 2007-11-26  Nick Clifton  <nickc@redhat.com>
1667
1668         * config/mn10300/mn10300.md: (call_internal): Remove mode on
1669         operand 0 in order to match UNPSEC'ed calls generated in PIC mode.
1670         (call_value_internal): Remove mode on operands 0 and 1 in order to
1671         match UNPSEC'ed calls generated in PIC mode.
1672         (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between
1673         two insns.
1674
1675 2007-11-26  Richard Guenther  <rguenther@suse.de>
1676
1677         PR middle-end/34233
1678         * builtins.c (expand_builtin_pow): Use expand_expr to expand
1679         the result of build_call_expr.
1680
1681 2007-11-26  Steven Bosscher  <stevenb.gcc@gmail.com> 
1682             Revital Eres  <eres@il.ibm.com> 
1683
1684         PR middle-end/34085
1685         * bb-reorder.c (insert_section_boundary_note): Clear
1686         BLOCK_FOR_INSN in NOTE_INSN_SWITCH_TEXT_SECTIONS.
1687
1688 2007-11-26  Richard Sandiford  <rsandifo@nildram.co.uk>
1689
1690         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add missing comma.
1691
1692 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
1693
1694         * dwarf2asm.c (splay_tree_compare_strings): New function.
1695         (dw2_force_const_mem): Use it.
1696
1697 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
1698
1699         * tree.c (type_hash_add): Don't violate strict aliasing rules.
1700
1701 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
1702
1703         PR c/27898
1704         * c-typeck.c (tagged_types_tu_compatible_p): Enable exact
1705         matches between anonymous union fields.
1706
1707 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>, Jan Hubicka  <jh@suse.cz>
1708
1709         * tree-ssa-live.c (remove_unused_scope_block_p): Drop
1710         declarations and blocks only after inlining.  Check that
1711         non-empty blocks are not dropped.
1712         * tree-inline.c (expand_call_inline): Check that functions are
1713         not inlined too late.
1714
1715 2007-11-26  Ben Elliston  <bje@au.ibm.com>
1716
1717         * unwind-dw2-fde.c: Fix comment typo.
1718         * unwind-generic.h: Likewise, fix comment typos.
1719         
1720 2007-11-25  Richard Sandiford  <rsandifo@nildram.co.uk>
1721
1722         * tree-sra.c (scalarize_use): Adjust the vpos argument to
1723         sra_explode_bitfield_assignment in cases where the type is
1724         wider than the bitfield.
1725
1726 2007-11-25  Richard Guenther  <rguenther@suse.de>
1727
1728         * tree.h (struct tree_block): Move locus member next to flags.
1729         * c-decl.c (SCOPE_LIST_APPEND): Use BLOCK_CHAIN.
1730         (SCOPE_LIST_CONCAT): Likewise.
1731         (pop_scope): Likewise.
1732         * function.c (instantiate_decls_1): Likewise.
1733         (setjmp_vars_warning): Likewise.
1734         * emit-rtl.c (set_used_decls): Likewise.
1735         * tree-inline.c (add_lexical_block): Likewise.
1736
1737 2007-11-24  Hans-Peter Nilsson  <hp@axis.com>
1738
1739         * rtlanal.c (label_is_jump_target_p): Return true for a matching
1740         REG_LABEL_TARGET.
1741         * reorg.c (fill_slots_from_thread): Correct last change to use
1742         NULL_RTX, not NULL.  Outside of REG_NOTES loop, increase and
1743         decrease LABEL_NUSES for JUMP_LABEL (trial), not XEXP (note, 0).
1744         * jump.c (mark_jump_label_1): Add comment for last change
1745         regarding JUMP_LABEL setting.
1746         * gcse.c (add_label_notes): Remove conditional that the label is
1747         mentioned in insn before adding regnote.
1748         * sched-rgn.c (is_cfg_nonregular): Don't return 1 for a
1749         single_set insn only feeding a label to a jump through a
1750         register that dies there.
1751
1752 2007-11-23  Dirk Mueller  <dmueller@suse.de>
1753             Richard Guenther <rguenther@suse.de>
1754
1755         PR middle-end/34197
1756         * tree-vrp.c (check_array_ref): Move check for valid location..
1757         (check_array_bounds) here. Use EXPR_HAS_LOCATION().
1758
1759 2007-11-23  Hans-Peter Nilsson  <hp@axis.com>
1760
1761         * reload.c (find_reloads_address_1) <autoincdec cases>:
1762         Call REG_OK_FOR_CONTEXT with the autoincdec code, not outer_code.
1763
1764 2007-11-23  Richard Guenther  <rguenther@suse.de>
1765             Michael Matz  <matz@suse.de>
1766
1767         PR tree-optimization/34176
1768         * alloc-pool.h (empty_alloc_pool): Declare.
1769         * alloc-pool.c (empty_alloc_pool): New function.
1770         * tree-ssa-sccvn.c (vn_reference_lookup): Also lookup from the
1771         valid table if a lookup from the optimistic table failed.
1772         (vn_unary_op_lookup): Likewise.
1773         (vn_binary_op_lookup): Likewise.
1774         (vn_phi_lookup): Likewise.
1775         (process_scc): Clear optimistic tables before every iteration.
1776
1777 2007-11-23  Richard Guenther  <rguenther@suse.de>
1778
1779         * tree-ssa-copy.c (may_propagate_copy): Remove redundant checks.
1780         (merge_alias_info): Do verification only if checking is
1781         enabled.  Merge flow-sensitive alias information in simple cases.
1782         * tree-ssa-operands.c (get_addr_dereference_operands): Also
1783         complain about missing NMTs.
1784
1785 2007-11-23  Jakub Jelinek  <jakub@redhat.com>
1786
1787         PR c++/34198
1788         * c-common.c (conversion_warning): For INTEGER_TYPE to
1789         INTEGER_TYPE conversions call get_narrower on expr to avoid
1790         spurious warnings from binop shortening or when the implicit
1791         conversion can't change the value.
1792
1793 2007-11-22  Joseph Myers  <joseph@codesourcery.com>
1794
1795         PR c/14050
1796         * c-decl.c (set_array_declarator_inner): Don't give error for
1797         static or type qualifiers in abstract declarator.  Remove
1798         abstract_p parameter.
1799         * c-tree.h (set_array_declarator_inner): Update prototype.
1800         * c-parser.c (c_parser_direct_declarator_inner): Update call to
1801         set_array_declarator_inner.
1802         * doc/standards.texi: Update for C99 TC3.
1803
1804 2007-11-22  Hans-Peter Nilsson  <hp@bitrange.com>
1805
1806         * config/mmix/mmix.c (mmix_encode_section_info): Remove duplicate
1807         line in my edit of the last change.
1808
1809 2007-11-22  Jakub Jelinek  <jakub@redhat.com>
1810
1811         PR target/33947
1812         * config/arm/arm.c (arm_init_tls_builtins): Set TREE_NOTHROW
1813         and TREE_READONLY on the fn decl rather than passing a chain
1814         of attributes.
1815
1816 2007-11-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1817
1818         * config/sh/sh.md (divsi_inv_m3): Handle zero dividend specially.
1819
1820 2007-11-22  Uros Bizjak  <ubizjak@gmail.com>
1821
1822         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Change checking
1823         of ix86_arch and ix86_tune into a switch statement.
1824         (enum processor_type): Default PROCESSOR_I386 to 0.
1825         * config/i386/i386.c (ix86_decompose_address): Use TARGET_K6 instead
1826         of "ix86_tune == PROCESSOR_K6".
1827         (ia32_multipass_dfa_lookahead): Change checking of ix86_tune into
1828         a switch statement.
1829
1830 2007-11-22  Tom Tromey  <tromey@redhat.com>
1831
1832         * config/mmix/mmix.c (mmix_encode_section_info): Use alloca to
1833         avoid writing into string allocated by ggc_alloc_string.
1834
1835 2007-11-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1836
1837         PR target/34155
1838         * config/sh/sh.md (binary_sf_op): Remove.
1839         (binary_sf_op0, binary_sf_op1): New define_insn_and_split.
1840         * config/sh/sh.c (sh_expand_binop_v2sf): Use gen_binary_sf_op0
1841         and gen_binary_sf_op1.
1842
1843 2007-11-21  Hans-Peter Nilsson  <hp@axis.com>
1844
1845         * regclass.c (init_reg_autoinc): Fix typo preventing test of
1846         secondary output reload when setting forbidden_inc_dec_class.
1847
1848 2007-11-21  Richard Guenther  <rguenther@suse.de>
1849
1850         PR tree-optimization/34148
1851         * tree-ssa-structalias.c (create_variable_info_for): Do not use
1852         field-sensitive PTA for single-element structures.
1853         * tree-ssa-alias.c (create_overlap_variables_for): Do not create
1854         SFTs for single-element structures.
1855
1856 2007-11-20  Richard Guenther  <rguenther@suse.de>
1857
1858         PR middle-end/34154
1859         * gimplify.c (gimplify_switch_expr): Use tree_int_cst_lt instead
1860         of the signed INT_CST_LT.
1861         * stmt.c (expand_case): Likewise.
1862         (estimate_case_costs): Likewise.
1863
1864 2007-11-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1865
1866         * read-rtl.c (fatal_expected_char): Print EOF as text rather that
1867         its binary representation.
1868
1869 2007-11-20  Richard Guenther  <rguenther@suse.de>
1870
1871         * tree-ssa-operands.c (add_virtual_operand): Consistently prune
1872         accesses.
1873
1874 2007-11-20  Thiemo Seufer  <ths@mips.com>
1875
1876         * config/mips/mips.c (mips_file_start): Add support for
1877         flagging 32-bit code with -mfp64 floating-point.
1878
1879 2007-11-20  Jakub Jelinek  <jakub@redhat.com>
1880
1881         PR c/34146
1882         * c-gimplify.c (optimize_compound_literals_in_ctor): New function.
1883         (c_gimplify_expr): Use it.
1884
1885 2007-11-20  Ben Elliston  <bje@au.ibm.com>
1886
1887         * config/spu/spu_mfcio.h: Fix typo.
1888
1889 2007-11-20  Ben Elliston  <bje@au.ibm.com>
1890
1891         * unwind.inc: Comment that unwind-sjlj.c includes this file.
1892
1893 2007-11-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1894             Ben Elliston  <bje@au.ibm.com>
1895
1896         * config/spu/mfc_tag_release.c: New file.
1897         * config/spu/mfc_multi_tag_release.c: Likewise.
1898         * config/spu/mfc_multi_tag_reserve.c: Likewise.
1899         * config/spu/mfc_tag_release.c: Likewise.
1900         * config/spu/mfc_tag_reserve.c: Likewise.
1901         * config/spu/mfc_tag_table.c: Likewise.
1902         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Compile them.
1903         (TARGET_LIBGCC2_CFLAGS): Define __IN_LIBGCC2.
1904         * config/spu/spu_mfcio.h: Avoid <stdint.h>.
1905         (uint64_t): Typedef if __IN_LIBGCC2 is defined.
1906         (MFC_TAG_INVALID, MFC_TAG_VALID): New macros.
1907         (mfc_tag_reserve, mfc_tag_release, mfc_multi_tag_reserve,
1908         mfc_multi_tag_release): Likewise.
1909         (__mfc_tag_reserve, __mfc_tag_release, __mfc_multi_tag_reserve,
1910         __mfc_multi_tag_release): Declare.
1911
1912 2007-11-19  Jason Merrill  <jason@redhat.com>
1913
1914         PR debug/28834, debug/29436, c/32326
1915         * tree.c (build_type_attribute_qual_variant): Refuse to make
1916         a distinct copy of a struct/enum type.  Use build_distinct_type_copy.
1917         * doc/extend.texi (Type Attributes): Don't encourage people to add
1918         attributes to struct/enum types in a typedef.  Fix
1919         transparent_union example.
1920
1921         * tree-inline.c (remap_type_1): Remove code that's redundant with
1922         remap_type.
1923         (build_duplicate_type): Set id.copy_decl.
1924         * c-common.c (handle_transparent_union_attribute): Simplify logic.
1925
1926 2007-11-19  Peter Bergner  <bergner@vnet.ibm.com>
1927
1928         * config/rs6000/rs6000.c (invalid_e500_subreg,
1929         rs6000_legitimate_offset_address_p, legitimate_lo_sum_address_p,
1930         rs6000_legitimize_address, rs6000_legitimize_reload_address,
1931         rs6000_legitimate_address, function_arg_advance,
1932         spe_build_register_parallel, rs6000_spe_function_arg,
1933         rs6000_split_multireg_move, spe_func_has_64bit_regs_p,
1934         emit_frame_save, gen_frame_mem_offset, rs6000_function_value,
1935         rs6000_libcall_value, rs6000_dwarf_register_span): Handle DDmode and
1936         TDmode similarly to DFmode and TFmode.
1937         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1938         DATA_ALIGNMENT, CLASS_MAX_NREGS, CANNOT_CHANGE_MODE_CLASS): Likewise.
1939
1940 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
1941
1942         * stor-layout.c (lang_adjust_rli): Delete.
1943         (set_lang_adjust_rli): Likewise.
1944         (layout_type): Do not call lang_adjust_rli hook.
1945         * tree.h (set_lang_adjust_rli): Delete.
1946
1947 2007-11-19  Bernd Schmidt  <bernd.schmidt@analog.com>
1948         
1949         * config/bfin/bfin.c (must_save_p): New function, mostly broken out of
1950         n_dregs_to_save and n_pregs_to_save.
1951         (n_pregs_to_save, n_dregs_to_save): Use it.  New argument CONSECUTIVE;
1952         all callers changed.
1953         (expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be
1954         able to save single D/P registers that aren't saved by the push/pop
1955         multiple insns.
1956
1957 2007-11-19  Richard Guenther  <rguenther@suse.de>
1958
1959         PR tree-optimization/34099
1960         * tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR,
1961         MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED
1962         if only one operand is undefined.
1963
1964 2007-11-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
1965
1966         PR tree-optimization/34036
1967         * opts.c (set_fast_math_flags): Do not set flags in common
1968         with set_unsafe_math_optimizations_flags, invoke it directly.
1969         (set_unsafe_math_optimizations_flags): Unset flag_trapping_math
1970         and flag_signed_zeros.
1971         * toplev.c (process_options): Force flag_associative_math to 0 and
1972         warn, if it is set and either flag_trapping_math or flag_signed_zeros
1973         is set too.
1974         * doc/invoke.texi (Optimize Options): Document the new behavior
1975         of -funsafe-math-optimizations, that -fassociative-math requires
1976         both -fno-signed-zeros and -fno-trapping-math and make it clear
1977         that -fno-trapping-math requires -fno-signaling-nans.  Refactor
1978         documentation of -ffast-math.
1979
1980 2007-11-18  Jakub Jelinek  <jakub@redhat.com>
1981
1982         PR rtl-optimization/34132
1983         * gcse.c (try_replace_reg): Avoid rtx sharing between REG_EQUAL note
1984         and insn.
1985
1986         PR middle-end/33335
1987         * optabs.h (optab_table): Change type to struct optab from optab.
1988         (convert_optab_table): Similarly.
1989         Adjust all _optab macros to expand to addresses of optab_table
1990         resp. convert_optab_table elements rather than the values of the
1991         elements.
1992         * optabs.c (optab_table): Change typype to struct optab from optab.
1993         If compiled by recent GCC, initialize all the insn_code fields in
1994         the array using designated range initializers.
1995         (convert_optab_table): Similarly.
1996         (convert_optab_libfunc, optab_libfunc, set_optab_libfunc,
1997         set_conv_libfunc): Into libfunc_entry's optab field store index within
1998         optab_table resp. convert_optab_table array instead of difference
1999         between two separately malloced addresses.
2000         (new_optab): Add op argument, don't return anything.  Initialize
2001         just the insn_code field in handlers array and only when needed.
2002         (init_optab, init_optabv): Add op argument, don't return anything.
2003         Adjust new_optab caller.
2004         (new_convert_optab): Removed.
2005         (init_convert_optab): Add op argument, don't return anything, don't
2006         call new_convert_optab.  If needed, initialize insn_code field in
2007         handlers array.
2008         (init_optabs): Adjust init_optab, init_optabv and init_convert_optab
2009         callers.
2010         (debug_optab_libfuncs): Adjust uses of optab_table and
2011         convert_optab_table arrays.
2012
2013 2007-11-18  Richard Guenther  <rguenther@suse.de>
2014
2015         PR tree-optimization/34127
2016         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2017         Make code match up the comments, require compatibility of the
2018         pointed-to types.
2019
2020 2007-11-17  Richard Guenther  <rguenther@suse.de>
2021
2022         PR middle-end/34130
2023         * fold-const.c (extract_muldiv_1): Do not move negative
2024         constants inside ABS_EXPR.
2025
2026 2007-11-16  Ian Lance Taylor  <iant@google.com>
2027
2028         * collect2.c (dump_file): If a demangled symbol is followed by a
2029         space, make sure we output at least one space.
2030
2031 2007-11-16  Richard Guenther  <rguenther@suse.de>
2032
2033         PR middle-end/34030
2034         * fold-const.c (fold_binary): Use correct types for folding
2035         1 << X & Y to Y >> X & 1.
2036
2037 2007-11-16  Richard Guenther  <rguenther@suse.de>
2038
2039         PR tree-optimization/33870
2040         * tree.h (struct tree_memory_tag): Add base_for_components flag.
2041         (struct tree_struct_field_tag): Remove nesting_level field.
2042         (SFT_NESTING_LEVEL): Remove.
2043         (SFT_BASE_FOR_COMPONENTS_P): Add.
2044         * tree-flow.h (struct fieldoff): Remove nesting_level field.  Add
2045         base_for_components flag.
2046         (push_fields_onto_fieldstack): Remove nesting_level parameter.
2047         * tree-ssa-alias.c (create_sft): Likewise.  Add base_for_components
2048         parameter.
2049         (create_overlap_variables_for): Deal with it.
2050         * tree-dfa.c (dump_subvars_for): Likewise.
2051         (dump_variable): Likewise.
2052         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
2053         Set base_for_components for first elements of sub-structures.
2054         (create_variable_info_for): Handle base_for_components.
2055         (set_uids_in_ptset): Always set SFT_UNPARTITIONABLE_P for
2056         pointed-to SFTs if SFT_BASE_FOR_COMPONENTS_P is set.
2057         * tree-ssa-operands.c (ref_nesting_level): Remove.
2058         (add_vars_for_offset): Remove full_ref parameter, always add
2059         the offset of the pointed-to SFT.
2060         (add_virtual_operand): Adjust for changed signature of
2061         add_vars_for_offset.
2062
2063 2007-11-16  Sa Liu  <saliu@de.ibm.com>
2064
2065         * config/spu/spu.md (floatunssidf2, floatunsdidf2): Inlined 
2066         floatunssidf2 and floatunsdidf2.
2067
2068 2007-11-16  Richard Guenther  <rguenther@suse.de>
2069
2070         PR tree-optimization/34113
2071         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2072         Use correct conversion direction for checking type compatibility.
2073
2074 2007-11-16  Richard Guenther  <rguenther@suse.de>
2075
2076         PR tree-optimization/34099
2077         * tree-ssa-ccp.c (likely_value): Use a whitelist for operators
2078         that produce UNDEFINED result if at least one of its operands
2079         is UNDEFINED.  By default the result is only UNDEFINED if all
2080         operands are UNDEFINED.
2081
2082 2007-11-16  Jakub Jelinek  <jakub@redhat.com>
2083
2084         PR driver/30460
2085         * gcc.c (init_spec): Don't initialize asm_debug here...
2086         (main): ... but here.
2087
2088 2007-11-07  Tom Tromey  <tromey@redhat.com>
2089
2090         * tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to 'func'. 
2091         * tree-parloops.c (create_loop_fn): Use set_cfun.
2092         * gengtype.c (open_base_files): Emit #undef cfun.
2093         * ipa-struct-reorg.c (do_reorg_1): Use set_cfun.
2094         * function.h (cfun): New define.
2095         * function.c: Undefine cfun.
2096
2097 2007-11-07  Eric B. Weddington  <eweddington@cso.atmel.com>
2098
2099         * config/avr/avr.c (avr_mcu_types): Add attiny88.
2100         * config/avr/avr.h (LINK_SPEC): Likewise.
2101         (CRT_BINUTILS_SPECS): Likewsie.
2102         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2103
2104 2007-11-15  Jakub Jelinek  <jakub@redhat.com>
2105
2106         PR middle-end/23848
2107         * tree-ssa-ccp.c (optimize_stack_restore): New function.
2108         (execute_fold_all_builtins): Call optimize_stack_restore for
2109         BUILT_IN_STACK_RESTORE.
2110
2111 2007-11-15  Paolo Bonzini  <bonzini@gnu.org>
2112
2113         * fwprop.c (try_fwprop_subst): Skip profitability check for forward
2114         propagation into an address; that's done in should_replace_address.
2115                 
2116 2007-11-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2117
2118         * config/spu/spu-protos.h (legitimate_const): Remove prototype.
2119         * config/spu/spu.c (legitimate_const): Remove.
2120         (classify_immediate): Inline call to legitimate_const.
2121         (spu_legitimate_address): Likewise.  Allow SYMBOL_REF + CONST_INT
2122         for any constant, not just -512 .. 511.
2123
2124 2007-11-15  Sa Liu  <saliu@de.ibm.com>
2125
2126         * config/spu/spu.c (spu_emit_branch_or_set): Remove PROCESSOR_CELL
2127         condition from HONOR_NANS test.
2128         * config/spu/spu.md (ceq_df): Always generate comparison code
2129         inline, including checks for NaNs and infinities.
2130         (cgt_df): Likewise.
2131         (cgt_v2df): Likewise.
2132         (cmpdf): Make this expander unconditional.
2133
2134 2007-11-15  Richard Guenther  <rguenther@suse.de>
2135
2136         * tree-ssa-alias.c (create_overlap_variables_for): Make sure
2137         to only create SFTs if we also create variable infos for PTA.
2138         * tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping SFTs.
2139
2140 2007-11-15  Richard Guenther  <rguenther@suse.de>
2141
2142         * tree-ssa-structalias.c (set_uids_in_ptset): Use the pointed-to
2143         type for TBAA pruning.
2144         (find_what_p_points_to): Call set_uids_in_ptset with the original
2145         pointer, not the decl of the solution we collapsed to.
2146
2147 2007-11-14  David Daney  <ddaney@avtrex.com>
2148
2149         * config/mips/linux-unwind.h (mips_fallback_frame_state): Use CFA
2150         to find sigcontext.
2151
2152 2007-11-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
2153
2154         PR target/33923
2155         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Forbid mode changes
2156         for registers in BR_REGS class.
2157
2158 2007-11-14  Jakub Jelinek  <jakub@redhat.com>
2159
2160         PR middle-end/34088
2161         * tree-ssa.c (delete_tree_ssa): Don't call fini_ssa_operands if
2162         init_ssa_operands has not been called for cfun.
2163
2164 2007-11-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
2165
2166         PR tree-optimization/34046
2167         * cfg.c (update_bb_profile_for_threading): Avoid the division for the
2168         scaling if the old probability is greater than the new base.
2169
2170 2007-11-14  Sebastian Pop  <sebastian.pop@amd.com>
2171
2172         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Remove
2173         unused edges after loop duplication.
2174
2175 2007-11-14  Uros Bizjak  <ubizjak@gmail.com>
2176
2177         * config/i386/i386.h (TARGET_CPU_DEFAULT_*): Substitute with ...
2178         (enum target_cpu_default): ... this enum.
2179         (TARGET_CPU_DEFAULT_NAMES): Remove macro.  Move initializer to ...
2180         * config/i386/i386.c (override_options): ... here.
2181         * config/i386/i386-interix.h (TARGET_CPU_DEFAULT): Use
2182         TARGET_CPU_DEFAULT_i486.
2183
2184 2007-11-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2185
2186         * global.c (rest_of_handle_global_alloc): Fix comment typos.
2187         * config/sh/sh.c (sh_rtx_costs): Likewise.
2188         * ChangeLog: Likewise.
2189
2190 2007-11-13  Sebastian Pop  <sebastian.pop@amd.com>
2191
2192         * tree-chrec.h (build_polynomial_chrec): RHS of a chrec
2193         should not be of pointer type.
2194
2195 2007-11-13  Michael Meissner  <michael.meissner@amd.com>
2196
2197         * config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate line.
2198
2199 2007-11-13  Sterling Augustine  <sterling@tensilica.com>
2200             Bob Wilson  <bob.wilson@acm.org>
2201         
2202         * config/xtensa/unwind-dw2-xtensa.c: New.
2203         * config/xtensa/unwind-dw2-xtensa.h: New.
2204         * config/xtensa/xtensa.h (MUST_USE_SJLJ_EXCEPTIONS): Remove.
2205         (DWARF2_UNWIND_INFO): Remove.
2206         (DWARF_FRAME_REGISTERS): Define.
2207         (EH_RETURN_DATA_REGNO): Define.
2208         * config/xtensa/xtensa.md (UNSPECV_EH_RETURN): Define.
2209         (eh_return): New.
2210         * config/xtensa/t-xtensa (LIB2ADDEH): Define.
2211         
2212 2007-11-13  Jakub Jelinek  <jakub@redhat.com>
2213
2214         * doc/invoke.texi: Fix description of -fsched-stalled-insns=0,
2215         -fsched-stalled-insns.
2216
2217         PR tree-optimization/34063
2218         * tree-chrec.c (chrec_evaluate): Put CHREC_LEFT based argument
2219         as first chrec_fold_plus operand rather than second.
2220
2221 2007-11-13  Diego Novillo  <dnovillo@google.com>
2222
2223         PR tree-optimization/33870
2224         * tree.h (strcut tree_memory_tag): Add field unpartitionable.
2225         Remove field in_nested_struct.
2226         (struct tree_struct_field_tag): Add field nesting_level.
2227         (sft_in_nested_struct): Remove.
2228         (sft_nesting_level): Define.
2229         (sft_unpartitionable_p): Define.
2230         * tree-ssa-alias.c (mem_sym_score): If mp->var is not
2231         partitionable, return long_max.
2232         (compute_memory_partitions): Do not partition sfts marked
2233         unpartitionable.
2234         (create_sft): Add argument nesting_level.  Set
2235         sft_nesting_level with it.  Update all users.
2236         (create_overlap_variables_for): Show nesting level.
2237         * tree-dfa.c (dump_subvars_for): Likewise.
2238         (dump_variable): Likewise. Show whether the sft is
2239         partitionable or not.
2240         * tree-flow.h (struct fieldoff): Remove field in_nested_struct.
2241         Add field nesting_level.
2242         * tree-ssa-structalias.c (struct variable_info): Remove
2243         field in_nested_struct.
2244         (push_fields_onto_fieldstack): Add argument nesting_level.
2245         Update all users.  Update documentation. Update pair->nesting_level
2246         with nesting_level.  Make recursive calls with nesting_level + 1.
2247         (set_uids_in_ptset): If an sft is added to the points-to set,
2248         mark it as unpartitionable.
2249         * tree-ssa-operands.c (ref_nesting_level): New.
2250         (add_vars_for_offset): Call it.  Add argument full_ref. Update
2251         callers.  If var is inside a nested structure and the nesting level
2252         of full_ref is lower than the nesting level of var,
2253         adjust offset by the offset of var.
2254
2255 2007-11-13  Victor Kaplansky  <victork@il.ibm.com>
2256
2257         PR tree-optimization/32582
2258         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-tree-vectorize
2259
2260 2007-11-12  Danny Smith  <dannysmith@users.sourceforge.net>
2261
2262         * doc/extend.texi (dllimport): Document that pointers to dllimport'd
2263         functions can be used as constant.
2264
2265 2007-11-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2266
2267         PR rtl-optimization/34035
2268         * cse.c (cse_cfg_altered): New global variable.
2269         (cse_jumps_altered): Make boolean.
2270         (recorded_label_ref): Likewise.
2271         (cse_insn): Adjust for above changes.
2272         (cse_extended_basic_block): Likewise.  Set cse_cfg_altered
2273         if dead edges have been purged.
2274         (cse_main): Change return value specification and adjust code.
2275         (rest_of_handle_cse): Adjust for above change.
2276         (rest_of_handle_cse2): Likewise.
2277         * gcse.c (rest_of_handle_gcse): Likewise.
2278
2279 2007-11-12  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2280             Michael Meissner  <michael.meissner@amd.com>
2281
2282         * config/i386/i386.md (sse5_setcc<mode>): Use <ssemodefsuffix> to
2283         get the appropriate suffix for the coms* instruction.
2284         (sse5_pcmov_<mode>): Restrict operands of pcmov
2285         for scalar case to be only xmm registers and not memory.
2286
2287         * config/i386/sse.md (sse5_pcmov_<mode>): Correct the operand
2288         constraints to follow the mnemonics for the pcmov instruction   
2289
2290 2007-11-12  Richard Sandiford  <rsandifo@nildram.co.uk>
2291
2292         PR target/34042
2293         * config/mips/mips.c (mips_return_fpr_single): New function.
2294         (mips_function_value): Use it when returning single-field
2295         aggregates in FPRs.
2296         (mips_expand_call): Handle the PARALLELs created by
2297         mips_return_fpr_single.
2298
2299 2007-11-12  Richard Guenther  <rguenther@suse.de>
2300
2301         PR middle-end/34070
2302         * fold-const.c (fold_binary): If testing for non-negative
2303         operands with tree_expr_nonnegative_warnv_p make sure to
2304         use op0 which has all (sign) conversions retained.
2305
2306 2007-11-12  Richard Guenther  <rguenther@suse.de>
2307
2308         PR middle-end/34027
2309         * fold-const.c (fold_binary): Fold n - (n / m) * m to n % m.
2310         (fold_binary): Fold unsinged FLOOR_DIV_EXPR to TRUNC_DIV_EXPR.
2311
2312 2007-11-12  Ira Rosen  <irar@il.ibm.com>
2313
2314         PR tree-optimization/33953
2315         * tree-vect-transform.c (vectorizable_operation): In case of SLP,
2316         allocate vec_oprnds1 according to the number of created vector
2317         statements. In case of shift with scalar argument, store scalar
2318         operand for every vector statement to be created for the SLP node.
2319         Fix a comment.
2320
2321 2007-11-10  Steven Bosscher  <stevenb.gcc@gmail.com>
2322
2323         * gcse.c (CUID_INSN): Remove.
2324         (cuid_insn): Ditto.
2325         (alloc_gcse_mem): Don't allocate cuid_insn.
2326         (free_gcse_mem): Don't free cuid_insn.
2327
2328 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
2329
2330         PR fortran/34020
2331         * gimplify.c (goa_lhs_expr_p): Inside INDIRECT_REF handle unshared
2332         nops.
2333
2334         PR middle-end/34018
2335         * tree-inline.h (copy_body_data): Add regimplify field.
2336         * tree-inline.c (copy_body_r): Set id->regimplify to true
2337         if an TREE_INVARIANT ADDR_EXPR is no longer invariant after
2338         substitutions.
2339         (copy_bb): Clear id->regimplify before walk_tree, if it is
2340         set afterwards, regimplify the whole statement.
2341
2342         PR tree-optimization/33680
2343         * tree-data-ref.c (split_constant_offset) <case ADDR_EXPR>: Punt
2344         if the added cast involves variable length types.
2345
2346 2007-11-09  Alexander Monakov  <amonakov@ispras.ru>
2347             Maxim Kuvyrkov  <maxim@codesourcery.com>
2348
2349         * sched-deps.c (sched_analyze_insn): Use MOVE_BARRIER
2350         instead of TRUE_BARRIER for jumps.  Add register dependencies
2351         even when reg_pending_barrier is set.
2352
2353 2007-11-09  Alexander Monakov  <amonakov@ispras.ru>
2354
2355         * haifa-sched.c (haifa_classify_insn): Rename to ...
2356         (haifa_classify_rtx): ...  this.  Improve handling of COND_EXECs,
2357         handle PARALLELs by recursing.  Use it ...  
2358         (haifa_classify_insn): ...  here.  Reimplement.
2359
2360 2007-11-09  Richard Guenther  <rguenther@suse.de>
2361
2362         * bitmap.h (bitmap_single_bit_set_p): Declare.
2363         * bitmap.c (bitmap_single_bit_set_p): New function.
2364         * tree-ssa-alias.c (add_may_alias_for_new_tag): Use it.
2365         (maybe_create_global_var): Use bitmap_empty_p.
2366
2367 2007-11-09  Paolo Bonzini  <bonzini@gnu.org>
2368             Jakub Jelinek  <jakub@redhat.com>
2369
2370         PR rtl-optimization/34012
2371         * fwprop.c (try_fwprop_subst): Do not replace if the new
2372         SET_SRC has a higher cost than the old one.
2373
2374 2007-11-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
2375
2376         PR rtl-optimization/33732
2377         * reload.c (push_reload): Check that the REG_DEAD note was referring
2378         to a hardreg or to a pseudo that has been assigned exactly one hardreg
2379         before considering it in order to select the reload register.
2380         (combine_reloads): Likewise.
2381         (find_dummy_reload): Likewise.
2382
2383 2007-11-09  Richard Guenther  <rguenther@suse.de>
2384
2385         * tree-flow.h (struct ptr_info_def): Make escape_mask a ENUM_BITFIELD.
2386         (struct ptr_info_def): Likewise.
2387         (enum escape_type): Also use bit zero.
2388
2389 2007-11-09  Richard Guenther  <rguenther@suse.de>
2390
2391         PR tree-optimization/33604
2392         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2393         Disregard changes in CV qualifiers of pointed to types for
2394         forward propagating ADDR_EXPRs.
2395         * tree-ssa-ccp.c (fold_stmt_r): Preserve volatileness of the original
2396         expression.
2397
2398 2007-11-09  Richard Sandiford  <rsandifo@nildram.co.uk>
2399
2400         * dse.c (find_shift_sequence): Always choose an integer mode for
2401         new_mode.
2402         (replace_read): Require both the read and store mode to be
2403         integer ones.  Remove a then-redundant FLOAT_P check.
2404
2405 2007-11-08  Richard Guenther  <rguenther@suse.de>
2406
2407         * tree-dfa.c (remove_referenced_var): If removing a
2408         variable which has subvars, also remove those from
2409         the referenced vars.  Do not create a variable annotation.
2410
2411 2007-11-08  Bob Wilson  <bob.wilson@acm.org>
2412
2413         * config/xtensa/xtensa.c (xtensa_expand_prologue): Remove first
2414         argument for gen_entry calls.
2415         * config/xtensa/xtensa.md: Add new "entry" value to "type" attribute.
2416         (entry): Use the new attribute value.  Remove unused first operand.
2417
2418 2007-11-08  Tom Tromey  <tromey@redhat.com>
2419
2420         * c-parser.c (c_parser_translation_unit): Use location in error.
2421         (c_parser_external_declaration): Likewise.
2422         (c_parser_declaration_or_fndef): Likewise.
2423         (c_parser_enum_specifier): Likewise.
2424         (c_parser_struct_or_union_specifier): Likewise.
2425         (c_parser_struct_declaration): Likewise.
2426         (c_parser_typeof_specifier): Likewise.
2427         (c_parser_parms_list_declarator): Likewise.
2428         (c_parser_asm_string_literal): Likewise.
2429         (c_parser_braced_init): Likewise.
2430         (c_parser_initelt): Likewise.
2431         (c_parser_compound_statement_nostart): Likewise.
2432         (c_parser_statement_after_labels): Likewise.
2433         (c_parser_do_statement): Likewise.
2434         (c_parser_asm_statement): Likewise.
2435         (c_parser_conditional_expression): Likewise.
2436         (c_parser_unary_expression): Likewise.
2437         (c_parser_sizeof_expression): Likewise.
2438         (c_parser_postfix_expression): Likewise.
2439         (c_parser_postfix_expression_after_paren_type): Likewise.
2440         (c_parser_objc_class_instance_variables): Likewise.
2441         (c_parser_objc_method_definition): Likewise.
2442         (c_parser_objc_methodprotolist): Likewise.
2443         (c_parser_pragma): Likewise.
2444         (c_parser_omp_clause_num_threads): Likewise.
2445         (c_parser_omp_clause_schedule): Likewise.
2446         (c_parser_omp_all_clauses): Likewise.
2447         (c_parser_omp_sections_scope): Likewise.
2448         (c_parser_label): Use location of label, not colon.
2449
2450 2007-11-08  Danny Smith  <dannysmith@users.sourceforge.net>
2451
2452         PR target/33774
2453         * config/i386/cygming.h (BIGGEST_FIELD_ALIGNMENT): Define only if
2454         IN_TARGET_LIBS.
2455
2456 2007-11-07  Kenneth Zadeck <zadeck@naturalbridge.com>
2457
2458         PR middle-end/33826
2459         * ipa-pure-const.c (static_execute): Added code to keep recursive
2460         functions from being marked as pure or const.
2461         * ipa-utils.c (searchc): Fixed comment.
2462                 
2463 2007-11-08  Tom Tromey  <tromey@redhat.com>
2464
2465         * common.opt (fshow-column): Default to 0.
2466         * configure: Rebuilt.
2467         * configure.ac (--enable-mapped-location): Default to 'yes'.
2468
2469 2007-11-07  Kenneth Zadeck <zadeck@naturalbridge.com>
2470
2471         * common.opt: Add pointer to doc/options.texi.
2472         * doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const,
2473         -fipa-reference): Add or correct doc.  Sorted options list for -Os
2474         -O, -O2.
2475
2476 2007-11-07  Bernhard Fischer  <aldot@gcc.gnu.org>
2477
2478         PR target/16350
2479         * config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT.
2480         * config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on
2481         TARGET_BIG_ENDIAN_DEFAULT.  Use for MULTILIB_DEFAULTS.
2482         (TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT.
2483         (LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler.
2484         * config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according
2485         to TARGET_BIG_ENDIAN_DEFAULT.
2486         (SUBTARGET_EXTRA_LINK_SPEC): Likewise.
2487         * config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according
2488         to TARGET_BIG_ENDIAN_DEFAULT.
2489
2490 2007-11-07  Diego Novillo  <dnovillo@google.com>
2491
2492         * tree.h (struct tree_struct_field_tag): Move field
2493         in_nested_struct ...
2494         (struct tree_memory_tag): ... here.
2495
2496 2007-11-07  Diego Novillo  <dnovillo@google.com>
2497
2498         PR 33870
2499         * tree.h (struct tree_struct_field_tag): Add field in_nested_struct.
2500         (SFT_IN_NESTED_STRUCT): Define.
2501         * tree-dfa.c (dump_subvars_for): Show offset of each sub-var.
2502         * tree-flow.h (struct fieldoff): Add field in_nested_struct.
2503         * tree-ssa-structalias.c (struct variable_info): Likewise.
2504         (push_fields_onto_fieldstack): If OFFSET is positive,
2505         set in_nested_struct.
2506         (create_variable_info_for): Copy setting of
2507         in_nested_struct from the field offset object.
2508         (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the
2509         variable info object.
2510         * tree-ssa-operands.c (add_vars_for_offset): If VAR
2511         belongs to a nested structure, adjust OFFSET by SFT_OFFSET(VAR).
2512
2513 2007-11-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2514
2515         PR rtl-optimization/33737
2516         * cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of
2517         target block after computing the probabilities of outgoing edges.
2518         Cap the frequency to BB_FREQ_MAX.
2519         * tree-ssa-threadupdate.c (redirect_edges): Also adjust count and
2520         frequency of the basic block if it has been reused.
2521
2522 2007-11-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2523
2524         PR rtl-optimization/33822
2525         * rtl.h (REG_OFFSET): Fix comment.
2526         * var-tracking.c (INT_MEM_OFFSET): New macro.
2527         (var_mem_set): Use it.
2528         (var_mem_delete_and_set): Likewise.
2529         (var_mem_delete): Likewise.
2530         (same_variable_part_p): Likewise.
2531         (vt_get_decl_and_offset): Likewise.
2532         (offset_valid_for_tracked_p): New predicate.
2533         (count_uses): Do not track locations with invalid offsets.
2534         (add_uses): Likewise.
2535         (add_stores): Likewise.
2536
2537 2007-11-07  Tom Tromey  <tromey@redhat.com>
2538
2539         * Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H)
2540         (BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H).
2541
2542 2007-11-07  Dmitry Zhurikhin  <zhur@ispras.ru>
2543             Andrey Belevantsev  <abel@ispras.ru>
2544
2545         * modulo-sched.c (sms_order_nodes, permute_partial_schedule,
2546         generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes.
2547         (calculate_order_params, sms_order_nodes): New parameter pmax_asap.
2548         Save calculated max_asap in it.         
2549         (sms_schedule): Calculate maxii using max_asap.
2550
2551 2007-11-07  Andreas Krebbel  <krebbel1@de.ibm.com>
2552
2553         * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp
2554         with -mhard-dfp/-mno-hard-dfp.
2555
2556 2007-11-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2557             Jakub Jelinek  <jakub@redhat.com>
2558
2559         PR middle-end/33670
2560         * haifa-sched.c (check_sched_flags): Remove.
2561         (sched_init): Don't call it.
2562
2563 2007-11-06  Diego Novillo  <dnovillo@google.com>
2564
2565         * tree-flow.h (struct fieldoff): Reformat comment. Document fields.
2566         * tree-ssa-operands.c: Tidy top-level comments.
2567         (add_vop): Likewise.
2568         (add_vars_for_offset): Tidy parameter formatting..
2569         (get_addr_dereference_operands): Likewise.
2570         (get_indirect_ref_operands): Likewise.
2571         (get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat.
2572         <OMP_ATOMIC_STORE>: Likewise.
2573
2574 2007-11-06  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2575
2576         PR target/32787
2577         * config/i386/driver-i386.c: Test for __GNUC__ instead of
2578         GCC_VERSION which is always defined.
2579
2580 2007-11-06  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2581
2582         PR target/30961
2583         * reload1.c (find_reloads): Also check in_reg when handling a
2584         simple move with an input reload and a destination of a hard register.
2585
2586 2007-11-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
2587
2588         * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
2589         (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
2590         TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
2591         TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
2592         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
2593         (m68k_sched_attr_type2): New function.
2594         (sched_adjust_cost_state): New static variable.
2595         (m68k_sched_adjust_cost): New static function implementing
2596         scheduler hook.
2597         (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
2598         New static variables.
2599         (m68k_sched_variable_issue): New static function implementing
2600         scheduler hook.
2601         (sched_dump_class_def, sched_dump_class_func_t): New typedefs.
2602         (sched_dump_split_class): New static function.
2603         (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
2604         variables.
2605         (sched_dump_dfa_class, m68k_sched_dump): New static function.
2606         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
2607         m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
2608         m68k_sched_dfa_post_advance_cycle): New static functions implementing
2609         scheduler hooks.
2610
2611         * config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
2612         (CPU_UNITS_QUERY): Define.
2613
2614         * config/m68k/cf.md: New file.
2615         * config/m68k/m68.md (cf.md): New include.
2616
2617 2007-11-06  Tom Tromey  <tromey@redhat.com>
2618
2619         PR c++/32256
2620         PR c++/32368
2621         * function.c (saved_in_system_header): New global.
2622         (push_cfun): Save in_system_header.
2623         (pop_cfun): Restore in_system_header.
2624         (push_struct_function): Save in_system_header.
2625
2626 2007-11-06  Douglas Gregor  <doug.gregor@gmail.com>
2627
2628         PR c++/33977
2629         PR c++/33886
2630         * c-common.c (c_build_qualified_type): Moved to c-typeck.c.
2631         (complete_array_type): Set canonical type appropriately.
2632         * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
2633         C and C++ front ends now have different versions of this function,
2634         because the C++ version needs to maintain canonical types here.
2635
2636 2007-11-04  Razya Ladelsky  <razya@il.ibm.com>
2637         
2638         * tree-parloops.c (reduction_info): Remove reduction_init field.
2639         (initialize_reductions): Remove creation of the reduction_init variable.
2640         (struct data_arg): Remove.
2641         (add_field_for_reduction, create_stores_for_reduction): New functions.
2642         (add_field_for_name): Remove reduction handling.
2643         (separate_decls_in_loop): Call add_field_for_reduction,
2644         create_stores_for_reduction.
2645
2646 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
2647
2648         PR tree-optimization/33458
2649         * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
2650         !is_gimple_val PHI argument, gimplify it and insert it on edge.
2651
2652         PR tree-optimization/33993
2653         * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
2654         rather than build_constructor_from_list if all list values are
2655         constants.
2656         (get_initial_def_for_induction): Use build_vector instead of
2657         build_constructor_from_list.
2658
2659 2007-11-05  Mark Mitchell  <mark@codesourcery.com>
2660
2661         PR target/33579
2662         * tree.h (DECL_INIT_PRIORITY): Do not require DECL_HAS_INIT_PRIORITY_P.
2663         (DECL_FINI_PRIORITY): Likewise.
2664         * tree.c (decl_init_priority_lookup): Remove assert.
2665         (decl_fini_priority_insert): Likewise.
2666         * cgraphunit.c (static_ctors): Make it a VEC.
2667         (static_dtors): Likewise.
2668         (record_cdtor_fn): Adjust accordingly.
2669         (build_cdtor): Generate multiple functions for each initialization
2670         priority.
2671         (compare_ctor): New function.
2672         (compare_dtor): Likewise.
2673         (cgraph_build_cdtor_fns): Sort the functions by priority before
2674         calling build_cdtor.
2675         (cgraph_build_static_cdtor): Put the priority in the function's name.
2676
2677 2007-11-05  H.J. Lu  <hongjiu.lu@intel.com>
2678
2679         PR driver/32632
2680         * common.opt: Add shared and pie.
2681
2682 2007-11-05  Bob Wilson  <bob.wilson@acm.org>
2683
2684         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not
2685         replace references to virtual_stack_vars_rtx in goto_handler.
2686
2687 2007-11-05  Paul Brook  <paul@codesourcery.com>
2688
2689         * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
2690         * config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
2691         (arm_file_start): Don't set Tag_ABI_PCS_wchar_t.  Call
2692         arm_lang_output_object_attributes_hook.
2693         * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
2694         (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
2695         * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
2696         prototype.
2697         * config/arm/t-arm.c (arm.o): New rule.
2698         * config/arm/arm-c.c: New file.
2699
2700 2007-11-05  Nick Clifton  <nickc@redhat.com>
2701             Sebastian Pop  <sebastian.pop@amd.com>
2702
2703         PR tree-optimization/32540
2704         PR tree-optimization/33922
2705         * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
2706         * tree-ssa-pre.c: Include params.h.
2707         (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
2708         to limit the maximum length of the PA set for a given block.
2709         * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
2710         * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.
2711
2712 2007-11-05  Nathan Sidwell  <nathan@codesourcery.com>
2713
2714         * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
2715         __fixunssfDI): Make return type unsigned.
2716         * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
2717         __fixunssfDI): Make return type unsigned.
2718
2719 2007-11-05  Jakub Jelinek  <jakub@redhat.com>
2720
2721         PR tree-optimization/33856
2722         * tree-data-ref.c (get_references_in_stmt): Don't add
2723         REFERENCE_CLASS_P trees to references vector if get_base_address
2724         returns NULL on them.
2725
2726 2007-11-05  Alexandre Oliva  <aoliva@redhat.com>
2727
2728         * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
2729
2730 2007-11-04  Andrew Pinski  <pinskia@gmail.com>
2731
2732         PR middle-end/32931
2733         * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
2734         for TRUTH_NOT_EXPR to type.
2735
2736 2007-11-04  Gerald Pfeifer  <gerald@pfeifer.com>
2737
2738         * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
2739
2740 2007-11-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2741
2742         PR fortran/10220
2743         * dwarf2out.c (add_calling_convention_attribute): Change
2744         second argument. Set calling convention to DW_CC_program for
2745         Fortran main program.
2746         (gen_subprogram_die): Adjust to new prototype for
2747         add_calling_convention_attribute.
2748
2749 2007-11-03  Dorit Nuzman  <dorit@il.ibm.com>
2750
2751         PR tree-optimization/33987
2752         * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
2753         Fix indentation.
2754         (vectorizable_reduction): Add type check.
2755
2756 2007-11-03  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2757
2758         PR c/29062
2759         * c-parser.c (c_parser_statement_after_labels): Error if a
2760         declaration is parsed after a label.
2761         
2762 2007-11-03  Daniel Jacobowitz  <dan@codesourcery.com>
2763
2764         PR debug/33921
2765         * reorg.c (emit_delay_sequence): Do not clear the locator on
2766         the jump instruction.
2767
2768 2007-11-03  Jakub Jelinek  <jakub@redhat.com>
2769
2770         PR middle-end/33670
2771         * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
2772         current sched region.
2773
2774 2007-11-02  Jakub Jelinek  <jakub@redhat.com>
2775
2776         * config/ia64/ia64.c (struct reg_write_state): Change into
2777         unsigned short bitfields rather than unsigned int, decrease
2778         first_pred to just 10 bits.
2779         (rws_insn): Change into a bitmap or if not ENABLE_CHECKING
2780         into two char array.
2781         (rws_insn_set, rws_insn_test): New functions.
2782         (in_safe_group_barrier): New variable.
2783         (rws_update): Remove first argument, always set rws_sum array.
2784         (rws_access_regno): Use rws_insn_set macro.  Only call rws_update
2785         or update rws_sum if !in_safe_group_barrier, adjust rws_update args.
2786         (rtx_needs_barrier): Use rws_insn_test macro.
2787         (safe_group_barrier_needed): Don't save/restore rws_sum array,
2788         instead set/clear in_safe_group_barrier flag.
2789
2790 2007-11-02  Bob Wilson  <bob.wilson@acm.org>
2791
2792         * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
2793         REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
2794         pointer or frame pointer.
2795         * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
2796         (MUST_USE_SJLJ_EXCEPTIONS): Define.
2797         (DWARF2_UNWIND_INFO): Define.
2798         (INCOMING_RETURN_ADDR_RTX): Define.
2799         (DWARF_FRAME_RETURN_COLUMN): Define.
2800
2801 2007-11-02  Tom Tromey  <tromey@redhat.com>
2802
2803         * varpool.c (dump_varpool): Use 'next', not 'next_needed' when
2804         traversing pool.
2805
2806 2007-11-02  Diego Novillo  <dnovillo@google.com>
2807
2808         * langhooks.h (struct lang_hooks_for_callgraph): Remove third
2809         argument from function pointer ANALYZE_EXPR.  Update all users.
2810         * cgraph.c (debug_cgraph_node): New.
2811         (debug_cgraph): New.
2812
2813 2007-11-02  Jakub Jelinek  <jakub@redhat.com>
2814
2815         PR rtl-optimization/33648
2816         * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
2817         the newly created basic block.
2818
2819 2007-11-01  Richard Guenther  <rguenther@suse.de>
2820
2821         * ggc-page.c (extra_order_size_tab): Add bitmap_head size.
2822
2823 2007-11-01  Steven Bosscher  <stevenb.gcc@gmail.com>
2824
2825         PR rtl-optimization/33828
2826         * gcse.c (compute_code_hoist_vbeinout): Fix order of computation
2827         of VBEIN and VBEOUT.
2828
2829 2007-11-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2830
2831         * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
2832         * sched-rgn.c (compute_trg_info): Zero 'el' local variable.
2833         * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.
2834
2835 2007-11-01  Nathan Sidwell  <nathan@codesourcery.com>
2836
2837         * gcc.c (getenv_spec_function): Escape the environment variable's
2838         value.
2839
2840 2007-11-01  Janis Johnson  <janis187@us.ibm.com>
2841
2842         * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
2843         show that CSE means common subexpression elimination.  Change wording
2844         for -fsee and define LCM.  Remove capitalization of optimizations
2845         for -ftree-reassoc, -ftree-pre, and -ftree-fre.
2846
2847 2007-11-01  Janis Johnson  <janis187@us.ibm.com>
2848
2849         PR testsuite/25352
2850         * doc/sourcebuild.texi (Test Directives): Document that xfail
2851         has no effect for dg-do except when dg-do-what is "run".
2852
2853 2007-11-01  Tom Tromey  <tromey@redhat.com>
2854
2855         * c-decl.c (grokdeclarator): Set decl source locations.
2856         * c-parser.c (c_parser_enum_specifier): Set location.
2857         (c_parser_struct_or_union_specifier): Likewise.
2858
2859 2007-11-01  Tom Tromey  <tromey@redhat.com>
2860
2861         * print-tree.c (print_node): Print column number.
2862
2863 2007-11-01  Jakub Jelinek  <jakub@redhat.com>
2864
2865         PR debug/33537
2866         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
2867         gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
2868         rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).
2869
2870         PR rtl-optimization/33673
2871         * gcse.c (cprop_jump): If a conditional jump has been optimized
2872         into unconditional jump, make the remaining normal edge fallthru
2873         and delete the jump insn.
2874
2875 2007-11-01  Ben Elliston  <bje@au.ibm.com>
2876
2877         * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
2878         (set_mem_attrs_from_reg): Likewise.
2879
2880 2007-11-01  Michael Matz  <matz@suse.de>
2881
2882         PR tree-optimization/33961
2883         * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
2884         (name_to_bb_hash, name_to_bb_eq): Consider and check it.
2885         (add_or_mark_expr): New argument 'store', using it to search
2886         the hash table.
2887         (nt_init_block): Adjust calls to add_or_mark_expr.
2888
2889 2007-10-31  Jakub Jelinek  <jakub@redhat.com>
2890
2891         PR target/31507
2892         * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
2893         for the first push_operand.
2894
2895 2007-10-31  Revital Eres  <eres@il.ibm.com>
2896
2897         * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
2898         reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
2899         vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
2900         movmisalignv2sf, vcondv2sf): New.
2901         (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
2902         UNSPEC_EXTODD_V2SF): Define new constants.
2903         * config/rs6000/rs6000-protos.h (paired_expand_vector_move,
2904         paired_emit_vector_cond_expr): New.
2905         * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
2906         * config/rs6000/rs6000.c (paired_expand_vector_move,
2907         paired_emit_vector_cond_expr, paired_emit_vector_compare):
2908         New functions.
2909         * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.
2910
2911 2007-10-31  Sebastian Pop  <sebastian.pop@amd.com>
2912
2913         PR tree-optimization/32377
2914         * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
2915         work also for unknown number of iterations.
2916         (analyze_subscript_affine_affine): Clean up.  Don't fail when the 
2917         number of iterations is not known.
2918
2919 2007-10-31  Richard Guenther  <rguenther@suse.de>
2920
2921         PR middle-end/33779
2922         * fold-const.c (extract_muldiv_1): Make sure to not introduce
2923         new undefined integer overflow.
2924         (fold_binary): Avoid useless conversion.
2925
2926 2007-10-31  Richard Sandiford  <rsandifo@nildram.co.uk>
2927
2928         PR target/33948
2929         * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P check.
2930
2931 2007-10-31  Andreas Krebbel  <krebbel1@de.ibm.com>
2932
2933         * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.
2934
2935         * config/s390/s390.c: (override_options): Replace
2936         -mhard-dfp/-msoft-dfp with -mhard-dfp/-mno-hard-dfp.
2937         * config/s390/s390.opt: Likewise.
2938         * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
2939         definition.
2940
2941 2007-10-30  Janis Johnson  <janis187@us.ibm.com>
2942
2943         * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
2944
2945 2007-10-30  Janis Johnson  <janis187@us.ibm.com>
2946
2947         * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
2948         optimization options.
2949         (Optimize Options): Add -fdce and -fdse to the list of optimizations
2950         enabled by -O.  Document -fdce and -fdse.
2951
2952 2007-10-30  Jakub Jelinek  <jakub@redhat.com>
2953
2954         PR c++/33709
2955         * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
2956         convert second operand of COMPOUND_EXPR to the original type of
2957         that argument.
2958
2959 2007-10-30  Richard Guenther  <rguenther@suse.de>
2960
2961         * tree-ssa-operands.c (add_vars_for_offset): Fix exit test
2962         of loop adding SFTs as virtual operands.
2963
2964 2007-10-30  Richard Guenther  <rguenther@suse.de>
2965
2966         * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
2967
2968 2007-10-29  Dorit Nuzman  <dorit@il.ibm.com>
2969
2970         PR tree-optimization/32893
2971         * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
2972         STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.
2973
2974 2007-10-29  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2975
2976         * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
2977         x86_64 versions.
2978         (sub_ddmmss): Likewise.
2979         (umul_ppmm): Likewise.
2980         (udiv_qrnnd): Likewise.
2981
2982 2007-10-29  Janis Johnson  <janis187@us.ibm.com>
2983
2984         PR testsuite/24841
2985         * doc/sourcebuild.texi (Test Directives): Document that dg-require
2986         directives must come before dg-additional-sources.
2987
2988 2007-10-29  Jakub Jelinek  <jakub@redhat.com>
2989
2990         PR tree-optimization/33723
2991         * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
2992         MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.
2993
2994 2007-10-29  Richard Sandiford  <rsandifo@nildram.co.uk>
2995
2996         PR tree-optimization/33614
2997         * gimplify.c (gimplify_init_constructor): Gimplify vector constructors
2998         if they can't be reduced to VECTOR_CSTs and aren't legitimate
2999         initializer constants.
3000
3001 2007-10-29  Richard Guenther  <rguenther@suse.de>
3002
3003         PR tree-optimization/33870
3004         * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
3005         (add_virtual_operand): Do not recurse into MPTs looking for pointed-to
3006         SFTs.
3007
3008 2007-10-29  Richard Guenther  <rguenther@suse.de>
3009
3010         * passes.c (init_optimization_passes): Exchange store_copy_prop
3011         with copy_prop.
3012         * tree-pass.h (pass_store_copy_prop): Remove.
3013         * tree-ssa-copy.c (do_store_copy_prop): Remove.
3014         (stmt_may_generate-copy): Do not handle store_copy_prop.
3015         (get_copy_of_val): Likewise.
3016         (set_copy_of_val): Likewise.
3017         (copy_prop_visit_assignment): Likewise.
3018         (copy_prop_visit_stmt): Likewise.
3019         (copy_prop_visit_phi_node): Likewise.
3020         (init_copy_prop): Likewise.
3021         (execute_copy_prop): Likewise.
3022         (do_copy_prop): Remove.
3023         (gate_store_copy_prop): Likewise.
3024         (store_copy_prop): Likewise.
3025         (pass_store_copy_prop): Likewise.
3026         (pass_copy_prop): Call execute_copy_prop.
3027         * opts.c (decode_options): Do not set flag_tree_store_copy_prop.
3028         * common.opt (ftree-store-copy-prop): Mark obsolete.
3029         * doc/invoke.texi (ftree-store-copy-prop): Remove documentation.
3030
3031 2007-10-29  Ian Lance Taylor  <iant@google.com>
3032
3033         * ifcvt.c (noce_can_store_speculate_p): New static function.
3034         (noce_process_if_block): Call it.
3035         (if_convert): Remove recompute_dominance parameter.  Change all
3036         callers.
3037
3038 2007-10-29  Richard Guenther  <rguenther@suse.de>
3039
3040         * tree-flow-inline.h (get_subvar_at): Use binary search.
3041         (get_first_overlapping_subvar): New function to binary search
3042         for the first overlapping subvar.
3043         * tree-ssa-operands.c (add_vars_for_offset): Strip down to
3044         just handle adding subvars for a pointed-to subvar.  Optimize
3045         and use get_first_overlapping_subvar.
3046         (add_vars_for_bitmap): Fold into single caller.
3047         (add_virtual_operand): Streamline, inherit add_vars_for_bitmap
3048         and non pointed-to bits of add_vars_for_offset.
3049
3050 2007-10-29  Revital Eres  <eres@il.ibm.com> 
3051
3052         * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.
3053
3054 2007-10-29  Razya Ladelsky  <razya@il.ibm.com>
3055             Zdenek Dvorak  <ook@ucw.cz>
3056
3057         OMP_ATOMIC Changes,
3058         reduction support for automatic parallelization.
3059
3060         * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
3061         OMP_ATOMIC_STORE.
3062         * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
3063         * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
3064         and OMP_ATOMIC_STORE.
3065         * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
3066         * gimple-low.c (lower_stmt): Same.
3067         * gimplify.c (gimplify_expr): Same.
3068         (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
3069         gimplify_omp_atomic_mutex): Remove.
3070         (gimplify_omp_atomic): Change it to simply gimplify the
3071         statement instead of expanding it.
3072         * omp-low.c: Add includes to optabs.h, cfgloop.h.
3073         (expand_omp_atomic, expand_omp_atomic_pipeline,
3074         goa_stabilize_expr, expand_omp_atomic_mutex,
3075         expand_omp_atomic_fetch_op): New functions to implement
3076         expansion of OMP_ATOMIC.
3077         (expand_omp, build_omp_regions_1): Add support for
3078         OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
3079         * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
3080         OMP_ATOMIC_STORE.
3081         * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
3082         OMP_ATOMIC_STORE.
3083         * tree-parloops.c: add include to tree-vectorizer.h.
3084         (reduction_info): New structure for reduction.
3085         (reduction_list): New list to represent list of reductions per loop.
3086         (struct data_arg): New helper structure for reduction.
3087         (reduction_info_hash, reduction_info_eq, reduction_phi,
3088         initialize_reductions, create_call_for_reduction,
3089         create_phi_for_local_result, create_call_for_reduction_1,
3090         create_loads_for_reductions, create_final_loads_for_reduction):
3091         New functions.
3092         (loop_parallel_p): Identify reductions, add reduction_list parameter.
3093         (separate_decls_in_loop_name): Support reduction variables.
3094         (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
3095         call create_loads_for_reduction for each reduction.
3096         (canonicalize_loop_ivs): Identify reductions, add reduction_list
3097         parameter.
3098         (transform_to_exit_first_loop): Add reduction support, add
3099         reduction_list parameter.
3100         (gen_parallel_loop): Add reduction_list parameter.  Add call
3101         separate_decls_in_loop with
3102         the new argument.  Traverse reductions and call
3103         initialize_reductions, create_call_for_reduction.
3104         (parallelize_loops): Create and delete the reduction list.
3105         (add_field_for_name): Change use of data parameter.  Add fields for
3106         reductions.
3107         * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
3108         * tree-vect-analyze.c (vect_analyze_loop_form): export it.
3109         * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
3110         * tree-inline.c (estimate_num_insns_1): add cases for
3111         OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
3112         * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
3113         * tree-ssa-operands.c (get_addr_dereference_operands):
3114         New function.  Subroutine of get_indirect_ref_operands.
3115         (get_indirect_ref_operands): Call get_addr_dereference_operands.
3116         (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
3117
3118
3119 2007-10-29  Hans-Peter Nilsson  <hp@axis.com>
3120
3121         * config/cris/cris.c: Include df.h.
3122         (cris_address_cost): Add gcc_assert for canonicalization
3123         assumptions.  For PLUS with MULT or register, correct
3124         test for register in other arm.  Tweak comments.
3125
3126 2007-10-28  Richard Guenther  <rguenther@suse.de>
3127
3128         * tree-ssa-operands.c (add_vars_for_offset): Add parameter
3129         telling if the var is to be treated as points-to location.
3130         (add_vars_for_bitmap): Pass true to add_vars_for_offset.
3131         (add_virtual_operand): Only recurse into MPTs if aliases
3132         is from a NMT.
3133
3134 2007-10-28  Richard Guenther  <rguenther@suse.de>
3135
3136         * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
3137         (add_vars_for_bitmap): Do not recurse further.  Only add vars
3138         for pointed-to SFTs.
3139         (add_virtual_operand): Re-instantiate loop to add operands for
3140         aliases.  Recurse into MPTs.
3141         (get_indirect_ref_operands): If we fall back to use a pointers
3142         SMT, make sure to not prune based on the access offset and size.
3143
3144 2007-10-28  Andrew Pinski  <pinskia@gmail.com>
3145
3146         PR tree-opt/33589
3147         * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
3148         the eh information on the statement.
3149
3150 2007-10-28  Richard Guenther  <rguenther@suse.de>
3151
3152         * tree-flow.h (subvar_t): Make it a VEC.
3153         (struct subvar): Remove.
3154         (struct var_ann_d): Use VEC(tree,gc) to store subvars.
3155         * tree-flow-inline.h (get_subvar_at): Adjust iterators over
3156         variable subvars.
3157         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
3158         * tree-nrv.c (dest_safe_for_nrv_p): Likewise.
3159         * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
3160         (set_initial_properties): Likewise.
3161         (setup_pointers_and_addressables): Likewise.
3162         (new_type_alias): Likewise.
3163         (create_overlap_variables_for): Likewise.
3164         * tree-dfa.c (dump_subvars_for): Likewise.
3165         * tree-ssa-operands.c (add_vars_for_offset): Likewise.
3166         (get_expr_operands): Likewise.
3167         (add_to_addressable_set): Likewise.
3168         * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
3169
3170 2007-10-28  Uros Bizjak  <ubizjak@gmail.com>
3171
3172         PR tree-optimization/33920
3173         * tree-if-conv.c (tree_if_conversion): Force predicate of single
3174         successor bb to true when predecessor bb has NULL predicate.
3175         (find_phi_replacement_condition): Assert that tmp_cond is non-null.
3176
3177 2007-10-28  Richard Sandiford  <rsandifo@nildram.co.uk>
3178
3179         * config/mips/mips.md: Add combiner patterns for DImode extensions
3180         of HImode and QImode truncations.  Reformat HImode <- QImode pattern
3181         for consistency.
3182
3183 2007-10-28  Richard Sandiford  <rsandifo@nildram.co.uk>
3184
3185         PR target/33895
3186         * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.
3187
3188 2007-10-28  Andreas Krebbel  <krebbel1@de.ibm.com>
3189
3190         * dce.c (delete_unmarked_insns): Just delete the RETVAL and
3191         LIBCALL notes if they are about to be moved to the same insn.
3192
3193 2007-10-27  Richard Guenther  <rguenther@suse.de>
3194
3195         PR tree-optimization/33870
3196         * tree-ssa-operands.c (add_vars_for_offset): Reduce code
3197         duplication.  Remove redundant call to access_can_touch_variable.
3198         (add_vars_for_bitmap): New helper for recursing over MPT contents.
3199         (add_virtual_operand): Use it.
3200
3201 2007-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3202
3203         PR fortran/31608
3204         * pa.h (ASM_PN_FORMAT): Delete define.
3205
3206 2007-10-26  Janis Johnson  <janis187@us.ibm.com>
3207
3208         * doc/invoke.texi (Option Summary, optimizations): Remove
3209         -fbounds-check.  Add -fassociative-math, -freciprocal-math,
3210         -ftree-vrp and -funit-at-a-time.  Change -fno-split-wide-types to
3211         -fsplit-wide-types to match later entry.  Break up a long line.
3212         (Option Summary, code gen options)  Add -fno-stack-limit.  Add
3213         missing @gol to the end of a line.
3214         (Optimization Options): Remove -fbounds-check, which is also
3215         documented under Code Generation Options.  Remove =n from
3216         index entry for -ftree-parallelize-loops.  Change -fno-cprop-registers
3217         to -fcprop-registers to match other options, and say when it is
3218         enabled rather than disabled.  Remove extra index entry for
3219         -fno-cx-limited-range.  Add index entries for -fstack-protector
3220         and -fstack-protector-all.
3221         (Code Gen Options): Add index entry for -ftls-model.
3222
3223 2007-10-26  Anatoly Sokolov <aesok@post.ru>
3224
3225         * config/avr/avr.c (avr_OS_task_function_p): Add new function.
3226         (avr_regs_to_save): Handle functions with 'OS_task' attribute.
3227         (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
3228         expand_epilogue, output_movhi): Don't handle 'main' function.
3229         (avr_attribute_table): Add 'OS_task' function attribute.
3230         * config/avr/avr.h (machine_function): Remove 'is_main' field, add
3231         'is_OS_task' field.
3232         * config/avr/avr.md (return_from_main_epilogue): Remove insn.
3233         (return_from_epilogue, return_from_interrupt_epilogue): Don't handle
3234         'main' function.
3235         * config/avr/avr.opt (minit-stack): Remove.
3236
3237 2007-10-26  Eric Botcazou  <ebotcazou@adacore.com>
3238
3239         * tree-nested.c (get_trampoline_type): Fix thinko.
3240
3241 2007-10-26  Douglas Gregor  <doug.gregor@gmail.com>
3242
3243         PR c++/33601
3244         * tree.c (build_offset_type): Build canonical type based on the
3245         TYPE_MAIN_VARIANT of the base type.
3246
3247 2007-10-26  Daniel Jacobowitz  <dan@codesourcery.com>
3248
3249         * reorg.c (emit_delay_sequence): Move insn locator from the
3250         first insn to the sequence.
3251
3252 2007-10-26  Samuel Tardieu  <sam@rfc1149.net>
3253
3254         * ipa-pure-const.c (check_decl): Return immediately when
3255         pure_const_state has been set to IPA_NEITHER.
3256
3257 2007-10-25  Ira Rosen  <irar@il.ibm.com>
3258
3259         PR tree-optimization/33833
3260         * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
3261         and convert init to sizetype in inner_base construction.
3262
3263 2007-10-25  Richard Guenther  <rguenther@suse.de>
3264
3265         * tree-flow.h (mem_sym_stats): Remove.
3266         (dump_mem_sym_stats_for_var): Declare.
3267         * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
3268         (mem_sym_stats): Move ...
3269         * tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
3270         (mem_sym_score): Rename from ...
3271         (pscore): ... this.  Remove.
3272         (dump_mem_sym_stats_for_var): New function.  Dump the score, but
3273         not the frequencies.
3274         (compare_mp_info_entries): Make sort stable by disambiguating
3275         on DECL_UID.
3276
3277 2007-10-25  Ira Rosen  <irar@il.ibm.com>
3278
3279         PR tree-optimization/33866
3280         * tree-vect-transform.c (vectorizable_store): Check operands of all
3281         the stmts in the group of strided accesses. Get def stmt type for each
3282         store in the group and pass it to vect_get_vec_def_for_stmt_copy ().
3283
3284 2007-10-25  Uros Bizjak  <ubizjak@gmail.com>
3285
3286         * config/i386/constraints.md (Y0): Rename register constraint to Yz.
3287         (Yt): Rename register constraint to Y2.
3288         * config/i386/sse.md: Use renamed register constraints.
3289         * config/i386/mmx.md: Ditto.
3290         * config/i386/i386.md: Ditto.
3291
3292 2007-10-25  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3293
3294         * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.
3295
3296 2007-10-24  Chao-ying Fu  <fu@mips.com>
3297
3298         * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
3299         DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.
3300
3301 2007-10-24  Samuel Tardieu  <sam@rfc1149.net>
3302             Olga Golovanevsky <olga@il.ibm.com>
3303         
3304         * ipa-struct-reorg.c (replace_field_acc): Make it clear to
3305         the compiler that wr.wrap and wr.domain are initialized in
3306         any case.
3307
3308 2007-10-24  Samuel Tardieu  <sam@rfc1149.net>
3309
3310         * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
3311         to print gcov_type values.
3312
3313 2007-10-24  Eric B. Weddington  <eweddington@cso.atmel.com>
3314
3315         * config/avr/avr.h: Do not include progmem_section definition when
3316         building with IN_TARGET_LIBS.
3317
3318 2007-10-24  Richard Sandiford  <rsandifo@nildram.co.uk>
3319
3320         PR target/33755
3321         * config/mips/mips.c (mips_lo_sum_offset): New structure.
3322         (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
3323         (mips_lo_sum_offset_lookup, mips_record_lo_sum)
3324         (mips_orphaned_high_part_p: New functions.
3325         (mips_avoid_hazard): Don't check INSN_P here.
3326         (mips_avoid_hazards): Rename to...
3327         (mips_reorg_process_insns): ...this.  Cope with
3328         !TARGET_EXPLICIT_RELOCS.  Delete orphaned high-part relocations,
3329         or turn them into nops.
3330         (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
3331         dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
3332         (mips_set_mips16_mode): Don't set flag_delayed_branch here.
3333         (mips_override_options): Set flag_delayed_branch to 0.
3334
3335 2007-10-24  Richard Sandiford  <rsandifo@nildram.co.uk>
3336
3337         * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
3338         MIPS-specific implementation details.
3339         (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
3340         (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
3341         (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
3342         for targets with movmemsi.
3343         (MOVE_BY_PIECES_P): Define.
3344         * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
3345         (mips_block_move_loop): Add a bytes_per_iter argument.
3346         (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
3347         Update call to mips_block_move_loop.
3348
3349 2007-10-24  Michael Matz  <matz@suse.de>
3350
3351         PR debug/33868
3352         * var-tracking.c (variable_union): Don't break after one loop
3353         iteration but only when a difference is found.
3354         (dump_variable): Also print DECL_UID.
3355
3356 2007-10-24  Olga Golovanevsky  <olga@il.ibm.com>
3357
3358         * ipa-type-escape.h: Expose function
3359         is_array_access_through_pointer_and_index.
3360         * ipa-type-escape.c
3361         (is_array_access_through_pointer_and_index):
3362         Add three new parameters. Add support of
3363         POINTER_PLUS_EXPR tree code.
3364
3365 2007-10-24  Olga Golovanevsky  <olga@il.ibm.com>
3366
3367         * ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
3368         * tree-pass.h: Add pass_ipa_struct_reorg.
3369         * common.opt: Add ipa-struct-reorg flag.
3370         * Makefile.in: Add ipa-strcut-reorg.o compilation.
3371         * passes.c: Add pass pass_ipa_struct_reorg.
3372         * params.h:  Add STRUCT_REORG_COLD_STRUCT_RATIO.
3373         * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
3374
3375 2007-10-24  Ira Rosen  <irar@il.ibm.com>
3376
3377         PR tree-optimization/33804
3378         * tree-vect-transform.c (vectorizable_operation): Remove the
3379         checks that the vectorization is worthwhile from the transformation
3380         phase.
3381
3382 2007-10-24  Ira Rosen  <irar@il.ibm.com>
3383
3384         * tree-vect-analyze.c (vect_build_slp_tree): Return false if
3385         vectype cannot be determined for the scalar type.
3386         (vect_analyze_slp_instance): Likewise.
3387         * tree-vect-transform.c (vect_model_reduction_cost): Change the
3388         return type to bool. Return false if vectype cannot be determined 
3389         for the scalar type.
3390         (vect_get_constant_vectors): Return false if vectype cannot be
3391         determined for the scalar type.
3392         (get_initial_def_for_induction, vect_get_vec_def_for_operand,
3393         get_initial_def_for_reduction, vect_create_epilog_for_reduction,
3394         vectorizable_reduction): Likewise.      
3395
3396 2007-10-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3397
3398         * config.gcc: For a FreeBSD target, parse the value of ${target}
3399         to determine the value of FBSD_MAJOR, instead of adding an
3400         explicit check for every possible FreeBSD major version.
3401
3402 2007-10-23  Uros Bizjak  <ubizjak@gmail.com>
3403
3404         PR rtl-optimization/33846
3405         * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.
3406
3407 2007-10-23  Dorit Nuzman  <dorit@il.ibm.com>
3408
3409         PR tree-optimization/33860
3410         * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
3411         interleaved accesses in case the dr is inside the inner-loop during
3412         outer-loop vectorization.
3413
3414 2007-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
3415
3416         * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
3417         Document MEM_POINTER.  Replace mentions of "integrated"
3418         field with "return_val".  Delete outdated stuff.
3419
3420 2007-10-23  David Edelsohn  <edelsohn@gnu.org>
3421
3422         * config/rs6000/rs6000.c (rs6000_override_options): Set
3423         rs6000_altivec_abi on AIX.
3424         (conditional_register_usage): Set VR20:31 fixed on AIX.
3425
3426 2007-10-23  Richard Guenther  <rguenther@suse.de>
3427
3428         * alias.c (get_alias_set): For INDIRECT_REFs, deal with
3429         SSA_NAME pointers.
3430
3431 2007-10-22  Seongbae Park <seongbae.park@gmail.com>
3432             David S. Miller  <davem@davemloft.net>
3433
3434         * df-scan.c (df_get_call_refs): Mark global registers as both a
3435         DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF.
3436
3437 2007-10-22  Dorit Nuzman  <dorit@il.ibm.com>
3438
3439         PR tree-optimization/33834
3440         PR tree-optimization/33835
3441         * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE
3442         stmts need to be checked for success seperately.
3443         * tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
3444         Remove the check that stmt is not LIVE.
3445         (vectorizable_assignment, vectorizable_induction): Likewise.
3446         (vectorizable_operation, vectorizable_type_demotion): Likewise.
3447         (vectorizable_type_promotion, vectorizable_load, vectorizable_store):
3448         Likewise.
3449         (vectorizable_live_operation): Check that op is not NULL. 
3450
3451 2007-10-22  Janis Johnson  <janis187@us.ibm.com>
3452
3453         * doc/invoke.texi (Optimization Options): In the summary, show
3454         that the value for options -falign-jumps, -falign-labels,
3455         -falign-loops, -falign-functions, -fsched-stalled-insns, and
3456         -fsched-stalled-insns-dep is optional.  In the summary, show that
3457         -fsched-stalled-insns takes an optional argument and that
3458         -fparallelize-loops takes an argument.  Add opindex for several
3459         optimization options, and fix typos in the opindex commands for
3460         several others.  In the descriptions for -fsched-stalled-insns
3461         and -fsched-stalled-insns-dep, show the options with and without
3462         values.
3463
3464 2007-10-22  Eric B. Weddington  <eweddington@cso.atmel.com>
3465
3466         * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
3467         produced.
3468         * config/avr/avr.h (LINK_SPEC): Likewise.
3469         (CRT_BINUTILS_SPECS): Likewsie.
3470         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3471
3472 2007-10-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3473
3474         PR rtl-optimization/33644
3475         * cfgcleanup.c: Do not include dce.h.
3476         * cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
3477         * combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
3478         * dce.c (something_changed): Delete.
3479         (libcall_dead_p): New predicate.
3480         (delete_unmarked_insns): Use it to delete dead libcalls.
3481         Deal with REG_LIBCALL and REG_RETVAL notes.
3482         (prescan_libcall_for_dce): New function.
3483         (prescan_insns_for_dce): Use it to deal with libcalls.
3484         (mark_reg_dependencies): Do nothing special for libcalls.
3485         (dce_process_block): Likewise.
3486         (fast_dce): Delete unused local variable.
3487         (run_fast_dce): Do not return a value.
3488         * dce.h (struct df): Delete.
3489         (run_fast_dce): Adjust prototype.
3490         * optabs.c (libcall_id): Delete.
3491         (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
3492         (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
3493         * reload1.c (reload): Delete REG_LIBCALL_ID case.
3494         * rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
3495         * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
3496         notes instead of REG_LIBCALL_ID notes.
3497         * reg-notes.def (LIBCALL_ID): Delete.
3498         * Makefile.in (see.o): Add dce.h dependency.
3499         (cfgcleanup.o): Remove dce.h dependency.
3500
3501 2007-10-22  Michael Matz  <matz@suse.de>
3502
3503         PR tree-optimization/33855
3504         * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
3505         and VECTOR_TYPE.
3506
3507 2007-10-22  Ira Rosen  <irar@il.ibm.com>
3508
3509         PR tree-optimization/33854
3510         * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
3511         FLOAT_EXPR to the list of promotion operations. 
3512
3513 2007-10-22  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3514
3515         PR target/29473
3516         PR target/29493
3517         * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax.
3518         (print_reg): Print register prefix only with AT&T asm syntax. 
3519         Support pc_rtx for RIP register.
3520         (print_operand_address): Use print_reg()'s pc_rtx support for RIP
3521         relative addressing.  Always print segment register prefix with AT&T
3522         asm syntax and never with Intel asm syntax.
3523         (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands. 
3524         Fix prefix for 16-byte XFmode operands.
3525         (output_addr_const_extra): Support Intel asm syntax.
3526         (x86_file_start): Don't use register prefix with Intel asm syntax.
3527         * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo.
3528         ("return_internal_long"): Fix Intel asm syntax output.
3529         ("set_got_rex64"): Support Intel asm syntax.
3530         ("set_rip_rex64"): Likewise.
3531         ("set_got_offset_rex64"): Likewise.
3532         ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm
3533         syntax.
3534         ("*tls_global_dynamic_64"): Likewise.
3535         ("*tls_local_dynamic_base_64"): Likewise.
3536         ("*load_tp_si")("*load_tp_di"): Likewise.
3537         ("*add_tp_si")("*add_tp_di"): Likewise.
3538         ("*tls_dynamic_lea_64"): Likewise.
3539         ("*sibcall_value_1_rex64_v"): Likewise.
3540         ("stack_tls_protect_set_si"): Likewise.
3541         ("stack_tls_protect_set_di"): Likewise.
3542         ("stack_tls_protect_test_si"): Likewise.
3543         ("stack_tls_protect_test_di"): Likewise.
3544         * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm
3545         syntax output.
3546         ("*movv2sf_internal_rex64"): Likewise.
3547         * config/i386/cpuid.h (__cpuid): Support Intel asm syntax.
3548         (__get_cpuid_max): Likewise.
3549
3550 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3551
3552         * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give
3553         the STRICT_P argument type "bool" rather than "int".
3554         (mips_legitimate_address_p): Likewise.
3555         (fp_register_operand, lo_operand): Delete.
3556         (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
3557         (mips_emit_scc): Rename to...
3558         (mips_expand_scc): ...this.
3559         (gen_conditional_branch): Rename to...
3560         (mips_expand_conditional_branch): ...this.
3561         (gen_conditional_move): Rename to...
3562         (mips_expand_conditional_move): ...this.
3563         (mips_gen_conditional_trap): Rename to...
3564         (mips_expand_conditional_trap): ...this and take an rtx code instead
3565         of an operands array.
3566         (mips_expand_call): Give the SIBCALL_P argument type "bool"
3567         rather than "int".
3568         (mips_emit_fcc_reload): Rename to...
3569         (mips_expand_fcc_reload): ...this.
3570         (init_cumulative_args): Rename to...
3571         (mips_init_cumulative_args): ...this and remove the libname argument.
3572         (function_arg_advance): Rename to...
3573         (mips_function_arg_advance): ...this.
3574         (function_arg): Rename to...
3575         (mips_function_arg): ...this and use "rtx" instead of
3576         "struct rtx_def *".
3577         (function_arg_boundary): Rename to...
3578         (mips_function_arg_boundary): ...this.
3579         (mips_expand_unaligned_load): Rename to...
3580         (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
3581         and BITPOS arguments type "HOST_WIDE_INT".
3582         (mips_expand_unaligned_store): Rename to...
3583         (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
3584         and BITPOS arguments type "HOST_WIDE_INT".
3585         (override_options): Rename to...
3586         (mips_override_options): ...this.
3587         (print_operand): Rename to...
3588         (mips_print_operand): ...this.
3589         (print_operand_address): Rename to...
3590         (mips_print_operand_address): ...this.
3591         (mips_output_ascii): Remove the PREFIX argument.
3592         (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
3593         rather than "int".
3594         (mips_can_use_return_insn): Return a "bool" rather than an "int".
3595         (mips_function_value): Remove the FUNC argument.  Use "rtx" instead
3596         of "struct rtx_def *".
3597         (mips_secondary_reload_class): Give the IN_P argument type "bool"
3598         rather than "int".
3599         (build_mips16_call_stub): Delete.
3600         (mips_store_data_bypass_p): Return a "bool" rather than an "int".
3601         (mips_use_ins_ext_p): Give the second and third arguments type
3602         "HOST_WIDE_INT" rather than "rtx".
3603         * config/mips/mips.h: Update after the above changes.  Tweak comments
3604         and formatting.
3605         (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument.
3606         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
3607         (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
3608         element type from "char" to "bool".
3609         (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely)
3610         (mips_cpu_info_table): Delete.
3611         * config/mips/mips.md: Update after the above changes.  Tweak some
3612         formatting.
3613         * config/mips/mips-ps-3d.md: Likewise.
3614         * config/mips/mips.c: Tweak comments and formatting.
3615         Use NULL-like macros rather than 0 in various places.
3616         (mips_section_threshold): Rename to...
3617         (mips_small_data_threshold): ...this and give it an unsigned type.
3618         (num_source_filenames): Remove explicit initialization.
3619         (sdb_label_count): Likewise.
3620         (sym_lineno): Delete.
3621         (set_noat): Make static.
3622         (mips_branch_likely): Likewise, and give it type "bool".
3623         (mips_isa_info): Rename to...
3624         (mips_isa_option_info): ...this.
3625         (mips_flag_delayed_branch): Rename to...
3626         (mips_base_delayed_branch): ...this.
3627         (mips_split_addresses): Delete.
3628         (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
3629         element type from "char" to "bool".
3630         (mips_regno_to_class): Add an explicit array size.
3631         (mips16_flipper): Change from type "int" to type "bool".
3632         (mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check.
3633         (mips_tls_operand_p): Rename to...
3634         (mips_tls_symbol_p): ...this.
3635         (mips_global_symbol_p): Remove redundant "const".
3636         (mips_offset_within_alignment_p): Simplify.
3637         (mips_regno_mode_ok_for_base_p): Change the name of the last argument
3638         to STRICT_P and give it type bool.
3639         (mips_valid_base_register_p): Likewise.
3640         (mips_classify_address): Likewise.
3641         (mips_legitimate_address_p): Likewise.
3642         (mips16_unextended_reference_p): Take the offset as an
3643         "unsigned HOST_WIDE_INT" rather than an "rtx".  Simplify.
3644         (mips_const_insns): Use IN_RANGE.
3645         (mips_force_temporary): Remove an unnecessary copy_rtx.
3646         (mips16_gp_pseudo_reg): Simplify.
3647         (mips_split_symbol): Remove an unnecessary copy_rtx.
3648         (mips_legitimize_tls_address): Only create registers if we need them.
3649         (mips_legitimize_address): Use mips_split_plus.
3650         (mips_move_integer): Swap DEST and TEMP arguments.  Rename local
3651         variable COST to NUM_OPS.
3652         (mips_legitimize_move): Use gen_lowpart.
3653         (mips_rewrite_small_data): Rename the OP parameter to PATTERN.
3654         (m16_check_op): Use IN_RANGE.
3655         (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
3656         (mips_split_doubleword_move): Pass booleans to mips_subword.
3657         (mips_output_move): Store the mode in a local variable.
3658         Explicitly assert that this function does not deal with
3659         MFLO and MFHI.  Use SMALL_OPERAND_UNSIGNED.  Make order of
3660         cases more consistent.
3661         (mips_relational_operand_ok_p): Rename to...
3662         (mips_int_order_operand_ok_p): ...this.
3663         (mips_canonicalize_comparison): Rename to...
3664         (mips_canonicalize_int_order_test): ...this.
3665         (mips_emit_int_relational): Rename to...
3666         (mips_emit_int_order_test): ...this.  Store the mode in a local
3667         variable.
3668         (mips_reverse_fp_cond_p): Rename to...
3669         (mips_reversed_fp_cond): ...this.
3670         (mips_emit_compare): Make the order of the statements more consistent.
3671         (mips_emit_scc): Rename to...
3672         (mips_expand_scc): ...this.
3673         (gen_conditional_branch): Rename to...
3674         (mips_expand_conditional_branch): ...this.
3675         (gen_conditional_move): Rename to...
3676         (mips_expand_conditional_move): ...this.  Build the condition
3677         separately from the main pattern.
3678         (mips_gen_conditional_trap): Rename to...
3679         (mips_expand_conditional_trap): ...this and take an rtx code instead
3680         of an operands array.  Simplify.
3681         (init_cumulative_args): Rename to...
3682         (mips_init_cumulative_args): ...this.  Use memset rather than a
3683         copy from a zeroed static.  Use prototype_p and stdarg_p.
3684         (mips_arg_info): Rename to...
3685         (mips_get_arg_info): ...this and put the INFO argument first.
3686         (function_arg): Rename to...
3687         (mips_function_arg): ...this and use "rtx" instead of
3688         "struct rtx_def *".  Only split structures into chunks if 
3689         TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on
3690         a chunk-by-chunk basis.  Use SCALAR_FLOAT_TYPE_P instead of a
3691         comparison with REAL_TYPE.  Rename local variable REG to REGNO
3692         and make it unsigned.
3693         (function_arg_advance): Rename to...
3694         (mips_function_arg_advance): ...this.
3695         (function_arg_boundary): Rename to...
3696         (mips_function_arg_boundary): ...this.
3697         (mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison
3698         with MODE_INT.
3699         (mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a
3700         comparison with REAL_TYPE.
3701         (mips_function_value): Remove the FUNC argument.  Rename local
3702         variable UNSIGNEDP to UNSIGNED_P.
3703         (mips_return_in_memory): Use IN_RANGE.
3704         (mips_setup_incoming_varargs): Pass a boolean rather than an int
3705         to FUNCTION_ARG_ADVANCE.
3706         (mips_gimplify_va_arg_expr): Rename local variable INDIRECT
3707         to INDIRECT_P.  Remove a redundant mips_abi check.  Only calculate
3708         SIZE and RSIZE if needed.
3709         (mips16_stub): Rename FPRET to FP_RET_P and give it type "bool"
3710         rather than "int".
3711         (build_mips16_function_stub): Rename to...
3712         (mips16_build_function_stub): ...this.
3713         (build_mips16_call_stub): Rename to...
3714         (mips16_build_call_stub): ...this.  Make static, and return a
3715         "bool" rather than an "int".  Rename the ARG_SIZE argument to
3716         ARGS_SIZE.  Rename the local variable FPRET to FP_RET_P and give
3717         it type "bool".  Use "jr" rather than "j".  Use XNEW.  Simplify.
3718         (mips_load_call_address): Give the SIBCALL_P argument type "bool"
3719         rather than "int".
3720         (mips_expand_call): Likewise.  Assert that MIPS16 calls via stubs
3721         are not sibling ones.
3722         (mips_emit_fcc_reload): Rename to...
3723         (mips_expand_fcc_reload): ...this.
3724         (mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type
3725         "HOST_WIDE_INT".
3726         (mips_expand_unaligned_load): Rename to...
3727         (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
3728         and BITPOS arguments type "HOST_WIDE_INT".  Remove redundant
3729         SUBREG_BYTE check.
3730         (mips_expand_unaligned_store): Rename to...
3731         (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
3732         and BITPOS arguments type "HOST_WIDE_INT".
3733         (mips_use_ins_ext_p): Rename second and third arguments to WIDTH
3734         and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx".
3735         Use IN_RANGE.
3736         (mips_init_split_addresses): Replace with...
3737         (mips_split_addresses_p): ...this new function.
3738         (mips_init_relocs): Check mips_split_addresses_p () rather than
3739         mips_split_addresses.  Always initialize mips_split_p with booleans.
3740         (print_operand_reloc): Rename to...
3741         (mips_print_operand_reloc): ...this.  Use a gcc_assert rather than
3742         a fatal_error.
3743         (print_operand): Rename to...
3744         (mips_print_operand): ...this.
3745         (print_operand_address): Rename to...
3746         (mips_print_operand_address): ...this.  Use GP_REG_FIRST.
3747         (mips_in_small_data_p): Simplify.
3748         (mips_output_ascii): Remove the PREFIX argument and "register"
3749         keywords.  Use the STRING parameter directly and cast to
3750         "unsigned char".
3751         (mips16e_collect_argument_save_p): Use IN_RANGE.
3752         (mips_function_has_gp_insn): Simplify.
3753         (mips_set_return_address): Use BITSET_P.
3754         (mips_restore_gp): Use a separate statement to pick the base
3755         register.
3756         (mips_output_function_prologue): Use a local FRAME variable.
3757         (mips_save_reg): Pass booleans to mips_subword.
3758         (mips_expand_prologue): Use a local FRAME variable.  Use
3759         cprestore_size to detect when .cprestore is needed.
3760         (mips_restore_reg): Use GP_REG_FIRST.
3761         (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
3762         rather than "int".  Use local FRAME and REGNO variables.
3763         (mips_can_use_return_insn): Return a "bool" rather than an "int".
3764         (mips_secondary_reload_class): Give the IN_P argument type "bool"
3765         rather than "int".
3766         (mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN.
3767         (mips_store_data_bypass_p): Return a "bool" rather than an "int".
3768         (vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P.
3769         (mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P.
3770         (mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P.
3771         (builtin_description): Rename to...
3772         (mips_builtin_description): ...this.
3773         (mips_bdesc): Rename to...
3774         (mips_ps_bdesc): ...this.
3775         (sb1_bdesc): Rename to...
3776         (mips_sb1_bdesc): ...this.
3777         (dsp_bdesc): Rename to...
3778         (mips_dsp_bdesc): ...this.
3779         (dsp_32only_bdesc): Rename to...
3780         (mips_dsp_32only_bdesc): ...this.
3781         (bdesc_map): Rename to...
3782         (mips_bdesc_map): ...this.
3783         (bdesc_arrays): Rename to...
3784         (mips_bdesc_arrays): ...this.
3785         (mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO.
3786         Tweak error message.
3787         (mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P.
3788         Rename local variables I and J to OPNO and ARGNO respectively.
3789         Assert that the number of arguments is no more than the number of
3790         input operands.
3791         (mips_expand_builtin_compare): Use an array of arguments rather
3792         than an array of operands.  Assert that the number of operands is
3793         as expected.
3794         (add_constant): Rename to...
3795         (mips16_add_constant): ...this.  Use XNEW.
3796         (dump_constants_1): Rename to...
3797         (mips16_emit_constants_1): ...this.  Use ALL_SCALAR_FIXED_POINT_MODE_P.
3798         (dump_constants): Rename to...
3799         (mips16_emit_constants): ...this.
3800         (mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO.
3801         (mips_set_mips16_mode): Don't call mips_init_split_addresses.
3802         Assign mips16_p to was_mips16_p.
3803         (mips_parse_cpu): Tweak warning message.
3804         (override_options): Rename to...
3805         (mips_override_options): ...this.  Move the mips_cost initialization
3806         out of the "shared with GAS" block.  Quote option names in error
3807         messages.
3808         (mips_conditional_register_usage): Make local variable REGNO unsigned.
3809         (mips_order_regs_for_local_alloc): Remove register keyword.
3810
3811 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3812
3813         * system.h (IN_RANGE): Cast each argument individually.
3814
3815 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3816
3817         * config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float
3818         MIPS16 code unless using o32 or o64.  
3819
3820 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3821
3822         * config/mips/mips.c (mips_cannot_change_mode_class): Don't check
3823         for modes smaller than 4 bytes.
3824         * config/mips/mips.md (*movhi_internal, *movqi_internal): Remove
3825         FPR alternatives.
3826
3827 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3828
3829         * config/mips/mips-protos.h (mips_output_aligned_bss): Delete.
3830         * config/mips/linux.h (BSS_SECTION_ASM_OP): Delete.
3831         (ASM_OUTPUT_ALIGNED_BSS): Delete.
3832         * config/mips/mips.c (mips_output_aligned_bss): Delete.
3833
3834 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3835
3836         * config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid
3837         sibling calls to "mips16" functions if the function satisfies
3838         const_call_insn_operand.
3839
3840 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3841
3842         * config/mips/mips.c (mips_va_start): Fix types in calls
3843         to build_int_cst.
3844
3845 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3846
3847         * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
3848         if ISA_HAS_FP4.
3849
3850 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3851
3852         * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro.
3853         * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1
3854         instead of checking mips_isa.
3855
3856 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3857
3858         * doc/invoke.texi (-mpaired-single): Don't say that the option
3859         requires 64-bit code.
3860         * config/mips/mips-protos.h (mips_modes_tieable_p): Declare.
3861         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro.
3862         (ISA_HAS_NMADD_NMSUB): Add a mode argument.  Return true for
3863         V2SF if ISA_MIPS32R2.
3864         (MODES_TIEABLE_P): Use mips_modes_tieable_p.
3865         * config/mips/mips.c (mips_rtx_costs): Pass a mode argument
3866         to ISA_HAS_NMADD_NMSUB.
3867         (mips_split_doubleword_move): Handle V2SF.
3868         (mips_modes_tieable_p): New function.
3869         (override_options): Report a warning rather than an error when
3870         -mpaired-single is used on ISAs that don't support it; use
3871         ISA_HAS_PAIRED_SINGLE to check that case.
3872         * config/mips/mips.md (MOVE64): New mode iterator.  Replace DI
3873         and DF move splitters with a single MOVE64 splitter, thereby adding
3874         a V2SF splitter too.
3875         (SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF.
3876         Add a TARGET_FLOAT64 condition to TF.  Add V2SF to the iterator.
3877         (HALFMODE): Add V2SF.
3878         (*nmadd<mode>, *nmadd<mode>_fastmath, *nmsub<mode>)
3879         (*nmsub<mode>_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB.
3880         (movv2sf_hardfloat_64bit): Tweak ordering of conditions.
3881         (movv2sf_hardfloat_32bit): New pattern.
3882         (load_low<mode>, load_high<mode>, store_word<mode>): Remove
3883         TARGET_DOUBLE_FLOAT conditions.
3884
3885 2007-10-20  Jakub Jelinek  <jakub@redhat.com>
3886
3887         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
3888         saved CR2 offset to low 32 bits of regs->ccr rather than the whole
3889         64-bit register in 64-bit libgcc.
3890
3891 2007-10-20  Eric B. Weddington  <eweddington@cso.atmel.com>
3892
3893         * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
3894         * config/avr/avr.h (LINK_SPEC): Likewise.
3895         (CRT_BINUTILS_SPECS): Likewsie.
3896         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3897
3898 2007-10-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3899
3900         * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror=
3901         and -Wfatal-errors together.
3902         
3903 2007-10-20  Alan Modra  <amodra@bigpond.net.au>
3904
3905         PR target/33812
3906         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16
3907         change for vrsave, ie restore after frame pop.
3908
3909 2007-10-19  David S. Miller  <davem@davemloft.net>
3910
3911         * config/sparc/niagara2.md: Fix copyright notice.
3912
3913 2007-10-19  Sebastian Pop  <sebastian.pop@amd.com>
3914
3915         PR tree-optimization/23820
3916         PR tree-optimization/24309
3917         PR tree-optimization/33766
3918         * testsuite/gcc.dg/tree-ssa/pr23820.c: New.
3919         * testsuite/gcc.dg/tree-ssa/pr24309.c: New.
3920         * testsuite/gcc.dg/tree-ssa/pr33766.c: New.
3921         * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed.
3922         * tree-loop-linear.c (perfect_loop_nest_depth): New.
3923         (linear_transform_loops): Use perfect_loop_nest_depth.
3924         * lambda-code.c (perfect_nest_p): Outer loops in perfect nests 
3925         should have a single condition: their exit.
3926
3927 2007-10-19  Richard Guenther  <rguenther@suse.de>
3928
3929         PR middle-end/33816
3930         PR middle-end/32921
3931         * stor-layout.c (layout_type): Assert that aggregates do not
3932         have their alias sets set.
3933         * alias.c (get_alias_set): Return alias set zero for incomplete
3934         types, return the alias set of the element for incomplete array
3935         types, but do not remember these.
3936
3937 2007-10-19  Richard Guenther  <rguenther@suse.de>
3938
3939         Revert
3940         2007-10-19  Richard Guenther  <rguenther@suse.de>
3941
3942         PR middle-end/32921
3943         * tree.c (build_array_type): Do not re-layout unbound array
3944         types.
3945
3946 2007-10-19  Richard Guenther  <rguenther@suse.de>
3947
3948         PR middle-end/32921
3949         * tree.c (build_array_type): Do not re-layout unbound array types.
3950
3951 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3952
3953         * config/mips/mips.c (mips_canonicalize_comparison):  Check
3954         mips_relational_operand_ok_p before trying to rewrite the test.
3955         Only calculate PLUS_ONE if needed.
3956         (mips_emit_int_relational): Don't call mips_relational_operand_ok_p
3957         here.
3958
3959 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3960
3961         * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
3962         calculation.
3963
3964 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3965
3966         * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that
3967         the call uses the incoming value of $2.
3968
3969 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3970
3971         * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem
3972         rather then gen_rtx_MEM.
3973         (mips_setup_incoming_varargs): Use gen_frame_mem rather than
3974         gen_rtx_MEM.
3975         (mips_set_return_address): Likewise.
3976         (mips_restore_gp): Likewise.
3977
3978 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3979
3980         * config/mips/mips.c (gpr_mode): Delete.
3981         (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD
3982         instead of gpr_mode.
3983         (mips_for_each_saved_reg): Likewise.
3984         (mips_expand_prologue, mips_expand_epilogue): Likewise.
3985         (override_options): Don't initialize gpr_mode.
3986         * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode.
3987
3988 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3989
3990         * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD
3991         case last.
3992         (mips_class_max_nregs): Calculate the smallest consituent register
3993         size and use that to determine an upper bound on the number of
3994