OSDN Git Service

2007-02-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-02-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2
3         PR c/26494
4         * doc/invoke.texi (Warning Options): Remove
5         -Werror-implicit-function-declaration.
6         (Wimplicit-function-declaration): Update description.
7         * opts.c (common_handle_option): Move handling of -Werror=* to...
8         (enable_warning_as_error): ...here.
9         * opts.h (enable_warning_as_error): Declare.
10         * c-decl.c (implicit_decl_warning): Unless
11         -Wno-implicit-function-declaration is given, emit a pedwarn if
12         -std=c99 or emit a warning if -Wimplicit-function-declaration.
13         * c.opt (Wimplicit-function-declaration): Replace
14         mesg_implicit_function_declaration with
15         warn_implicit_function_declaration.
16         * c-opts.c (c_common_handle_option):
17         -Werror-implicit-function-declaration is exactly equal as
18         -Werror=implicit-function-declaration.
19         (set_Wimplicit): Replace mesg_implicit_function_declaration with
20         warn_implicit_function_declaration.
21         (c_common_post_options): -Wimplict-function-declaration is enabled
22         by default by -std=c99, otherwise is disabled by default.
23         * c-objc-common.c (c_objc_common_init): Remove flawed logic.
24
25 2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>
26
27         * gimplify.c (gimplify_modify_expr): During gimplification, attach a
28         DECL on the rhs to a DECL on the lhs for debug info purposes if the
29         former is ignored but not the latter.
30
31 2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>
32
33         * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
34         is made and the reference doesn't use the alias set of its type,
35         do not create the temporary using that type.
36
37 2007-02-15  Aldy Hernandez  <aldyh@redhat.com>
38
39         * jump.c: Remove prototypes for delete_computation and
40         delete_prior_computation.
41
42 2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
43
44         * jump.c (get_label_after): Delete.
45         (get_label_before, delete_computation, delete_jump,
46         delete_prior_computation, follow_jumps): Move...
47         * reorg.c (delete_computation, delete_prior_computation): ... here...
48         (get_label_before, delete_jump): ... making these static ...
49         (follow_jumps): ... and simplifying this since it only runs after
50         reload.
51         * rtl.h (get_label_after, get_label_before, delete_jump,
52         follow_jumps): Delete prototypes.
53
54 2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
55
56         * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
57         
58 2007-02-15  Nick Clifton  <nickc@redhat.com>
59
60         * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
61         order to prevent it from being munged by the target.
62
63 2007-02-15  Uros Bizjak  <ubizjak@gmail.com>
64
65         * config/i386/i386.md: Remove misleading comment.
66
67 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
68
69         * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
70         reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
71         invalid patterns.
72
73 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
74
75         * tree-sra.c (instantiate_missing_elements): Canonicalize
76         bit-field types.
77         (sra_build_assignment): New.
78         (generate_copy_inout, generate_element_copy,
79         generate_element_zero, generate_one_element_init): Use it.
80
81 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
82
83         * tree-sra.c (instantiate_missing_elements): Canonicalize
84         bit-field types.
85         (sra_build_assignment): New.
86         (generate_copy_inout, generate_element_copy,
87         generate_element_zero, generate_one_element_init): Use it.
88
89 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
90
91         * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
92         limbo die nodes.
93
94 2007-02-14  Joseph Myers  <joseph@codesourcery.com>
95
96         * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
97         types as aggregates not scalars.
98         * function.c (assign_stack_temp_for_type): Likewise.
99
100 2007-02-14  Roger Sayle  <roger@eyesopen.com>
101             Zdenek Dvorak  <dvorakz@suse.cz>
102
103         * tree-dump.c (dump_switch_p_1): Require exact match of the option
104         name.
105
106 2007-02-14  Zdenek Dvorak  <dvorakz@suse.cz>
107
108         * passes.c (next_pass_1): Clear the next field of the copied
109         pass structure.
110
111 2007-02-14  Richard Henderson  <rth@redhat.com>
112
113         * tree-sra.c (early_sra): New.
114         (decl_can_be_decomposed_p): Deny va_list if early_sra.
115         (tree_sra_early, pass_sra_early): New.
116         * tree-pass.h (pass_sra_early): Declare.
117         * passes.c (init_optimization_passes): Use it.
118
119 2007-02-14  Richard Guenther  <rguenther@suse.de>
120
121         * flags.h (issue_strict_overflow_warning): Convert to a macro.
122
123 2007-02-14  Dorit Nuzman  <dorit@il.ibm.com>
124
125          PR tree-optimization/30771
126         * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
127         also phi nodes.
128         (vect_analyze_operations): Induction phis can now be marked as
129         used_in_loop.
130         (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
131         Update documentation accordingly.
132
133 2007-02-14  Nick Clifton  <nickc@redhat.com>
134
135         * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
136         most 3 arguments are supported.
137         (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
138
139 2007-02-13  Seongbae Park <seongbae.park@gmail.com>
140
141         * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
142         Ensure dst->current is valid.
143
144 2007-02-13  Paul Brook  <paul@codesourcery.com>
145
146         * config.gcc: Add arm*-*-uclinux-*eabi.
147         * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
148         (SUBTARGET_EXTRA_LINK_SPEC): Define.
149         (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
150         (LINK_GCC_C_SEQUENCE_SPEC): Undef.
151         (LINK_SPEC): Define.
152         (LIB_SPEC): Define.
153         * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
154         register.
155         * config/arm/uclinux-eabi.h: New file.
156         * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
157         * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
158         based targets.
159
160 2007-02-13  Ian Lance Taylor  <iant@google.com>
161
162         * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
163         * flags.h (warn_strict_overflow): Declare.
164         (enum warn_strict_overflow_code): Define.
165         (issue_strict_overflow_warning): New static inline function.
166         * opts.c (warn_strict_overflow): New variable.
167         (common_handle_option): Handle OPT_Wstrict_overflow and
168         OPT_Wstrict_overflow_.
169         * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
170         OPT_Wall.
171         * fold-const.c: Include intl.h.
172         (fold_deferring_overflow_warnings): New static variable.
173         (fold_deferred_overflow_warning): New static variable.
174         (fold_deferred_overflow_code): New static variable.
175         (fold_defer_overflow_warnings): New function.
176         (fold_undefer_overflow_warnings): New function.
177         (fold_undefer_and_ignore_overflow_warnings): New function.
178         (fold_deferring_overflow_warnings_p): New function.
179         (fold_overflow_warning): New static function.
180         (make_range): Add strict_overflow_p parameter.  Change all
181         callers.
182         (extract_muldiv, extract_muldiv_1): Likewise.
183         (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
184         tree_expr_nonnegative_p.
185         (fold_negate_expr): Call fold_overflow_warning.
186         (fold_range_test): Likewise.
187         (fold_comparison): Likewise.
188         (fold_binary): Likewise.  Call tree_expr_nonnegative_warnv_p
189         instead of tree_expr_nonnegative_p.
190         (tree_expr_nonnegative_warnv_p): Rename from
191         tree_expr_nonnegative_p, add strict_overflow_p parameter.
192         (tree_expr_nonnegative_p): New function.
193         (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
194         strict_overflow_p parameter.
195         (tree_expr_nonzero_p): New function.
196         * passes.c (verify_interpass_invariants): New static function.
197         (execute_one_pass): Call it.
198         * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
199         warnings.
200         (number_of_iterations_exit, loop_niter_by_eval): Likewise.
201         (estimate_numbers_of_iterations): Likewise.
202         (scev_probably_wraps_p): Likewise.
203         * tree-ssa-ccp.c: Include "toplev.h".
204         (evaluate_stmt): Defer fold overflow warnings until we know we are
205         going to optimize.
206         (struct fold_stmt_r_data): Add stmt field.
207         (fold_stmt_r): Defer fold overflow warnings until we know we
208         optimized.
209         (fold_stmt): Initialize stmt field of fold_stmt_r_data.
210         (fold_stmt_inplace): Likewise.
211         * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
212         (cleanup_control_expr_graph): Defer fold overflow warnings until
213         we know we are going to optimize.
214         * tree-cfg.c (fold_cond_expr_cond): Likewise.
215         * tree-ssa-threadedge.c (simplify_control_stmt_condition):
216         Likewise.
217         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
218         tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
219         * tree-ssa-loop-manip.c (create_iv): Likewise.
220         * c-typeck.c (build_conditional_expr): Likewise.
221         (build_binary_op): Likewise.
222         * tree-vrp.c (vrp_expr_computes_nonzero): Call
223         tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
224         (extract_range_from_unary_expr): Likewise.
225         * simplify-rtx.c (simplify_const_relational_operation): Warn when
226         assuming that signed overflow does not occur.
227         * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
228         * tree.h (tree_expr_nonnegative_warnv_p): Declare.
229         (fold_defer_overflow_warnings): Declare.
230         (fold_undefer_overflow_warnings): Declare.
231         (fold_undefer_and_ignore_overflow_warnings): Declare.
232         (fold_deferring_overflow_warnings_p): Declare.
233         (tree_expr_nonzero_warnv_p): Declare.
234         * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
235         of warning options.
236         (Warning Options): Document -Wstrict-overflow.
237         * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
238         (tree-ssa-ccp.o): Likewise.
239         (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
240         (fold-const.o): Depend on intl.h.
241
242 2007-02-13  Ian Lance Taylor  <iant@google.com>
243
244         PR middle-end/30751
245         * lower-subreg.c (resolve_simple_move): Decompose subregs in
246         addresses.
247
248 2007-02-13  Stuart Hastings  <stuart@apple.com>
249
250         * gcc/config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
251
252 2007-02-13  Richard Henderson  <rth@redhat.com>
253
254         * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
255         handled_component_p before looking for the indirect_ref.
256
257 2007-02-13  Richard Henderson  <rth@redhat.com>
258
259         * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
260         remove flags clobber.
261         (bswapsi2): New expander, emit code for !TARGET_BSWAP.
262         (bswaphi_lowpart): New.
263         (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
264         remove TARGET_BSWAP test.  Delete expander of the same name.
265
266         * optabs.c (widen_bswap, expand_doubleword_bswap): New.
267         (expand_unop): Use them.
268
269 2007-02-13  Uros Bizjak  <ubizjak@gmail.com>
270
271         * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
272         *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
273         *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
274         *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
275         *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
276         *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
277         *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
278         assembler dialect choice from asm templates.
279
280 2007-02-12  Richard Henderson  <rth@redhat.com>
281
282         * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
283         (fixuns_trunc<SSEMODEF>si2): Use it.
284         * config/i386/sse.md (vec_setv4sf_0): Export.
285         * config/i386/i386.c (ix86_build_const_vector): Export.
286         (ix86_split_convert_uns_si_sse): Rename from
287         ix86_expand_convert_uns_si_sse and rewrite as a splitter.
288         * config/i386/i386-protos.h: Update.
289
290 2007-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
291
292         PR c/29521
293         * c-typeck.c (c_finish_return): Improve warning message.
294
295 2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
296
297         * alias.c (find_symbolic_term): Delete unused function.
298         
299 2007-02-12  Uros Bizjak  <ubizjak@gmail.com>
300
301         * config/i386/i386.md (paritydi2, paritysi2): New expanders.
302         (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
303         (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
304
305 2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
306
307         * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
308         * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
309         the function, temporarily point the debug interface to the null one.
310
311 2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
312
313         * dwarf2out.c (round_up_to_align): New static function.
314         (field_byte_offset): Use it to round the offset.
315
316 2007-02-12  Richard Henderson  <rth@redhat.com>
317
318         * config/alpha/alpha.md (bswapsi2, bswapdi2): New.
319         (inswl_const): Export.
320
321 2007-02-12  Richard Henderson  <rth@redhat.com>
322
323         * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
324         result mode of the libcall, convert back to outmode.
325
326 2007-02-12  Roger Sayle  <roger@eyesopen.com>
327
328         * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
329         (bswapdi2): New define_expand to implement 32-bit implementation.
330
331 2007-02-12  Nick Clifton  <nickc@redhat.com>
332
333         * doc/invoke.texi (Overall Options): Document --help=.
334         * gcc.c (target_help_flag): Rename to print_subprocess_flag.
335         (cc1_options): Pass --help= on to cc1.
336         (display_help): Add description of --help=.
337         (process_command): Add code to handle --help=.  Allow translated
338         --help and --target-help switches to be passed on to compiler
339         sub-process.
340         (main): Remove unused if statement.
341         * opts.c (columns): Remove.
342         (LEFT_COLUMN): Define.
343         (wrap_help): Add columns argument.
344         (print_filtered_help): Change parameters to be an include bitmask,
345         an exclude bitmask, an any bitmask and the column width.  Move the
346         code to display the params list here.  Add code to display the
347         status of options rather than their descriptions if the quiet flag
348         is not active.
349         (print_specific_help): Change parameters to be an include bitmask,
350         an exclude bitmask and an any bitmask.  Move code to look up the
351         column width here.  Decide upon the title for an options listing.
352         (common_handle_options): Add code to handle --help=.  Adapt code
353         for --help and --target-help to use the revised form of the
354         print_specific_help function.
355         (print_help): Delete.
356         (print_param_help): Delete.
357         (print_switch): Delete.
358         * opts.h (cl_lang_count): Add prototype.
359         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS,
360         CL_MAX_OPTION_CLASS): New defines.
361         * optc-gen.awk: Add construction of cl_lang_count.
362         * c.opt: Add Warning attribute to warning options and Optimization
363         attribute to optimization options.
364         * common.opt: Likewise.
365         Add --help=.
366         Add -fhelp and -ftarget-help as aliases for the transformed --help
367         and --target-help options.
368         * opt-functions.awk: Add code to handle Warning and Optimization
369         attributes.
370
371 2007-02-12  Richard Henderson  <rth@redhat.com>
372
373         * config/alpha/constraints.md: New file.
374         * config/alpha/alpha.c: Include tm-constrs.h.
375         (alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
376         alpha_extra_constraint): Remove.
377         (alpha_emit_conditional_branch): Use satisfies_constraint_*.
378         * config/alpha/alpha-protos.h: Update.
379         * config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
380         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
381         (EXTRA_CONSTRAINT): Remove.
382         * config/alpha/alpha.md: Include constraints.md.
383         (adddi splitter): Use satisfies_constraint_*.
384         * config/alpha/predicates.md (add_operand): Likewise.
385         (sext_add_operand, addition_operation): Likewise.
386
387 2007-02-12  Dorit Nuzman  <dorit@il.ibm.com>
388
389         PR tree-optimization/29145
390         * tree-data-ref.c (base_addr_differ_p): Make us more conservative
391         in our handling of restrict qualified pointers.
392
393 2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
394
395         PR middle-end/7651
396         * doc/invoke.texi (Wunused-value): Update description.
397         (Wextra): Delete item.
398         * opts.c (set_Wextra): Don't use the value of Wextra to set the
399         value of Wunused-value.
400         * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
401         (c_finish_stmt_expr): Don't check extra_warnings.
402         (emit_side_effect_warnings): The caller is responsible to check
403         warn_unused_value.
404         
405 2007-02-11  Roger Sayle  <roger@eyesopen.com>
406             Matt Thomas  <matt@3am-software.com>
407
408         * simplify-rtx.c (simplify_relational_operation_1): Correct typo.
409
410 2007-02-11  Roger Sayle  <roger@eyesopen.com>
411
412         * simplify-rtx.c (simplify_relational_operation_1): Optimize
413         comparisons of POPCOUNT against zero.
414         (simplify_const_relational_operation): Likewise.
415
416 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
417
418         * doc/invoke.texi (Wextra): Delete outdated paragraph.
419         
420 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
421
422         * dwarf2out.c (root_type): Delete unused function.
423         
424 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
425
426         * genattrtab.c (contained_in_p): Delete unused function.
427         (write_expr_attr_cache): Likewise.
428
429 2007-02-11  Jan Hubicka  <jh@suse.cz>
430
431         * ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
432         previous patch.
433
434 2007-02-11  Steven Bosscher  <steven@gcc.gnu.org>
435
436         * fwprop.c (try_fwprop_subst): Use set_unique_reg_note
437         to add the REG_EQ* note.
438         * see.c (see_merge_one_use_extension): Likewise.
439         * local-alloc.c (update_equiv_regs): Likewise.  Also don't
440         turn REG_EQUAL notes into REG_EQUIV notes if the target
441         register may have more than one set.
442         * function.c (assign_parm_setup_reg): Use set_unique_reg_note.
443         * gcse.c (try_replace_reg): Likewise.
444         * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
445         * calls.c (fixup_tail_calls): Likewise.  Abort if there is
446         more than one REG_EQUIV note.
447         * reload1.c (gen_reload): Use set_unique_reg_note.
448
449 2007-02-11  Uros Bizjak  <ubizjak@gmail.com>
450
451         * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
452         (ix86_builtin_conversion): New function.
453
454 2007-02-06  Mark Mitchell  <mark@codesourcery.com>
455
456         PR target/29487
457         * tree.h (DECL_REPLACEABLE_P): New macro.
458         * except.c (set_nothrow_function_flags): Likewise.
459
460 2007-02-11  Tehila Meyzels  <tehila@il.ibm.com>
461             Ira Rosen  <irar@il.ibm.com>
462             Dorit Nuzman  <dorit@il.ibm.com>
463
464         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
465         * targhooks.c (default_builtin_vectorized_conversion): New.
466         * targhooks.h (default_builtin_vectorized_function): New declaration.
467         * target.h (struct vectorize): Add builtin_conversion field.
468         * tree-vectorizer.h (type_conversion_vec_info_type): New enum
469         stmt_vec_info_type value.
470         (vectorizable_conversion): New declaration.
471         * tree-vect-analyze.c (vect_analyze_operations): Add
472         vectorizable_conversion call.
473         * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
474         * tree-vect-transform.c (vectorizable_conversion): New function.
475         (vect_transform_stmt): Add case for type_conversion_vec_info_type.
476         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
477         mode.
478         * config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
479         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
480         (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX
481         or ALTIVEC_BUILTIN_VCFSX.
482
483 2007-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
484
485         PR target/30634
486         * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
487         CONST_DOUBLE and operand 0 is a hard register.
488         (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
489         memory.  Fail if operand 1 is a non-zero CONST_INT and operand 0
490         is a hard floating-point register.
491
492 2007-02-10  Richard Henderson  <rth@redhat.com>
493             Jakub Jelinek  <jakub@redhat.com>
494             Alexandre Oliva  <aoliva@redhat.com>
495
496         * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
497         * builtin-types.def (BT_WORD): Make unsigned.
498         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
499         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
500         (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
501         * c-decl.c (grokdeclarator): Don't error if !have_tls.
502         * c-parser.c (c_parser_omp_threadprivate): Likewise.
503         * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
504         emulated tls.
505         * expr.c (emutls_var_address): New.
506         (expand_expr_real_1): Expand emulated tls.
507         (expand_expr_addr_expr_1): Likewise.
508         * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
509         * output.h (emutls_finish): Declare.
510         * toplev.c (compile_file): Call it.
511         * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
512         address before wrapping in CONST.
513         * varasm.c (emutls_htab, emutls_object_type): New.
514         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
515         (get_emutls_object_name, get_emutls_object_type): New.
516         (get_emutls_init_templ_addr, emutls_decl): New.
517         (emutls_common_1, emutls_finish): New.
518         (assemble_variable): When emulating tls, swap decls; generate
519         constructor for the emutls objects.
520         (do_assemble_alias): When emulating tls, swap decl and target name.
521         (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
522         for emulated tls.
523         * varpool.c (decide_is_variable_needed): Look at force_output.
524         Recurse for emulated tls.
525         (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
526         with decide_is_variable_needed.
527         * emutls.c: New file.
528         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
529         tls_object for real tls.
530
531 2007-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
532
533         PR rtl-optimization/29599
534         * reload1.c (eliminate_regs_in_insn): Take the destination
535         mode into account when computing the offset.
536
537 2007-02-09  Stuart Hastings  <stuart@apple.com>
538             Richard Henderson  <rth@redhat.com>
539
540         * gcc/config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
541         * gcc/config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
542         * gcc/config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2,
543         fixuns_truncdfhi2): New.
544         (fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse.
545         (floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
546         (floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
547         (floatunssidf2): Allow nonimmediate source.
548         * gcc/config/i386/sse.md (movdi_to_sse): New.
549         (vec_concatv2di): Drop '*'.
550         * gcc/config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
551         ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
552         ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse):
553         New.
554         * gcc/config/i386/i386.c (ix86_expand_convert_uns_si_sse,
555         ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
556         ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
557         ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
558         (ix86_build_signbit_mask): Fix decl of v, refactor to call
559         ix86_build_const_vector.
560         (x86_emit_floatuns): Rewrite.
561
562 2007-02-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
563
564         * genautomata.c (longest_path_length): Delete unused function.
565         (struct state): Delete unused longest_path_length.
566         (UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
567         (get_free_state): Delete unused.
568         
569 2007-02-09  Jan Hubicka  <jh@suse.cz>
570
571         * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
572         * doc/invoke.texi (inline-unit-growth): Update default value.
573
574         * Makefile.in (passes.o, ipa-inline.o): Add dependencies.
575         * cgraphbuild.c (build_cgraph_edges): Compute frequencies.
576         (rebuild_cgraph_edges): Likewise.
577         * cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
578         (dump_cgraph_node): Dump frequencies.
579         (cgraph_clone_edge): Add frequency scales.
580         (cgraph_clone_node): Add freuqnecy.
581         * cgraph.h (cgraph_edge): Add freuqnecy argument.
582         (CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
583         (cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
584         * tree-pass.h (TODO_rebuild_frequencies): New constant.
585         * cgraphunit.c (verify_cgraph_node): Verify frequencies.
586         (cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
587         (save_inline_function_body): Likewise.
588         * ipa-inline.c: inluce rtl.h
589         (cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
590         (cgraph_edge_badness): Use frequencies.
591         (cgraph_decide_recursive_inlining): Update clonning.
592         (cgraph_decide_inlining_of_small_function): Dump frequency.
593         * predict.c (estimate_bb_frequencies): Export.
594         * predict.h (estimate_bb_frequencies): Declare.
595         * tree-inline.c (copy_bb): Watch overflows.
596         (expand_call_inline): Update call of cgraph_create_edge.
597         (optimize_inline_calls): Use TODO flags to update frequnecies.
598         * passes.h: Include predict.h
599         (init_optimization_passes): Move profile ahead.
600         (execute_function_todo): Handle TODO_rebuild_frequencies.
601
602 2007-02-09  Roger Sayle  <roger@eyesopen.com>
603
604         * config/alpha/alpha.c (emit_insxl): Force the first operand of
605         the insbl or inswl pattern into a register.
606
607 2007-02-09  Roger Sayle  <roger@eyesopen.com>
608
609         * config/ia64/ia64.md (bswapdi2): New define_insn.
610
611 2007-02-09  Richard Henderson  <rth@redhat.com>
612
613         * config/i386/constraints.md (Ym): New constraint.
614         * config/i386/i386.md (movsi_1): Change Y2 to Yi constraints.
615         (movdi_1_rex64): Split sse and xmm general register moves from
616         memory move alternatives.  Use conditional register constraints.
617         (movsf_1, movdf_integer): Likewise.
618         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
619         (movdf_integer_rex64): New.
620         (pushsf_rex64): Fix output constraints.
621         * config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi.
622         (sse2_stored): Likewise.
623         (sse2_storeq_rex64): New.
624         * config/i386/i386.c (x86_inter_unit_moves): Enable for not
625         amd and not generic.
626         (ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
627         for optimize_size.  Remove SF/DFmode hack.
628
629 2007-02-09  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
630
631         * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
632         (bit_SSE4a): New.
633
634 2007-02-09  Nathan Sidwell  <nathan@codesourcery.com>
635             Richard Sandiford  <richard@codesourcery.com>
636
637         * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
638         (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
639         (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
640         m68k/t-mlib to tmake_file.
641         (m68020-*-elf*, m68k-*-elf*): Likewise.  Add t-m68kbare as well.
642         (m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
643         (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
644         Allow it to be cf or m68k.  Set m68k_arch_family.  If that
645         variable is not empty, add t-$m68k_arch_family to tmake_file.
646         Add t-mlibs to tmake_file.
647         * doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
648         * config/m68k/t-cf: New file.
649         * config/m68k/t-m68k: Likewise.
650         * config/m68k/t-mlibs: Likewise.
651         * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
652         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
653         (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
654         * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
655         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
656         Delete.
657         * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
658         (INSTALL_LIBGCC): Delete.
659         (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
660         * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
661         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
662         (M68K_MLIB_CPU): Define.
663         * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
664         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
665         (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.
666
667 2007-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
668             Richard Guenther  <rguenther@suse.de>
669
670         PR middle-end/23361
671         * fold-const.c (fold_comparison): Handle obfuscated comparisons
672         against INT_MIN/INT_MAX.
673         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump
674         file if a loop is removed.
675
676 2007-02-09  Joseph Myers  <joseph@codesourcery.com>
677
678         * calls.c (store_one_arg): Pass correct alignment to
679         emit_push_insn for non-BLKmode values.
680         * expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an
681         unaligned stack slot via a suitably aligned slot.
682
683 2007-02-08  DJ Delorie  <dj@redhat.com>
684
685         * config/m32c/m32c.c (m32c_unpend_compare): Add default to silence
686         warnings.
687         (legal_subregs): Use unsigned char, make const.
688         (m32c_illegal_subreg_p): Use ARRAY_SIZE.  Delete unused variables.
689
690 2007-02-08  Paul Brook  <paul@codesourcery.com>
691
692         * config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no
693         special interworking needed.
694
695 2007-02-08  Harsha Jagasia  <harsha.jagasia@amd.com>
696
697         * config/i386/xmmintrin.h: Make inclusion of emmintrin.h
698         conditional to __SSE2__.
699         (Entries below should have been added to first ChangeLog
700         entry for amdfam10 dated 2007-02-05)
701         * config/i386/emmintrin.h: Generate #error if __SSE2__ is not
702         defined.
703         * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not
704         defined.
705         * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not
706         defined.
707
708 2007-02-08  DJ Delorie  <dj@redhat.com>
709
710         * config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New.
711         * config/m32c/m32c.c (legal_subregs): New.
712         (m32c_illegal_subreg_p): New.
713         * config/m32c/predicates.md (m32c_any_operand): Use it to reject
714         unsupported subregs of hard regs.
715
716 2007-02-08  Jan Hubicka  <jh@suse.cz>
717
718         * tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
719         the same one; always update histograms.
720
721 2007-02-08  Diego Novillo  <dnovillo@redhat.com>
722
723         * passes.c (init_optimization_passes): Tidy comment.
724
725 2007-02-08  Roger Sayle  <roger@eyesopen.com>
726
727         * simplify-rtx.c (simplify_unary_operation_1) <POPCOUNT>: We can
728         strip zero_extend, bswap and rotates from POCOUNT's argument.
729         <PARITY>: Likewise, we can strip not, bswap, sign_extend,
730         zero_extend and rotates from PARITY's argument.
731         <BSWAP>: A byte-swap followed by a byte-swap is an identity.
732         (simplify_const_unary_operation) <BSWAP>: Evaluate the byte-swap
733         of an integer constant at compile-time.
734
735 2007-02-08  Diego Novillo  <dnovillo@redhat.com>
736
737         PR 30562
738         * tree-flow.h (struct var_ann_d): Remove field 'is_used'.
739         Update all users.
740         * tree-ssa-alias.c (compute_is_aliased): Remove.  Update all
741         users.
742         (init_alias_info):
743         * tree-ssa-live.c (remove_unused_locals): Do not remove
744         TREE_ADDRESSABLE variables.
745         * tree-ssa-structalias.c (compute_points_to_sets): Tidy.
746         * tree-ssa-operands.c (add_virtual_operand): Remove argument
747         FOR_CLOBBER.  Update all users.
748         If VAR has an associated alias set, add a virtual operand for
749         it if no alias is found to conflict with the memory reference.
750
751 2007-02-07  Jan Hubicka  <jh@suse.cz>
752             Robert Kidd <rkidd@crhc.uiuc.edu>
753
754         * value-prof.c (visit_hist, free_hist): Return 1 instead of 0.
755
756 2007-02-07  Ian Lance Taylor  <iant@google.com>
757
758         * lower-subreg.c (simple_move): Reject PARTIAL_INT modes.
759
760 2007-02-07  Roger Sayle  <roger@eyesopen.com>
761
762         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
763         parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack,
764         tablejumpdi, movsi_to_cr_one): Remove constraints from
765         define_expand's match_operands.
766
767 2007-02-07  Roger Sayle  <roger@eyesopen.com>
768
769         * global.c (compute_regsets): Move declatation of "i" inside of
770         #ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure.
771
772 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
773
774         PR c++/30703
775         * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
776         of INDIRECT_REF <RESULT_DECL>.
777
778         * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2.
779
780 2007-02-06  J"orn Rennecke  <joern.rennecke@arc.com>
781             Kaz Kojima  <kkojima@gcc.gnu.org>
782
783         PR target/29746
784         * config/sh/sh.c (expand_cbranchdi4): Use scratch register
785         properly.
786         (sh_initialize_trampoline): Add parentheses to avoid a warning.
787
788 2007-02-06  Zdenek Dvorak <dvorakz@suse.cz>
789
790         * doc/loop.texi: Document possibility not to perform disambiguation
791         of loops with multiple latches.
792         * cfgloopmanip.c (alp_enum_p): Removed.
793         (add_loop): Handle subloops.  Use get_loop_body_with_size.
794         (create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
795         * cfghooks.c (redirect_edge_and_branch_force): Set dominator for
796         the new forwarder block.
797         (make_forwarder_block): Only call new_bb_cbk if it is not NULL.
798         Handle the case latch is NULL.
799         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg modifications
800         when marking loop exits.
801         * ifcvt.c (if_convert): Ditto.  Mark loop exits even if cfg cannot
802         be modified.
803         * loop-init.c (loop_optimizer_init): Do not modify cfg.  Call
804         disambiguate_loops_with_multiple_latches.
805         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
806         before fix_loop_structure.
807         * cfgloop.c: Include pointer-set.h and output.h.
808         (canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
809         update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
810         (get_loop_latch_edges, find_subloop_latch_edge_by_profile,
811         find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
812         mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
813         disambiguate_multiple_latches, get_loop_body_with_size,
814         disambiguate_loops_with_multiple_latches): New functions.
815         (flow_loop_dump): Dump multiple latch edges.
816         (flow_loop_nodes_find): Handle loops with multiple latches.
817         (flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
818         (glb_enum_p): Modified.
819         (get_loop_body): Use get_loop_body_with_size.
820         * cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
821         (AVOID_CFG_MODIFICATIONS): New constant.
822         (disambiguate_loops_with_multiple_latches, add_loop,
823         get_loop_body_with_size): Declare.
824         * Makefile.in (cfgloop.o): Add pointer-set.h and output.h.
825
826 2007-02-06  Seongbae Park <seongbae.park@gmail.com>
827
828         PR inline-asm/28686
829         * global.c (compute_regsets): New function.
830         (global_alloc): Refactored ELIMINABLE_REGSET
831         and NO_GLOBAL_ALLOC_REGS computation out.
832         (rest_of_handle_global_alloc): Call compute_regsets()
833         for non-optimizing case.
834
835 2007-02-06  Richard Henderson  <rth@redhat.com>
836
837         * config/i386/constraints.md (Y2): Rename from Y.
838         (Yi): New constraint.
839         * config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger,
840         pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32,
841         zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2.
842         (extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed,
843         truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse,
844         fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse,
845         floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed, 
846         absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse,
847         fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x.
848         * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64,
849         mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal,
850         vec_extractv2si_1): Change Y constraints to Y2.
851         * config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si,
852         vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di):
853         Change Y constraints to Y2.
854         (sse2_loadld): Change Y constraints to x.
855
856 2007-02-06  Roger Sayle  <roger@eyesopen.com>
857
858         * config/rs6000/rs6000.md (popcount<mode>2): Rewrite.
859         (parity<mode>2): New define_expand using rs6000_emit_parity.
860         * config/rs6000/rs6000.c (rs6000_emit_popcount,
861         rs6000_emit_parity): New functions.
862         * config/rs6000/rs6000-protos.h (rs6000_emit_popcount,
863         rs6000_emit_parity): Prototype here.
864
865 2007-02-06  Ian Lance Taylor  <iant@google.com>
866
867         * lower-subreg.c (simple_move_operand): Reject CONST.
868         (resolve_clobber): Call validate_change rather than directly
869         assigning to XEXP (pat, 0).
870
871 2006-02-06  Paolo Bonzini  <bonzini@gnu.org>
872
873         * Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency.
874         (tree-ssa-reassoc.o): Add pointer-set.h dependency.
875         (tree-cfg.o): Remove hashtab.h dependency.
876
877         * tree-ssa-loop-ivopts.c: Include pointer-set.h.
878         (struct ivopts_data): Change niters to pointer_map_t.
879         (struct nfe_cache_elt, nfe_hash, nfe_eq): Delete.
880         (niter_for_exit): Create pointer_map on demand.  Change for
881         pointer_map API.
882         (tree_ssa_iv_optimize_init): Initialize data->niters to NULL.
883         (free_loop_data): Destroy data->niters if created and reset field.
884         (tree_ssa_iv_optimize_finalize): Don't delete data->niters here.
885         (tree_ssa_iv_optimize_loop): Check for presence of stale data.
886
887         * tree-ssa-reassoc.c: Include pointer-set.h.
888         (bb_rank): Change to long *.
889         (operand_rank): Change to pointer_map_t.
890         (find_operand_rank): Return long, -1 if not found.  Declare as inline.
891         (insert_operand_rank): Accept long.
892         (operand_entry_hash, operand_entry_eq): Remove.
893         (get_rank): Return long.  Adjust for changes above.
894         (init_reassoc): Change rank type to long.  Adjust creation of bb_rank
895         and operand_rank.
896         (fini_reassoc): Delete operand_rank with pointer_map_destroy.
897
898         * tree-ssa-structalias.c (vi_for_tree): Change to pointer_map.
899         (struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete.
900         (insert_vi_for_tree): Rewrite for pointer_map API.  Assert argument
901         is not NULL.
902         (lookup_vi_for_tree): Rewrite for pointer_map API.  Return varinfo_t
903         directly since it cannot be NULL.
904         (get_vi_for_tree): Rewrite for pointer_map API.
905         (find_what_p_points_to): Adjust for change to lookup_vi_for_tree.
906         (init_alias_vars): Create vi_for_tree as pointer_map.
907         (delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy.
908
909         * tree-cfg.c: Don't include hashtab.h.
910         (edge_to_cases): Declare as pointer_map.
911         (struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq):
912         Delete.
913         (edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback.
914         (start_recording_case_labels): Create edge_to_cases as pointer_map.
915         (end_recoding_case_labels): Cleanup edge_to_cases manually before
916         destroying it.
917         (record_switch_edge): Delete.
918         (get_cases_for_edge): Adjust for pointer_map API, inline
919         record_switch_edge (rewritten for new API), remove goto.
920
921 2006-02-06  Paolo Bonzini  <bonzini@gnu.org>
922
923         * Makefile.in (tree-nested.o): Add pointer-set.h dependency.
924         * tree-nested.c: Include pointer-set.h.
925         (var_map_elt, var_map_eq, var_map_hash): Delete.
926         (struct nesting_info): Remove GTY marker.  Change the two htab_t's
927         to pointer_map_t's.
928         (nesting_info_bitmap_obstack): New.
929         (lookup_field_for_decl): Adjust for pointer_map API.
930         (lookup_tramp_for_decl): Adjust for pointer_map API.
931         (get_nonlocal_debug_decl): Adjust for pointer_map API.
932         (get_local_debug_decl): Adjust for pointer_map API.
933         (convert_nl_goto_reference): Adjust for pointer_map API.
934         (convert_nl_goto_receiver): Adjust for pointer_map API.
935         (create_nesting_tree): Create outside GGC space.  Create bitmap on
936         the new obstack.  Create field_map and var_map as pointer_maps.
937         (free_nesting_tree): Adjust for changes to create_nesting_tree.
938         (root): Delete. 
939         (lower_nested_functions): Move root here, no need to NULL it.
940         Initialize and release the obstack.
941
942 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
943
944         * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
945         Remove prototypes and make them non-static.
946         (struct tree_int_map): Remove.
947         * tree.h (struct tree_int_map): Move here, turning TO into an
948         unsigned int.
949         (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.
950
951         * tree.h (TREE_COMPLEXITY): Remove.
952         (struct tree_exp): Remove complexity field.
953         * tree.c (build1_stat): Don't set it.
954
955 2007-02-06  Dorit Nuzman  <dorit@il.ibm.com>
956             Victor Kaplansky  <victork@il.ibm.com>
957
958         * tree-vectorizer.c (vect_is_simple_use): Support induction.
959         (vect_is_simple_reduction): Support reduction with induction as
960         one of the operands.
961         (vect_is_simple_iv_evolution): Fix formatting.
962         * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix 
963         formatting.  Don't mark induction phis for vectorization.
964         (vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
965         * tree-vect-transform.c (get_initial_def_for_induction): New function.
966         (vect_get_vec_def_for_operand): Support induction.
967         (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
968         induction case.
969         (vectorizable_reduction): Support reduction with induction as one of 
970         the operands. 
971         (vectorizable_type_demotion): Use def-type of stmt argument rather
972         than dummy def-type.
973
974         * tree-ssa-loop.c (gate_scev_const_prop): Return the value of
975         flag_tree_scev_cprop.
976         * common.opt (tree-scev-cprop): New flag.
977
978         * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in
979         call to vect_get_new_vect_var.
980
981 2007-02-06  Ira Rosen  <irar@il.ibm.com>
982
983         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that 
984         vectype is not NULL.
985         (vect_pattern_recog_1): Likewise.
986
987 2007-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
988
989         * fold-const.c (negate_expr_p): Handle CONJ_EXPR.
990         (fold_negate_expr): Likewise.
991
992 2007-02-05  Alexandre Oliva  <aoliva@redhat.com>
993
994         PR debug/30189
995         * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
996         even if cv-qualification is the same.
997
998 2007-02-05  Geoffrey Keating  <geoffk@apple.com>
999
1000         * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
1001         __enable_execute_stack on completion.
1002
1003 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
1004
1005         * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8,
1006         athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov,
1007         athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul,
1008         athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn,
1009         athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8,
1010         athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load,
1011         athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8,
1012         athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10.
1013
1014 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
1015
1016         * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse,
1017         cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387,
1018         swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse,
1019         fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse,
1020         x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed,
1021         floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse,
1022         floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1,
1023         mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn,
1024         umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn,
1025         umuldi3_highpart_rex64, umulsi3_highpart_insn,
1026         umulsi3_highpart_zext, smuldi3_highpart_rex64,
1027         smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld,
1028         x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse,
1029         sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387,
1030         sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387,
1031         sqrtextenddfxf2_i387): Added amdfam10_decode.
1032         
1033         * config/i386/athlon.md (athlon_idirect_amdfam10,
1034         athlon_ivector_amdfam10, athlon_idirect_load_amdfam10,
1035         athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10,
1036         athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10,
1037         athlon_ivector_store_amdfam10): New define_insn_reservation.
1038         (athlon_idirect_loadmov, athlon_idirect_movstore): Added
1039         amdfam10.
1040
1041 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
1042
1043         * config/i386/athlon.md (athlon_call_amdfam10,
1044         athlon_pop_amdfam10, athlon_lea_amdfam10): New
1045         define_insn_reservation.
1046         (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8,
1047         athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI,
1048         athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10.
1049
1050 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
1051
1052         * config/i386/athlon.md (athlon_sseld_amdfam10,
1053         athlon_mmxld_amdfam10, athlon_ssest_amdfam10,
1054         athlon_mmxssest_short_amdfam10): New define_insn_reservation.
1055
1056 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
1057
1058         * config/i386/athlon.md (athlon_sseins_amdfam10): New
1059         define_insn_reservation.
1060         * config/i386/i386.md (sseins): Added sseins to define_attr type
1061         and define_attr unit.
1062         * config/i386/sse.md: Set type attribute to sseins for insertq
1063         and insertqi.
1064
1065 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
1066
1067         * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10,
1068         ssecmpvector_load_amdfam10, ssecmpvector_amdfam10,
1069         ssecomi_load_amdfam10, ssecomi_amdfam10,
1070         sseaddvector_load_amdfam10, sseaddvector_amdfam10): New
1071         define_insn_reservation.
1072         (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10.
1073
1074 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
1075
1076         * config/i386/athlon.md (cvtss2sd_load_amdfam10,
1077         cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10,
1078         cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10,
1079         cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10,
1080         cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10,
1081         cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New 
1082         define_insn_reservation.
1083
1084         * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si,
1085         cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq,
1086         cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq,
1087         cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd,
1088         cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute.
1089
1090 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
1091
1092         * config/i386/athlon.md (athlon_ssedivvector_amdfam10,
1093         athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10,
1094         athlon_ssemulvector_load_amdfam10): New define_insn_reservation.
1095         (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul,
1096         athlon_ssemul_load_k8): Added amdfam10.
1097
1098 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
1099
1100         * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
1101         (x86_sse_unaligned_move_optimal): New variable.
1102         
1103         * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for  
1104         m_AMDFAM10.
1105         (ix86_expand_vector_move_misalign): Add code to generate movupd/movups
1106         for unaligned vector SSE double/single precision loads for AMDFAM10.
1107
1108 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
1109
1110         * config/i386/i386.h (TARGET_AMDFAM10): New macro.
1111         (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
1112         Define TARGET_CPU_DEFAULT_amdfam10.
1113         (TARGET_CPU_DEFAULT_NAMES): Add amdfam10.
1114         (processor_type): Add PROCESSOR_AMDFAM10.       
1115         
1116         * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match
1117         processor_type in config/i386/i386.h.
1118         Enable imul peepholes for TARGET_AMDFAM10.
1119         
1120         * config.gcc: Add support for --with-cpu option for amdfam10.
1121         
1122         * config/i386/i386.c (amdfam10_cost): New variable.
1123         (m_AMDFAM10): New macro.
1124         (m_ATHLON_K8_AMDFAM10): New macro.
1125         (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
1126         x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop,
1127         x86_promote_QImode, x86_integer_DFmode_moves,
1128         x86_partial_reg_dependency, x86_memory_mismatch_stall, 
1129         x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
1130         x86_sse_partial_reg_dependency, x86_sse_typeless_stores,
1131         x86_use_ffreep, x86_use_incdec, x86_four_jump_limit,
1132         x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns):
1133         Enable/disable for amdfam10.
1134         (override_options): Add amdfam10_cost to processor_target_table.
1135         Set up PROCESSOR_AMDFAM10 for amdfam10 entry in 
1136         processor_alias_table.
1137         (ix86_issue_rate): Add PROCESSOR_AMDFAM10.
1138         (ix86_adjust_cost): Add code for amdfam10.
1139
1140 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
1141         
1142         * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
1143         instruction set feature flag. Add new (-mpopcnt) flag for popcnt 
1144         instruction. Add new SSE4A (-msse4a) instruction set feature flag.
1145         * config/i386/i386.h: Add builtin definition for SSE4A.
1146         * config/i386/i386.md: Add support for ABM instructions 
1147         (popcnt and lzcnt).
1148         * config/i386/sse.md: Add support for SSE4A instructions
1149         (movntss, movntsd, extrq, insertq).
1150         * config/i386/i386.c: Add support for ABM and SSE4A builtins.
1151         Add -march=amdfam10 flag.
1152         * config/i386/ammintrin.h: Add support for SSE4A intrinsics.
1153         * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt
1154         and amdfam10.
1155         * doc/extend.texi: Add documentation for SSE4A builtins.
1156
1157 2007-02-05  Bob Wilson  <bob.wilson@acm.org>
1158
1159         * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
1160
1161 2007-02-05  Richard Guenther  <rguenther@suse.de>
1162
1163         * tree-vectorizer.h (vectorizable_function): Add argument type
1164         argument, change return type.
1165         * tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller.
1166         * tree-vect-transform.c (vectorizable_function): Handle extra
1167         argument, return vectorized function decl.
1168         (build_vectorized_function_call): Remove.
1169         (vectorizable_call): Handle calls with result and argument types
1170         differing.  Handle loop vectorization factor correctly.
1171         * targhooks.c (default_builtin_vectorized_function): Adjust for
1172         extra argument.
1173         * targhooks.h (default_builtin_vectorized_function): Likewise.
1174         * target.h (builtin_vectorized_function): Add argument type
1175         argument.
1176         * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
1177         extra argument, allow vectorizing of lrintf.
1178         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust
1179         documentation of target hook.
1180
1181 2007-02-05  Hans-Peter Nilsson  <hp@axis.com>
1182
1183         PR target/30665
1184         * config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu")
1185         ("*andhi_clear", andu (casesi+45)): For size-changed operand where
1186         memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P.
1187
1188 2007-02-05  Roger Sayle  <roger@eyesopen.com>
1189
1190         * fold-const.c (fold_unary) <REAL_PART>: Test for availability of
1191         BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
1192         <IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
1193         * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
1194         before canonicalizing sincos to cexpi.
1195         (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.
1196
1197 2007-02-05  Roger Sayle  <roger@eyesopen.com>
1198
1199         * config/alpha/alpha.c (alpha_add_builtins): New Helper function.
1200         Set TREE_READONLY and TREE_NOTHROW directly, not via attributes.
1201         (alpha_init_builtins): Use alpha_add_builtins to process tables.
1202
1203 2007-02-05  Roger Sayle  <roger@eyesopen.com>
1204
1205         * mips-tfile.c (initialize_init_file): Correct endianness test.
1206
1207 2007-02-05  Kazu Hirata  <kazu@codesourcery.com>
1208
1209         * config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use
1210         the 'y' constraint.
1211
1212 2007-02-05  Richard Sandiford  <richard@codesourcery.com>
1213
1214         * dwarf2out.c (dwarf2out_frame_debug_expr): Record the register
1215         saves in a PARALLEL before the register assignments.
1216
1217 2007-02-05  Richard Sandiford  <richard@codesourcery.com>
1218
1219         * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require
1220         DWARF_FRAME_RETURN_COLUMN to be a general register.
1221         * dwarf2out.c (init_return_column_size): New function, split from...
1222         (expand_builtin_init_dwarf_reg_sizes): ...here.  Allow both
1223         DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN
1224         to be nongeneral registers.
1225         * config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and
1226         integer registers.
1227         (DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define.
1228         (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
1229
1230 2007-02-04  Zdenek Dvorak <dvorakz@suse.cz>
1231
1232         * cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR.
1233
1234 2007-02-04  Zdenek Dvorak <dvorakz@suse.cz>
1235
1236         * cfgloopmanip.c (loop_delete_branch_edge): Removed.
1237         (remove_path): Use can_remove_branch_p and remove_branch instead
1238         of loop_delete_branch_edge.
1239         * tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function.
1240         (tree_transform_and_unroll_loop): Remove dead branches immediately.
1241         Update profile using scale_dominated_blocks_in_loop.
1242         * cfghooks.c (can_remove_branch_p, remove_branch): New functions.
1243         * cfghooks.h (struct cfg_hooks): Add can_remove_branch_p.
1244         (can_remove_branch_p, remove_branch): Declare.
1245         * tree-cfg.c (tree_can_remove_branch_p): New function.
1246         (tree_cfg_hooks): Add tree_can_remove_branch_p.
1247         * cfgrtl.c (rtl_can_remove_branch_p): New function.
1248         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p.
1249
1250 2007-02-05  Jan Hubicka  <jh@suse.cz>
1251
1252         PR middle-end/30696
1253         * ipa-inline.c (cgraph_clone_inlined_nodes): When there are unanalyzed
1254         nodes in cgraph, don't remove offline copy of the function.
1255
1256 2007-02-04  Jan Hubicka  <jh@suse.cz>
1257
1258         * tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into
1259         vectors might cause maybe_lookup_element_for_expr to be called
1260         on non-sra-candidate.
1261
1262 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
1263
1264         * config/bfin/bfin-modes.def, config/bfin/bfin.c,
1265         config/bfin/bfin.md, config/bfin/predicates.md: Follow
1266         spelling conventions.
1267
1268 2007-02-04  Richard Guenther  <rguenther@suse.de>
1269
1270         PR middle-end/30636
1271         * fold-const.c (try_move_mult_to_index): Make sure to not
1272         overflow one dimension of a multi-dimensional array access.
1273
1274 2007-02-04  Jan Hubicka  <jh@suse.cz>
1275
1276         * passes.c (init_optimization_passes): Reindent.
1277
1278 2007-02-04  Jan Hubicka  <jh@suse.cz>
1279             Eric Botcazou  <ebotcazou@adacore.com>
1280
1281         * tree-optimize.c (has_abnormal_outgoing_edge_p): Move to...
1282         (execute_fixup_cfg): Break out the abnormal goto code.
1283         * tree-inline.c (has_abnormal_outgoing_edge_p): ...here.
1284         (make_nonlocal_label_edges): Move here from execute_fixup_cfg.
1285         (optimize_inline_calls): Call make_nonlocal_label_edges.
1286
1287 2007-02-04  Jan Hubicka  <jh@suse.cz>
1288
1289         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Return
1290         true when something was changed.
1291         (rename_ssa_copies): When something was changed, do
1292         TODO_remove_unused_locals.
1293         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
1294         add TODO_remove_unused_locals when instruction was removed.
1295
1296 2007-02-04  Jan Hubicka  <jh@suse.cz>
1297
1298         * ipa-inline.c (try_inline): Improve debug output; work on already
1299         inline edges too.
1300         (cgraph_decide_inlining_incrementally): Indent; improve debug output;
1301         call try_inline for already inlined edges too when flattening; 
1302         inline also functions that make callee growth but overall unit size
1303         reduce.
1304
1305 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
1306
1307         * config/m32c/bitops.md, config/m32c/jump.md,
1308         config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c,
1309         config/m32r/m32r.h, config/m32r/m32r.md,
1310         config/m32r/predicates.md, config/m68hc11/larith.asm,
1311         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
1312         config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md,
1313         config/mips/mips-protos.h, config/mips/mips.c,
1314         config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S,
1315         config/mn10300/mn10300.h, config/mn10300/predicates.md,
1316         config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow
1317         spelling conventions.
1318
1319         * config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
1320         Follow spelling conventions.
1321
1322 2007-02-03  Douglas Gregor  <doug.gregor@gmail.com>
1323
1324        * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
1325        warn about C++0x compatibility.
1326         
1327 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
1328
1329         * config/h8300/h8300.c, config/h8300/h8300.h,
1330         config/h8300/h8300.md: Follow spelling conventions.
1331
1332 2007-02-03  Uros Bizjak  <ubizjak@gmail.com>
1333
1334         PR middle-end/30667
1335         * combine.c (try_combine): Do not substitute source operand
1336         with constants wider than 2 * HOST_BITS_PER_WIDE_INT.
1337
1338 2007-02-03  Jan Hubicka  <jh@suse.cz>
1339
1340         PR gcov-profile/30650
1341         * value-prof.c (stringop_block_profile): Fix handling of size counter;
1342         do not divide by zero for never executed counters.
1343         (tree_find_values_to_profile): Fix counters.
1344         * gcov-ui.h (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): Fix comments.
1345
1346 2007-02-03  Ian Lance Taylor  <iant@google.com>
1347
1348         * lower-subreg.c (simple_move_operand): New static function,
1349         broken out of simple_move.  Reject LABEL_REF, SYMBOL_REF, and HIGH
1350         operands.
1351         (simple_move): Call simple_move_operand.
1352         (find_decomposable_subregs): Add special handling of MEMs.
1353         (can_decompose_p): Rename from cannot_decompose_p.  Reverse
1354         meaning of return value.  If we see a hard register, test whether
1355         it can store a word_mode value.  Change all callers.
1356
1357 2007-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1358
1359         * pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New
1360         ftrapv insns and expanders.
1361         (subdi3): Change define_expand operand 1 to arith11_operand, and
1362         operand 2 to reg_or_0_operand.  Change constraints of 64-bit insn
1363         pattern to handle reg_or_0 operands.  Revise 32-bit insn pattern to
1364         handle 11-bit constants and reg_or_0 operands in operands 1 and 2,
1365         respectively.
1366
1367         PR middle-end/30174
1368         * varasm.c (notice_global_symbol): Treat global objects as weak when
1369         flag_shlib is true.
1370
1371 2007-02-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1372
1373         * emit-rtl.c (dconstpi): Delete.
1374         (dconstsqrt2): New.
1375         (init_emit_once): Delete dconstpi and init dconstsqrt2.
1376         * real.h (dconstpi): Delete.
1377         (dconstsqrt2): New.
1378         * builtins.c (fold_builtin_cabs): Use dconstsqrt2.
1379         (fold_builtin_hypot): Likewise.
1380
1381 2007-02-03  Tom Tromey  <tromey@redhat.com>
1382
1383         PR driver/30246
1384         * gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3,
1385         -gcoff3, -gxcoff3, -gvms3 implies -dD.
1386
1387 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
1388
1389         * c-decl.c, config/avr/avr.c, config/avr/avr.h,
1390         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
1391         config/mn10300/mn10300.c, config/pdp11/pdp11.h,
1392         config/rs6000/cell.md, config/rs6000/darwin.h,
1393         config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
1394         config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
1395         jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
1396         tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
1397         typos.  Follow spelling conventions.
1398         * doc/invoke.texi: Follow spelling conventions.
1399
1400 2007-02-03  Roger Sayle  <roger@eyesopen.com>
1401
1402         * simplify-rtx.c (simplify_relational_operation_1): Implement some
1403         canonicalization transformations that attempt to simplify integer
1404         constant comparisons to become comparisons against zero.
1405
1406 2007-02-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1407
1408         * builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into
1409         fabs(x)*sqrt(2).
1410         * fold-const.c (fold_binary): Fix comment typos.  Fold complex
1411         (x,0)-(0,y) into (x,-y).  Likewise (0,y)-(x,0) into (-x,y).
1412
1413 2007-02-02  Mike Stump  <mrs@apple.com>
1414
1415         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add.
1416         * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
1417         (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
1418         generate a branch island.
1419
1420 2007-02-02  Bob Wilson  <bob.wilson@acm.org>
1421
1422         * config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P.
1423         (xtensa_legitimate_address_p): New.
1424         (xtensa_legitimize_address): New.
1425         (xtensa_output_addr_const_extra): New.
1426         * config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define.
1427         (BASE_REG_P): New.
1428         (REG_OK_FOR_BASE_P): Use BASE_REG_P.
1429         (GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p.
1430         (LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address.
1431         (OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra.
1432         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New.
1433         (xtensa_legitimize_address): New.
1434         (xtensa_output_addr_const_extra): New.
1435
1436 2007-02-02  Steve Ellcey  <sje@cup.hp.com>
1437
1438         * config/ia64/ia64.c (ia64_print_operand): Fix compare strings.
1439
1440 2007-02-02  Ian Lance Taylor  <iant@google.com>
1441
1442         * expmed.c (expand_divmod): Add comment.
1443
1444 2007-02-02  Kazu Hirata  <kazu@codesourcery.com>
1445
1446         * emit-rtl.c (renumber_insns): Remove.
1447         * flags.h: Remove the extern for flag_renumber_insns.
1448         * rtl.h: Remove the prototype for renumber_insns.
1449         * toplev.c (flag_renumber_insns): Remove.
1450
1451 2007-02-02  Hui-May Chang  <hm.chang@apple.com>
1452
1453         Revert for x86 darwin:
1454         2005-06-19  Uros Bizjak  <uros@kss-loka.si>
1455         
1456         * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
1457         code before the following patch under TARGET_MACHO.
1458         (ix86_function_value_regno_p): Likewise.
1459
1460 2007-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1461
1462         * fold-const.c (negate_expr_p, fold_negate_expr): Handle
1463         COMPLEX_EXPR.
1464
1465 2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1466
1467         PR target/29682
1468         * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory loads to
1469         general or fp registers.  Add comments.
1470         * config/ia64/ia64.md (reg_pred_prefix): Add comment.
1471
1472 2007-02-02  Paolo Bonzini  <bonzini@gnu.org>
1473
1474         * pointer-set.c (insert_aux): Only return insertion slot.
1475         (pointer_set_insert): Adjust.
1476         (pointer_set_traverse, struct pointer_map_t, pointer_map_create,
1477         pointer_map_destroy, pointer_map_insert, pointer_map_contains,
1478         pointer_map_traverse): New.
1479         * pointer-set.h (pointer_set_traverse, struct pointer_map_t,
1480         pointer_map_create,  pointer_map_destroy, pointer_map_insert,
1481         pointer_map_contains, pointer_map_traverse): Declare.
1482
1483 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
1484
1485         PR middle-end/30473
1486         * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
1487         sprintf (str, "%s").  Do not optimize sprintf (str, "nopercent", p++).
1488
1489 2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1490
1491         * sched-int.h (ds_to_dk, dk_to_ds): Declare functions.
1492         
1493         (struct _dep): New type.
1494         (dep_t): New typedef.
1495         (DEP_PRO, DEP_CON, DEP_KIND): New access macros.
1496         (DEP_STATUS): New access macro.  The macro with the same name was
1497         renamed to DEP_LINK_STATUS.
1498         (dep_init): Declare function
1499
1500         (struct _dep_link): New type.
1501         (dep_link_t): New typedef.
1502         (DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros.
1503         (DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros.
1504         (DEP_LINK_STATUS): New macro.
1505         (debug_dep_links): New debug function.
1506
1507         (struct _deps_list): New type.
1508         (deps_list_t): New typedef.
1509         (DEPS_LIST_FIRST): New access macro.
1510         (FOR_EACH_DEP_LINK): New cycle macro.
1511         (create_deps_list, free_deps_list, delete_deps_list): Declare
1512         functions.
1513         (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
1514         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
1515         (copy_deps_list_change_con): Ditto.
1516
1517         (move_dep_link): Declare function.
1518
1519         (struct _dep_node): New type.
1520         (dep_node_t): New typedef.
1521         (DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros.
1522
1523         (struct haifa_insn_data.back_deps): New field to hold backward
1524         dependencies of the insn.
1525         (struct haifa_insn_data.depend): Rename to forw_deps.  Change its type
1526         to deps_list_t.
1527         (struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps.
1528         Change its type to deps_list_t.
1529         (INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS.
1530         (INSN_DEPEND): Rename to INSN_FORW_DEPS.
1531         (RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.
1532
1533         (INSN_COST): Move to haifa-sched.c.  Use insn_cost () instead.
1534         
1535         (DEP_STATUS): Rename to DEP_LINK_STATUS.  Fix typo in the comment.
1536
1537         (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration and
1538         all callers.
1539         (dep_cost): Declare.
1540         
1541         * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
1542         (ds_to_dk, dk_to_ds): New functions.
1543         
1544         (init_dep_1): New static function.
1545         (init_dep): New function.
1546         (copy_dep): New static function.
1547         
1548         (dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
1549         functions.
1550         (detach_dep_link): New static function.
1551         (move_dep_link): New function.
1552         
1553         (dep_links_consistent_p, dump_dep_links): New static functions.
1554         (debug_dep_links): New debugging function.
1555         
1556         (deps_obstack, dl_obstack, dn_obstack): New static variables.
1557         
1558         (alloc_deps_list, init_deps_list): New static functions.
1559         (create_deps_list): New function.
1560         (clear_deps_list): New static function.
1561         (free_deps_list, delete_deps_list, deps_list_empty_p): New functions.
1562         (deps_list_consistent_p, dump_deps_list): New static functions.
1563         (debug_deps_list): New function.
1564         (add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New
1565         functions.
1566         (find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto.
1567
1568         (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to
1569         use new scheduler dependencies lists.
1570         (add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto.
1571         (sched_analyze): Ditto.  Initialize dependencies lists.
1572         (add_forw_dep, compute_forward_dependences): Update to use new
1573         scheduler dependencies lists.
1574         
1575         (init_dependency_caches): Init deps_obstack.
1576         (free_dependency_caches): Free deps_obstack.
1577         
1578         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
1579         new scheduler dependencies lists.
1580         (delete_forw_dep, add_or_update_back_forw_dep): Ditto.
1581         (add_back_forw_dep, delete_back_forw_dep): Ditto.
1582
1583         * sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree):
1584         Update to use new scheduler dependencies lists.
1585         (is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
1586         (debug_dependencies): Ditto.
1587         (schedule_region): Update comments.
1588         
1589         * sched-ebb.c (earliest_block_with_similiar_load): Update to use new
1590         scheduler dependencies lists.
1591         (schedule_ebb): Update comments.
1592         
1593         * rtl.def (DEPS_LIST): Remove.
1594         
1595         * lists.c (unused_deps_list): Remove.
1596         (free_list): Update assertions.
1597         
1598         (alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
1599         (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
1600
1601         * rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
1602         (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
1603         
1604         * haifa-sched.c (comments): Update.
1605         (insn_cost1): Remove.  Inline the code into insn_cost ().
1606         (insn_cost): Update to use new scheduler dependencies lists.  Move
1607         processing of the dependency cost to dep_cost ().
1608         (dep_cost): New function.  Use it instead of insn_cost () when
1609         evaluating cost of the dependency.  Use compatible interface to
1610         interact with the target.
1611         (priority): Update to use new scheduler dependencies lists.
1612         (rank_for_schedule): Ditto.  Optimize heuristic that prefers the insn
1613         with greater number of insns that depend on the insn.
1614         (schedule_insn): Update to use new scheduler dependencies lists.  Add
1615         code to free backward dependencies lists.  Inline and optimize code
1616         from resolve_dep () - see PR28071.
1617         (ok_for_early_queue_removal): Update to use new scheduler dependencies
1618         lists.  Update call to targetm.sched.is_costly_dependence hook.
1619         
1620         (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
1621         scheduler dependencies lists.
1622         
1623         (resolve_dep): Remove.  Move the logic to schedule_insn ().
1624         (init_h_i_d): Initialize dependencies lists.
1625         
1626         (process_insn_depend_be_in_spec): Rename to
1627         process_insn_forw_deps_be_in_spec.  Update to use new scheduler
1628         dependencies lists.
1629         (add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
1630         Update to use new scheduler dependencies lists.
1631         (clear_priorities, calc_priorities, add_jump_dependencies): Ditto.
1632         
1633         * ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
1634         new scheduler dependencies lists.
1635         (build_intra_loop_deps): Ditto.
1636         
1637         * target.h (struct _dep): Declare to use in
1638         gcc_target.sched.is_costly_dependence.
1639         (struct gcc_target.sched.adjust_cost): Fix typo.
1640         (struct gcc_target.sched.is_costly_dependence): Change signature to use
1641         single dep_t parameter instead of an equivalent triad.
1642         (struct gcc_target.sched.adjust_cost_2): Remove.
1643
1644         * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.
1645
1646         * reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments.
1647
1648         * doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update
1649         documentation.
1650         (TARGET_SCHED_ADJUST_COST_2): Remove documentation.
1651
1652         * doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
1653         (REG_DEP_TRUE): Document.
1654         
1655         * config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
1656         Change signature to correspond to the targetm.sched.adjust_cost hook.  
1657         Update use in TARGET_SCHED_ADJUST_COST_2.
1658         (TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
1659         (ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
1660         new scheduler dependencies lists.
1661         (ia64_gen_check): Ditto.
1662
1663         * config/mips/mips.c (vr4130_swap_insns_p): Update to use new scheduler
1664         dependencies lists.
1665         
1666         * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
1667         signature to correspond to the targetm.sched.is_costly_dependence hook.
1668         (is_costly_group): Update to use new scheduler dependencies lists.
1669
1670         * config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function
1671         instead of INSN_COST () macro.
1672
1673 2007-02-01  Ian Lance Taylor  <iant@google.com>
1674
1675         * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn.
1676
1677 2007-02-01  Guy Martin  <gmsoft@gentoo.org>
1678
1679         * pa.md (tp_load): Correct mfctl instruction syntax.
1680
1681 2007-02-01  Geoffrey Keating  <geoffk@apple.com>
1682
1683         * config/rs6000/rs6000.c (rs6000_stack_info): Correct
1684         altivec_padding_size calculation on AIX.  Improve comment, add
1685         assert to verify that it's right.
1686
1687         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
1688         64-bit.
1689
1690 2007-2-01  Seongbae Park  <seongbae.park@gmail.com>
1691
1692         PR inline-asm/28686
1693         * global.c (global_alloc): Add mising initialization of
1694         ELIMINABLE_REGSET.
1695
1696 2007-02-01  Roger Sayle  <roger@eyesopen.com>
1697
1698         * alias.c (init_alias_analysis): Correct whitespace.
1699         * bb-reorder.c (fix_edges_for_rarely_executed_code,
1700         partition_hot_cold_basic_blocks): Likewise.
1701         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
1702         expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
1703         maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
1704         fold_builtin_snprintf_chk, fold_builtin_printf,
1705         fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
1706         do_mpfr_arg3, do_mpfr_sincos): Likewise.
1707         * cfgcleanup.c (cleanup_cfg): Likewise.
1708         * cfgexpand.c (tree_expand_cfg): Likewise.
1709         * fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
1710         * function.c (get_next_funcdef_no): Likewise.
1711         * gengtype.c (main): Likewise.
1712         * genmodes.c (main): Likewise.
1713         * gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
1714         * haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
1715         * ifcvt.c (noce_emit_move_insn): Likewise.
1716         * modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
1717         Likewise.
1718         * stor-layout.c (get_best_mode): Likewise.
1719         * tree-ssa-loop-niter.c (get_val_for): Likewise.
1720         * tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
1721         scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
1722         perform_var_substitution, solve_graph): Likewise.
1723         * tree-vrp.c (vrp_finalize): Likewise.
1724
1725 2007-02-01  Ian Lance Taylor  <iant@google.com>
1726
1727         * lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
1728         high part of a paradoxical subreg, return a constant zero.
1729
1730 2007-02-01  Zdenek Dvorak <dvorakz@suse.cz>
1731
1732         * toplev.c (lang_dependent_init): Call init_set_costs.
1733         * loop-init.c (loop_optimizer_init): Do not call init_set_costs.
1734
1735 2007-02-01  Richard Guenther  <rguenther@suse.de>
1736
1737         PR middle-end/30656
1738         * fold-const.c (fold_negate_expr): Allow negating a
1739         constant if overflow does not change.
1740
1741 2007-02-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1742
1743         * doc/c-tree.texi (Expression trees): Improve markup.
1744         * doc/tm.texi (Register Classes, Addressing Modes)
1745         (Floating Point): Fix spacing after abbreviations.  Fix some
1746         typos.
1747
1748 2007-02-01  Ben Elliston  <bje@au.ibm.com>
1749
1750         * doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
1751         * doc/contrib.texi: Likewise.
1752         * doc/install.texi: Likewise.
1753
1754 2007-01-31  Richard Henderson  <rth@redhat.com>
1755             Ian Lance Taylor  <iant@google.com>
1756
1757         * lower-subreg.c: New file.
1758         * rtl.def (CONCATN): Define.
1759         * passes.c (init_optimization_passes): Add pass_lower_subreg and
1760         pass_lower_subreg2.
1761         * emit-rtl.c (update_reg_offset): New static function, broken out
1762         of gen_rtx_REG_offset.
1763         (gen_rtx_REG_offset): Call update_reg_offset.
1764         (gen_reg_rtx_offset): New function.
1765         * regclass.c: Revert patch of 2006-03-05, restoring
1766         reg_scan_update.
1767         (clear_reg_info_regno): New function.
1768         * dwarf2out.c (concatn_loc_descriptor): New static function.
1769         (loc_descriptor): Handle CONCATN.
1770         * common.opt (fsplit_wide_types): New option.
1771         * opts.c (decode_options): Set flag_split_wide_types when
1772         optimizing.
1773         * timevar.def (TV_LOWER_SUBREG): Define.
1774         * rtl.h (gen_reg_rtx_offset): Declare.
1775         (reg_scan_update): Declare.
1776         * regs.h (clear_reg_info_regno): Declare.
1777         * tree-pass.h (pass_lower_subreg): Declare.
1778         (pass_lower_subreg2): Declare.
1779         * doc/invoke.texi (Option Summary): List -fno-split-wide-types.
1780         (Optimize Options): Add -fsplit-wide-types to -O1 list.  Document
1781         -fsplit-wide-types.
1782         * doc/rtl.texi (Regs and Memory): Document concat and concatn.
1783         * Makefile.in (OBJS-common): Add lower-subreg.o.
1784         (lower-subreg.o): New target.
1785
1786 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
1787
1788         * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.
1789
1790 2007-01-31  Anatoly Sokolov <aesok@post.ru>
1791
1792         PR target/19087
1793         * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
1794
1795 2007-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1796
1797         PR middle-end/29335
1798         * builtins.c (fold_builtin_sqrt): Use MPFR for constant args.
1799
1800 2007-01-31  Zdenek Dvorak <dvorakz@suse.cz>
1801
1802         * cfgloop.h: Include vec-prim.h.
1803         (enum li_flags): Remove LI_ONLY_OLD.
1804         (loop_iterator): Changed.
1805         (fel_next, fel_init): Iterate over loop tree.
1806         (FOR_EACH_LOOP_BREAK): New macro.
1807         * loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
1808         FOR_EACH_LOOP.
1809         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
1810         * modulo-sched.c (sms_schedule): Ditto.
1811         * tree-vectorizer.c (vectorize_loops): Ditto.
1812         * doc/loop.texi: Update information on loop numbering and behavior of
1813         FOR_EACH_LOOP wrto new loops.
1814         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
1815         add_to_evolution_1): Test nestedness of loops instead of comparing
1816         their numbers.
1817         * tree-chrec.c (chrec_fold_plus_poly_poly,
1818         chrec_fold_multiply_poly_poly, chrec_evaluate,
1819         hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
1820         reset_evolution_in_loop): Ditto.
1821         * Makefile.in (CFGLOOP_H): Add vecprim.h dependency.
1822
1823 2007-01-31  Dirk Mueller  <dmueller@suse.de>
1824
1825         * c-common.c (warn_about_parentheses): Separate warning about
1826         un-parenthized sequence of comparison operators from the one
1827         which is supposed to warn about x <= y <= z.
1828
1829 2007-01-31  Uros Bizjak  <ubizjak@gmail.com>
1830
1831         * optabs.h (enum optab_index): Add new OTI_isinf.
1832         (isinf_optab): Define corresponding macro.
1833         * optabs.c (init_optabs): Initialize isinf_optab.
1834         * genopinit.c (optabs): Implement isinf_optab using isinf?f2
1835         patterns.
1836         * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
1837         (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
1838         using isinf_optab.
1839         (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
1840         expand_builtin_interclass_mathfn.
1841         * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
1842         * config/i386/i386.md (UNSPEC_FXAM): New constant.
1843         (fxam<mode>2_i387): New insn pattern.
1844         (isinf<mode>2) New expander to implement isinf, isinff and isinfl
1845         built-in functions as x87 inline asm.
1846
1847 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
1848
1849         * gcc/config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.
1850
1851 2007-01-30  Eric Christopher  <echristo@apple.com>
1852
1853         * config.gcc: Add geode.
1854
1855 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
1856
1857         * cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
1858         ipa-inline.c, tree-profile.c, tree-ssa-live.c,
1859         tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
1860         value-prof.c: Fix comment typos.
1861
1862 2007-01-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1863
1864         PR c++/24745
1865         * doc/invoke.texi (Wpointer-arith): Document warning.
1866
1867 2007-01-30  Janis Johnson  <janis187@us.ibm.com>
1868
1869         * doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
1870         the list of discrepancies from the draft TR.
1871
1872 2007-01-30  Dirk Mueller  <dmueller@suse.de>
1873
1874         PR c++/30601
1875         * doc/invoke.texi (-Wreturn-type): Update description to
1876         match new behavior.
1877
1878 2007-01-30  Richard Sandiford  <richard@codesourcery.com>
1879
1880         * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
1881
1882 2007-01-30  Uros Bizjak  <ubizjak@gmail.com>
1883
1884         * builtins.c (expand_builtin_int_interclass_roundingfn): New function
1885         to handle optabs that operate on floating point input argument and
1886         output to integer output.
1887         (expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
1888         (expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
1889         (expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
1890         expand_builtin_interclass_mathfn ().
1891         * config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
1892         (ilogbsi2): Remove.
1893         (ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
1894         ilogbl built-in functions as x87 intrinsics.
1895
1896 2007-01-30  Richard Guenther  <rguenther@suse.de>
1897
1898         PR middle-end/27657
1899         * dwarf2out.c (reference_to_unused): Query varpool if the
1900         variable was output.
1901
1902 2007-01-30  Richard Guenther  <rguenther@suse.de>
1903
1904         PR middle-end/30313
1905         * passes.c (execute_one_pass): Reset in_gimple_form to not
1906         confuse non-unit-at-a-time mode.
1907
1908 2007-01-29  Roger Sayle  <roger@eyesopen.com>
1909             Richard Guenther  <rguenther@suse.de>
1910
1911         * fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
1912         avoid undefined behaviour on overflow.  Use force_fit_type_double
1913         to construct the constant with the specified TREE_OVERFLOW.
1914
1915 2007-01-29  Janis Johnson  <janis187@us.ibm.com>
1916
1917         * config/dfp-bit.c: Add parameterized support for fp exceptions.
1918         * config/dfp-bit.h: Ditto.
1919
1920 2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1921
1922         * c-decl.c (pop_scope): Replace warnings with call to
1923         warn_for_unused_label.
1924         * c-common.h (warn_for_unused_label): Declare.
1925         * c-common.c (warn_for_unused_label): Define.
1926
1927 2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1928
1929         * tree-optimize.c (update_inlined_to_pointers): Delete unused
1930         function.
1931
1932 2007-01-29  Janis Johnson  <janis187@us.ibm.com>
1933
1934         * Makefile.in (USER_H): Remove decfloat.h.
1935         * ginclude/decfloat.h: Delete, moving contents to ...
1936         * ginclude/float.h: Add support for decimal floating point,
1937         guarded by __STDC_WANT_DEC_FP__.
1938
1939 2007-01-29  Mike Stump  <mrs@apple.com>
1940
1941         * doc/gccint.texi (Top): Rename Loop Representation to Loop
1942         Analysis and Representation to resolve case insensitive conflict.
1943         * doc/loop.texi (Loop Analysis and Representation): Likewise.
1944
1945 2007-01-28  Daniel Berlin  <dberlin@dberlin.org>
1946
1947         * tree.h (struct tree_memory_tag): Add aliases member.
1948         (MTAG_ALIASES): New macro.
1949         * tree-ssa-alias.c (alias_bitmap_obstack): New variable.
1950         (add_may_alias): Remove pointer-set. Update for may_aliases being
1951         a bitmap.
1952         (mark_aliases_call_clobbered): Update for may_aliases being a
1953         bitmap.
1954         (compute_tag_properties): Ditto.
1955         (create_partition_for): Ditto.
1956         (compute_memory_partitions): Ditto.
1957         (dump_may_aliases_for): Ditto.
1958         (is_aliased_with): Ditto.
1959         (add_may_alias_for_new_tag): Ditto.
1960         (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
1961         (compute_is_aliased): New function.
1962         (compute_may_aliases): Call compute_is_aliased).
1963         (init_alias_info): Initialize alias_bitmap_obstack.
1964         (union_alias_set_into): New function.
1965         (compute_flow_sensitive_aliasing): Use union_aliases_into.
1966         (have_common_aliases_p): Rewrite to take two bitmaps and use
1967         intersection.
1968         (compute_flow_insensitive_aliasing): Stop using pointer-sets.
1969         Update for bitmaps.
1970         (finalize_ref_all_pointers): Update for add_may_alias changes.
1971         (new_type_alias): Ditto.
1972         * tree-flow-inline.h (may_aliases): Return a bitmap.
1973         * tree-dfa.c (dump_variable): Check for MTAG_P'ness.
1974         * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
1975         may_aliases being a bitmap.
1976         * tree-flow.h (struct var_ann_d): Remove may_aliases member.
1977         may_aliases now returns a bitmap.
1978         * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
1979         being a bitmap.
1980         * tree-ssa-operands.c (add_virtual_operand): Update for
1981         may_aliases being a bitmap.
1982
1983 2007-01-29  Daniel Berlin  <dberlin@dberlin.org>
1984
1985         PR tree-optimization/30630
1986         * tree-ssa-structalias.c (do_complex_constraint): Mark correct
1987         variable as changed.
1988
1989 2007-01-29  Simon Martin  <simartin@users.sourceforge.net>
1990
1991         PR c++/28266
1992         * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
1993         expanded only once even if an error occurs.
1994
1995 2007-01-29  Ben Elliston  <bje@au.ibm.com>
1996
1997         * gcov-io.h (__gcov_indirect_call_profiler): Declare.
1998         (__gcov_average_profiler): Likewise.
1999         (__gcov_ior_profiler): Likewise.
2000         (__gcov_merge_ior): Likewise.
2001
2002 2007-01-28  Jan Hubicka  <jh@suse.cz>
2003
2004         * builtins.c (expand_builtin_memset): Fix typo in my last patch.
2005         * value-prof.c (stringop_block_profile): Likewise.
2006
2007 2007-01-28  Jan Hubicka  <jh@suse.cz>
2008
2009         * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall): Add
2010         variant handling histograms; add wrapper.
2011         (clear_storage_via_libcall): Export.
2012         (emit_block_move_hints): Break out from ...; add histograms.
2013         (emit_block_move): ... this one.
2014         (clear_storage_hints): Break out from ...; add histograms.
2015         (clear_storage): ... this one.
2016         (set_storage_via_memset): Handle histogram.
2017         * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
2018         (clear_storage_hints, clear_storage_via_libcall): Declare.
2019         (set_storage_via_setmem): Update prototype.
2020         * doc/md.texi (movmem, setmem): Document new arguments.
2021
2022         * value-prof.c (dump_histogram_value, tree_find_values_to_profile): Add
2023         new histograms.
2024         (stringop_block_profile): New global function.
2025         (tree_stringops_values_to_profile): Profile block size and alignment.
2026         * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
2027         HIST_TYPE_IOR.
2028         (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
2029         (stringop_block_profile): Declare.
2030         * builtins.c: Include value-prof.h.
2031         (expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
2032         * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
2033         (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
2034         (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
2035         * profile.c (instrument_values): Add new counters.
2036         * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
2037         calls.
2038         * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
2039         (tree_init_edge_profiler): Build new profilers.
2040         (tree_gen_average_profiler, tree_gen_ior_profiler): New.
2041         (pass_tree_profile): Add dump.
2042         (tree_profile_hooks): Update.
2043         * Makefile.in (LIBGCOV): Add new constants.
2044         * libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
2045         __gcov_ior_profiler): New.
2046         * i386.md (movmem/setmem expanders): Add new optional arguments.
2047
2048 2007-01-28  David Edelsohn  <edelsohn@gnu.org>
2049
2050         * doc/md.texi (Standard Pattern Names): Document blockage pattern.
2051
2052 2007-01-28  Zdenek Dvorak <dvorakz@suse.cz>
2053
2054         * tree-ssa-loop-unswitch.c: Include tree-inline.h.
2055         (tree_unswitch_single_loop): Pass eni_size_weights to
2056         tree_num_loop_insns.
2057         * tree-ssa-loop-manip.c: Include tree-inline.h.
2058         (can_unroll_loop_p): Pass eni_size_weights to
2059         tree_num_loop_insns.
2060         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
2061         Pass eni_size_weights to estimate_num_insns.
2062         * tree.h (init_inline_once): Export.
2063         * toplev.c (backend_init): Call init_inline_once.
2064         * cgraphunit.c (cgraph_process_new_functions,
2065         cgraph_analyze_function): Pass eni_inlining_weights to
2066         estimate_num_insns.
2067         * ipa-inline.c (compute_inline_parameters): Ditto.
2068         * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
2069         to estimate_num_insns.
2070         (try_unroll_loop_completely): Pass eni_size_weights to
2071         tree_num_loop_insns.
2072         * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
2073         ot estimate_num_insns.
2074         * tree-ssa-loop-prefetch.c: Include tree-inline.h.
2075         (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
2076         * tree-inline.c (eni_inlining_weights, eni_size_weights,
2077         eni_time_weights): New variables.
2078         (init_inline_once): Initialize them.
2079         (struct eni_data): Mew.
2080         (estimate_num_insns_1, estimate_num_insns): Use weights.
2081         * tree-inline.h (struct eni_weights_d): New.
2082         (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
2083         (estimate_num_insns): Declaration changed.
2084         * cfgloop.h (tree_num_loop_insns): Declaration changed.
2085         * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
2086         tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
2087
2088 2007-01-28  Zdenek Dvorak <dvorakz@suse.cz>
2089
2090         * tree-data-ref.c (conflict_fn): Assert that the number of affine
2091         relations in the conflict function is valid.
2092
2093 2007-01-27  Ian Lance Taylor  <iant@google.com>
2094
2095         * common.opt: Add fstrict-overflow.
2096         * opts.c (decode_options): Set flag_strict_overflow if -O2.
2097         * flags.h (TYPE_OVERFLOW_WRAPS): Define.
2098         (TYPE_OVERFLOW_UNDEFINED): Define.
2099         (TYPE_OVERFLOW_TRAPS): Define.  This replaces TYPE_TRAP_SIGNED.
2100         Replace all uses.
2101         * tree.h (TYPE_TRAP_SIGNED): Don't define.
2102         * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
2103         (fold_negate_expr): Likewise.
2104         (make_range): Likewise.
2105         (extract_muldiv_1): Likewise.
2106         (maybe_canonicalize_comparison): Likewise.
2107         (fold_comparison): Likewise.
2108         (fold_binary): Likewise.
2109         (tree_expr_nonnegative_p): Likewise.
2110         (tree_expr_nonzero_p): Likewise.
2111         * tree-vrp.c (compare_values): Likewise.
2112         (extract_range_from_binary_expr): Likewise.
2113         (extract_range_from_unary_expr): Likewise.
2114         * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
2115         Likewise.
2116         (nowrap_type_p): Likewise.
2117         * tree-scalar-evolution.c (simple_iv): Likewise.
2118         * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
2119         (build_range_check): Likewise.
2120         (extract_muldiv_1): Likewise.
2121         (fold_comparison): Likewise.
2122         * tree-vrp.c (vrp_int_const_binop): Likewise.
2123         (extract_range_from_unary_expr): Likewise.
2124         * convert.c (convert_to_integer): Likewise.
2125         * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
2126         (fold_comparison): Likewise.
2127         (fold_binary): Likewise.
2128         * optabs.c (optab_for_tree_code): Likewise.
2129         * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
2130         * simplify-rtx.c (simplify_const_relational_operation): Check
2131         flag_strict_overflow and flag_trapv.
2132         (simplify_const_relational_operation): Likewise.
2133         * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
2134         (Optimize Options): Add -fstrict-overflow to -O2 list.  Document
2135         -fstrict-overflow.
2136
2137 2007-01-27  Roger Sayle  <roger@eyesopen.com>
2138
2139         * tree.c (tree_fold_gcd): Delete.
2140         * tree.h (tree_fold_gcd): Remove prototype.
2141         * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
2142         test whether one constant integer is a multiple of another.  Instead
2143         call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
2144         * fold-const.c (multiple_of_p):  We've determined both TOP and
2145         BOTTOM are integer constants so we can call int_const_binop directly
2146         instead of the more generic const_binop.
2147
2148 2007-01-27  Roger Sayle  <roger@eyesopen.com>
2149
2150         * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
2151         1*X check that the constant hasn't overflowed, to preserve the
2152         TREE_OVERFLOW bit.
2153         (round_up): Provide an efficient implementation when rouding-up an
2154         INTEGER_CST to a power-of-two.
2155
2156 2007-01-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2157
2158         * doc/sourcebuild.texi: Add comma for clarity.
2159         * doc/extend.texi: Fix some typos.
2160         * doc/passes.texi: Likewise.
2161         * doc/cppinternals.texi: Likewise.
2162         * doc/c-tree.texi: Likewise.
2163         * doc/tree-ssa.texi: Likewise.
2164         * doc/install.texi: Likewise.
2165
2166 2007-01-27  Jan Hubicka  <jh@suse.cz>
2167
2168         * tree-sra.c (sra_walk_function): Don't rely on aliases being build.
2169         (pass_sra): Do not require alias information.
2170         * passes.c (init_optimization_passes): Add SRA
2171
2172 2007-01-27  Steven Bosscher  <steven@gcc.gnu.org>
2173
2174         * tracer.c (rest_of_handle_tracer): We already cleaned
2175         up the CFG in tracer() so don't do it here again.
2176         * cfgcleanup.c (rest_of_handle_jump2): Don't repeat
2177         cleanup_cfg here, either.  And don't call renumber_insns.
2178
2179         * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
2180         and BB_HEAD are in the insn stream here.  Instead make sure
2181         that BB_INSN is valid on all insns.  Also, do check here that
2182         there are no pending branch predictions...
2183         (rtl_verify_flow_info): ...instead of doing it here.  Checks
2184         for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
2185         here.
2186
2187 2007-01-26  Roger Sayle  <roger@eyesopen.com>
2188
2189         * config/i386/i386.c (ix86_swap_binary_operands_p): New helper
2190         function to simplify/factorize operand order canonicalization.
2191         (ix86_fixup_binary_operands): Reorganize using the above function.
2192         (ix86_binary_operator_ok): Likewise.
2193
2194 2007-01-27  Jakub Jelinek  <jakub@redhat.com>
2195
2196         * genattrtab.c (struct attr_value_list, insn_code_values): Move to
2197         file scope from optimize_attrs.
2198         (simplify_test_exp): If insn_code_values is not NULL, use it to speed
2199         up search.
2200         (optimize_attrs): Clear insn_code_values after freeing it.
2201
2202 2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>
2203
2204         * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
2205         a parts.base assignment.
2206
2207 2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>
2208
2209         * tree-data-ref.c (dump_subscript): Use dump_conflict_function.
2210         (compute_subscript_distance, initialize_data_dependence_relation,
2211         finalize_ddr_dependent, analyze_ziv_subscript,
2212         analyze_siv_subscript_cst_affine,
2213         compute_overlap_steps_for_affine_univar,
2214         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
2215         analyze_siv_subscript, analyze_miv_subscript,
2216         analyze_overlapping_iterations, subscript_dependence_tester_1,
2217         compute_self_dependence, free_dependence_relation): Work
2218         with affine_fn instead of chrecs.
2219         (dump_affine_function, dump_conflict_function, affine_function_equal_p,
2220         common_affine_function, affine_function_base,
2221         affine_function_constant_p, affine_fn_op, affine_fn_plus,
2222         affine_fn_minus, affine_fn_free, conflict_fn_not_known,
2223         conflict_fn_no_dependence, free_conflict_function, free_subscripts,
2224         conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
2225         (all_chrecs_equal_p): Removed.
2226         * tree-data-ref.h (affine_fn, conflict_function): New types.
2227         (struct subscript): Change type of conflicting_iterations_in_a
2228         and conflicting_iterations_in_b.
2229
2230 2007-01-26  Steve Ellcey  <sje@cup.hp.com>
2231
2232         PR other/30182
2233         * config/pa/pa.h (TARGET_HPUX_11): New.
2234         * config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
2235         * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.
2236
2237 2007-01-26  Daniel Berlin  <dberlin@dberlin.org>
2238         Richard Guenther  <rguenther@suse.de>
2239
2240         * tree-ssa-structalias.c (solve_graph): Handle case
2241         we merged the variable to another.
2242
2243 2007-01-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2244
2245         * builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even'
2246         functions.
2247
2248         * fold-const.c (negate_mathfn_p): Treat casin, casinh, catan,
2249         catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions.
2250
2251 2007-01-25  DJ Delorie  <dj@redhat.com>
2252
2253         * config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't
2254         allow changes to modes which don't fit in those registers.
2255
2256         * reload1.c (choose_reload_regs): Check for invalid subregs before
2257         computing their locations, not after.
2258
2259 2007-01-25  Geoffrey Keating  <geoffk@apple.com>
2260
2261         PR 25127
2262         * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
2263         save Altivec registers in an eh_return function.
2264         (compute_vrsave_mask): Likewise.
2265         (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
2266         for saving Altivec registers.
2267         (rs6000_emit_prologue): Don't allocate stack twice in
2268         eh_return function.  Correct expected value of altivec_save_offset
2269         when using save_world.  Describe save of R0 to stack when using
2270         save_world.  Describe stack pointer adjustment when using
2271         save_world.  Remove duplicated eh_return parameter register saving.
2272         Update sp_offset variable after save_world.
2273         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
2274         darwin-world.asm.
2275         (LIB2FUNCS_EXTRA): Add darwin-world.asm.
2276         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
2277         implies Altivec.
2278
2279 2007-01-25  Steve Ellcey  <sje@cup.hp.com>
2280
2281         * config.gcc (ia64*-*-hpux*): Make posix threads the default.
2282
2283 2007-01-25  Steve Ellcey  <sje@cup.hp.com>
2284
2285         PR other/30182
2286         * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
2287         * config/ia64/ia64.c (ia64_init_builtins):  Ditto.
2288
2289 2007-01-25  Richard Guenther  <rguenther@suse.de>
2290
2291         * doc/invoke.texi (-Wcoverage-mismatch): Document.
2292         * common.opt (-Wcoverage-mismatch): New warning option.
2293         * coverage.c (get_coverage_counts): Ignore coverage mismatch
2294         if -Wcoverage-mismatch is given.
2295
2296 2007-01-25  Razya Ladelsky  <razya@il.ibm.com>
2297
2298         * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
2299         (ipcp_driver): Change to static definition.
2300         Add dumping of the ifunctions.
2301         (constant_val_insert): Remove unused parameter. Support for SSA.
2302         (ipcp_propagate_const): Support for SSA.
2303         (ipcp_profile_bb_print): Print only analyzed nodes.
2304         (ipcp_replace_map_create): Remove support for Fortran constant
2305         for now.
2306         * ipa-prop.c (ipa_method_modify_stmt,
2307         ipa_callsite_compute_param): Support for SSA.
2308         * ipa-prop.h (ipcp_driver): Remove declaration.
2309         (IS_VALID_TREE_MAP_INDEX): Add define.
2310
2311 2007-01-24  Geoffrey Keating  <geoffk@apple.com>
2312
2313         * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
2314
2315 2007-01-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2316
2317         PR middle-end/30447
2318         * builtins.c (fold_builtin_cabs): Use MPFR to evaluate a
2319         constant argument to cabs and do it without checking for
2320         -funsafe-math-optimizations.
2321
2322 2007-01-24  Douglas Gregor  <dgregor@osl.iu.edu>
2323
2324         * c-common.h (RID_FIRST_CXX0X): New.
2325         (RID_LAST_CXX0X): New.
2326         * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered
2327         by -Wall.
2328         * c.opt (Wc++0x-compat): New.
2329         * doc/invoke.texi (-Wc++0x-compat): Document.
2330
2331 2007-01-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2332
2333         * builtins.c (fold_builtin_carg): New.
2334         (fold_builtin_1): Use it.
2335
2336 2007-01-24  Jan Hubicka  <jh@suse.cz>
2337
2338         * ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns.
2339
2340         * ipa-inline.c (initial_insns, max_insns): Delete.
2341         (compute_max_insns): New function.
2342         (cgraph_decide_inlining_of_small_function): Use it; take minimal amount
2343         of insns as base for code growth.
2344         (cgraph_decide_inlining): Make initial_insns local; do not compute
2345         max_insns.
2346         * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
2347         * doc/invoke.texi (inline-unit-growth): Update docs.
2348
2349 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
2350
2351         * config/i386/i386.h (x86_cmpxchg16b): Remove const.
2352         (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b.
2353         * config/i386/i386.c (x86_cmpxchg16b): Remove const.
2354         (override_options): Add PTA_CX16 flag.  Set x86_cmpxchg16b
2355         for CPUs that have PTA_CX16 set.
2356
2357         PR middle-end/27416
2358         * gimplify.c (omp_check_private): New function.
2359         (gimplify_scan_omp_clauses): Use it for
2360         firstprivate/lastprivate/reduction.
2361
2362         PR middle-end/30494
2363         * gimplify.c (omp_add_variable): Don't call omp_notice_variable
2364         on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
2365
2366         PR middle-end/30421
2367         * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
2368         If lower_lastprivate_clauses emits some statements, append them
2369         to dlist rather than body_p and to body_p append an initializer.
2370         (lower_omp_for): Adjust caller.
2371
2372 2007-01-24  Steve Ellcey  <sje@cup.hp.com>
2373
2374         * target.h (globalize_decl_name): New.
2375         * target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
2376         * output.h (default_globalize_decl_name): New.
2377         * varasm.c (asm_output_bss): Use globalize_decl_name instead of
2378         globalize_label.
2379         (globalize_decl): Ditto.
2380         (default_globalize_decl_name): New.
2381         * config/ia64/ia64.c (ia64_globalize_decl_name): New.
2382         (ia64_handle_version_id_attribute): New.
2383         (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
2384         (ia64_asm_output_external): Use globalize_decl_name instead
2385         of globalize_label.
2386         * doc/extend.texi (version_id): New pragma.
2387         * doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook.
2388
2389 2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
2390
2391         * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
2392         _uleb128_t and _Unwind_SWord with _sleb128_t.
2393         * unwind-dw2.c (extract_cie_info, execute_stack_op, execute_cfa_program,
2394         uw_frame_state_for, uw_update_context_1): Likewise.
2395         * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
2396         * unwind-pe.h (read_uleb128, read_sleb128,
2397         read_encoded_value_with_base): Likewise.
2398         * unwind-generic.h: Define _sleb128_t and _uleb128_t types.
2399
2400 2007-01-24  Richard Guenther  <rguenther@suse.de>
2401
2402         * builtins.c (expand_builtin_cexpi): Get the fndecl
2403         for cexp in the correct way.
2404
2405 2007-01-24  Jan Hubicka  <jh@suse.cz>
2406
2407         * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS of calls.
2408
2409 2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
2410
2411         * c-cppbuiltin.c (builtin_define_type_sizeof): New function.
2412         (c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__,
2413         __SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__,
2414         __SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__,
2415         __SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and
2416         __SIZEOF_PTRDIFF_T__.
2417         * doc/cpp.texi: Documentation for the new builtin macros added.
2418
2419 2007-01-24  Uros Bizjak  <ubizjak@gmail.com>
2420
2421         * config/i386/i386.md (tanxf2, tan<mode>2, atan<mode>2, log<mode>2,
2422         log10<mode>2, log2<mode>2, expxf2, exp10xf2, exp2xf2): Use op2
2423         instead of operands[2] to avoid access past the end of array.
2424
2425 2007-01-24  Richard Sandiford  <richard@codesourcery.com>
2426
2427         * reload1.c (emit_reload_insns): Pass the reload register
2428         for a non-spill output reload through forget_old_reloads_1.
2429
2430 2007-01-23  Joseph Myers  <joseph@codesourcery.com>
2431
2432         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2433         _SOFT_DOUBLE if doubles use software floating-point.
2434         * config/rs6000/libgcc-ppc-glibc.ver: Export additional long
2435         double functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
2436         * config/rs6000/darwin-ldouble.c: Also compile functions for
2437         hard-float without FPRs.  Use fmsub function for all __NO_FPRS__
2438         cases.  Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
2439         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove
2440         commented-out long double override.
2441         (CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise.
2442         * config/rs6000/eabispe.h: Likewise.
2443         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
2444         long double for non-SPE.
2445         (rs6000_handle_option): Likewise.
2446         (invalid_e500_subreg): Disallow more subregs involding DImode,
2447         DFmode, TImode or TFmode.
2448         (rs6000_legitimate_offset_address_p): Check TFmode offsets for
2449         E500 double.
2450         (legitimate_lo_sum_address_p): Also check for TFmode for E500
2451         double.
2452         (rs6000_legitimize_address): Also handle TFmode for E500 double.
2453         (rs6000_legitimize_reload_address): Also handle TFmode for E500
2454         double.
2455         (rs6000_legitimate_address): Also check for TFmode for E500
2456         double.
2457         (rs6000_emit_move): Use DFmode subregs of TFmode for E500 double.
2458         (spe_build_register_parallel): Handle TFmode and TCmode.
2459         (rs6000_spe_function_arg): Handle TFmode and TCmode for E500
2460         double.
2461         (function_arg): Handle TFmode and TCmode for E500 double.
2462         (rs6000_init_libfuncs): Initialize extra libfuncs for soft double
2463         in general.
2464         (print_operand): Handle TFmode and TImode for %y.
2465         (rs6000_generate_compare): Handle TFmode comparisons for E500
2466         double.
2467         (spe_func_has_64bit_regs_p): Check for TFmode for E500 double.
2468         (rs6000_function_value): Handle TFmode and TCmode for E500 double.
2469         (rs6000_libcall_value): Handle TFmode and TCmode for E500 double.
2470         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for
2471         TFmode for E500 double.
2472         * config/rs6000/rs6000.md (FP): Allow TF for E500 double.
2473         (floatsidf2): Enable for E500 double.
2474         (movtf_softfloat): Use rs6000_nonimmediate_operand.
2475         (extenddftf2): Change to extenddftf2_fprs.
2476         (extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs
2477         depending on TARGET_E500_DOUBLE.
2478         (extendsftf2): Enable for E500 double.
2479         (trunctfdf2): Enable for E500 double.
2480         (trunctfsf2): Change to trunctfsf2_fprs.
2481         (trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs
2482         depending on TARGET_E500_DOUBLE.
2483         (floatsitf2): Enable for E500 double.
2484         (fix_trunctfsi2): Change to fix_trunctfsi2_fprs.
2485         (fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or
2486         gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE.
2487         (negtf2): Change to negtf2_internal.
2488         (negtf2): New expander.
2489         (abstf2): Enable for E500 double.  Call gen_spe_abstf2_tst,
2490         gen_spe_abstf2_cmp or gen_abstf2_internal depending on
2491         TARGET_E500_DOUBLE and flag_unsafe_math_optimizations.
2492         (movdi_internal32): Use rs6000_nonimmediate_operand.
2493         (unnamed splitter): Likewise.
2494         * config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR,
2495         TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs.
2496         (SPE64TF, DITI): New mode macros.
2497         (frob_df_di): Change to frob_<SPE64:mode>_<DITI:mode>; allow more
2498         modes.
2499         (frob_tf_ti): New.
2500         (frob_<mode>_di_2): New.
2501         (frob_tf_di_8_2): New.
2502         (frob_di_df): Change to frob_di_<mode>; allow more modes.
2503         (frob_ti_tf): New.
2504         (frob_di_df_2): Change to frob_<DITI:mode>_<SPE64:mode>_2; allow
2505         more modes.
2506         (frob_ti_<mode>_8_2): New.
2507         (frob_ti_tf_2): New.
2508         (mov_si<mode>_e500_subreg0, mov_si<mode>_e500_subreg0_2,
2509         mov_si<mode>_e500_subreg4, mov_si<mode>_e500_subreg4_2): Allow
2510         TFmode.
2511         (mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2,
2512         mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New.
2513         (spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2,
2514         spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal,
2515         spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New.
2516         (cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr,
2517         tsttflt_gp): New.
2518
2519 2007-01-23  Ian Lance Taylor  <iant@google.com>
2520
2521         * Makefile.in (OBJS-common): Reformat, alphabetize, but put
2522         insn-*.o first.
2523         (OBJS-archive): Reformat, alphabetize.
2524         (OBJS): Change out_object_file to OBJS-md.
2525
2526 2007-01-23  Uros Bizjak  <ubizjak@gmail.com>
2527
2528         * config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
2529         JUMP_P and CALL_P predicates where applicable.
2530         * config/i386/i386.c: Ditto.
2531         * config/i386/i386.md: Ditto.
2532         * config/i386/mmx.md: Ditto.
2533         * config/i386/predicates.md: Ditto.
2534
2535 2007-01-22  Andreas Schwab  <schwab@suse.de>
2536
2537         * config/m68k/m68k.h: Fix comment.
2538
2539 2007-01-22  Jan Hubicka  <jh@suse.cz>
2540
2541         * passes.c (init_optimization_passes): Do not rerun
2542         pass_early_warn_uninitialized.
2543
2544 2007-01-22  Richard Guenther  <rguenther@suse.de>
2545
2546         PR tree-optimization/30038
2547         * tree-ssa-math-opts.c (maybe_record_sincos): New static helper
2548         function.
2549         (execute_cse_sincos_1): Likewise.
2550         (execute_cse_sincos): Likewise.
2551         (gate_cse_sincos): Likewise.
2552         (pass_cse_sincos): New pass CSEing sin() and cos() calls using
2553         the cexpi() canonicalization of sincos().
2554         * tree-pass.h (pass_cse_sincos): Declare.
2555         * passes.c (init_optimization_passes): New pass pas_cse_sincos.
2556
2557 2007-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2558
2559         PR rtl-optimization/29329
2560         * combine.c (replaced_rhs_insn): Rename to i2mod.
2561         (replaced_rhs_value): Rename to i2mod_new_rhs.
2562         (i2mod_old_rhs): New global variable.
2563         (combine_instructions): Adjust for above change.  Save a copy of
2564         the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
2565         note are substituted in the second instruction.
2566         (distribute_notes) <REG_DEAD>: Adjust for above change.  Do not
2567         ditch the note if it pertains to the second eliminated register
2568         and this register is mentioned in i2mod_old_rhs.
2569
2570         Revert:
2571         2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2572
2573         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
2574         the insn to which the note was originally attached.
2575
2576 2007-01-21  Jan Hubicka  <jh@suse.cz>
2577
2578         * ipa-inline.c (inlining_mode): Comment, move up.
2579         (cgraph_decide_inlining_incrementally): Do not perform inlining
2580         itself; fix handling of flattening of self recursive functions.
2581         (cgraph_find_cycles): Remove.
2582         (cgraph_flatten_node): Remove.
2583         (cgraph_decide_inlining): Use incremental inliner to handle flattening.
2584         (try_inline): New function.
2585         (cgraph_early_inlining): Update call of
2586         cgraph_decide_inlining_incrementally.  Apply inlining here.
2587         (apply_inline): Update call of cgraph_decide_inlining_incrementally.
2588
2589 2007-01-21  Dirk Mueller  <dmueller@suse.de>
2590
2591         PR bootstrap/30511
2592         * tree-vrp.c (check_array_bounds): do not warn
2593         about ADDR_EXPR's of ARRAY_REF's which are immediately
2594         used in binary expressions.
2595
2596 2007-01-21  Ira Rosen  <irar@il.ibm.com>
2597
2598         * tree-vectorizer.h (struct _stmt_vec_info): Add new field
2599         read_write_dep and macros for its access.
2600         * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
2601         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
2602         argument, call vect_check_interleaving for every independent pair of
2603         data-refs. Mark loads that access the same memory location as a store
2604         in the loop.
2605         (vect_check_dependences): Remove.
2606         (vect_analyze_data_ref_dependences): Remove  vect_check_dependences
2607         call, fix the call to vect_analyze_data_ref_dependence.
2608         (vect_analyze_data_ref_access): For statements that access the same
2609         data-ref, check that they are not stores; for loads, check that there
2610         is no store that access the same location.
2611
2612 2007-01-20  Roger Sayle  <roger@eyesopen.com>
2613             Joseph Myers  <joseph@codesourcery.com>
2614
2615         * doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox.
2616         (-fdump-rtl-stack): Likewise.
2617         (-fno-signed-zeros): Use @minus{} for a minus sign.  Correct typo.
2618         (-mcheck-zero-division, -mcpu): Fix under/overfull hbox.
2619         (-mpt-fixed): Use @minus{} for minus sign.
2620         (Using Precompiled Headers): Fix under/overfull hbox.
2621
2622 2007-01-20  Jan Hubicka  <jh@suse.cz>
2623
2624         * tree-flow.h (struct stmt_ann_d): Move references_memory to proper
2625         place within annotation.
2626
2627 2007-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2628
2629         * pa.c (output_move_double): Change array size of xoperands to 4.
2630
2631 2007-01-20  Jan Hubicka  <jh@suse.cz>
2632
2633         * tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
2634         as temporary.
2635
2636 2007-01-19  Ian Lance Taylor  <iant@google.com>
2637
2638         * expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
2639         constant to unsigned HOST_WIDE_INT before negating.
2640
2641 2007-01-19  Ian Lance Taylor  <iant@google.com>
2642
2643         * tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
2644         to unsigned.
2645         (VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
2646         (VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
2647         (SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
2648         (SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
2649         (SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
2650         (realloc_vdef, realloc_vuse): Change second parameter to
2651         unsigned.
2652         (ssa_operand_iterator_d): Change vuse_index and mayuse_index
2653         fields to unsigned.
2654         * tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
2655         unsigned. Change x and lim locals to unsigned.
2656         (realloc_vdef, realloc_vuse): Change num_elem parameter to
2657         unsigned.
2658         (finalize_ssa_vuse_ops): Change old_i local to unsigned.
2659         (copy_virtual_operands): Change i and n locals to unsigned.
2660
2661 2007-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2662
2663         PR middle-end/29335
2664         * builtins.c (fold_builtin_1): Handle builtin fdim.
2665
2666 2007-01-20  Jan Hubicka  <jh@suse.cz>
2667
2668         * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
2669         * tree-ssa-structalias.c (compute_points_to_sets): Do call
2670         init_alias_heapvars.
2671         (init_alias_heapvars): Initialize only when not already initialized.
2672         (delete_alias_heapvars): Set heapvar_for_stmt to NULL.
2673
2674 2007-01-19  Roger Sayle  <roger@eyesopen.com>
2675
2676         * common.opt (fsigned-zeros): New command line option.
2677         * flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
2678         of flag_unsafe_math_optimizations.
2679         * opts.c (set_fast_math_flags): The -ffast-math command line option
2680         implies -fno-signed-zeros.
2681         (fast_math_flags_set_p): Likewise.
2682
2683         * doc/invoke.texi: Document new -fno-signed-zeros option, and update
2684         the documentation of -ffast-math appropriately.  Wrap long lines.
2685
2686 2007-01-19  Steve Ellcey  <sje@cup.hp.com>
2687
2688         * system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
2689         * varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef.
2690
2691 2007-01-19  Tomas Bily  <tbily@suse.cz>
2692
2693         * cgraphunit.c (cgraph_finalize_function): Updating of pid
2694         * tree-profile.c:
2695         (tree_init_ic_make_global_vars): New function
2696         (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
2697         (tree_gen_ic_profiler): New function
2698         (tree_gen_ic_func_profiler): New function
2699         (tree_profiling): Added calling of tree_gen_ic_func_profiler
2700         (tree_profile_hooks): Added hook for indirec/virtual calls
2701         * value-prof.c (tree_find_values_to_profile): New case for
2702         indirect calls
2703         (tree_values_to_profile): Call for determining indirect/virtual
2704         counters
2705         (tree_indirect_call_to_profile): New function
2706         (tree_ic_transform): New function
2707         (tree_ic): New function
2708         (find_func_by_pid): New function
2709         (init_pid_map): New function
2710         (tree_value_profile_transformations): Added check for
2711         indirect/virtual call transformation
2712         * value-prof.h (enum hist_type): New counter type for
2713         indirect/virtual calls
2714         (profile_hooks): Added new hook for profiling indirect/virtual
2715         calls
2716         * profile.c (instrument_values): New case for indirect/virtual
2717         call added
2718         * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
2719         (GCOV_COUNTER_V_INDIR): New counter type
2720         (GCOV_COUNTER_NAMES): New name of counter "indirect" added
2721         (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
2722         call added
2723         * cgraph.c: Definition of cgraph_max_pid
2724         (cgraph_create_node): Default init of pid attribute
2725         * cgraph.h: Declaration of cgraph_max_pid
2726         (struct cgraph_node): Added pid attribute
2727         * libgcov.c (__gcov_indirect_call_profiler): New function
2728         (__gcov_one_value_profiler_body): New function
2729         (__gcov_one_value_profiler): Body was moved to
2730         __gcov_one_value_profiler_body and calls it
2731
2732 2007-01-19  Basile Starynkevitch  <basile@starynkevitch.net>
2733
2734         * doc/gty.texi (Options): Document the mark_hook option to GTY.
2735         * gengtype.c (write_types_data, write_func_for_structure,
2736         write_types, ggc_wtd, pch_wtd): Add skip_hooks to
2737         write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
2738         (walk_type, write_func_for_structure): Generate the mark_hook if
2739         needed.
2740
2741 2007-01-19  Jan Hubicka  <jh@suse.cz>
2742
2743         * ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of
2744         'early' argument take inlining mode argument specifying whether to
2745         inline for size/speeed or all functions; add support for flattening;
2746         improve dumpting.
2747         (cgraph_early_inlining): Update call of decide_inlining_incrementally.
2748
2749 2007-01-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2750
2751         PR c++/17947
2752         * toplev.c (warn_deprecated_use): Use %qD instead of %qs to print
2753         the name of the declared identifier.
2754
2755 2007-01-19  Dirk Mueller  <dmueller@suse.de>
2756
2757         * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
2758         result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
2759         duplicate evaluation.
2760
2761 2007-01-19  Uros Bizjak  <ubizjak@gmail.com>
2762
2763         * config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
2764         Macroize expander using X87MODEF12 mode macro.  Extend operand 1
2765         to XFMode, use acosxf2 and truncate result to requested mode.
2766         Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
2767         (asin<mode>2): Similarly, with asin expanders.
2768         (*fscalexf4_i387): Rename from *fscalexf4.
2769         (expNcorexf3): New expander.
2770         (expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
2771         (exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
2772         X87MODEF12 mode macro.  Extend operand 1 to XFMode, use expxf2 and
2773         truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
2774         patterns for SSE math.
2775         (exp10<mode>2): Similarly, with exp10 expanders.
2776         (exp2<mode>2): Similarly, with exp2 expanders.
2777         (expm1<mode>2): Similarly, with expm1 expanders.
2778         (ldexp<mode>3): Similarly, with ldexp expanders.
2779         (log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
2780         Use gen_truncxf<mode>2_i387_noop to truncate result.
2781
2782 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
2783
2784         * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
2785         for ColdFire targets.
2786
2787 2007-01-19  Nathan Sidwell  <nathan@codesourcery.com>
2788             Richard Sandiford  <richard@codesourcery.com>
2789
2790         * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
2791         (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
2792         (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
2793         * config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
2794         (M68K_STATIC_CHAIN_REG_NAME): Likewise.
2795         * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
2796
2797 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
2798
2799         * config/m68k/m68k.md (adddi_dilshr32): Rename to...
2800         (*adddi_dilshr32): ...this.  Fix formatting.  Remove commented-out
2801         non-canonical pattern.  Restrict to !TARGET_COLDFIRE.
2802         (*adddi_dilshr32_cf): New pattern.
2803         (adddi3, subdi3): Remove first alternatives.
2804
2805 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
2806
2807         * config/m68k/m68k.c (notice_update_cc): If an SFmode move is
2808         implemented using move.l, do not use its cc result for floating-point
2809         comparisons.
2810
2811 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
2812
2813         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
2814         from accepting 's' constraints if flag_pic.
2815
2816 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
2817
2818         * config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
2819         (bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
2820         (bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
2821         condition from TARGET_68881 to TARGET_HARD_FLOAT.
2822
2823 2007-01-19  Sandra Loosemore  <sandra@codesourcery.com>
2824
2825         * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
2826         ColdFire alternatives.
2827         * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
2828         * config/m68k/m68k.md (clzsi2):  Define for ColdFire
2829         architectures that support ff1 instruction.
2830
2831 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
2832             Julian Brown  <julian@codesourcery.com>
2833
2834         * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
2835         * config/m68k/m68k.md (*movsi_cfv4): Fold into...
2836         (*movsi_cf): ...here.  Remove unnecessary 'R' from 'Rg'.
2837         Add commentary.
2838
2839 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
2840
2841         * config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
2842         and return a bool.
2843         (output_move_const_into_data_reg, output_move_simode_const): Delete.
2844         * config/m68k/m68k.c (const_method, const_int_cost): Take a
2845         HOST_WIDE_INT instead of an rtx.
2846         (m68k_rtx_costs): Update call accordingly.
2847         (output_move_const_into_data_reg): Likewise.  Fix formatting.
2848         (valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
2849         Return a bool.
2850         (output_move_simode_const): Update calls after above changes.
2851         Rework to use automatic variables and predicates like MEM_P.
2852         * config/m68k/m68k.md (pushexthisi_const): Update call to
2853         valid_mov3q_const.
2854
2855 2007-01-19  Dirk Mueller  <dmueller@suse.de>
2856
2857         * tree-ssa-alias.c (perform_var_substitution): Fix typo
2858         in dump_flags test.
2859
2860 2007-01-19  Richard Guenther  <rguenther@suse.de>
2861
2862         * builtins.c (expand_builtin_cexpi): Fall back to expanding
2863         via cexp in case sincos is not available.
2864
2865 2007-01-19  Richard Guenther  <rguenther@suse.de>
2866
2867         * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
2868         * defaults.h (TARGET_HAS_SINCOS): Default to off.
2869         * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
2870         * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
2871         * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
2872         * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
2873         * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
2874         * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
2875
2876 2007-01-19  Uros Bizjak  <ubizjak@gmail.com>
2877
2878         * config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
2879         New insn patterns.
2880         (atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
2881         (atan2xf3): Directly generate RTL pattern.
2882         (atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
2883         patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
2884         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
2885         disable patterns for SSE math.
2886         (atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
2887         patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
2888         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
2889         disable patterns for SSE math.
2890
2891 2007-01-19  Alexandre Oliva  <aoliva@redhat.com>
2892
2893         * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0.
2894
2895 2007-01-18  Roger Sayle  <roger@eyesopen.com>
2896
2897         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
2898         VIEW_CONVERT_EXPR to the same type as it's operand.
2899
2900 2007-01-18  David Edelsohn  <edelsohn@gnu.org>
2901
2902         * config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
2903         configured for long double 128.
2904
2905 2007-01-18  Mike Stump  <mrs@apple.com>
2906
2907         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build
2908         error.
2909
2910 2007-01-18  Michael Meissner  <michael.meissner@amd.com>
2911
2912         * i386.c (ix86_compute_frame_layout): Make fprintf's in #if 0 code
2913         type correct.
2914
2915 2007-01-18  Jan Hubicka  <jh@suse.cz>
2916
2917         * tree-ssa-operands.c (vop_free_bucket_size): Never return value
2918         greater than NUM_VOP_FREE_BUCKETS.
2919
2920 2007-01-18  Daniel Berlin  <dberlin@dberlin.org>
2921
2922         * tree-ssa-structalias.c: Update comments.
2923         (ptabitmap_obstack): Removed.
2924         (pta_obstack): New.
2925         (oldpta_obstack): Ditto.
2926         (stats): Add a few members.
2927         (struct variable_info): Remove node, complex, address_taken, and
2928         indirect_target members. Add oldsolution member.
2929         (new_var_info): Do not initialize removed members.
2930         (constraint_expr_type): Remove INCLUDES.
2931         (constraint_graph): Add size, implicit_preds, rep,
2932         indirect_cycles, eq_rep, label, direct_nodes, and complex members.
2933         (FIRST_REF_NODE): New macro.
2934         (LAST_REF_NODE): Ditto.
2935         (FIRST_ADDR_NODE): Ditto.
2936         (find): New function.
2937         (unite): Ditto.
2938         (dump_constraint): Do not handle INCLUDES.
2939         (insert_into_complex): Do not insert duplicate constraints.
2940         (condense_varmap_nodes): Renamed and rewritten into ...
2941         (merge_node_constraints): This. Also fix bug in handling of
2942         offseted copy constraints.
2943         (clear_edges_for_node): No longer need to deal with preds at all,
2944         or removing associated preds/succs.
2945         (merge_graph_nodes): Deal with indirect_cycles.
2946         Don't deal with predecessors.
2947         (add_implicit_graph_edge): New function.
2948         (add_pred_graph_edge): Ditto.
2949         (add_graph_edge): Don't deal with predecessors.
2950         (build_constraint_graph): Removed.
2951         (build_pred_graph): New function.
2952         (build_succ_graph): Ditto.
2953         (struct scc_info): Removed in_component. Added roots, dfs, and
2954         node_mapping. Remove visited_index, unification_queue.
2955         (scc_visit): Deal with union-find we do now.
2956         Deal with cycles with REF nodes.
2957         (collapse_nodes): Renamed and rewritten to ...
2958         (unify_nodes): This.
2959         (process_unification_queue): Removed.
2960         (topo_visit): Cleanup
2961         (do_da_constraint): Use find.
2962         (do_sd_constraint): Ditto.
2963         (do_ds_constraint): Ditto.
2964         (do_complex_constraint): Ditto.
2965         (init_scc_info): Update for removed and added members.
2966         (find_and_collapse_graph_cycles): Renamed and rewritten into ...
2967         (find_indirect_cycles): This.
2968         (equivalence_class): New variable.
2969         (label_visit): New function.
2970         (perform_variable_substitution): Rewritten.
2971         (free_var_substitution_info): New function.
2972         (find_equivalent_node): Ditto.
2973         (move_complex_constraints): Ditto.
2974         (eliminate_indirect_cycles): Ditto.
2975         (solve_graph): Only propagate changed bits.
2976         Use indirect cycle elimination.
2977         Use find.
2978         (tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
2979         (tree_id_eq): Renamed to ...
2980         (tree_vi_eq): This. Update for member change
2981         (insert_id_for_tree): Renamed and rewritten to ...
2982         (insert_vi_for_tree): This.
2983         (lookup_id_for_tree): Renamed and rewritten to ...
2984         (lookup_vi_for_tree): This.
2985         (get_id_for_tree): Renamed and rewritten to ...
2986         (get_vi_for_tree): Ditto.
2987         (get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
2988         (process_constraint): Don't handle INCLUDES.
2989         Remove special ADDRESSOF case.
2990         (find_func_aliases): Rewrite to use vi functions instead of id
2991         ones.
2992         (create_function_info_for): Ditto.
2993         (create_variable_info_for): Ditto.
2994         (intra_create_variable_infos): Ditto.
2995         (merge_smts_into): Ditto.
2996         (find_what_p_points_to): Ditto.
2997         (init_base_vars): Ditto.
2998         (init_alias_vars): Ditto.
2999         (remove_preds_and_fake_succs): New function.
3000         (dump_sa_points_to_info): Dump new stats.
3001         (dump_solution_for_var): Use find.
3002         (set_used_smts): Fix formatting.
3003         (compute_points_to_sets): Updated for new functions.
3004         (ipa_pta_execute): Ditto.
3005
3006 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
3007             Richard Sandiford  <richard@codesourcery.com>
3008
3009         * doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
3010         parallels.
3011         * calls.c (expand_call): If the return value is a PARALLEL,
3012         extract its first member.
3013         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
3014         * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
3015         use FUNCTION_EXTRA_EPILOGUE.
3016         (m68k_function_value): Return a PARALLEL if the return value
3017         is of a pointer type.
3018         * config/m68k/netbsd-elf.h (current_function_returns_pointer)
3019         (FUNCTION_EXTRA_EPILOGUE): Remove.
3020         * config/m68k/m68k.md (D0_REG): New constant.
3021
3022 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
3023
3024         * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
3025         output a NOP for empty epilogues.
3026
3027 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
3028
3029         * config/m68k/m68k.c (m68k_use_return_insn): Update comments
3030         before function.  Extend register save check to include all
3031         registers, not just integer ones.
3032
3033 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
3034
3035         * config/m68k/m68k-protos.h (use_return_insn): Rename to...
3036         (m68k_use_return_insn): ...this.
3037         * config/m68k/m68k.h (USE_RETURN_INSN): Delete.
3038         * config/m68k/m68k.c (use_return_insn): Rename to...
3039         (m68k_use_return_insn): ...this.
3040         * config/m68k/m68k.md (return): Use m68k_use_return_insn instead
3041         of USE_RETURN_INSN.
3042
3043 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3044
3045         * config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
3046         nearest even, fix denormal rounding overflow.
3047
3048 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
3049
3050         * config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
3051         f%$smove and f%$move.
3052         (movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
3053         (extendsfdf2_cf): Use fdmove instead of f%&move.
3054         (truncdfsf2_cf): Use fsmove instead of f%$smove.
3055         (add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.
3056
3057 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
3058
3059         * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
3060         GPR<-GPR moves.
3061
3062 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
3063
3064         * real.h (real_format): Add a canonical_nan_lsbs_set field.
3065         (coldfire_single_format): Declare.
3066         (coldfire_double_format): Likewise.
3067         * real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
3068         of qnan_msb_set to determine the lower bits of a canonical
3069         NaN significand.
3070         (encode_ieee_double): Likewise.
3071         (encode_ieee_quad): Likewise.
3072         (ieee_single_format): Initialize canonical_nan_lsbs_set.
3073         (mips_single_format): Likewise.
3074         (ieee_double_format): Likewise.
3075         (mips_double_format): Likewise.
3076         (ieee_extended_motorola_format): Likewise.
3077         (ieee_extended_intel_96_format): Likewise.
3078         (ieee_extended_intel_128_format): Likewise.
3079         (ieee_extended_intel_96_round_53_format): Likewise.
3080         (ibm_extended_format): Likewise.
3081         (mips_extended_format): Likewise.
3082         (ieee_quad_format): Likewise.
3083         (mips_quad_format): Likewise.
3084         (vax_f_format): Likewise.
3085         (vax_d_format): Likewise.
3086         (vax_g_format): Likewise.
3087         (i370_single_format): Likewise.
3088         (i370_double_format): Likewise.
3089         (decimal_single_format): Likewise.
3090         (decimal_double_format): Likewise.
3091         (decimal_quad_format): Likewise.
3092         (c4x_single_format): Likewise.
3093         (c4x_extended_format): Likewise.
3094         (real_internal_format): Likewise.
3095         (coldfire_single_format): New real_format.
3096         (coldfire_double_format): Likewise.
3097         * config/pdp11/pdp11.c (pdp11_f_format): Initialize
3098         canonical_nan_lsbs_set.
3099         (pdp11_d_format): Likewise.
3100         * config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
3101         if TARGET_COLDFIRE_CPU.
3102
3103 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
3104
3105         * config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
3106         (output_call, m68k_legitimize_call_address): Declare.
3107         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
3108         parenthesees.  Add support for a 'W' constraint.
3109         (LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
3110         (PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
3111         (m68k_symbolic_call, m68k_symbolic_jump): Declare.
3112         * config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
3113         variables.
3114         (override_options): Initialize them.  Do not set flag_no_function_cse
3115         for TARGET_ID_SHARED_LIBRARY.
3116         (m68k_output_pic_call): Delete.
3117         (m68k_legitimize_call_address): New function.
3118         (print_operand): Remove the %o prefix.  Handle the %p prefix.
3119         (output_call): New function.
3120         (m68k_output_mi_thunk): Use m68k_symbolic_jump.  Always load the
3121         target address from the GOT if symbolic jumps are not allowed.
3122         * config/m68k/m68k.md (call, general_operand): Do not set
3123         SYMBOL_REF_FLAG.  Use m68k_legitimize_call_address instead.
3124         Merge separate flag_pic and !flag_pic define_insns into...
3125         (*call, *call_value): ...these new patterns.  Match the address
3126         rather than the containing MEM and require it to be a call_operand.
3127         Use output_call to generate the asm template.
3128         * config/m68k/predicates.md (const_call_operand): New predicate.
3129         (call_operand): Likewise.
3130
3131 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3132
3133         * config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
3134         (STACK_GROWS_DOWNWARD): Define to 1.
3135         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
3136         comments, emphasizing that these values are only defaults.
3137         * config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
3138         * config/m68k/m68k.c (const_method): Remove trailing whitespace.
3139
3140 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
3141
3142         * config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.
3143
3144 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
3145             Richard Sandiford  <richard@codesourcery.com>
3146
3147         * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
3148         (FP_REGNO_P): New macros.
3149         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
3150         (REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
3151         (EH_RETURN_STACKADJ_RTX): Use A0_REG.
3152         * config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.
3153
3154 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3155
3156         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
3157         (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
3158         to $tmake_file.
3159         * config/m68k/t-floatlib: New file, extracting common code from...
3160         * config/m68k/t-m68kbare, config/m68k/t-m68kelf,
3161         * config/m68k/t-uclinux: Here.
3162         * config/m68k/fpgnulib.c: Do not compile extendeed precision
3163         routines on ColdFire targets.
3164
3165 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
3166
3167         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
3168         (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
3169         (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
3170         (m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
3171         explicitly set MOTOROLA to 1.
3172         * config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.
3173
3174 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
3175             Nathan Sidwell  <nathan@codesourcery.com>
3176
3177         * config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
3178         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
3179         * config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
3180         * config/m68k/m68020-elf.h (LIB_SPEC): Delete.
3181         * config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
3182         * config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
3183         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
3184         (NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
3185         (BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
3186         * config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
3187         * config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
3188         (WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
3189         (TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
3190         (DBX_REGISTER_NUMBER): Delete.
3191         * config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
3192         (PCC_STATIC_STRUCT_RETURN): Don't undefine.
3193         * config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.
3194
3195 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
3196
3197         * config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
3198         * config/flat.h: New file.
3199         * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
3200         OBJECT_FORMAT_FLAT.
3201         * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
3202         indirect references for -msep-data or -mid-shared-library.
3203         Do not use PC-relative code addresses either.
3204         * config/m68k/m68k.c (override_options): Restrict -fPIC error
3205         to -mpcrel.
3206         * config/m68k/uclinux.h (STARTFILE_SPEC): Define.  Use Scrt1.o
3207         for shared libraries and crt1.o for executables.  Use crti.o and
3208         crtbegin.o.
3209         (ENDFILE_SPEC): Use crtend.o and crtn.o.
3210         (LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
3211         Do not add -elf2flt or -shared-lib-id options here.
3212         (LINK_SPEC): Define.  Pass -elf2flt if no -elf2flt option is given.
3213         Pass -shared-lib-id if -mid-shared-library, taking the library
3214         identifier from -mshared-library-id if given, otherwise
3215         defaulting to 0.
3216         (EH_FRAME_IN_DATA_SECTION): Do not undefine.
3217         (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
3218         (TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
3219         and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
3220         (DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
3221         * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
3222         and crtend.o.
3223         * config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
3224         jump sequence for ISA A and ISA A+.
3225         (PICJUMP): Likewise.
3226
3227 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
3228
3229         * config.gcc (m68k-*-uclinux*): Base the port on the common
3230         and m68k GNU/Linux files rather than on the generic ELF ones.
3231         * config/m68k/uclinux.h (TARGET_VERSION): Override.
3232         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
3233
3234 2007-01-18  Julian Brown  <julian@codesourcery.com>
3235             Richard Sandiford  <richard@codesourcery.com>
3236
3237         * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
3238         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
3239         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
3240         before redefining.
3241         * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
3242         80 unconditionally.
3243         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
3244
3245 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
3246
3247         * doc/install.texi: Document m68k-uclinuxoldabi.
3248         * config.gcc (m68k-*-uclinuxoldabi): New configuration.
3249         * config/m68k/uclinux-oldabi.h: New file, copied from
3250         config/m68k/uclinux.h.
3251
3252 2007-01-18  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
3253
3254         * config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
3255         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
3256         (m32r_compute_frame_size): Use unsigned for regno.
3257         (m32r_reload_lr): Use gen_frame_mem.
3258         (pop): New.
3259         (m32r_output_function_epilogue): Don't output the function epilogue
3260         textually here.
3261         (m32r_expand_epilogue): New.
3262         (direct_return): Return false if the function has the interrupt
3263         attribute.
3264         (m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
3265         * config/m32r/m32r.md (epilogue): New expander.
3266         (return_lr, return_rte): New insns.
3267         (return): Make it expander.
3268         (return_normal): New expander.
3269
3270 2007-01-18  Josh Conner  <jconner@apple.com>
3271
3272         PR target/30485
3273         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
3274         support for UNLE, UNLT, UNGE, and UNGT.
3275
3276 2007-01-18  Jan Hubicka  <jh@suse.cz>
3277
3278         * tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
3279         * tree-tailcall (add_virtual_phis): Likewise.
3280         (optimize_tail_call): Return TODOs.
3281         (execute_tail_calls): Return TODOs.
3282         * tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
3283         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
3284         changed.
3285         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
3286         Cleanup cfg using TODO.
3287         * tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
3288         * passes.c (execute_function_todo): When cleanup did something, remove
3289         unused locals.
3290         * tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
3291         (make_edges): Don't cleanup_cfg.
3292
3293 2007-01-18  Uros Bizjak  <ubizjak@gmail.com>
3294
3295         * reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
3296         UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
3297         operate on the top of stack.
3298         [UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
3299         register handling of instructions that output to the second
3300         stack slot.
3301         [UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
3302         (move_for_stack_reg): Special-case check for dead destination
3303         stack slot for constant load of 1.0 inside UNSPEC_TAN.
3304
3305         * config/i386/i386.md (UNSPEC_TAN): New constant.
3306         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
3307         (fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
3308         to correctly model move of constant 1.0 to top stack slot.
3309         (*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
3310         (unnamed peephole2 pattern): Remove corresponding peephole2
3311         pattern that optimizes tan insn and loading of constant 1.0.
3312         (tanxf2): Use fptanxf4_i387.
3313         (tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
3314         patterns using X87MODEF12 mode macro.  Use fptan_extend<mode>xf4_i387
3315         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
3316         disable patterns for SSE math.
3317         (sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
3318         (fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.
3319
3320 2007-01-18  Dirk Mueller  <dmueller@suse.de>
3321             Richard Guenther <rguenther@suse.de>
3322
3323         PR diagnostic/8268
3324         * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
3325         * common.opt (Warray-bounds): Add new warning option.
3326         * c-opts.c (c_common_handle_option): Define -Warray-bounds
3327         if -Wall is given.
3328         * Makefile.in: make tree-vrp.o depend on toplev.h
3329         * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
3330         is enabled.
3331         (check_array_refs, check_array_bounds, check_array_ref): New.
3332
3333 2007-01-18  Jan Hubicka  <jh@suse.cz>
3334
3335         * tree-ssa-ccp.c (ccp_finalize): Return if something changed.
3336         (execute_ssa_ccp): Return flags conditionally.
3337         * tree-ssa-propagate.c (substitue_and_fold): Return if something was
3338         changed.
3339         * tree-ssa-propagate.h (substitute_and_fold): Update prototype.
3340
3341 2007-01-18  Steven Bosscher  <steven@gcc.gnu.org>
3342
3343         * cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
3344         the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
3345
3346         * Makefile.c (GTFILES): Add cfglayout.h.
3347         * gengtype.c (open_base_files): Likewise.
3348         * cfglayout.c (cfg_layout_function_footer,
3349         cfg_layout_function_header) Reindent to make gengtype happy.
3350         * cfglayout.h (cfg_layout_function_footer,
3351         cfg_layout_function_header): Add GTY(()) marker.
3352
3353         * ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.
3354
3355 2007-01-18  Ben Elliston  <bje@au.ibm.com>
3356
3357         * genautomata.c (write_automata): Include xstrerror output in the
3358         error message if writing the DFA description file fails.
3359
3360 2007-01-17  H.J. Lu  <hongjiu.lu@intel.com>
3361
3362         * config/mips/mips-protos.h (mips_output_external): Make it
3363         return void.
3364         * config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
3365         * config/mips/mips.c (irix_output_external_libcall): Likewise.
3366         (extern_list): Likewise.
3367         (extern_head): Likewise.
3368         (TARGET_ASM_FILE_END): Likewise.
3369         (mips_file_end): Likewise.
3370         (mips_output_external): Rewritten.
3371
3372 2007-01-18  Ben Elliston  <bje@au.ibm.com>
3373
3374         * genpreds.c (write_insn_preds_c): Only write out the function
3375         body for regclass_for_constraint if we have register constraints.
3376
3377 2007-01-17  Tom Tromey  <tromey@redhat.com>
3378
3379         * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
3380         * doc/install.texi (Testing): Use sourceware.org.
3381         (Binaries): Likewise.
3382         (Specific): Likewise.
3383         * doc/contrib.texi (Contributors): Use sourceware.org.
3384
3385 2007-01-17  Anatoly Sokolov <aesok@post.ru>
3386
3387         * config/avr/avr.h (AVR_HAVE_LPMX): New macro.
3388         (AVR_ENHANCED): Rename to ...
3389         (AVR_HAVE_MUL): ... new.
3390         (avr_enhanced_p): Rename to ...
3391         (avr_have_mul_p): ... new.
3392         (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of
3393         'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
3394         * config/avr/avr.c (avr_enhanced_p): Rename to ...
3395         (avr_have_mul_p): ... new.