OSDN Git Service

PR target/32506
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2
3         PR target/32506
4         * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
5         predicate instead of target_operand.
6         (divsi3_i1_media, divsi3_media_2): Likewise.
7
8 2007-07-02  Eric Botcazou  <ebotcazou@adacore.com>
9
10         * tree.h (alias_sets_might_conflict_p): Rename into
11         alias_sets_must_conflict_p.
12         * alias.c (alias_sets_might_conflict_p): Likewise.
13         (alias_sets_conflict_p): Use it.
14         (objects_must_conflict_p): Likewise.
15         * c-common.c (strict_aliasing_warning): Adjust.
16
17 2007-07-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18
19         * rtlhooks.c (gen_lowpart_if_possible): Check for
20         invalid subreg before calling gen_lowpart_SUBREG.
21
22 2007-07-02  Geoffrey Keating  <geoffk@apple.com>
23
24         * config/darwin9.h: Add copyright notice.
25         (LINK_COMMAND_SPEC): Add comment.
26         (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
27         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
28         DARWIN_LIBSYSTEM_HAS_UNWIND.
29
30 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
31
32         PR libgomp/32468
33         * omp-low.c (check_combined_parallel): New function.
34         (lower_omp_parallel): Call it via walk_stmts, set
35         OMP_PARALLEL_COMBINED if appropriate.
36         (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
37         isn't the only statement in WS_ENTRY_BB or OMP_RETURN
38         the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
39         don't consider it as combined parallel.
40
41 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
42
43         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
44         (gcc_tooldir): Likewise.
45         * configure: Regenerate.
46         * Makefile.in (libsubdir_to_prefix): New variable, based on the
47         old configure.ac gcc_tooldir setting.
48         (prefix_to_exec_prefix): New variable.
49         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
50         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
51
52 2007-07-02  Daniel Berlin  <dberlin@dberlin.org>
53
54         Fix PR tree-optimization/32583
55         Fix PR tree-optimization/32584
56         * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
57         (phi_translate_set): Use phi_translate directly now.
58         (make_values_for_stmt): Don't value number RHS if we already know
59         it is constant.
60
61 2007-07-02  Steve Ellcey  <sje@cup.hp.com>
62             Jim Wilson <wilson@specifix.com>
63
64         PR target/31684
65         * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
66         copy_insn.
67
68 2007-07-02  Sandra Loosemore  <sandra@codesourcery.com>
69             Richard Sandiford  <richard@codesourcery.com>
70             Nigel Stephens  <nigel@mips.com>
71
72         * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
73         (mips16e_output_save_restore): Declare.
74         (mips16e_save_restore_pattern_p): Likewise.
75         * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
76         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
77         for GENERATE_MIPS16E_SAVE_RESTORE.  Return 0x400 for TARGET_MIPS16
78         && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
79         (BITSET_P): New global macro, extracted from...
80         (mips_for_each_saved_reg): ...here.
81         (mips16e_save_restore_info): New struct.
82         (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
83         (mips16e_save_restore_regs): New variable.
84         (mips_split_plus, mips16e_find_first_register): New functions.
85         (mips16e_mask_registers): New function.
86         (compute_frame_size): Expand the commentary before the function.
87         Enforce the MIPS16e save and restore register range restrictions.
88         Pad the general register save area at the low end.
89         (mips16e_save_restore_reg, mips16e_build_save_restore)
90         (mips16e_save_restore_pattern_p, mips16e_add_register_range)
91         (mips16e_output_save_restore, mips16e_collect_propagate_value)
92         (mips16e_collect_argument_save, mips16e_collect_argument_saves):
93         New functions.
94         (mips_expand_prologue, mips_expand_epilogue): Handle
95         GENERATE_MIPS16E_SAVE_RESTORE.
96         * config/mips/mips.md (*mips16e_save_restore): New pattern.
97
98 2007-07-02  Uros Bizjak  <ubizjak@gmail.com>
99
100         PR tree-optimization/31966
101         PR tree-optimization/32533
102         * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
103         "basic_block" description as its third argument.  Update function
104         calls to get destination bb from "edge" argument.  Save "cond" into
105         aux field of the edge.  Update prototype for changed arguments.
106         (if_convertible_loop_p): Clear aux field of incoming edges if bb
107         contains phi node.
108         (find_phi_replacement_condition): Operate on incoming edges, not
109         on predecessor blocks.  If there is a condition saved in the
110         incoming edge aux field, AND it with incoming bb predicate.
111         Return source bb of the first edge.
112         (clean_predicate_lists): Clean aux field of outgoing node edges.
113         (tree_if_conversion): Do not initialize cond variable. Move
114         variable declaration into the loop.
115         (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
116         initializations of new_stmt, arg0 and arg1 variables.
117
118 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
119
120         * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
121         SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
122
123 2007-07-02  Richard Guenther  <rguenther@suse.de>
124
125         * tree-ssa.c (useless_type_conversion_p): Document
126         future intent as defining the middle-end type system.
127         Re-structure to call langhook last, group by type class,
128         mark questionable parts.
129
130 2007-07-02  Richard Guenther  <rguenther@suse.de>
131
132         * tree-flow.h (types_compatible_p): Declare.
133         * tree-ssa.c (types_compatible_p): New function.
134         * ipa-type-escape.c (discover_unique_type): Use
135         types_compatible_p instead of lang_hooks.types_compatible_p.
136         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
137         * tree-vn.c (expressions_equal_p): Likewise.
138         * tree.c (fields_compatible_p): Likewise.
139         * tree-ssa-dom.c (avail_expr_eq): Likewise.
140         (cprop_operand): Use useless_type_conversion_p instead of
141         lang_hooks.types_compatible_p.
142         * tree-inline.c (setup_one_parameter): Likewise.
143         (declare_return_variable): Likewise.
144         * tree-nrv.c (tree_nrv): Likewise.
145         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
146         (maybe_fold_offset_to_component_ref): Likewise.
147         (maybe_fold_offset_to_reference): Likewise.
148         * tree-ssa-copy.c (may_propagate_copy): Likewise.
149         (merge_alias_info): Likewise.
150         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
151         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
152         * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
153         * tree-tailcall.c (find_tail_calls): Likewise.
154         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
155         * gimplify.c (canonicalize_addr_expr): Likewise.
156         (fold_indirect_ref_rhs): Likewise.
157         (gimplify_addr_expr): Likewise.  Swap parameters to cpt_same_type.
158         (cpt_same_type): Likewise.
159         (check_pointer_types_r): Swap parameters to cpt_same_type
160         where appropriate.
161         * fold-const.c (fold_convert): Revert fix for PR15988.
162         * tree-inline.c (setup_one_parameter): Instead fix it here by
163         using fold_build1 instead of fold_convert and checking for
164         error_mark_node.  Convert only if the conversion is necessary.
165
166 2007-07-02  Joseph Myers  <joseph@codesourcery.com>
167
168         * configure.ac: Check for .gnu_attribute on Power.
169         * configure: Regenerate.
170         * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
171         attribute for floating-point ABI.
172
173 2007-07-02  Ira Rosen  <irar@il.ibm.com>
174
175         PR tree-optimization/32230
176         PR tree-optimization/32477
177         * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base 
178         address is a constant.
179
180 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
181
182         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
183         (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
184         (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
185         stanzas.  Use the first part of the triplet to set MIPS_ISA_DEFAULT.
186         Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
187         64-bit targets.  Add support for *-elfoabi*.
188         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
189         different settings if $(tm_defines) does not select the EABI.
190         (MULTILIB_EXCLUSIONS): Define in those circumstances.
191         * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
192         (MIPS_ARCH_OPTION_SPEC): Likewise.
193         (MIPS_ISA_LEVEL_SPEC): Likewise.
194         (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
195         * config/mips/elfoabi.h: New file.
196
197 2007-07-02  Richard Guenther  <rguenther@suse.de>
198
199         * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
200         (useless_type_conversion_p): ... this.
201         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
202         (useless_type_conversion_p): ... this.
203         * builtins.c (fold_builtin_memory_op): Rename
204         tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
205         * tree-cfg.c (verify_expr): Likewise.
206         * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
207         * tree-ssa-ccp.c (ccp_fold): Likewise.
208         * tree-ssa-copy.c (may_propagate_copy): Likewise.
209         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
210         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
211         * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
212         * tree-ssa-pre.c (eliminate): Likewise.
213         * tree-ssa.c (delete_tree_ssa): Likewise.
214         (tree_ssa_useless_type_conversion): Likewise.
215         * tree.c (build2_stat): Likewise.
216
217 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
218
219         Fix PR tree-optimization/32571
220         * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
221         simplifying them.
222
223 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
224
225         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
226         and other expected operations explicitly, change default to
227         gcc_unreachable. 
228
229 2007-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
230
231         * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
232         PARALLEL.
233         * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
234         (tls_load_dot_plus_eight): Move the label number into the unspec.
235         * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
236
237 2007-07-01  Andreas Schwab  <schwab@suse.de>
238
239         * dwarf2out.c (initial_return_save): Define only if used.
240
241 2007-07-01  Kenneth Zadeck <zadeck@naturalbridge.com>
242
243         Unreverting Richard's Revert of:
244
245         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
246
247         * dce.c (deletable_insn_p_1): New function, split out from...
248         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
249         specially, not those inside PARALLELs.  Remove BODY argument
250         and adjust recursive call accordingly.
251         (prescan_insns_for_dce): Update call to delete_insn_p.
252
253 2007-07-01  Vladimir Yanovsky  <yanov@il.ibm.com>
254             Revital Eres  <eres@il.ibm.com>
255
256         * ddg.c (create_ddg_all_sccs): Fix missed
257         initialization of scc_nodes.
258
259 2007-07-01  Uros Bizjak  <ubizjak@gmail.com>
260
261         PR middle-end/32559
262         * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
263         X + ~X to 1 only for INTEGRAL_TYPE_P type.
264
265 2007-06-30  Joseph Myers  <joseph@codesourcery.com>
266
267         * configure.ac: Check for .gnu_attribute on MIPS.
268         * configure, config.in: Regenerate.
269         * config/mips/mips.c (mips_file_start): If supported, output
270         attribute for floating-point ABI.
271
272 2007-06-30  Uros Bizjak  <ubizjak@gmail.com>
273
274         PR target/32433
275         * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
276         (ffs_cmove): New expander to expand using ctz pattern.
277         (*ffs_cmove): Remove pattern.
278         (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
279         (ffsdi2): Expand using ctz pattern.
280         (*ffs_rex64): Remove pattern.
281
282 2007-06-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
283
284         PR rtl-optimization/32296
285         * pa.md (return): Delete pattern.
286         (return_internal): Remove "(const_int 1)" from pattern.
287         (epilogue): Use return_internal pattern for trivial returns.
288         * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
289         * pa.c (hppa_can_use_return_insn_p): Delete function.  Include "df.h".
290
291 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
292
293         * tree-ssa-pre.c (is_exception_related): New function
294         (can_value_number_operation): Use it.
295
296 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
297         
298         Fix PR tree-optimization/32540
299         Fix PR tree-optimization/31651
300
301         * tree-ssa-sccvn.c: New file.
302
303         * tree-ssa-sccvn.h: Ditto.
304         
305         * tree-vn.c: Include tree-ssa-sccvn.h
306         (val_expr_paid_d): Removed.
307         (value_table): Ditto.
308         (vn_compute): Ditto.
309         (val_expr_pair_hash): Ditto.
310         (val_expr_pair_expr_eq): Ditto.
311         (copy_vuses_from_stmt): Ditto.
312         (vn_delete): Ditto.
313         (vn_init): Ditto.
314         (shared_vuses_from_stmt): Ditto.
315         (print_creation_to_file): Moved up.
316         (sort_vuses): Ditto.
317         (sort_vuses_heap): Ditto.
318         (set_value_handle): Make non-static.
319         (make_value_handle): Ditto.
320         (vn_add): Rewritten to use sccvn lookups.
321         (vn_add_with_vuses): Ditto.
322         (vn_lookup): Ditto (and second argument removed).
323         (vn_lookup_with_vuses): Ditto.
324         (vn_lookup_or_add): Ditto (and second argument removed);
325         (vn_lookup_or_add_with_vuses): Ditto.
326         (vn_lookup_with_stmt): New.
327         (vn_lookup_or_add_with_stmt): Ditto.
328         (create_value_handle_for_expr): Ditto.
329
330         * tree-ssa-pre.c: Include tree-ssa-sccvn.h.
331         (seen_during_translate): New function.
332         (phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
333         (phi_trans_add): Ditto.
334         (constant_expr_p): FIELD_DECL is always constant.
335         (phi_translate_1): Renamed from phi_translate, add seen bitmap.
336         Use constant_expr_p.
337         Avoid infinite recursion on mutually valued expressions.
338         Change callers of vn_lookup_or_add.
339         (phi_translate): New function.
340         (compute_antic_safe): Allow phi nodes.
341         (create_component_ref_by_pieces): Update for FIELD_DECL change.
342         (find_or_generate_expression): Rewrite slightly.
343         (create_expression_by_pieces): Updated for vn_lookup_or_add
344         change.
345         Update VN_INFO for new names.
346         (insert_into_preds_of_block): Update for new names.
347         (add_to_exp_gen): New function.
348         (add_to_sets): Use vn_lookup_or_add_with_stmt.
349         (find_existing_value_expr): Rewrite to changed vn_lookup.
350         (create_value_expr_from): Ditto, and use add_to_exp_gen.
351         (try_look_through_load): Removed.
352         (try_combine_conversion): Ditto.
353         (get_sccvn_value): New function.
354         (make_values_for_phi): Ditto.
355         (make_values_for_stmt): Ditto.
356         (compute_avail): Rewritten for vn_lookup_or_add changes and to use
357         SCCVN.
358         (init_pre): Update for SCCVN changes.
359         (fini_pre): Ditto.
360         (execute_pre): Ditto.
361
362         * tree-flow.h (make_value_handle): Declare.
363         (set_value_handle): Ditto.
364         (sort_vuses_heap): Ditto.
365         (vn_lookup_or_add_with_stmt): Ditto.
366         (vn_lookup_with_stmt): Ditto.
367         (vn_compute): Remove.
368         (vn_init): Ditto.
369         (vn_delete): Ditto.
370         (vn_lookup): Update arguments.
371
372         * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
373         (tree-vn.o): Ditto.
374         (tree-ssa-sccvn.o): New.
375         (OBJS-common): Add tree-ssa-sccvn.o
376         
377 2007-06-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
378
379         PR c/4076
380         * c-typeck.c (build_external_ref): Don't mark as used if called
381         from itself.
382         * calls.c (rtx_for_function_call): Likewise.
383         
384 2007-06-30  Richard Sandiford  <richard@codesourcery.com>
385
386         Revert:
387
388         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
389
390         * dce.c (deletable_insn_p_1): New function, split out from...
391         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
392         specially, not those inside PARALLELs.  Remove BODY argument
393         and adjust recursive call accordingly.
394         (prescan_insns_for_dce): Update call to delete_insn_p.
395
396 2007-06-30  Rask Ingemann Lambertsen <rask@sygehus.dk>
397
398         * combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
399         (try_combine): Move potential calls to undo_all() so they happen
400         before we commit to using the combined insns.
401
402 2006-06-30  Jan Hubicka  <jh@suse.cz>
403
404         * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
405         code.
406
407 2006-06-30  Thomas Neumann  <tneumann@users.sourceforge.net>
408
409         * ipa.c (cgraph_postorder): Cast according to the coding conventions.
410         (cgraph_remove_unreachable_nodes): Likewise.
411         * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
412         * ipa-inline.c (update_caller_keys): Cast according to the coding
413         conventions.
414         (cgraph_decide_recursive_inlining): Likewise.
415         (cgraph_decide_inlining_of_small_function): Likewise.
416         (try_inline): Likewise.
417         (cgraph_decide_inlining_incrementally): Likewise.
418         * ipa-pure-const.c (get_function_state): Likewise.
419         (scan_function): Likewise.
420         (analyze_function): Likewise.
421         (static_execute): Likewise.
422         * gcc/ipa-reference.c (scan_for_static_refs): Likewise.
423         (merge_callee_local_info): Likewise.
424         (analyze_function): Use type safe memory macros.
425         (static_execute): Likewise. Cast according to the coding conventions.
426         * ipa-type-escape.c (scan_for_regs): Cast according to the coding
427         conventions.
428         * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
429         names.
430         (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
431         * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
432         variable names.
433
434 2007-06-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
435
436         PR middle-end/30024
437         * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
438         for complex modes (both int and real).
439
440 2007-06-29  Jan Hubicka  <jh@suse.cz>
441
442         * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
443
444 2007-06-29  Jan Hubicka  <jh@suse.cz>
445
446         PR middle-end/32372
447         * cse.c (cse_insn): Avoid invalid sharing in between register note and
448         the insn pattern.
449
450 2007-06-29  Anatoly Sokolov <aesok@post.ru>
451
452         PR target/32335
453         * config/avr/avr.c: Include dataflow header file.
454         (expand_prologue): Adjust for prologue insn change.
455         * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
456         inside a insn.
457
458 2007-06-29  Richard Guenther  <rguenther@suse.de>
459
460         PR middle-end/32493
461         * gimplify.c (gimplify_call_expr): Ignore variable argument parts
462         during type verification.
463
464 2007-06-29  Jan Hubicka  <jh@suse.cz>
465
466         * recog.c (validate_change_rtx_1): Unshare TO argument.
467
468 2007-06-29  Uros Bizjak  <ubizjak@gmail.com>
469
470         PR tree-optimization/24659
471         * tree-vect-transform.c (vectorizable_call): Handle
472         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
473
474         * config/i386/sse.md (vec_pack_sfix_v2df): New expander.
475         * config/i386/i386.c (enum ix86_builtins)
476         [IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
477         (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
478         description.
479         (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
480         const using def_builtin_const.
481         (ix86_expand_binop_builtin): Remove bogus assert() that insn wants
482         input operands in the same modes as the result.
483         (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.
484
485 2007-06-29  Richard Sandiford  <rsandifo@nildram.co.uk>
486
487         * df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
488         (df_set_dead_notes_for_mw): Likewise.
489
490 2007-06-29  Eric Botcazou  <ebotcazou@adacore.com>
491
492         * c-common.c (pointer_int_sum): Do the negation in sizetype.
493
494 2007-06-28  DJ Delorie  <dj@redhat.com>
495
496         * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.
497
498 2007-06-28  Geoffrey Keating  <geoffk@apple.com>
499
500         * doc/invoke.texi (C++ Dialect Options): Document
501         fvisibility-ms-compat.
502         * c.opt (fvisibility-ms-compat): New.
503
504 2007-06-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
505
506         PR tree-opt/32417
507         * tree-affine.c (aff_combination_add_elt): Handle
508         pointer addition specially.
509
510 2007-06-28  Jakub Jelinek  <jakub@redhat.com>
511
512         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
513         decl is non-external for AIX ABI.
514
515 2007-06-28  David Edelsohn  <edelsohn@gnu.org>
516
517         * config/rs6000/predicates.md (current_file_function_operand):
518         Ensure the symbol is non-external for AIX ABI.
519
520 2007-06-28  Nick Clifton  <nickc@redhat.com>
521
522         * common.opt (fipa-matrix-reorg): Add Optimization attribute.
523         (fdce, fdse, fpredictive-commoning): Likewise.
524
525 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
526
527         PR other/31400
528         * gcc.c (process_command): Recognize the new -static-libgfortran
529         option.
530
531 2007-06-27  Rask Ingemann Lambertsen  <rask@sygehus.dk>
532
533         PR target/32418
534         * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix:
535         Use a call clobbered hard reg instead of a pseudo reg.
536
537 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
538
539         * config/sh/sh.md (load_gbr): Use correct operand constraint.
540
541 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
542
543         PR target/32479
544         * config/sh/sh.md (udivsi3): Don't wrap the sequence with
545         REG_LIBCALL and REG_RETVAL notes.
546         (divsi3, mulsi3): Likewise.
547         (mulhisi3): Likewise.  Use emit_libcall_block.
548         (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.
549
550 2007-06-27  Seongbae Park  <seongbae.park@gmail.com>
551
552         PR rtl-optimization/32481
553         * combine.c (adjust_for_new_dest): Rescan the changed insn.
554
555 2007-06-27  Richard Sandiford  <richard@codesourcery.com>
556
557         * dce.c (deletable_insn_p_1): New function, split out from...
558         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
559         specially, not those inside PARALLELs.  Remove BODY argument
560         and adjust recursive call accordingly.
561         (prescan_insns_for_dce): Update call to delete_insn_p.
562
563 2007-06-27  Richard Guenther  <rguenther@suse.de>
564
565         PR middle-end/32492
566         * tree.h (fold_convertible_p): Declare.
567         * fold-const.c (fold_convertible_p): New function.
568         * gimplify.c (gimplify_call_expr): Use fold_convertible_p
569         instead of lang_hooks.types_compatible_p.
570
571 2007-06-26  Jan Hubicka  <jh@suse.cz>
572
573         * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
574         * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
575         early use validate_unshare_change.
576         (reload_combine): Likewise.
577         * recog.c (change_t): New field unshare.
578         (validate_change_1): Rename from validate_change; add argument unshare.
579         (validate_change): Turn into wrapper of validate_change_1; update
580         prototype for bools.
581         (validate_unshare_change): New.
582         (confirm_change_group): Unshare changes if asked for; avoid unnecesary
583         calls of df_insn_rescan.
584         * recog.h (validate_change): Replace ints by bools.
585         (validate_unshare_change): Declare.
586
587 2007-06-26  Kenneth Zadeck <zadeck@naturalbridge.com>
588
589         * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
590         
591 2007-06-26  Steve Ellcey  <sje@cup.hp.com>
592
593         * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
594
595 2007-06-25  Jan Hubicka  <jh@suse.cz>
596
597         * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
598         uninlinable call.
599         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
600         cgraph_decide_inlining_incrementally): Move uninlinability checks to
601         places other call site specific checks are performed.
602
603 2007-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
604
605         PR tree-opt/32421
606         * tree-vect-transform.c (vectorizable_operation): Convert
607         POINTER_PLUS_EXPR over to PLUS_EXPR.
608
609 2007-06-25  Chao-ying Fu  <fu@mips.com>
610
611         * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
612         UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
613         Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
614         Document GET_MODE_IBIT, and GET_MODE_FBIT.
615
616         * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
617         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
618         (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
619         SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
620         SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
621         ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
622         ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
623         SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
624         ALL_FIXED_POINT_MODE_P): New define.
625         (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
626         MODE_UACCUM.
627         (GET_MODE_IBIT, GET_MODE_FBIT): New define.
628
629         * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
630         MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
631         MODE_VECTOR_UACCUM): New mode classes.
632
633         * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
634         UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
635         Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
636         USA, UDA, and UTA.
637
638         * genmodes.c (struct mode_data): Add ibit and fbit fields.
639         (blank_mode): Initialize ibit and fbit.
640         (adj_ibit, adj_fbit): New to adjust ibit and fbit.
641         (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
642         (new_adjust): Change required_class to required_class_from and
643         required_class_to for testing within a range.
644         (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
645         MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
646         MODE_VECTOR_UACCUM.
647         (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
648         (make_fixed_point_mode): New.
649         (_ADD_ADJUST): Change C to C1 and C2.
650         (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
651         use a range for machine classes.
652         (ADJUST_IBIT, ADJUST_FBIT): New.
653         (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
654         CONST_MODE_FBIT.
655         (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
656         MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
657         Emit adjustment for ibit and fbit.
658         (emit_mode_ibit, emit_mode_fbit): New.
659         (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
660
661 2007-06-25  Nathan Froyd  <froydnj@codesourcery.com>
662
663         * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
664         as the source of the set.
665
666 2007-06-25  Roman Zippel <zippel@linux-m68k.org>
667
668         * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
669         FP_REGNO_P): Use IN_RANGE.
670         (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
671         (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
672         (DATA_REG_P): Use DATA_REGNO_P.
673         (FP_REG_P): Use FP_REGNO_P.
674         (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
675         * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
676         REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
677
678 2007-06-24  Jan Hubicka  <jh@suse.cz>
679
680         PR middle-end/30563
681         * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
682
683 2007-06-24  Sebastian Pop  <sebpop@gmail.com>
684
685         PR middle-end/32461
686         * fold-const.c (fold_binary): Strip nops of operand 0
687         of BIT_NOT_EXPR before calling operand_equal_p.
688         * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
689         * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
690
691 2007-06-23  Mark Mitchell  <mark@codesourcery.com>
692
693         * doc/extend.texi: Document that dllimport and dllexport imply
694         default visibility.
695         * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
696         imported or exported declaration, including type declarations.
697         * c-common.c (handle_visibility_attribute): Check for conflicts
698         with dllimport/dllexport.
699         (c_determine_visibility): Handle dllimport/dllexport as an
700         explicit visibility atttribute.
701
702 2007-06-23  Richard Guenther  <rguenther@suse.de>
703
704         PR tree-optimization/16876
705         PR middle-end/29478
706         * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
707         for CALL_EXPRs.
708         * tree-inline.c (initialize_inlined_parameters): Do not call
709         lang_hooks.tree_inlining.convert_parm_for_inlining.
710         * cgraphbuild.c (initialize_inline_failed): Set inline failed
711         reason for mismatched types.
712         * gimplify.c (gimplify_call_expr): Verify the call expression
713         arguments match the called function type signature.  Otherwise
714         mark the call expression to be not considered for inlining
715         using CALL_CANNOT_INLINE_P flag.
716         * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
717         edges call expression.
718         (cgraph_decide_inlining_of_small_function): Likewise.
719         (cgraph_decide_inlining): Likewise.
720         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
721         Remove define.
722         * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
723         * c-typeck.c (c_convert_parm_for_inlining): Remove.
724         * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
725         Remove declaration.
726         (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
727         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
728         Remove.
729         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
730         convert_parm_for_inlining member.
731
732 2007-06-23  Richard Earnshaw  <rearnsha@arm.com>
733
734         PR target/31152
735         * arm.md (negscc): Match the correct operand for optimized LT0 test.
736         Remove optimization for GT.
737
738 2007-06-23  Kenneth Zadeck <zadeck@naturalbridge.com>
739
740         PR middle-end/32437
741         * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
742         is a PARALLEL.
743         (prescan_insns_for_dce): Add extra parameter.
744         
745 2007-06-23  Jan Hubicka  <jh@suse.cz>
746
747         PR middle-end/31541
748         * gimplify.c (mark_addressable): New function.
749         (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
750
751 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
752
753         PR middle-end/32374
754         * expr.c (store_constructor): Do not clobber non-zeroed memory. 
755
756 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
757
758         PR target/32413
759         * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
760         moves between MMX/SSE registers to at least 8 units to prevent
761         ICE caused by non-tieable SI/HI/QImodes in SSE registers. 
762
763 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
764
765         * config/i386/i386.c (override_options): Correct x86_sahf
766         setting condition.
767
768 2007-06-21  David Daney  <ddaney@avtrex.com>
769
770         PR target/32406
771         * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
772         to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
773         (exception_receiver): Renamed to ...
774         (nonlocal_goto_receiver): ... this.
775
776 2007-06-22  Roman Zippel <zippel@linux-m68k.org>
777
778         * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
779         (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
780         partial register accesses.
781
782 2007-06-21  Adam Nemet  <anemet@caviumnetworks.com>
783
784         * fold-const.c (debug_fold_checksum): Move it under
785         ENABLE_FOLD_CHECKING.
786
787 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
788
789         PR middle-end/20623
790         * tree.h (debug_fold_checksum): Declared.
791         * fold-const.c (build_fold_addr_expr_with_type_1): New.
792         (build_fold_addr_expr_with_type, build_fold_addr_expr): Use 
793         build_fold_addr_expr_with_type_1.
794         (fold_addr_expr, debug_fold_checksum): New.
795         (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
796         (fold_unary, fold_comparison, split_address_to_core_and_offset):
797         Use fold_addr_expr.
798         
799 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
800
801         PR tree-optimization/19590
802         * tree-vrp.c (adjust_range_with_scev): Set the range when the result
803         of scev is a constant.
804         * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
805
806 2007-06-21  Kenneth Zadeck <zadeck@naturalbridge.com>
807
808         * df-problems.c (df_note_bb_compute): Made computation of live
809         info consistent with df_lr.
810
811 2007-06-21  Richard Guenther  <rguenther@suse.de>
812
813         PR tree-optimization/32453
814         * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
815         for pointer anti-range.
816
817 2007-06-21  H.J. Lu  <hongjiu.lu@intel.com>
818
819         * config/i386/i386.c (processor_target_table): Increase maximum
820         skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
821         default 64bit.
822
823         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
824         byte alignment if > 8 byte alignment is preferred.
825         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
826
827 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
828
829         PR tree-optimization/31866
830         * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
831         if ASM_EXPR's input is not a SSA_NAME.
832
833         PR middle-end/32362
834         * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
835         but decl is a global var, instead return decl.
836         * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
837         even for is_global_var decls, if they are private in some outer
838         context.
839
840 2007-06-21  Richard Guenther  <rguenther@suse.de>
841
842         PR tree-optimization/32451
843         * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
844
845 2007-06-21  Christian Bruel  <christian.bruel@st.com>
846
847         * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
848         * config/sh/sh.c (sh_loads_bankedreg_p): New function.
849         (push_regs): Changed saving order or banked registers.
850         (sh_expand_epilogue): Likewise.
851         * config/sh/sh.h (BANKED_REGISTER_P): New macro.
852         (FIRST_BANKED_REG): Likewise.
853         (LAST_BANKED_REG): Likewise.
854         * config/sh/sh.md (banked) New attribute.
855         (in_delay_slot): Check banked attribute.
856         
857 2007-06-20  Sebastian Pop  <sebpop@gmail.com>
858
859         PR tree-optimization/32075
860         * tree-data-ref.c (subscript_dependence_tester_1, 
861         analyze_miv_subscript, analyze_overlapping_iterations,
862         add_distance_for_zero_overlaps, build_classic_dist_vector,
863         subscript_dependence_tester_1, analyze_overlapping_iterations,
864         subscript_dependence_tester, access_functions_are_affine_or_constant_p,
865         compute_affine_dependence, compute_all_dependences): Pass loop_nest 
866         to evolution_function_is_affine_multivariate_p.
867
868 2007-06-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
869
870         * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
871
872 2007-06-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>
873
874         PR target/32335
875         * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
876         for TARGET_A16.
877         * config/m32c/prologue.md (epilogue_exitd_16): New.
878         (epilogue_reit_16): New.
879         (epilogue_exitd): Rename to epilogue_exitd_24.
880         (epilogue_reit): Rename to epilogue_reit_24.
881
882 2007-06-20  Seongbae Park  <seongbae.park@gmail.com>
883             Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
884
885         * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
886         New counters.
887         * haifa-sched.c (queue_to_ready): Don't requeue next insn
888         if dbg_cnt (sched_insn) reaches the limit.
889         (choose_ready): New parameter INSN_PTR and new return value.
890         (schedule_block): Handle dbg_cnt (sched_insn). Handle
891         the new return value from choose_ready.
892         * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
893         (rest_of_handle_global_alloc): New global_alloc_at_func.
894
895 2007-06-20  Adam Nemet  <anemet@caviumnetworks.com>
896
897         PR tree-optimization/25737
898         * tree.h (struct tree_struct_field_tag): Add new field alias_set.
899         (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
900         * tree-flow.h (struct fieldoff): Add new field alias_set.
901         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
902         argument addressable_type.  Set alias_set of fieldoff.
903         * tree-ssa-alias.c (create_sft): Add new argument alias_set.
904         (create_overlap_variables_for): Pass alias_set from fieldoff to
905         create_sft.
906         * alias.c (get_alias_set): Use alias_set from SFT if set.
907
908 2007-06-20  Hui-May Chang  <hm.chang@apple.com>
909
910         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
911         of a variable as an unsigned HOST_WIDE_INT integer.
912
913 2007-06-20  Zdenek Dvorak  <dvorakz@suse.cz>
914
915         PR rtl-optimization/32405
916         * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
917
918 2007-06-20  Jakub Jelinek  <jakub@redhat.com>
919
920         * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
921
922         PR middle-end/31959
923         * builtins.c: Include diagnostic.h.
924         (expand_builtin_expect): Make gcc_assert more permissive.
925         * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
926
927         PR inline-asm/32109
928         * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
929         and !allows_mem.
930
931         PR middle-end/32285
932         * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
933         if ACCUMULATE_OUTGOING_ARGS.
934
935 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
936
937         * config/m68hc11/m68hc11.c: Include dataflow header file.
938         (m68hc11_reorg): Port to dataflow.
939
940 2007-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
941
942         * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
943         (struct df_problem.free_blocks_on_set_blocks): New field.
944         (struct dataflow.optional_p): New field.
945         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
946         (df_live_set_all_dirty): New function.
947         * df-scan.c (df_scan_alloc): Initialize optional_p.
948         (problem_SCAN): Initialize free_blocks_on_set_blocks.
949         * df-core.c (df_set_blocks): Removed use of
950         DF_FIRST_OPTIONAL_PROBLEM.  Now uses
951         df_problem.free_blocks_on_set_blocks to determine which blocks are
952         recycled.
953         (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
954         (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM.  Now
955         uses dataflow.optional_p to determine if problem should be
956         deleted.
957         (rest_of_handle_df_initialize): Only start live problem if 
958         -02 or above.
959         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
960         * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
961         df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
962         (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
963         problem_NOTE):  Initialize free_blocks_on_set_blocks.
964         (df_lr_bb_local_compute): Recompute luids if df_live problem is
965         not active.
966         (df_live_set_all_dirty, df_note_alloc): New function.
967         * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
968         df_get_live_*.
969         * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
970         * postreload.c (reload_combine): Ditto.
971         * cse.c (cse_extended_basic_block): Ditto.
972         * regmove.c (mark_flags_life_zones): Ditto.
973         * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
974         erase_matching_seqs): Ditto.
975         * bt-load.c (compute_defs_uses_and_gen): Ditto.
976         * integrate (allocate_initial_values): Ditto.
977         * combine.c (reg_dead_at_p): Ditto.
978         * resource.c (mark_target_live_regs): Ditto.
979         * sched-rgn.c (check_live_1, update_live_1): Ditto.
980         * config/sh/sh.c (find_r0_life_regions): Ditto.
981         * global.c (rest_of_handle_global_alloc): Only add back df_live
982         for -O > 1.
983         * local-alloc.c (rest_of_handle_local_alloc): Only remove
984         df_live for -O > 1.
985         * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
986         df_get_live_*.
987         (if_convert): Make sure df_live is there at -O == 1.
988         (pass_if_after_combine): Cleanup flags.
989         * init-regs.c (initialize_uninitialized_regs): Make sure df_live
990         is there at -O == 1.
991         
992 2007-06-19  Seongbae Park  <seongbae.park@gmail.com>
993
994         * config/arm/arm.c (arm_get_frame_offsets): Set
995         offsets->locals_base to avoid negative stack size.
996         (thumb1_expand_prologue): Assert on negative stack size.
997
998 2007-04-19  Sebastian Pop  <sebpop@gmail.com>
999
1000         PR tree-optimization/32367
1001         * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side 
1002         of the chrec has no evolution in that loop.
1003         * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
1004
1005 2007-06-19  Bob Wilson  <bob.wilson@acm.org>
1006
1007         * config/xtensa/xtensa.c: Include "df.h".
1008         (xtensa_builtin_saveregs): Use adjust_address instead of change_address.
1009         (xtensa_va_start): Invoke make_tree with sizetype for
1010         expand_builtin_saveregs and then convert the result to a pointer.
1011         Use POINTER_PLUS_EXPR.  Use size_int instead of build_int_cst.
1012         (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
1013         Subtract argument size from index value as integers and then use
1014         POINTER_PLUS_EXPR to add the result to the array address.
1015         
1016 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1017
1018         PR target/32335
1019         * config/m32c/m32c.c: Include dataflow header file.
1020         (m32c_emit_prologue): Adjust for prologue insn change.
1021         * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
1022         once inside a PARALLEL. Assume frame size passed in operand 0
1023         includes space to save the fb register.
1024         (prologue_enter_24): Likewise.
1025         (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
1026
1027 2007-06-19  David Daney  <ddaney@avtrex.com
1028
1029         PR target/32313
1030         * config/mips/mips.md (cprestore): Mark $gp as used.
1031
1032 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1033
1034         PR target/32369
1035         * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
1036         (frv_ifcvt_modify_insn): Likewise.
1037
1038 2007-06-19  Richard Guenther  <rguenther@suse.de>
1039
1040         * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
1041         only handle positive offsets that fit in a HOST_WIDE_INT.
1042
1043 2007-06-19  Uros Bizjak  <ubizjak@gmail.com>
1044
1045         * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
1046         result of rsqrt insn for zero input argument to avoid NaN.
1047
1048 2007-06-19  Richard Guenther  <rguenther@suse.de>
1049
1050         PR middle-end/31950
1051         * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
1052
1053 2007-06-19  Jakub Jelinek  <jakub@redhat.com>
1054
1055         PR tree-optimization/32353
1056         * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
1057
1058 2007-06-19  Nick Clifton  <nickc@redhat.com>
1059
1060         * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
1061
1062 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
1063
1064         PR target/32389
1065         * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
1066         * config/i386/i386.c (assign_386_stack_local): Assert that
1067         SLOT_VIRTUAL is valid only before virtual regs are instantiated.
1068         (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
1069         Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
1070         * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
1071
1072 2007-06-18  Steve Ellcey  <sje@cup.hp.com>
1073
1074         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
1075
1076 2007-06-18  Seongbae Park  <seongbae.park@gmail.com>
1077
1078         PR rtl-optimization/32321
1079         * gcse.c (replace_store_insn): Update the note before
1080         calling emit_insn_after.
1081
1082 2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>
1083
1084         PR middle-end/32355
1085         * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
1086         cse_main.
1087         * df-problems.c (df_note_bb_compute): Fix dumping info.
1088         
1089 2007-06-18  Kazu Hirata  <kazu@codesourcery.com>
1090
1091         * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
1092         insn with emit_jump_insn.
1093
1094 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
1095
1096         PR tree-optimization/32383
1097         * targhooks.c (default_builtin_reciprocal): Add new bool argument.
1098         * targhooks.h (default_builtin_reciprocal): Update prototype.
1099         * target.h (struct gcc_target): Update builtin_reciprocal.
1100         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
1101         * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
1102         where arg1 is not SSA_NAME.  Pass true to targetm.builtin_reciprocal
1103         when fndecl is in BUILT_IN_MD class.
1104         (execute_convert_to_rsqrt): Ditto.
1105
1106         * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
1107         argument.  Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
1108         Convert BUILT_IN_SQRTF code only  when md_fn is false.
1109
1110 2007-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1111
1112         * bt-load.c (move_btr_def): Fix the order of arguments
1113         to validate_replace_rtx.
1114
1115 2007-06-18  Nathan Sidwell  <nathan@codesourcery.com>
1116
1117         * config/m68k/m68k-devices.def: Add 54450..54455.
1118
1119 2007-06-17  Uros Bizjak  <ubizjak@gmail.com>
1120
1121         PR rtl-optimization/32366
1122         * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
1123         FLOAT_EXTEND]: Prevent non-scalar modes from entering
1124         significand_size.
1125
1126 2007-06-17  Kenneth Zadeck <zadeck@naturalbridge.com>
1127
1128         PR middle-end/32349
1129         * modulo-sched (generate_reg_moves): Added rescan parameter and if
1130         this is true, rescan insn being modified.
1131         (sms_schedule): Added rescan parameter.
1132         (rest_of_handle_sms): Moved freeing of dominance info to before
1133         getting out of cfg_layout.
1134         
1135 2007-06-17  Nathan Sidwell  <nathan@codesourcery.com>
1136
1137         * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
1138         * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
1139         appropriate.
1140
1141         * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
1142         FL_CF_EMAC from the entry for isac.
1143
1144         * config/m68k/predicates.md (const_call_operand): Adjust comment.
1145         (const_sibcall_operand): New.
1146         (sibcall_operand): Use it.
1147         * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
1148         (m68k_isas): ISAC does not imply FPU or EMAC.
1149         (override_options): Add ISA_C logic for symbolic jump & call.
1150
1151 2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
1152
1153         * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
1154         return mode from the builtin itself.
1155         (sparc_fold_builtin): Fix cast of zero constant.
1156
1157 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
1158
1159         * targhooks.c (default_builtin_reciprocal): New default target hook.
1160         * targhooks.h (default_builtin_reciprocal): Add prototype.
1161         * hooks.c (hook_tree_tree_bool_null): Remove hook.
1162         * hooks.h (hook_tree_tree_bool_null): Remove prototype.
1163         * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
1164         default_builtin_reciprocal.
1165
1166 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
1167
1168         PR middle-end/31723
1169         * hooks.c (hook_tree_tree_bool_null): New hook.
1170         * hooks.h (hook_tree_tree_bool_null): Add prototype.
1171         * tree-pass.h (pass_convert_to_rsqrt): Declare.
1172         * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
1173         * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
1174         and convert it to reciprocal a*rfunc(b).
1175         (execute_convert_to_rsqrt): New function.
1176         (gate_convert_to_rsqrt): New function.
1177         (pass_convert_to_rsqrt): New pass definition.
1178         * target.h (struct gcc_target): Add builtin_reciprocal.
1179         * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
1180         (TARGET_INITIALIZER): Initialize builtin_reciprocal with
1181         TARGET_BUILTIN_RECIPROCAL.
1182         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
1183
1184         * config/i386/i386.h (TARGET_RECIP): New define.
1185         * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
1186         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1187         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1188         and not optimizing for size.
1189         (*rcpsf2_sse): New insn pattern.
1190         (*rsqrtsf2_sse): Ditto.
1191         (rsqrtsf2): New expander.  Expand by calling ix86_emit_swsqrtsf
1192         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1193         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1194         and not optimizing for size.
1195         (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
1196         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1197         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1198         and not optimizing for size.
1199         * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
1200         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1201         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1202         and not optimizing for size.
1203         (*sse_rsqrtv4sf2): Do not export.
1204         (sqrtv4sf2): Ditto.
1205         (sse_rsqrtv4sf2): New expander.  Expand by calling ix86_emit_swsqrtsf
1206         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
1207         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
1208         and not optimizing for size.
1209         (sqrtv4sf2): Ditto.
1210         * config/i386/i386.opt (mrecip): New option.
1211         * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
1212         (ix86_emit_swsqrtsf): Ditto.
1213         * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
1214         (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
1215         builtin definition.
1216         (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
1217         ix86_expand_unop1_builtin.
1218         (ix86_emit_swdivsf): New function.
1219         (ix86_emit_swsqrtsf): Ditto.
1220         (ix86_builtin_reciprocal): New function.
1221         (TARGET_BUILTIN_RECIPROCAL): Use it.
1222         (ix86_vectorize_builtin_conversion): Rename from
1223         ix86_builtin_conversion.
1224         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
1225         * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
1226         "i386 and x86_64 Options" section.
1227         (Intel 386 and AMD x86_64 Options): Document -mrecip.
1228
1229 2007-06-15  Andrew Pinski <andrew_pinski@playstation.sony.com>
1230             Zdenek Dvorak <dvorakz@suse.cz>
1231             Richard Guenther  <rguenther@suse.de>
1232             Kaz Kojima  <kkojima@gcc.gnu.org>
1233
1234         * tree-vrp.c (compare_values_warnv): Convert val2 to
1235         the type of val1.
1236         (extract_range_from_assert): Create
1237         POINTER_PLUS_EXPR for pointer types.
1238         (extract_range_from_binary_expr): Handle
1239         only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
1240         for pointer types.
1241         * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
1242         * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
1243         POINTER_PLUS_EXPR as PLUS_EXPR.
1244         (number_of_iterations_lt_to_ne):
1245         For pointer types, use sizetype when
1246         creating MINUS_EXPR/PLUS_EXPRs.
1247         (assert_loop_rolls_lt): For pointer types, use sizetype when
1248         creating MINUS_EXPR/PLUS_EXPRs.
1249         (number_of_iterations_le): Likewise.
1250         (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
1251         (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
1252         like PLUS_EXPR and MINUS_EXPR.
1253         * tree-pretty-print.c (dump_generic_node): Handle
1254         POINTER_PLUS_EXPR.
1255         (op_prio): Likewise.
1256         (op_symbol_1): Likewise.
1257         * optabs.c (optab_for_tree_code): Likewise.
1258         * tree-ssa-loop-manip.c (create_iv): Handle pointer base
1259         specially.
1260         * tree-tailcall.c (process_assignment): Mention
1261         POINTER_PLUS_EXPR in a TODO comment.
1262         * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or 
1263         MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
1264         not used with a pointer and an integer type.
1265         * tree-scalar-evolution.c (add_to_evolution_1): Convert the
1266         increment using chrec_convert_rhs instead of chrec_convert.
1267         (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
1268         PLUS_EXPR except for the right hand side's type will be
1269         sizetype.
1270         (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
1271         (fold_used_pointer_cast): Kill.
1272         (pointer_offset_p): Kill.
1273         (fold_used_pointer): Kill.
1274         (pointer_used_p): Kill.
1275         (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
1276         call fold_used_pointer.
1277         (instantiate_parameters_1): Convert the increment
1278         using chrec_convert_rhs instead of chrec_convert.
1279         Handle POINTER_PLUS_EXPR as PLUS_EXPR.
1280         * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
1281         instead of PLUS_EXPR.
1282         (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
1283         PLUS_EXPR for pointers.
1284         (std_gimplify_va_arg_expr): Likewise.
1285         (fold_builtin_memory_op): Likewise.
1286         (fold_builtin_strstr): Likewise.
1287         (fold_builtin_strchr): Likewise.
1288         (fold_builtin_strrchr): Likewise.
1289         (fold_builtin_strpbrk): Likewise.
1290         (expand_builtin_memory_chk): Likewise.
1291         (fold_builtin_memory_chk): Likewise.
1292         (std_expand_builtin_va_start): Use
1293         sizetype for the call to make_tree and then convert
1294         to the pointer type.
1295         (fold_builtin_memchr): Use POINTER_PLUS_EXPR
1296         instead of PLUS_EXPR for adding to a pointer.
1297         (std_gimplify_va_arg_expr): Use fold_build2 for
1298         the creating of POINTER_PLUS_EXPR.  For the BIT_AND_EXPR, cast
1299         the operands to sizetype first and then cast the BIT_AND_EXPR
1300         back to the pointer type.
1301         * fold-const.c (build_range_check): Handle pointer types
1302         specially.
1303         (extract_array_ref): Look for POINTER_PLUS_EXPR instead
1304         of PLUS_EXPR's. Make sure the offset is converted to
1305         sizetype.
1306         (try_move_mult_to_index): Strip the NOPs from the offset.
1307         Remove code argument and replace all uses with PLUS_EXPR.
1308         (fold_to_nonsharp_ineq_using_bound): Handle pointer types
1309         specially. Don't use a pointer type for MINUS_EXPR.
1310         (fold_unary): Handle for (T1)(X op Y),
1311         only p+ as that is the only as that can be handled for
1312         binary operators now.
1313         (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
1314         POINTER_PLUS_EXPR.
1315         <case PLUS_EXPR>: Add folding of PTR+INT into
1316         PTR p+ INT.
1317         Don't call try_move_mult_to_index.
1318         <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
1319         into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
1320         (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
1321         Don't call try_move_mult_to_index.
1322         (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
1323         (tree_expr_nonzero_p): Likewise.
1324         (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
1325         of PLUS_EXPR for the complex expression folding.
1326         * tree-chrec.c (chrec_fold_plus_poly_poly): If the
1327         first chrec is a pointer type, then the second should
1328         be sizetype and not the first's type.
1329         For POINTER_PLUS_EXPR, use a different right hand side type.
1330         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
1331         (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
1332         different right hand side type.
1333         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
1334         (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
1335         instead of PLUS_EXPR.
1336         When either operand is zero, convert the other operand.
1337         (chrec_apply): Use chrec_convert_rhs
1338         on the argument x instead of chrec_convert.
1339         (reset_evolution_in_loop): For pointer types, the new_evol
1340         should be sizetype.
1341         (convert_affine_scev): For POINTER_PLUS_EXPR, use a
1342         different right hand side type.
1343         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
1344         (chrec_convert_rhs): New function.
1345         (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
1346         different right hand side type.
1347         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
1348         * tree-chrec.h (chrec_convert_rhs): New prototype.
1349         (build_polynomial_chrec): For pointer types, the right hand
1350         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
1351         POINTER_PLUS_EXPR instead of PLUS_EXPR's.
1352         Remove subtraction case as it is always addition now.
1353         Make sure the offset is converted to sizetype.
1354         (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
1355         Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
1356         * tree-ssa-loop-ivopts.c (determine_base_object): Abort for 
1357         PLUS_EXPR in pointer type.
1358         Handle POINTER_PLUS_EXPR.
1359         (tree_to_aff_combination): Likewise.
1360         (force_expr_to_var_cost): Likewise.
1361         (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
1362         instead of PLUS_EXPR for pointers.
1363         * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
1364         instead of PLUS_EXPR of pointer types.
1365         * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
1366         as PLUS_EXPR.
1367         (check_va_list_escapes): Likewise.
1368         (check_all_va_list_escapes): Likewise.
1369         * dwarf2out.c (loc_descriptor_from_tree_1):
1370         Handle POINT_PLUS_EXPR as a PLUS_EXPR.
1371         * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
1372         (string_constant): Likewise.
1373         * tree-ssa-address.c (tree_mem_ref_addr): When adding
1374         the offset to the base, use POINTER_PLUS_EXPR.
1375         (add_to_parts): Convert the index to sizetype.
1376         (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
1377         * matrix-reorg.c (collect_data_for_malloc_call): Stmt
1378         will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
1379         Offset only holds something for PLUS_EXPR.
1380         (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
1381         a PLUS_EXPR.
1382         (analyze_transpose): POINTER_PLUS_EXPR will only show up now
1383         and not PLUS_EXPR.
1384         (analyze_accesses_for_modify_stmt): Likewise.
1385         Remove comment about the type being integral type as it is
1386         wrong now.
1387         (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
1388         PLUS_EXPR.
1389         (transform_access_sites): POINTER_PLUS_EXPR will only show up now
1390         and not PLUS_EXPR.
1391         Correct the type which the artimentic is done in (is now
1392         sizetype).
1393         Reindent one loop.
1394         * tree-data-ref.c (split_constant_offset): Handle
1395         POINTER_PLUS_EXPR
1396         * tree-affine.c (tree_to_aff_combination): Likewise.
1397         * c-typeck.c (build_unary_op): For pointers create the increment
1398         as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
1399         for pointers.
1400         * gimplify.c (gimplify_self_mod_expr): Create a
1401         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
1402         (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
1403         * tree.def (POINTER_PLUS_EXPR): New tree code.
1404         * tree-predcom.c (ref_at_iteration): If we have a pointer
1405         type do the multiplication in sizetype.
1406         * tree-mudflap.c (mf_xform_derefs_1): Create a
1407         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
1408         * tree-ssa-forwprop.c 
1409         (forward_propagate_addr_into_variable_array_index):
1410         Don't expect there to be a cast for the index as that
1411         does not exist anymore.
1412         (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
1413         instead of PLUS_EXPR.
1414         Don't check for the first operand of the POINTER_PLUS_EXPR
1415         was the index as it cannot be.
1416         Call forward_propagate_addr_into_variable_array_index with
1417         the SSA_NAME instead of the statement.
1418         * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
1419         (compare_constant): Likewise.
1420         (copy_constant): Likewise.
1421         (compute_reloc_for_constant): Likewise.
1422         (output_addressed_constants): Likewise.
1423         (initializer_constant_valid_p): Likewise.
1424         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1425         Convert the MIN/MAX of the inner type to the outer
1426         type before comparing them.
1427         * tree-ssa-loop-prefetch.c (idx_analyze_ref):  Handle
1428         POINTER_PLUS_EXPR instead of PLUS_EXPR.
1429         (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
1430         of PLUS_EXPR for pointers.
1431         * tree-inline.c (estimate_num_insns_1): Handle
1432         POINTER_PLUS_EXPR.
1433         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): 
1434         Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
1435         (bump_vector_ptr): Create a POINTER_PLUS_EXPR
1436         instead of PLUS_EXPR for the pointer increment statement.
1437         (vect_update_ivs_after_vectorizer): For pointer types, create
1438         POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
1439         MULT_EXPR in sizetype.
1440         (vect_gen_niters_for_prolog_loop): Add a cast when creating
1441         byte_misalign.
1442         * tree-object-size.c (plus_expr_object_size): Handle
1443         POINTER_PLUS_EXPR instead of PLUS_EXPR.  Removing all the extra
1444         code which is trying to figure out which side is a pointer and 
1445         is the index.
1446         (check_for_plus_in_loops_1): Likewise.
1447         (check_for_plus_in_loops): Likewise.
1448         * c-common.c (pointer_int_sum): Create a
1449         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
1450         * tree-ssa-structalias.c (handle_ptr_arith): Handle
1451         only POINTER_PLUS_EXPR.  Removing all the extra
1452         code which is trying to figure out which side is a pointer and 
1453         is the index.
1454         * tree-cfg.c (verify_expr): Add extra checking for pointers and
1455         PLUS_EXPR and MINUS_EXPR.
1456         Also add checking to make sure the operands of POINTER_PLUS_EXPR
1457         are correct.
1458         * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
1459         with make_tree, instead of a pointer type.
1460         * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
1461         for pointers instead of PLUS_EXPR.
1462         (s390_gimplify_va_arg): Likewise.
1463         * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
1464         instead of PLUS_EXPR when doing addition on pointer
1465         types.  Use sizetype for the second operand.
1466         (spu_gimplify_va_arg_expr): Likewise.
1467         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use 
1468         POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
1469         a pointer.  Don't create a BIT_AND_EXPR for pointer types.
1470         * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
1471         for the pointer addition and also use size_int/sizetype
1472         for the offset.
1473         (ix86_gimplify_va_arg): Likewise.
1474         Perform BIT_AND_EXPR on sizetype arguments.
1475         * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
1476         and convert its result to a pointer type.  Use POINTER_PLUS_EXPR
1477         for the pointer additions and also use size_int for the offsets.
1478         (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
1479         additions and also use size_int for the offsets.  Perform
1480         BIT_AND_EXPR on sizetype arguments.
1481         * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
1482         POINTER_PLUS_EXPR for pointers and create the
1483         BIT_AND_EXPR in sizetype.
1484         * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
1485         instead of PLUS_EXPR for pointer addition.
1486         (rs6000_va_start): Likewise.
1487         Also use sizetype for the offset.
1488         * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
1489         as PLUS_EXPR/MINUS_EXPR.
1490         (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
1491         PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
1492         Don't use BIT_AND_EXPR on a pointer type, convert the
1493         expression to sizetype first.
1494         * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
1495         for pointers.
1496         (mips_gimplify_va_arg_expr): Likewise.
1497         Don't create BIT_AND_EXPR in a pointer type.
1498
1499 2007-06-15  Eric Christopher  <echristo@apple.com>
1500
1501         * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
1502         (x86_64-*-darwin*): Ditto.
1503         * config/i386/darwin.h (CRTEND_SPEC): New. Add support
1504         for above.
1505
1506 2007-06-15  Matthew Wilcox <matthew@wil.cx>
1507
1508         * doc/extend.texi: Document behavior of __attribute__((aligned))
1509         on typedefs.
1510
1511 2007-06-15  Mark Mitchell  <mark@codesourcery.com>
1512
1513         * rtlanal.c (note_stores): Improve documentation.
1514
1515 2007-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1516
1517         * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
1518         LOCAL_LABEL_PREFIX): Delete.
1519         * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
1520         (bfin_internal_label): Delete.
1521
1522 2007-06-15  Uros Bizjak  <ubizjak@gmail.com>
1523
1524         * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
1525         define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
1526         otherwise define to LIBGCC2_TF_CEXT.
1527         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
1528         (LIBGCC_TF_CEXT): Ditto.
1529         (TF_SIZE): Ditto.
1530
1531 2007-06-14  Seongbae Park  <seongbae.park@gmail.com>
1532
1533         PR rtl-optimization/32339
1534         * df-scan.c (df_uses_record): Don't modify flags but just add to
1535         it for df_ref_record.
1536
1537 2007-06-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1538
1539         * tree-mudflap.c: Fix whitespace issues.
1540
1541 2007-06-15  Kazu Hirata  <kazu@codesourcery.com>
1542
1543         * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
1544
1545 2007-06-14  Eric Christopher  <echristo@apple.com>
1546
1547         * config/i386/sse.md (movdi_to_sse): Rewrite body.
1548         (movv4sf): Use gcc_unreachable instead of abort.
1549
1550 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
1551
1552         PR target/32268
1553         * config/i386/sfp-machine.h (CMPtype): New define.
1554         (mach stubs): Use CMPtype instead of int as a return type.
1555
1556 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
1557
1558         * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
1559         config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
1560         config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
1561         config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
1562         config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
1563         config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
1564         config/soft-fp/soft-fp.h: Update from glibc CVS.
1565
1566 2007-06-14  Bernd Schmidt  <bernd.schmidt@analog.com>
1567
1568         * config/bfin/uclinux.h (MFWRAP_SPEC): New.
1569
1570 2007-06-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1571
1572         PR target/32341
1573         * config/v850/v850.c: Include dataflow header file.
1574         (substitute_ep_register): Fix typo.
1575
1576 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
1577
1578         * configure.ac: Fix earlier checkin.
1579         * configure: Regenerated.
1580
1581 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
1582
1583         * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
1584         * aclocal.m4: Regenerate.
1585         * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
1586         ACX_PROG_CC_WARNINGS_ARE_ERRORS,
1587         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
1588         * configure: Regenerate.
1589         * Makefile.in (LOOSE_WARN): Subst loose_warn.
1590
1591         * Makefile.in (quickstrap): Build libgcc too.
1592
1593 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
1594
1595         * configure.ac: Add --enable-checking=df.  Explicitly mention that
1596         the variables are initialized as for "release".
1597         * df-core.c: Use it.
1598         * configure: Regenerate.
1599         * config.in: Regenerate.
1600
1601 2007-06-14  Bob Wilson  <bob.wilson@acm.org>
1602
1603         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
1604         validate_replace_rtx instead of replace_rtx.
1605         (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
1606
1607 2007-06-14  Danny Smith  <dannysmith@users.sourceforge.net>
1608
1609         * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
1610         (DWARF2_UNWIND_INFO): Override default if configured with
1611         SJLJ EH disabled.
1612         * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
1613         (ENDFILE_SPEC): Add crtend.o.
1614         * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
1615         (ENDFILE_SPEC): Add crtend.o.
1616         (TARGET_USE_JCR_SECTION): Define.
1617         (MD_UNWIND_SUPPORT): Define for 32-bit target.
1618
1619         * config/i386/cygming-crtbegin.c: New file.
1620         * config/i386/cygming-crtend.c: New file.
1621
1622 2007-06-14  Pascal Obry Pascal Obry  <obry@adacore.com>
1623
1624         * config/i386/w32-unwind.h: New file.
1625
1626 2007-06-13  Eric Christopher  <echristo@apple.com>
1627
1628         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
1629         the user set a value below STACK_BOUNDARY.
1630
1631 2007-06-13  Thiemo Seufer  <ths@networkno.de>
1632
1633         * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
1634         imply -lpthread for -pthread.
1635
1636 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
1637
1638         * basic-block.h: Remove the prototype for
1639         free_basic_block_vars.
1640         * cfglayout.h: Remove the prototype for
1641         insn_locators_initialize.
1642         * tree.h: Remove the prototype for emit_line_note.
1643
1644         * tree-ssa-pre.c (mergephitemp): Remove.
1645         (init_pre): Don't use mergephitemp.
1646
1647 2007-06-13  Eric Christopher  <echristo@apple.com>
1648
1649         * config/i386/i386.c (override_options): If we've specified
1650         an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
1651
1652 2007-06-13  Bob Wilson  <bob.wilson@acm.org>
1653
1654         * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
1655         is defined.
1656
1657 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
1658
1659         * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
1660         * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
1661         (eh_store_handler): New pattern.
1662         (eh_return): Emit it instead of a plain move.
1663
1664 2007-06-13  Uros Bizjak  <ubizjak@gmail.com>
1665
1666         * config/i386/i386.c (ix86_init_mmx_sse_builtins)
1667         [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
1668         [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
1669         def_builtin_const.
1670
1671 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
1672
1673         * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
1674         (find_next_insn_start, find_load): New functions.
1675         (bfin_reorg): Use them to deal with the fact that parallel insns are
1676         no longer represented as a SEQUENCE.
1677
1678 2007-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
1679
1680         * config/sparc/sparc.c (sparc_override_options): Initialize
1681         fpu mask correctly.
1682
1683 2007-06-13  Dave Korn  <dave.korn@artimi.com>
1684
1685         * config/i386/i386.c (ix86_eax_live_at_start_p): Use
1686         df_get_live_out.
1687
1688 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
1689
1690         * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
1691         config/sh/divcost-analysis, dbgcnt.def, df-core.c,
1692         df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
1693         tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
1694         tree-vect-transform.c: Fix comment typos.  Follow spelling
1695         conventions.
1696
1697 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
1698
1699        * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
1700        to the exit block use set.
1701        (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring". 
1702        * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
1703        * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
1704
1705 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
1706
1707         * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
1708         * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
1709         to indicate an error.
1710         (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters): New functions
1711         (dbg_cnt_process_opt): Print an error on a bad argument.
1712         * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
1713         * common.opt (-fdbg-cnt-list): New.
1714         * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
1715
1716 2007-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1717
1718         * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
1719         flag on ref-all pointers.
1720
1721 2007-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1722
1723         PR middle-end/31579
1724         * expr.c (expand_expr_addr_expr_1): Call expand_expr
1725         for the offset with the modifier as EXPAND_INITIALIZER
1726         if the modifier is EXPAND_INITIALIZER.
1727         (expand_expr_real_1 <case INTEGER_CST>): Don't force to
1728         a register if we had an overflow.
1729
1730 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1731
1732         * real.c (real_isfinite): New.
1733         (real_sqrt): Use it.
1734         * real.h (real_isfinite): New.
1735         * builtins.c: Use it.
1736
1737 2007-06-12  Ian Lance Taylor  <iant@google.com>
1738             Daniel Berlin  <dberlin@dberlin.org>
1739
1740         PR libstdc++/29286
1741         * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
1742         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
1743         (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
1744         (DECL_NO_TBAA_P): Define.
1745         (struct tree_decl_common): Add no_tbaa_flag field.
1746         * tree-ssa-structalias.c (struct variable_info): Add
1747         no_tbaa_pruning field.
1748         (new_var_info): Initialize no_tbaa_pruning field.
1749         (unify_nodes): Copy no_tbaa_pruning field.
1750         (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
1751         (dump_solution_for_var): Print no_tbaa_pruning flag.
1752         (set_uids_in_ptset): Add no_tbaa_pruning parameter.  Change all
1753         callers.
1754         (compute_tbaa_pruning): New static function.
1755         (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
1756         Call compute_tbaa_pruning.
1757         * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
1758         * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
1759         * gimple-low.c (lower_stmt): Likewise.
1760         * tree-gimple.c (is_gimple_stmt): Likewise.
1761         * tree-ssa-operands.c (get_expr_operands): Likewise.
1762         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1763         * tree-inline.c (estimate_num_insns_1): Likewise.
1764         (copy_result_decl_to_var): Likewise.
1765         * expr.c (expand_expr_real_1): Likewise.
1766         * tree-pretty-print.c (dump_generic_node): Likewise.
1767         * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
1768         * omp-low.c (omp_copy_decl_2): Likewise.
1769         * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
1770         * doc/c-tree.texi (Expression trees): Document
1771         CHANGE_DYNAMIC_TYPE_EXPR.
1772
1773 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1774
1775         * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
1776         with !HONOR_NANS and !HONOR_INFINITIES.
1777         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
1778
1779 2007-06-12  Tristan Gingold  <gingold@adacore.com>
1780
1781         * gcov.c: Comments updated.
1782         (source_info): Add file_time field.
1783         (source_index): New variable.
1784         (mutiple_files): New variable.
1785         (generate_results): New function extracted from process_file.
1786         (process_file): Save and restore chain of functions, generate
1787         results and free structures only if not merging results.
1788         (release_structures): File names are now freed in create_file_names
1789         (create_file_names): Free previous file names.
1790         (find_source): File date is now read here and modifications in
1791         source files is checked here.
1792         (read_graph_file): Only reverse order of functions for the current
1793         object file.
1794         (make_gcov_file_name): Do not generate long names if input_name is
1795         NULL.
1796         (output_lines): If merging results do not display graph, data and
1797         runs informations.
1798         Checking source file modification is done in find_source.
1799
1800         * doc/gcov.texi: Append an s to sourcefile.
1801
1802 2007-06-12  Bernd Schmidt  <bernd.schmidt@analog.com>
1803
1804         * config/bfin/bfin.md (UNSPEC_NOP): New constant.
1805         (forced_nop): New pattern.
1806         * config/bfin/bfin.c: Include "df.h".
1807         (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
1808         (bfin_discover_loop): Use df_get_live_in instead of
1809         global_live_at_start.
1810         (bfin_reorder_loops): Pass 0 to cfg_layout_initialize.  Call
1811         df_analyze when done.
1812         (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
1813         the insns.  Use QImode for the final insn in a bundle.  Call
1814         df_insn_rescan on generated NOPs; use gen_forced_nop instead of
1815         gen_nop.
1816         (reorder_var_tracking_notes): New function.
1817         (bfin_reorg): Pass no argument to split_all_insns.  Don't call
1818         update_life_info.  Call df_analyze after scheduling and bundle
1819         generation.  Call reorder_var_tracking_notes if generating these notes.
1820         Call df_finish_pass at the end.
1821
1822 2007-06-12  Dirk Mueller  <dmueller@suse.de>
1823
1824         * optabs.c (debug_optab_libfuncs): fix gcc_assert to
1825         a comparison, not an assignment.
1826
1827 2007-06-12  Olivier Hainque  <hainque@adacore.com>
1828
1829         * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
1830         Request walking the subtrees only, leaving the current is_lhs/val_only
1831         untouched.
1832         (convert_non_local_reference): Likewise.
1833
1834 2007-06-12  Nathan Sidwell  <nathan@codesourcery.com>
1835
1836         * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
1837
1838 2007-06-12  Richard Guenther  <rguenther@suse.de>
1839
1840         PR tree-optimization/15353
1841         PR tree-optimization/31657
1842         * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
1843         * timevar.def: Add TV_TREE_IFCOMBINE.
1844         * tree-pass.h (pass_tree_ifcombine): Declare.
1845         * tree-ssa-ifcombine.c: New file.
1846         * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
1847         * tree-flow.h (blocks_in_phiopt_order): Declare.
1848         * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
1849         (tree-ssa-ifcombine.o): New dependencies.
1850
1851 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
1852
1853         PR rtl-optimization/32293
1854         * combine.c (simplify_if_then_else): Truncate return from
1855         nonzero_bits() to correct mode.
1856
1857 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
1858
1859         * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
1860         into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
1861
1862 2007-06-11  Diego Novillo  <dnovillo@google.com>
1863
1864         * Makefile.in (reload1.o-warn): Remove.
1865
1866 2007-06-11  Seongbae Park <seongbae.park@gmail.com>
1867
1868         * combine.c (subst): Use reg_overlap_mentioned_p
1869         instead of comparing register numbers directly.
1870
1871 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
1872
1873         * reload1.c (mark_home_live_1): Use the mode parameter.
1874
1875 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
1876
1877         * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
1878         df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
1879         word "deferred".
1880         * df-core.c: Ditto.
1881
1882 2007-06-11  Daniel Berlin  <dberlin@dberlin.org>
1883
1884         * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
1885
1886 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
1887
1888         * config/i386/i386.md ("*movtf_internal): Penalize moves to and
1889         from integer registers.
1890         (FP mode splitters): Handle TFmode.
1891
1892 2007-06-11  Eric Botcazou  <ebotcazou@adacore.com>
1893
1894         * tree-ssa-structalias.c (find_what_p_points_to): Return false
1895         for ref-all pointers that point-to anything.
1896
1897 2007-06-11  Joseph Myers  <joseph@codesourcery.com>
1898
1899         * config/arm/arm.c (arm_output_dwarf_dtprel,
1900         TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
1901
1902 2007-06-11  Bernd Schmidt  <bernd.schmidt@analog.com>
1903
1904         * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
1905         movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
1906         to memory moves.
1907
1908 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
1909
1910         * gcc/tree.c (signed_or_unsigned_type_for): New.
1911         (unsigned_type_for): Use signed_or_unsigned_type_for.
1912         (signed_type_for): Use signed_or_unsigned_type_for.
1913         * gcc/tree.h (signed_or_unsigned_type_for): New.
1914         (get_signed_or_unsigned_type): Remove.
1915         * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
1916         lang_hooks.types.signed_type
1917         (size_diffop): Likewise.
1918         (all_ones_mask_p): Likewise.
1919         (build_range_check): Likewise.
1920         (fold_cond_expr_with_comparison): Likewise.
1921         (fold_cond_expr_with_comparison): Likewise.
1922         (unextend): Likewise.
1923         (extract_muldiv_1): Likewise.
1924         (fold_single_bit_test_into_sign_test): Likewise.
1925         (fold_binary): Likewise.
1926         (fold_ternary): Likewise.
1927         (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
1928         instead of get_signed_or_unsigned_type.
1929         * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
1930         (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
1931         * gcc/expr.c (signed_or_unsigned_type_for): Use
1932         signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
1933         * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
1934         (lhd_signed_or_unsigned_type): Remove.
1935         * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
1936         signed_or_unsigned_type.
1937         (lhd_signed_or_unsigned_type): Remove.
1938         * gcc/expmed.c (make_tree): Use signed_type_for instead of
1939         lang_hooks.types.signed_type.
1940         * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
1941         c_common_signed_type instead of lang_hooks.types.signed_type.
1942         (c_common_unsigned_type): New.
1943         (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
1944         (shorten_compare): Use c_common_unsigned_type instead of
1945         c_common_signed_or_unsigned_type.
1946         (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
1947         unsigned_type_for.
1948         * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
1949         lang_hooks.types.signed_type.
1950         * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
1951         (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
1952         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
1953         * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
1954         instead of unsigned_type_for.
1955         * gcc/c-decl.c (groakdeclarator): Likewise.
1956         * gcc/c-typeck.c (convert_for_assignment): Likewise.
1957         * gcc/c-common.h (c_common_unsigned_type): New.
1958
1959 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
1960
1961         PR target/32280
1962         * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
1963         * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
1964
1965 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
1966
1967         PR middle-end/32279
1968         * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
1969         into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
1970
1971 2007-06-10  Jan Sjodin  <jan.sjodin@amd.com>
1972             Sebastian Pop  <sebpop@gmail.com>
1973
1974         * lambda-code.c (remove_iv): New.
1975         (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
1976
1977 2007-06-10  Zdenek Dvorak  <dvorakz@suse.cz>
1978
1979         * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
1980         * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
1981         * tree-ssa-loop-prefetch.c: Include optabs.h.
1982         (FENCE_FOLLOWING_MOVNT): New macro.
1983         (struct mem_ref): Add independent_p and storent_p fields.
1984         (record_ref): Initalize the new fields.
1985         (gather_memory_references_ref): Return true if the reference
1986         could be analysed.
1987         (gather_memory_references): Check whether all memory accesses
1988         in loop were recorded.
1989         (should_issue_prefetch_p): Return false for nontemporal stores.
1990         (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
1991         may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
1992         (determine_loop_nest_reuse): Detect independent memory references.
1993         (loop_prefetch_arrays): Call mark_nontemporal_stores.
1994         * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
1995         * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
1996         * config/i386/i386.h (x86_mfence): Declare.
1997         (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
1998         * config/i386/i386.c (x86_mfence): New variable.
1999         (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
2000
2001         * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
2002         * optabs.c (init_optabs): Initialize storent_optab.
2003         * optabs.h (enum optab_index): Add OTI_storent.
2004         (storent_optab): Declare.
2005         * genopinit.c (optabs): Add initialization for storent_optab.
2006         * tree.h (MOVE_NONTEMPORAL): New macro.
2007         * expr.c (expand_assignment, store_expr, store_constructor_field,
2008         store_constructor, store_field, expand_expr_real_1): Propagate
2009         nontemporality of the expanded store.
2010         (emit_storent_insn): New function.
2011         * expr.h (expand_assignment, store_expr): Declaration changed.
2012         * function.c (assign_parm_setup_reg): Pass false as nontemporality
2013         to expand_assignment.
2014         * stmt.c (expand_asm_expr): Ditto.
2015         * calls.c (initialize_argument_information): Pass false as
2016         nontemporality to store_expr.
2017         * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
2018         storentsi): New.
2019
2020 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
2021
2022         * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
2023         parameter, use it.
2024         (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
2025
2026 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
2027
2028         * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
2029         and allow DECL_P here.
2030
2031 2007-06-09  Zdenek Dvorak  <dvorakz@suse.cz>
2032
2033         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
2034         follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
2035         track of the size of the expression.
2036         * cfghooks.c (merge_blocks): Remove block from loops structure only
2037         after call of the merge_blocks hook.
2038
2039 2007-06-09  Tom Tromey  <tromey@redhat.com>
2040
2041         * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
2042         (deprecated_state): Removed.
2043         (start_decl): Update.
2044         (enum deprecated_states): Moved earlier.
2045         (groktypename): Update.
2046         (push_parm_decl): Likewise.
2047         (grokfield): Likewise.
2048         (start_function): Likewise.
2049
2050 2007-06-09  Ian Lance Taylor  <iant@google.com>
2051
2052         PR tree-optimization/32169
2053         * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
2054         CONVERT_EXPR, check whether min and max both converted to an
2055         overflow infinity representation.
2056
2057 2007-06-08  Eric Botcazou  <ebotcazou@adacore.com>
2058
2059         * reload1.c (fixup_abnormal_edges): Clear bb field for insns
2060         not inserted on the edge.
2061
2062 2007-06-08  Bob Wilson  <bob.wilson@acm.org>
2063
2064         * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
2065         instructions if they are supported.
2066         (__divsi3, __umodsi3, __modsi3): Likewise.
2067         (__ashldi3, __ashrdi3, __lshrdi3): New.
2068         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
2069
2070 2007-06-08  Harsha Jagasia <harsha.jagasia@amd.com>
2071             Tony Linthicum <tony.linthicum@amd.com>
2072
2073         * doc/extend.texi: Add fvect-cost-model flag.
2074         * common.opt (fvect-cost-model): New flag.
2075         * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
2076         cost fields in stmt_vec_info struct for STMT.
2077         * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
2078         fields in stmt_vec_info struct and access functions for the same.
2079         (TARG_COND_BRANCH_COST): Define cost of conditional branch.
2080         (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
2081         load, store and vector to scalar operation.
2082         (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
2083         (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
2084         (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
2085         (TARG_VEC_STORE_COST): Define cost of vector store.
2086         (vect_estimate_min_profitable_iters): Define new function.
2087         * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
2088         check to evaluate if loop iterations are less than minimum profitable
2089         iterations determined by cost model or minimum vect loop bound defined
2090         by user, whichever is more conservative.
2091         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
2092         run-time check to evaluate if loop iterations are less than minimum
2093         profitable iterations determined by cost model or minimum vect loop
2094         bound defined by user, whichever is more conservative.
2095         (vect_estimate_min_profitable_iterations): New function to estimate
2096         mimimimum iterartions required for vector version of loop to be
2097         profitable over scalar version.
2098         (vect_model_reduction_cost): New function.
2099         (vect_model_induction_cost): New function.
2100         (vect_model_simple_cost): New function.
2101         (vect_cost_strided_group_size): New function.
2102         (vect_model_store_cost): New function.
2103         (vect_model_load_cost): New function.
2104         (vectorizable_reduction): Call vect_model_reduction_cost during
2105         analysis phase.
2106         (vectorizable_induction): Call vect_model_induction_cost during
2107         analysis phase.
2108         (vectorizable_load): Call vect_model_load_cost during analysis phase.
2109         (vectorizable_store): Call vect_model_store_cost during analysis phase.
2110         (vectorizable_call, vectorizable_assignment, vectorizable_operation,
2111         vectorizable_promotion, vectorizable_demotion): Call
2112         vect_model_simple_cost during analysis phase.
2113
2114 2007-06-08  Simon Baldwin  <simonb@google.com>
2115
2116         * reg-stack.c (get_true_reg): Readability change.  Moved default case
2117         label into direct switch statement scope.
2118
2119 2007-06-08  Simon Baldwin  <simonb@google.com>
2120
2121         * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
2122         in gcc_assert() with '==' comparison.
2123
2124 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2125
2126         * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
2127         TARGET_ABM handling of x86_popcnt variable.
2128
2129 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2130
2131         * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
2132         __builtin_copysignq and __builtin_infq built-in functions.
2133
2134 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2135
2136         * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
2137         SSE4.2 section.  Correct built-in function names in SSE4A section.
2138
2139 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
2140
2141         PR tree-optimization/32243
2142         * tree-vect-transform.c (vectorizable_type_promotion): Move check
2143         for ncopies after ratio check between nunits_out and nunits_in.
2144         (vectorizable_type_demotion): Remove single-use variable "scalar_type".
2145
2146 2007-06-08  Dorit Nuzman  <dorit@il.ibm.com>
2147
2148         PR tree-optimization/32224
2149         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
2150         vectorization upon a non GIMPLE_MODIFY_STMT.
2151
2152 2007-06-08  Christian Bruel  <christian.bruel@st.com>
2153
2154         PR target/29953
2155         * config/sh/sh.md (doloop_end): New pattern and splitter.
2156         * loop-iv.c (simple_rhs_p): Check for hardware registers.
2157
2158 2007-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
2159
2160         PR middle-end/32209
2161         * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
2162         functions.
2163         (verify_dominators): Do not change dominance tree.
2164
2165 2007-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2166
2167         * config/sh/constraints.md: New file.
2168         * config/sh/sh.c: Include tm-constrs.h.
2169         (reg_class_from_letter): Remove.
2170         (prepare_cbranch_operands): Use satisfies_constraint_*
2171         function instead of macro.
2172         (andcosts, broken_move, sh_secondary_reload): Likewise.
2173         * config/sh/predicates.md (trapping_target_operand): Likewise.
2174         (and_operand, arith_operand, arith_reg_or_0_operand,
2175         cmp_operand, logical_operand, target_operand,
2176         ua_address_operand, ua_offset, xor_operand): Likewise.
2177         * config/sh/sh.md: Include constraints.md.
2178         (*movsicc_t_false): Use satisfies_constraint_* function
2179         instead of macro.
2180         (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
2181         lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
2182         movdi_const_16bit+1, beq, bne, *ptb): Likewise.
2183         * config/sh/sh.h (reg_class_from_letter): Remove prototype.
2184         (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
2185         (REG_CLASS_FROM_CONSTRAINT): Remove.
2186         (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
2187         CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
2188         CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
2189         CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
2190         CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2191         (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
2192         function instead of macro.
2193         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
2194         (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
2195         EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
2196         EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
2197         (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
2198         (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
2199         (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
2200         (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
2201         (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
2202         EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
2203         EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
2204         EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
2205         EXTRA_CONSTRAINT_STR): Likewise.
2206         (GO_IF_LEGITIMATE_INDEX): Fix indentation.
2207
2208 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
2209
2210         * config/i386/darwin.h (STACK_BOUNDARY): Define.
2211
2212 2007-06-07  Simon Martin  <simartin@users.sourceforge.net>
2213
2214         PR c++/30759
2215         * c-common.h (flag_cpp0x): Replaced by...
2216         (cxx_dialect): ... this new variable specifying the C++ dialect that
2217         is used.
2218         * c-common.c (flag_cpp0x): Removed.
2219         (cxx_dialect): Defined.
2220         * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
2221         cxx_dialect.
2222         * c-opts.c (c_common_post_options): Likewise.
2223         (set_std_cxx98): Set cxx_dialect to cxx98.
2224         (set_std_cxx0x): Set cxx_dialect to cxx0x.
2225
2226 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
2227             Hui-May Chang <hm.chang@apple.com>
2228
2229         * doc/invoke.texi (Darwin Options): Update documentation for
2230         -mmacosx-version-min.
2231         * config.gcc (*-*-darwin*): Set extra_gcc_objs.
2232         * config/darwin-driver.c: New file.
2233         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
2234         * config/t-darwin (darwin-driver.o): New rule.
2235
2236         * config/darwin-c.c (version_as_macro): Ignore low digit.
2237
2238 2007-06-07  Uros Bizjak  <ubizjak@gmail.com>
2239
2240         * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
2241         (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
2242         (CSGNMODE): New mode macro.
2243         (CSGNVMODE): New mode attribute.
2244         (copysign<mode>3): Rename from copysingsf3 and copysigndf3.  Macroize
2245         expander using CSGNMODE mode macro.  Handle TFmode.
2246         (copysign<mode>3_const): Rename from copysignsf3_const and
2247         copysigndf3_const.  Macroize pattern using CSGNMODE mode macro.
2248         Handle TFmode.
2249         (copysign<mode>3_var): Rename from copysignsf3_var and
2250         copysigndf3_var.  Macroize pattern using CSGNMODE mode macro.
2251         Handle TFmode.
2252         (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
2253         mode macro.  Handle TFmode.
2254         * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
2255         (iortf3, *iortf3): Ditto.
2256         (xortf3, *xortf3): Ditto.
2257         * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
2258         TFmode and TImode masks.
2259         (ix86_expand_copysign): Expand TFmode copysign insn.
2260         (IX86_BUILTIN_INFQ): New.
2261         (IX86_BUILTIN_FABSQ): Ditto.
2262         (IX86_BUILTIN_COPYSIGNQ): Ditto.
2263         (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
2264         [__builtin_fabsq]: Ditto.
2265         [__builtin_copysignq]: Ditto.
2266         (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
2267         [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
2268         [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
2269         ix86_expand_binop_builtin().
2270
2271 2007-06-07  Bob Wilson  <bob.wilson@acm.org>
2272
2273         * config/xtensa/lib1funcs.asm: Clean up whitespace.
2274
2275 2007-06-07  Steve Ellcey  <sje@cup.hp.com>
2276
2277         PR target/31850
2278         * rtl.h (push_to_sequence2): New.
2279         * emit-rtl.c (push_to_sequence2): New.
2280         * function.c (assign_parm_data_all): Add new fields.
2281         (assign_parm_setup_block): Call push_to_sequence2 instead of
2282         push_to_sequence.
2283         (assign_parm_setup_reg): Ditto.
2284         (assign_parm_setup_stack): Ditto.
2285         (assign_parms_unsplit_complex): Ditto.
2286         (assign_parms): Change field name.
2287
2288 2007-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
2289
2290         PR tree-optimization/32220
2291         * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
2292         phi node is reached before defining statement.
2293
2294 2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2295
2296         PR tree-opt/32231
2297         * tree-vect-transform.c (vectorizable_call): Call update_stmt
2298         after changing the right hand side of the assignment.
2299
2300 2007-06-06  Eric Christopher  <echristo@apple.com>
2301
2302         * config.gcc (i?86-*-darwin*): Remove arch parameter.
2303         (x86_64-*-darwin*): Ditto.
2304         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
2305         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
2306
2307 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
2308
2309         * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
2310         coding conventions.
2311         (add_key): Likewise.
2312         * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
2313         * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
2314         variable names.
2315         * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory macros.
2316         (add_cost_one_coalesce): Likewise.
2317         * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
2318         variable names. Rename orig to orig_name for consistency.
2319         * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the coding
2320         conventions.
2321         (cprop_into_successor_phis): Avoid using C++ keywords as variable names.
2322         (record_equivalences_from_stmt): Likewise.
2323         * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
2324         the coding conventions.
2325         (memory_ssa_name_same): Likewise.
2326         (dse_optimize_stmt): Likewise.
2327         (dse_record_phis): Likewise.
2328         (dse_finalize_block): Likewise.
2329         * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
2330         keywords as variable names.
2331         (may_move_till): Cast according to the coding conventions.
2332         (force_move_till_expr): Avoid using C++ keywords as variable names.
2333         (force_move_till): Cast according to the coding conventions.
2334         (memref_hash): Likewise.
2335         (memref_eq): Likewise.
2336         (gather_mem_refs_stmt): Likewise.
2337         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid using C++
2338         keywords as variable names.
2339         (idx_find_step): Cast according to the coding conventions.
2340         (idx_record_use): Likewise.
2341         (find_depends): Likewise.
2342         (prepare_decl_rtl): Likewise.
2343         (mbc_entry_hash): Likewise.
2344         (mbc_entry_eq): Likewise.
2345         * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
2346         (simplify_replace_tree): Avoid using C++ keywords as variable names.
2347         (idx_infer_loop_bounds): Cast according to the coding conventions.
2348         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
2349         * tree-ssa-math-opts.c (occ_new ): Likwise.
2350         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
2351         macros.
2352         * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as variable
2353         names.
2354         (add_use_op): Likewise.
2355         (add_vop): Likewise.
2356         (add_vuse_op): Likewise.
2357         (add_vdef_op): Likewise.
2358         (get_expr_operands): Likewise.
2359         (push_stmt_changes): Use type safe memory macros.
2360         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
2361         keywords as variable names.
2362         (conditional_replacement): Likewise.
2363         (minmax_replacement): Likewise.
2364         (abs_replacement): Likewise.
2365         * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
2366         coding conventions.
2367         (insert_fake_stores): Avoid using C++ keywords as variable names.
2368         * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
2369         conventions.
2370         * tree-ssa-structalias.c (heapvar_lookup): Likewise.
2371         (heapvar_insert): Use type safe memory macros.
2372         (new_var_info): Cast according to the coding conventions.
2373         (new_constraint): Likewise.
2374         (remove_preds_and_fake_succs): Use type safe memory macros.
2375         * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
2376         conventions.
2377         (thread_single_edge): Likewise.
2378         (thread_through_loop_header): Likewise.
2379
2380 2007-06-06  Eric Christopher  <echristo@apple.com>
2381
2382         * config/i386/i386.c (override_options): Move handling
2383         of TARGET_SUBTARGET* earlier.
2384
2385 2007-06-06  Paolo Bonzini  <bonzini@gnu.org>
2386
2387         * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
2388         use %n on printf.
2389
2390 2007-06-06  Zdenek Dvorak  <dvorakz@suse.cz>
2391
2392         * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
2393         emited outside of basic block.
2394         * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
2395         the created blocks.
2396         * rtl.h (delete_insn_chain): Declaration changed.
2397         * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
2398         non-removed insns.
2399         (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
2400         (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
2401         rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
2402         to delete_insn_chain.
2403         (rtl_verify_flow_info_1): Verify that the insns in header and footer
2404         do not have bb field set.
2405         (rtl_verify_flow_info): Verify that insns between basic blocks do not
2406         have bb field set.
2407         * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
2408         * cfgcleanup.c (try_optimize_cfg): Ditto.
2409
2410 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
2411
2412         * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
2413         (lambda_body_vector_new): Use type safe memory macros.
2414         (lambda_linear_expression_new): Likewise.
2415         (lambda_loopnest_new): Likewise.
2416         (lambda_lattice_new): Likewise.
2417         (replace_uses_equiv_to_x_with_y): Cast according to the coding
2418         conventions. Use type safe memory macros.
2419         * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
2420         (lambda_body_vector_s): Likewise.
2421         * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
2422         * lambda-trans.c (lambda_trans_matrix_new): Likewise.
2423
2424 2007-06-06  Richard Guenther  <rguenther@suse.de>
2425
2426         * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
2427         if we need to schedule cfg_cleanup.
2428         (tree_ssa_forward_propagate_single_use_vars): Do so.
2429
2430 2007-06-06  Ian Lance Taylor  <iant@google.com>
2431
2432         * fold-const.c (merge_ranges): If range_successor or
2433         range_predecessor fail, just return 0.
2434
2435 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
2436
2437         PR tree-optimization/32216
2438         * tree-vectorizer.c (supportable_widening_operation): Determine
2439         signedness of FIX_TRUNC_EXPR from output operand.
2440         (supportable_narrowing_operation): Ditto.
2441         * tree-vect-generic.c (expand_vector_operations_1): Determine
2442         signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
2443         from input operand.
2444
2445 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
2446
2447         * config/i386/i386.c (enum pta_flags): Move out of struct scope...
2448         (struct pta): ...from here. Change flags to unsigned to avoid
2449         excessive casting (as it is used as a bit mask).
2450         (override_options): Add casts according to the coding convenventions.
2451         (x86_64_elf_unique_section): Likewise.
2452         (examine_argument): Avoid using C++ keywords as variable names.
2453         (construct_container): Likewise.
2454         (legitimize_pic_address): Likewise.
2455         (get_dllimport_decl): Cast according to the coding conventions. Use
2456         type safe memory macros.
2457         (legitimize_address): Cast according to the coding conventions.
2458         (emit_i387_cw_initialization): Corrected the type of slot to enum
2459         ix86_stack_slot.
2460         (ix86_init_machine_status): Use type safe memory macros.
2461         (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
2462         (bdesc_pcmpistr): Likewise.
2463         (bdesc_crc32): Likewise.
2464         (bdesc_sse_3arg): Likewise.
2465         (bdesc_2arg): Likewise.
2466         (bdesc_1arg): Likewise.
2467         (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
2468         (ix86_expand_sse_pcmpistr): Likewise.
2469         (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
2470         (ix86_builtin_vectorized_function): Change the type of fn to unsigned
2471         int to match the langhook definition.
2472         (ix86_builtin_conversion): Change the type of code to unsigned init to
2473         match the langhook definition.
2474         (ix86_preferred_reload_class): Avoid using C++ keywords as variable
2475         names.
2476         (ix86_preferred_output_reload_class): Likewise.
2477         (ix86_cannot_change_mode_class): Likewise.
2478         (ix86_memory_move_cost): Likewise.
2479         (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
2480         avoid excessive casting later on.
2481         (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
2482
2483 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
2484
2485         * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
2486         as flags setting insn.
2487         (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
2488
2489 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
2490
2491         * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
2492         (UNSPEC_ROUND): New.
2493         ("sse4_1_round<mode>2"): New insn pattern.
2494         ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
2495         SSE4.1 targets.
2496         ("floor<mode>2"): Rename from floordf2 and floorsf2.  Macroize
2497         expander using SSEMODEF mode macro.  Expand using
2498         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
2499         ("ceil<mode>2"): Rename from ceildf2 and ceilsf2.  Macroize
2500         expander using SSEMODEF mode macro.  Expand using
2501         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
2502         ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2.  Macroize
2503         expander using SSEMODEF mode macro.  Expand using
2504         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
2505         * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
2506         UNSPEC_ROUND instead of UNSPEC_ROUNDP.
2507         ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
2508         UNSPEC_ROUNDS.
2509
2510 2007-06-06  Jan Sjodin  <jan.sjodin@amd.com>
2511             Sebastian Pop  <sebpop@gmail.com>
2512
2513         * lambda.h (build_linear_expr): New.
2514         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
2515         Use build_linear_expr, call fold and force_gimple_operand.
2516         (lambda_loopnest_to_gcc_loopnest): Check that there is
2517         something to insert.
2518         * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
2519
2520 2007-06-05  Joerg Wunsch  <j.gnu@uriah.heep.sax.de>
2521
2522         PR preprocessor/23479
2523         * doc/extend.texi: Document the 0b-prefixed binary integer
2524         constant extension.
2525
2526 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
2527
2528         PR tree-optimization/32215
2529         * tree-vectorizer.c (supportable_widening_operation): Return false
2530         for unsupported FIX_TRUNC_EXPR tree code.
2531         (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
2532
2533 2007-06-06  Nathan Froyd  <froydnj@codesourcery.com>
2534
2535         * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
2536         register on SPE targets.  Change documentation to reflect
2537         reality.
2538         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
2539         Change FIXED_SCRATCH to 14 and document why we're keeping r14
2540         out of the register allocation pool.
2541         (rs6000_reg_live_or_pic_offset_p): New function.
2542         (rs6000_emit_prologue): Move the actual saving of LR up to free
2543         r0 for holding r11.  Split saving of SPE 64-bit registers into
2544         its own case.  Ensure that offsets will always be in-range for
2545         'evstdd' by using r11 as a scratch register to point at the start
2546         of the SPE save area.  Save r11 if necessary, as it is the static
2547         chain register.
2548         (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
2549         into its own case.  Ensure that offsets will always be in-range
2550         for 'evldd' by using r11 as a scratch register to point at the
2551         start of the SPE save area.  Also adjust r11 when restoring
2552         the stack pointer to compensate for pre-loading r11.
2553
2554 2007-06-05  Thomas Neumann  <tneumann@users.sourceforge.net>
2555
2556         * cfg.c (init_flow): Use type safe memory macros.
2557         (alloc_block): Likewise.
2558         (unchecked_make_edge): Likewise.
2559         (dump_flow_info): Avoid using C++ keywords as variable names.
2560         (copy_original_table_clear): Cast according to the coding conventions.
2561         (copy_original_table_set): Likewise.
2562         * cfgexpand (label_rtx_for_bb): Likewise.
2563         (expand_gimple_basic_block): Likewise.
2564         * cfghooks.c (dump_bb): Likewise.
2565         (lv_adjust_loop_header_phi): Avoid using C++ keywords as
2566         variable names.
2567         (lv_add_condition_to_bb): Likewise.
2568         * cfglayout (relink_block_chain): Cast according to the coding
2569         conventions.
2570         (fixup_reorder_chain): Likewise.
2571         (fixup_fallthru_exit_predecessor): Likewise.
2572         * cfgloop.c (glb_enum_p): Likewise.
2573         (get_exit_description): Likewise.
2574         (dump_recorded_exit): Likewise.
2575         * cfgloop.h (enum loop_estimation): Move out of struct scope...
2576         (struct loop): ... from here.
2577         * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
2578         conventions.
2579         * cfgrtl.c (rtl_create_basic_block): Likewise.
2580         (rtl_split_block): Likewise.
2581         (rtl_dump_bb): Likewise.
2582         (cfg_layout_split_block): Likewise.
2583         (init_rtl_bb_info): Use typesafe memory macros.
2584
2585         * graphds.h (struct graph_edge): Renamed edge to graph_edge.
2586         * graphds.h: Updated all usages of edge to graph_edge.
2587         * graphds.c: Likewise.
2588         * cfgloopanal.c: Likewise.
2589
2590 2007-06-05  Ian Lance Taylor  <iant@google.com>
2591
2592         * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
2593         PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
2594         (extract_range_from_assert): Set TREE_NO_WARNING when creating an
2595         expression.
2596         (test_for_singularity): Likewise.
2597
2598 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
2599
2600         * config/i386/constraints.md ("Y2"): Replaced by ...
2601         ("Yt"): This.
2602         * config/i386/i386.md: Likewise.
2603         * config/i386/mmx.md: Likewise.
2604         * config/i386/sse.md: Likewise.
2605
2606 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
2607
2608         * config/i386/constraints.md ("z"): Replaced by ...
2609         ("Y0"): This.
2610         * config/i386/sse.md (sse4_1_blendvpd): Likewise.
2611         (sse4_1_blendvps): Likewise.
2612         (sse4_1_pblendvb): Likewise.
2613         (sse4_2_pcmpestr): Likewise.
2614         (sse4_2_pcmpestrm): Likewise.
2615         (sse4_2_pcmpestr_cconly): Likewise.
2616         (sse4_2_pcmpistr): Likewise.
2617         (sse4_2_pcmpistrm): Likewise.
2618         (sse4_2_pcmpistr_cconly): Likewise.
2619
2620 2007-06-05  Razya Ladelsky  <razya@il.ibm.com>
2621
2622         * matrix-reorg.c (transform_access_sites): Fix computation.
2623         (transform_allocation_sites): Same.
2624
2625 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
2626
2627         * config/i386/i386.c (override_options): Use
2628         TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
2629
2630 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
2631
2632         * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
2633         (nonimm_not_xmm0_operand): Ditto.
2634         * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
2635         as operand[0] and operand[1] predicate.  Use "nonimm_not_xmm0_operand"
2636         as operand[2] predicate.  Require "z" class XMM register for
2637         operand[3].  Adjust asm template.
2638         ("sse4_1_blendvpd"): Ditto.
2639         ("sse4_1_pblendvb"): Ditto.
2640         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
2641         force op2 into xmm0 register for variable blend instructions.
2642
2643 2007-06-04  Tom Tromey  <tromey@redhat.com>
2644
2645         * c-tree.h (start_enum): Update.
2646         (build_enumerator): Likewise.
2647         * c-decl.c (enum_next_value): Removed.
2648         (enum_overflow): Likewise.
2649         (start_enum): Add c_enum_contents argument.  Don't use globals.
2650         (build_enumerator): Likewise.
2651         * c-tree.h (struct c_enum_contents): New struct.
2652
2653 2007-06-04  Tom Tromey  <tromey@redhat.com>
2654
2655         * c-common.c (c_common_get_alias_set): Fix indentation.
2656
2657 2007-06-04  Ian Lance Taylor  <iant@google.com>
2658
2659         * tree-vrp.c (adjust_range_with_scev): When loop is not expected
2660         to overflow, reduce overflow infinity to regular infinity.
2661         (vrp_var_may_overflow): New static function.
2662         (vrp_visit_phi_node): Check vrp_var_may_overflow.
2663
2664 2007-06-04  Kazu Hirata  <kazu@codesourcery.com>
2665
2666         * stor-layout.c (layout_type): Remove duplicate code.
2667
2668 2007-06-04  Uros Bizjak  <ubizjak@gmail.com>
2669
2670         PR c/32191
2671         * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins ()
2672         before build_common_builtin_nodes ().
2673
2674 2007-06-04  Steve Ellcey  <sje@cup.hp.com>
2675
2676         PR target/31733
2677         * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
2678
2679 2007-06-04  Jan Hubicka  <jh@suse.cz>
2680
2681         * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
2682         reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
2683         instead of _stat version.
2684
2685 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
2686
2687         PR tree-optimization/32194
2688         * tree-predcom.c (determine_offset): Check that both references have
2689         the same type.
2690
2691 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
2692
2693         * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
2694         Change dom_bbs to vector.  Add argument to iterate_fix_dominators call.
2695         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
2696         * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
2697         Add argument to iterate_fix_dominators call.
2698         (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
2699         * gcse.c (hoist_code): Change domby to vector.
2700         * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
2701         Add argument to iterate_fix_dominators call.
2702         * loop-doloop.c (doloop_modify): Changed recount_dominator to
2703         recompute_dominator.
2704         * lambda-code.c (perfect_nestify): Ditto.
2705         * cfgloopanal.c: Include graphds.h.
2706         (struct edge, struct vertex, struct graph, dump_graph, new_graph,
2707         add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
2708         (mark_irreducible_loops): Use graphds_scc.  Remove argument from
2709         add_edge call.
2710         * graphds.c: New file.
2711         * graphds.h: New file.
2712         * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
2713         (get_dominated_by, get_dominated_by_region): Change return type to
2714         vector.
2715         (verify_dominators): Recompute all dominators and compare the results.
2716         (recount_dominator): Renamed to ...
2717         (recompute_dominator): ... this.  Do not check that the block is
2718         dominated by entry.
2719         (iterate_fix_dominators): Reimplemented.
2720         (prune_bbs_to_update_dominators, root_of_dom_tree,
2721         determine_dominators_for_sons): New functions.
2722         * et-forest.c (et_root): New function.
2723         * et-forest.h (et_root): Declare.
2724         * Makefile.in (graphds.o): Add.
2725         (cfgloopanal.o): Add graphds.h dependency.
2726         (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
2727         * basic-block.h (get_dominated_by, get_dominated_by_region,
2728         iterate_fix_dominators): Declaration changed.
2729         (recount_dominator): Renamed to ...
2730         (recompute_dominator): ... this.
2731         * tree-ssa-threadupdate.c (thread_block): Free dominance info.
2732         (thread_through_all_blocks): Do not free dominance info.
2733
2734 2007-06-03  Andreas Schwab  <schwab@suse.de>
2735
2736         * config/m68k/m68k.c (override_options): Don't override
2737         REAL_MODE_FORMAT.
2738         * config/m68k/m68k-modes.def (SF, DF): Define to use
2739         motorola_single_format and motorola_double_format, resp.
2740         * real.c (motorola_single_format): Renamed from
2741         coldfire_single_format.
2742         (motorola_double_format): Renamed from coldfire_double_format.
2743         (encode_ieee_extended): Generate a proper canonical NaN image
2744         respecting canonical_nan_lsbs_set.
2745         (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
2746         true.
2747         * real.h: Adjust declarations.
2748
2749 2007-06-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2750
2751         PR target/32163
2752         * config/sh/sh.md (symGOT_load): Don't schedule insns when
2753         the symbol is generated with the stack protector.
2754
2755 2007-06-03  Kazu Hirata  <kazu@codesourcery.com>
2756
2757         * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
2758         (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
2759         "interrupt".
2760         * doc/extend.texi (interrupt): Mention m68k.
2761
2762 2007-06-02  Uros Bizjak  <ubizjak@gmail.com>
2763
2764         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
2765         safe_vector_operand() if input operand is VECTOR_MODE_P operand.
2766         (ix86_expand_sse_pcmpestr): Do not check operands for
2767         "register_operand", when insn operand predicate is "register_operand".
2768         (ix86_expand_sse_pcmpistr): Ditto.
2769
2770 2007-06-02  H.J. Lu  <hongjiu.lu@intel.com>
2771             Uros Bizjak  <ubizjak@gmail.com>
2772
2773         * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
2774         (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
2775         (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
2776         (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
2777         * config/i386/constraints.md ("z"): New register constraint
2778         for members of SSE_FIRST_REG class.
2779         * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
2780         * config/i386/i386.c (regclass_map): Change class of %xmm0 to
2781         SSE_FIRST_REG class.
2782         (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
2783         (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
2784         (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
2785         (IX86_BUILTIN_PCMPESTRM128): Likewise.
2786         (IX86_BUILTIN_PCMPESTRA128): Likewise.
2787         (IX86_BUILTIN_PCMPESTRC128): Likewise.
2788         (IX86_BUILTIN_PCMPESTRO128): Likewise.
2789         (IX86_BUILTIN_PCMPESTRS128): Likewise.
2790         (IX86_BUILTIN_PCMPESTRZ128): Likewise.
2791         (IX86_BUILTIN_PCMPISTRI128): Likewise.
2792         (IX86_BUILTIN_PCMPISTRM128): Likewise.
2793         (IX86_BUILTIN_PCMPISTRA128): Likewise.
2794         (IX86_BUILTIN_PCMPISTRC128): Likewise.
2795         (IX86_BUILTIN_PCMPISTRO128): Likewise.
2796         (IX86_BUILTIN_PCMPISTRS128): Likewise.
2797         (IX86_BUILTIN_PCMPISTRZ128): Likewise.
2798         (struct builtin_description): Change "flag" field to unsigned.
2799         (bdesc_pcmpestr): New builtin description table.
2800         (bdesc_pcmpistr): Likewise.
2801         (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
2802         v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
2803         Initialize pcmp[ei]str[im] insns for SSE4.2.
2804         (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
2805         (ix86_expand_sse_pcmpistr): Likewise.
2806         (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
2807         * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
2808         (UNSPEC_PCMPISTR): Likewise.
2809         * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
2810         (sse4_2_pcmpestri):New isns pattern.
2811         (sse4_2_pcmpestrm): Likewise.
2812         (sse4_2_pcmpestr_cconly): Likewise.
2813         (sse4_2_pcmpistr): New insn patern and splitter.
2814         (sse4_2_pcmpistri):New isns pattern.
2815         (sse4_2_pcmpistrm): Likewise.
2816         (sse4_2_pcmpistr_cconly): Likewise.
2817         * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
2818         in SSE4.2.
2819
2820 2007-06-01  David Daney  <ddaney@avtrex.com>
2821
2822         * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
2823         LOADGP_ABSOLUTE and not binds_local_p.
2824
2825 2007-06-01  Geoffrey Keating  <geoffk@apple.com>
2826
2827         * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
2828
2829 2007-06-01  Ian Lance Taylor  <iant@google.com>
2830
2831         * tree-vrp.c (compare_name_with_value): Always set
2832         used_strict_overflow if we get a result from the variable itself.
2833
2834 2007-06-01  Ian Lance Taylor  <iant@google.com>
2835
2836         PR rtl-optimization/31455
2837         * lower-subreg.c (find_decomposable_subregs): Don't decompose
2838         subregs which have a cast between modes which are not tieable.
2839
2840 2007-06-01  Uros Bizjak  <ubizjak@gmail.com>
2841
2842         * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
2843         breaks after return statements.
2844
2845 2007-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
2846
2847         * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
2848         only after no_new_pseudos.
2849
2850 2007-05-31  Eric Christopher  <echristo@apple.com>
2851
2852         * expr.c (convert_move): Assert that we don't have a BLKmode
2853         operand.
2854         (store_expr): Handle BLKmode moves by calling emit_block_move.
2855
2856 2007-05-31  Daniel Berlin  <dberlin@dberlin.org>
2857
2858         * c-typeck.c (build_indirect_ref): Include type in error message.
2859         (build_binary_op): Pass types to binary_op_error.
2860         * c-common.c (binary_op_error): Take two type arguments, print out
2861         types with error.
2862         * c-common.h (binary_op_error): Update prototype.
2863
2864 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
2865
2866         * config/i386/i386.c: Correct coments on -mno-sse4.
2867
2868 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
2869
2870         * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
2871         (x86_64-*-*): Likewise.
2872         * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
2873         (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
2874         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
2875         (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
2876         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
2877         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
2878         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
2879         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
2880         (OPTION_MASK_ISA_SSE4): Likewise.
2881         (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
2882         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
2883         (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET.  Handle SSE4.2.
2884         (override_options): Support SSE4.2.
2885         (ix86_build_const_vector): Support SImode and DImode.
2886         (ix86_build_signbit_mask): Likewise.
2887         (ix86_expand_int_vcond): Support V2DImode.
2888         (IX86_BUILTIN_CRC32QI): New for SSE4.2.
2889         (IX86_BUILTIN_CRC32HI): Likewise.
2890         (IX86_BUILTIN_CRC32SI): Likewise.
2891         (IX86_BUILTIN_CRC32DI): Likewise.
2892         (IX86_BUILTIN_PCMPGTQ): Likewise.
2893         (bdesc_crc32): Likewise.
2894         (bdesc_sse_3arg): Likewise.
2895         (ix86_expand_crc32): Likewise.
2896         (ix86_init_mmx_sse_builtins): Support SSE4.2.
2897         (ix86_expand_builtin): Likewise.
2898         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
2899         __SSE4_2__ for -msse4.2.
2900         * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
2901         (CRC32MODE): Likewise.
2902         (crc32modesuffix): Likewise.
2903         (crc32modeconstraint): Likewise.
2904         (sse4_2_crc32<mode>): Likewise.
2905         (sse4_2_crc32di): Likewise.
2906         * config/i386/i386.opt (msse4.2): New for SSE4.2.
2907         (msse4): Likewise.
2908         * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
2909         * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
2910         * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
2911         (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
2912         (vcondu<mode>): Likewise.
2913         * doc/extend.texi: Document SSE4.2 built-in functions.
2914         * doc/invoke.texi: Document -msse4.2/-msse4.
2915
2916 2007-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
2917
2918         PR tree-optimization/32160
2919         * tree-predcom.c (predcom_tmp_var): New function.  Mark created
2920         variable as gimple reg.
2921         (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
2922
2923 2007-05-31  Kazu Hirata  <kazu@codesourcery.com>
2924
2925         * gcc.c (main): Don't consider linker options when issuing the
2926         warning about a linker input file not being used.
2927
2928 2007-05-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2929
2930         * tree-vrp.c (compare_names): Initialize sop.
2931
2932 2007-05-30  Dirk Mueller  <dmueller@suse.de>
2933
2934         * cgraphunit.c (cgraph_analyze_function): Remove
2935         computation of inline parameters.
2936
2937 2007-05-30  Uros Bizjak  <ubizjak@gmail.com>
2938
2939         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
2940
2941 2007-05-30  Richard Sandiford  <richard@codesourcery.com>
2942
2943         * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
2944         Add vx-common.h.  Include vxworks.h between vx-common.h and
2945         arm/vxworks.h.
2946         * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
2947         redefining.
2948         * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
2949         (TARGET_ASM_DESTRUCTOR): Likewise.
2950         * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
2951         instead of arm_is_xscale.  Use VXWORKS_OS_CPP_BUILTINS.
2952         (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
2953         (CC1_SPEC): Add -tstrongarm.  Line up backslashes.
2954         (VXWORKS_ENDIAN_SPEC): Define.
2955         (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
2956         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
2957         VXWORKS_* equivalents.
2958         (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
2959         (ASM_FILE_START): Delete.
2960         (TARGET_VERSION): Reformat.
2961         (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
2962         (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
2963         * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
2964         (FPBIT, DPBIT): Define.
2965         (fp-bit.c, dp-bit.c): New rules.
2966         (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
2967         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
2968         * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
2969         * config/arm/arm.h: Include vxworks-dummy.h.
2970         * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
2971         Mark with ATTRIBUTE_UNUSED.
2972         (arm_override_options): Do not allow VxWorks RTP PIC to be used
2973         for Thumb.  Force r9 to be the PIC register for VxWorks RTPs and
2974         make it incompatible with -msingle-pic-base.
2975         (arm_function_ok_for_sibcall): Return false for calls that might
2976         go through a VxWorks PIC PLT entry.
2977         (require_pic_register): New function, split out from...
2978         (legitimize_pic_address): ...here.  Do not use GOTOFF accesses
2979         for VxWorks RTPs.
2980         (arm_load_pic_register): Handle the VxWorks RTP initialization
2981         sequence.  Use pic_reg as a shorthand for cfun->machine->pic_reg.
2982         (arm_emit_call_insn): New function.
2983         (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
2984         * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
2985         (pic_offset_arm): New pattern.
2986         (call, call_value): Use arm_emit_call_insn.
2987         (call_internal, call_value_internal): New expanders.
2988         * config/arm/lib1funcs.asm (__PLT__): Define to empty for
2989         VxWorks unless __PIC__.
2990
2991 2007-05-30  Eric Christopher  <echristo@gmail.com>
2992
2993         * genrecog.c: Include regs.h in generated file.
2994         * genemit.c: Ditto. Fix up formatting.
2995         * config/mn10300/constraints.md: New.
2996         * config/mn10300/mn10300.md: Include.
2997         * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
2998         Fix up for removed macro.
2999         * config/mn10300/predicates.md (call_address_operand):  Ditto.
3000         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
3001         (CONST_OK_FOR_I): Ditto.
3002         (CONST_OK_FOR_J): Ditto.
3003         (CONST_OK_FOR_K): Ditto.
3004         (CONST_OK_FOR_L): Ditto.
3005         (CONST_OK_FOR_M): Ditto.
3006         (CONST_OK_FOR_N): Ditto.
3007         (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
3008         (OK_FOR_Q): Ditto.
3009         (OK_FOR_R): Ditto.
3010         (OK_FOR_T): Ditto.
3011         (EXTRA_CONSTRAINT): Ditto.
3012
3013 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
3014
3015         * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
3016         Remove defines.
3017         * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
3018         OPTION_MASK_ISA_64BIT.
3019         * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
3020
3021 2007-05-30  Richard Guenther  <rguenther@suse.de>
3022
3023         PR middle-end/32152
3024         * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
3025         types for comparison.
3026         * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
3027         with original typed arguments.
3028         * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
3029
3030 2007-05-30  Jakub Jelinek  <jakub@redhat.com>
3031
3032         PR tree-optimization/31769
3033         * except.c (duplicate_eh_regions): Clear prev_try if
3034         ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
3035
3036 2007-05-30  Zdenek Dvorak  <dvorakz@suse.cz>
3037
3038         * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
3039         * tree-ssa-sink.c (statement_sink_location): Return basic block and
3040         bsi of the location where statements should be inserted.
3041         (sink_code_in_bb): Take bsi from statement_sink_location.
3042         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
3043         instead of bsi_start.
3044         * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
3045         bsi_insert_after.
3046         * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
3047         (bsi_move_before): Document inconsistency with bsi_move_after.
3048         (tree_redirect_edge_and_branch): Do not create labels if not necessary.
3049
3050 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
3051
3052         * config/i386/i386.h (TARGET_ABM): New define.
3053         (TARGET_POPCNT): Ditto.
3054         (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
3055         New temporary defines to redefine from OPTION_ISA_* defines.
3056         (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
3057         New temporary defines to redefine from OPTION_MASK_ISA_* defines.
3058         (ix86_isa_flags): New extern int declaration.
3059         (TARGET_SUBTARGET_DEFAULT): New define.
3060         (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
3061         (TARGET_SUBTARGET32_DEFAULT): Ditto.
3062         (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
3063         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
3064         * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
3065         * config/i386/darwin.h: Change TARGET_64BIT define to
3066         OPTION_ISA_64BIT.
3067
3068         * config/i386/i386.opt (m3dnowa): Define as undocumented option
3069         using existing "ix86_isa_flags" varible.
3070         (m32, m64): Use existing "ix86_isa_flags" variable.
3071         (mmmx, m3dnow): Ditto.
3072         (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
3073         (mabm): Define as non-negative option using "x86_abm" variable.
3074         (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
3075
3076         * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
3077         Rewrite feature test bitmap.
3078         (ix86_isa_flags): New initialized global int varible.
3079         (ix86_isa_flags_explicit): New static int variable.
3080         (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
3081         msse, msse2, msse3, msse4.1 and msse4a option is processed.  Change
3082         i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
3083         target_flags_explicit.
3084         (override_options): Remove "target_enable" and "target_disable" fields
3085         from "struct ptt". Update processor_target_table accordingly. Remove
3086         PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
3087         defined and rearrange PTA_* bits.  Use "ix86_isa_flags" instead of
3088         "target_flags" and "ix86_isa_flags_explicit" instead of
3089         "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
3090         MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*.  Set "x86_abm" to true when
3091         PTA_ABM is set in processor_alias_table flags entry.  Set "x86_popcnt"
3092         to true when either of PTA_POPCNT or PTA_ABM is set in
3093         processor_alias_table flags entry.  Set "x86_prefetch_sse" to true
3094         when either of PTA_PREFETCH_SSE or PTA_SSE is set in
3095         processor_alias_table flags entry.  Remove handling of
3096         "target_enable" and "target_disable" fields of processor_target_table.
3097         Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
3098         targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
3099         Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
3100         targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
3101         (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
3102         "target_flags".
3103         (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
3104
3105 2007-05-29  David Daney  <ddaney@avtrex.com>
3106
3107         PR gcc/31975
3108         * config/mips/mips.c (mips_output_mi_thunk): Emit
3109         NOTE_INSN_PROLOGUE_END at beginning of the thunk.
3110
3111 2007-05-29  Hui-May Chang  <hm.chang@apple.com>
3112         * config/i386/i386.c (ix86_function_regparm): Added checking of
3113         ix86_force_align_arg_pointer to determine the number of
3114         register parameters.
3115
3116 2007-05-29  Zdenek Dvorak  <dvorakz@suse.cz>
3117
3118         * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
3119         (SET_DR_MISALIGNMENT): New.
3120         * tree-vect-analyze.c (vect_compute_data_ref_alignment,
3121         vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
3122         Use SET_DR_MISALIGNMENT.
3123         * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
3124         pointer.
3125         * tree-data-ref.c (create_data_ref, compute_all_dependences,
3126         find_loop_nest): Export.
3127         * tree-data-ref.h (struct data_reference): Change aux field to pointer.
3128         (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
3129         * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
3130         (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
3131         New macros.
3132         (struct mem_ref): Add field reuse_distance.
3133         (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
3134         Initialize reuse_distance field.
3135         (issue_prefetch_ref): Select temporality of prefetch according to
3136         reuse_distance.
3137         (volume_of_references, volume_of_dist_vector, add_subscript_strides,
3138         self_reuse_distance, determine_loop_nest_reuse): New functions.
3139         (loop_prefetch_arrays): Call determine_loop_nest_reuse.
3140         (tree_ssa_prefetch_arrays): Dump L2 cache size.
3141         * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
3142         dependency.
3143
3144 2007-05-29  Daniel Berlin  <dberlin@dberlin.org>
3145
3146         * tree-ssa-alias.c: Add aliasing overview.
3147
3148 2007-05-29  Zuxy Meng  <zuxy.meng@gmail.com>
3149             Danny Smith  <dannysmith@users.sourceforge.net>
3150
3151         PR target/29498
3152         * config/i386/t-crtfm: Compile crtfastmath.o with
3153         -minline-all-stringops.
3154         * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
3155         * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
3156
3157 2007-05-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3158
3159         * doc/md.texi: Document constraints on HP PA-RISC.
3160
3161         * pa/constraints.md: New file.
3162         * pa.md: Include constraints.md.
3163         * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
3164         (integer_store_memory_operand, ldil_cint_p): New functions.
3165         * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
3166         * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
3167         IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
3168         * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
3169         * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
3170
3171 2007-05-28  Andrew Pinski  <Andrew_pinski@playstation.sony.com>
3172
3173         PR c/31339
3174         * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
3175         case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
3176         case POSTDECREMENT_EXPR>): Return the error_mark_node
3177         if either the real or imaginary parts would an
3178         error_mark_node.
3179
3180 2007-05-28  Daniel Berlin  <dberlin@dberlin.org>
3181
3182         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
3183         name when we remove it from a call.
3184
3185 2007-05-28  Kazu Hirata  <kazu@codesourcery.com>
3186
3187         * targhooks.c (default_narrow_bitfield): Remove.
3188         * targhooks.h: Remove the prototype for
3189         default_narrow_bitfield.
3190
3191         * langhooks-def.h: Remove the prototype for
3192         hook_get_alias_set_0.
3193         * langhooks.c (hook_get_alias_set_0): Remove.
3194
3195         * global.c (EXECUTE_IF_CONFLICT): Remove.
3196
3197 2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3198
3199         PR tree-opt/32100
3200         * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
3201         return true when truth_value_p is true and the type
3202         is of signed:1.
3203
3204 2007-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
3205
3206         * doc/install.texi (Prerequisites): We no longer require Autoconf
3207         2.13 for the top-level.
3208
3209 2007-05-28  Uros Bizjak  <ubizjak@gmail.com>
3210
3211         * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
3212         memory access via x86_expand_vector_move_misalign() only for
3213         TImode values on 32-bit targets.
3214
3215 2007-05-28  Razya Ladelsky  <razya@il.ibm.com>
3216
3217         * matrix-reorg.c: New file. Implement matrix flattening and
3218         transposing optimization.
3219         * tree-pass.h: Add matrix reorg pass.
3220         * common.opt: Add fipa-mreorg flag.
3221         * Makefile.in: Add matrix-reorg.c.
3222         * passes.c: Add matrix reorg pass.
3223         * varpool.c (add_new_static_var): New function.
3224         * cgraph.h (add_new_static_var): Declare.
3225
3226 2007-05-27  Eric Christopher  <echristo@apple.com>
3227
3228         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
3229         sp_offset depending on stack size. Save r12 depending
3230         on registers we're saving later.
3231         (rs6000_emit_epilogue): Update sp_offset depending only
3232         on stack size.
3233
3234 2007-05-27  Zdenek Dvorak  <dvorakz@suse.cz>
3235
3236         * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
3237         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
3238         * ifcvt.c (if_convert): Ditto.
3239         * tree-ssa-threadupdate.c (thread_block): Ditto.
3240         (thread_through_all_blocks): Ditto.  Assert that loops were analysed.
3241         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
3242         verify_loop_closed_ssa): Check number_of_loops instead of
3243         current_loops.
3244         * predict.c (tree_estimate_probability): Ditto.
3245         * tree-if-conv.c (main_tree_if_conversion): Ditto.
3246         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
3247         * modulo-sched.c (sms_schedule): Ditto.
3248         * tree-scalar-evolution.c (scev_const_prop): Ditto.
3249         (scev_finalize): Do not do anything if scev analysis was not
3250         initialized.
3251         * cfgloopanal.c (mark_irreducible_loops): Do not check whether
3252         current_loops == NULL.
3253         (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
3254         * loop-init.c (loop_optimizer_init): Do not free current_loops when
3255         there are no loops.
3256         (loop_optimizer_finalize): Assert that loops were analyzed.
3257         (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
3258         rtl_doloop): Check number_of_loops instead of current_loops.
3259         * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
3260         current_loops == NULL.
3261         (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
3262         gate_tree_vectorize tree_linear_transform, check_data_deps,
3263         tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
3264         tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
3265         Check number_of_loops instead of current_loops.
3266         (tree_ssa_loop_done): Do not check whether current_loops == NULL.
3267         * tree-ssa-pre.c (fini_pre): Do not take do_fre argument.  Always
3268         free loops if available.
3269         (execute_pre): Do not pass do_fre to fini_pre.
3270
3271 2007-05-27  Tobias Burnus  <burnus@net-b.de>
3272
3273         PR middle-end/32083
3274         * real.c (mpfr_from_real): Fix sign of -Inf.
3275
3276 2007-05-27  H.J. Lu  <hongjiu.lu@intel.com>
3277
3278         * tree-vect-transform.c (vectorizable_conversion): Initialize
3279         tree_code variables to ERROR_MARK.
3280         (vectorizable_type_demotion): Likewise.
3281         (vectorizable_type_promotion): Likewise.
3282
3283 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
3284
3285         PR target/32065
3286         * config/i386/i386.md (movti): Handle push operands via
3287         ix86_expand_push().
3288
3289 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
3290
3291         * basic-block.h: Remove the prototype for merge_seq_blocks.
3292         * cfgcleanup.c (merge_seq_blocks): Remove.
3293
3294         * tree-flow.h: Remove the prototype for is_aliased_with.
3295         * tree-ssa-alias.c (is_aliased_with): Remove.
3296
3297 2007-05-26  H.J. Lu  <hongjiu.lu@intel.com>
3298
3299         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
3300
3301         * config/i386/i386.c (ix86_expand_sse4_unpack): New.
3302
3303         * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
3304         ix86_expand_sse4_unpack if SSE4.1 is enabled.
3305         (vec_unpacks_hi_v16qi): Likewise.
3306         (vec_unpacku_lo_v16qi): Likewise.
3307         (vec_unpacks_lo_v16qi): Likewise.
3308         (vec_unpacku_hi_v8hi): Likewise.
3309         (vec_unpacks_hi_v8hi): Likewise.
3310         (vec_unpacku_lo_v8hi): Likewise.
3311         (vec_unpacks_lo_v8hi): Likewise.
3312         (vec_unpacku_hi_v4si): Likewise.
3313         (vec_unpacks_hi_v4si): Likewise.
3314         (vec_unpacku_lo_v4si): Likewise.
3315         (vec_unpacks_lo_v4si): Likewise.
3316
3317 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
3318
3319         * c-typeck.c, config/arm/arm.c, config/darwin.c,
3320         config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
3321         omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
3322         follow spelling conventions in various
3323         warning/error/diagnostic messages.
3324
3325         * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
3326         df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
3327         fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
3328         tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
3329         tree-vrp.c: Fix comment typos.  Follow spelling conventions.
3330         * doc/tm.texi: Follow spelling conventions.
3331
3332 2007-05-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3333
3334         PR tree-opt/32090
3335         * tree-ssa-forwprop.c
3336         (forward_propagate_addr_into_variable_array_index): Remove
3337         the lhs argument.  Use the type of def_rhs instead of lhs.
3338         (forward_propagate_addr_expr_1): Update use of
3339         forward_propagate_addr_into_variable_array_index.
3340
3341 2007-05-25  Sandra Loosemore  <sandra@codesourcery.com>
3342             Nigel Stephens  <nigel@mips.com>
3343
3344         * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
3345         function attributes, "far" being an alias for "long_call".
3346         (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
3347         (mips_near_type_p, mips_far_type_p): New.
3348         (mips_comp_type_attributes): New function to check that attributes
3349         attached to a function type are compatible.
3350         (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
3351         TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
3352         to the target function of the thunk.
3353         (mips_encode_section_info): Check for "near" and "far" function
3354         attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
3355
3356         * config/mips/predicates.md (const_call_insn_operand): Test only
3357         SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
3358
3359         * doc/extend.texi (Function Attributes): Document MIPS "near" and
3360         "far" attributes.
3361
3362         * testsuite/gcc.target/mips/near-far-1.c:  New test case.
3363         * testsuite/gcc.target/mips/near-far-2.c:  New test case.
3364         * testsuite/gcc.target/mips/near-far-3.c:  New test case.
3365         * testsuite/gcc.target/mips/near-far-4.c:  New test case.
3366
3367 2007-05-25  Eric Christopher  <echristo@apple.com>
3368
3369         * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
3370         to x86-darwin configurations.
3371         * config/i386/t-darwin: Add softfp support.
3372         * config/i386/t-darwin64: Ditto.
3373         * config/i386/sfp-machine.h: If mach then don't use
3374         aliasing, emit a stub to call.
3375
3376 2007-05-25  Kazu Hirata  <kazu@codesourcery.com>
3377
3378         * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
3379         haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
3380         tree-predcom.c, tree-ssa-alias-warnings.c,
3381         tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
3382         comment typos.  Follow spelling conventions.
3383         * doc/cpp.texi, doc/invoke.texi: Fix typos.
3384
3385 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
3386
3387         PR target/32065
3388         * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
3389         constants into memory.  Expand unaligned memory references for
3390         SSE modes via x86_expand_vector_move_misalign() function.
3391
3392 2007-05-25  Uros Bizjak  <ubizjak@gmail.com>
3393
3394         * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
3395         "memory" attribute for "sseishft" type insn without operands[2].
3396
3397 2007-05-25  Dirk Mueller  <dmueller@suse.de>
3398             Marcus Meissner <meissner@suse.de>
3399
3400         * doc/extend.texi (alloc_size): New attribute.