OSDN Git Service

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