OSDN Git Service

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