OSDN Git Service

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