OSDN Git Service

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