OSDN Git Service

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