OSDN Git Service

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