OSDN Git Service

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