OSDN Git Service

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