OSDN Git Service

* config/sh/sh.c (mark_use): Remove.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2
3         * config/sh/sh.c (mark_use): Remove.
4
5 2007-07-12  Paul Brook  <paul@codesourcery.com>
6
7         * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
8         reg does not overlap return value.
9
10 2007-07-12  Daniel Berlin  <dberlin@dberlin.org>
11
12         * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
13         (set_expression_vuses): Ditto.
14         (init_pre): Initialize expression_vuses.
15
16 2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
17
18         * config/i386/sse.md (storentdf, storentsf): New.
19
20 2007-07-12  Geoffrey Keating  <geoffk@apple.com>
21
22         * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
23         FUNCTION_DECL.
24         * tree.c (build_decl_stat): Move code from here...
25         (make_node_stat): ... to here.  Don't uselessly clear DECL_USER_ALIGN.
26         (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL.  Add comment
27         about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
28         * tree.h (DECL_USER_ALIGN): Fix misplaced comment.
29         * varasm.c (assemble_start_function): Use DECL_ALIGN instead of
30         FUNCTION_BOUNDARY.
31
32 2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
33             Devang Patel  <dpatel@apple.com>
34
35         PR tree-optimization/25413
36         * targhooks.c (default_builtin_vector_alignment_reachable): New.
37         * targhooks.h (default_builtin_vector_alignment_reachable): New.
38         * tree.h (contains_packed_reference): New.
39         * expr.c (contains_packed_reference): New.
40         * tree-vect-analyze.c (vector_alignment_reachable_p): New.
41         (vect_enhance_data_refs_alignment): Call
42         vector_alignment_reachable_p.
43         * target.h (vector_alignment_reachable): New builtin.
44         * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
45         * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
46         (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
47
48 2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
49
50         * target.h (builtin_vectorization_cost): Add new target builtin.
51         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
52         * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
53         (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
54         * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
55         uninitialized variables.
56         * tree-vect-transform.c (cost_for_stmt): New function.
57         (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
58         using cost 1 for all scalar stmts. Be less conservative when
59         estimating the number of prologue/epulogue iterations. Call
60         targetm.vectorize.builtin_vectorization_cost. Return
61         min_profitable_iters-1.
62         (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
63         initialization cost instead of TARG_VEC_STMT_COST. Use
64         TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
65         epilogue code. Fix epilogue cost computation.
66         * config/spu/spu.c (spu_builtin_vectorization_cost): New.
67         (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
68         * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
69         (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
70         (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
71         (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.
72
73 2007-07-12  Richard Guenther  <rguenther@suse.de>
74
75         * gimplify.c (gimplify_conversion): Make sure that the result
76         from maybe_fold_offset_to_reference is trivially convertible
77         to the desired type before doing the simplification.
78         (gimplify_expr): Likewise.
79         * fold-const.c (fold_binary): Use the correct types for
80         building the simplified expression.
81
82 2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
83
84         PR rtl-optimization/32729
85         * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
86         that fallthru to exit.
87
88 2007-07-12  Kaz Kojima  <kkojima@gcc.gnu.org>
89
90         * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
91         (symDTPOFF2reg): Likewise.
92
93 2007-07-11  Daniel Berlin  <dberlin@dberlin.org>
94
95         PR tree-optimization/32663
96         
97         * tree.h (VALUE_HANDLE_VUSES): Remove.
98         (struct tree_value_handle): Remove vuses.
99
100         * tree-vn.c (create_value_handle_for_expr): Don't set
101         VALUE_HANDLE_VUSES. 
102
103         * tree-ssa-pre.c (expression_vuses): New.
104         (alloc_expression_id): Set up expression_vuses.
105         (get_expression_vuses): New.
106         (set_expression_vuses): Ditto.
107         (clear_expression_ids): Modify for expression_vuses.
108         (phi_translate_1): Ditto.
109         (phi_translate_set): Ditto.
110         (value_dies_in_block_x): Ditto
111         (valid_in_sets): Ditto.
112         (add_to_sets): Ditto.
113         (find_existing_value_expr): Ditto.
114         (create_value_handle_for_expr): Ditto.
115         (make_values_for_stmt): Ditto.
116         (vuse_equiv): Remove.
117
118 2007-07-11  Alexandre Oliva  <aoliva@redhat.com>
119
120         * Makefile.in (mostlyclean): Remove object files.
121
122 2007-07-11  Kenneth Zadeck <zadeck@naturalbridge.com>
123
124         * toplev.c (no_new_pseudos): Deleted.
125         * rtl.h (no_new_pseudos): Deleted.
126         * tree-pass.h (pass_no_new_pseudos): Deleted. 
127         * passes.c (pass_no_new_pseudos): Deleted.
128         * final.c (rest_of_clean_state): Removed no_new_pseudos.
129         (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
130         * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with 
131         reload_completed.
132         * cfgcleanup.c (try_crossjump_to_edge): Ditto. 
133         * rtlhooks.c (gen_lowpart_general): Ditto.
134         * optabs.c (prepare_operand): Ditto.
135         * mode-switching.c (rest_of_handle_mode_switching): Deleted set of
136         no_new_pseudos.
137         * modulo-sched.c (rest_of_handle_sms): Ditto.
138         * see.c (rest_of_handle_see): Ditto.
139         * ifcvt.c (if_convert): Ditto.
140         (gate_handle_if_after_combine): Replaced no_new_pseudos with 
141         reload_completed.
142         * init-regs.c (gate_initialize_regs): Deleted set of
143         no_new_pseudos.
144         * lower-subreg.c (decompose_multiword_subregs): Ditto. 
145         * bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
146         * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
147         
148 2007-07-11  Uros Bizjak  <ubizjak@gmail.com>
149
150         PR target/32661
151         * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
152         (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
153         (*vec_extractv2di_1_rex64): New insn pattern.
154
155 2007-07-11  David Daney  <ddaney@avtrex.com>
156
157         * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
158         return address calculation.  Substitute DWARF_ALT_FRAME_RETURN_COLUMN
159         for SIGNAL_UNWIND_RETURN_COLUMN.
160         * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
161         (DWARF_FRAME_REGNUM): Rewrite.
162         (DWARF_ALT_FRAME_RETURN_COLUMN) Define.
163
164 2007-07-11  Nick Clifton  <nickc@redhat.com>
165
166         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
167         delta and use gen_int_mode in place of GET_INT instead.
168
169 2007-07-11  Uros Bizjak  <ubizjak@gmail.com>
170
171         * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
172         and letter field.
173
174 2007-07-11  Douglas Gregor  <doug.gregor@gmail.com>
175
176         * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
177         (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical 
178         types or not.
179         * params.h (VERIFY_CANONICAL_TYPES): Remove.
180         (USE_CANONICAL_TYPES): New.
181         * doc/invoke.texi (verify-canonical-types): Remove.
182         (use-canonical-types): Add.
183
184 2007-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
185
186         * config/spu/spu.c (spu_optimization_options): Remove setting of
187         parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
188         (spu_override_options): Move it here.
189
190 2007-07-11  Richard Sandiford  <richard@codesourcery.com>
191
192         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
193         * config/mips/mips.c (mips_cpu_info_table): Mention
194         MIPS_ISA_LEVEL_SPEC in the comment.
195
196 2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>
197
198         PR tree-optimization/32713
199         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
200
201 2007-07-11  Paolo Carlini  <pcarlini@suse.de>
202
203         PR middle-end/30482
204         * c-opts.c (c_common_post_options): Do not change flag_complex_method
205         conditional to flag_isoc99.
206         (c_common_init_options): Do it here, unconditionally.
207
208 2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>
209
210         PR tree-optimization/32589
211         * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
212         * tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
213         * tree-ssa-propagate.c (valid_gimple_expression_p): New
214         predicate, extracted from...
215         (set_rhs): ...here.  Call it for the expression on entry.
216         * tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
217         * tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
218         (simplify_binary_expression): Use valid_gimple_expression_p
219         to validate the simplification.
220         * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
221
222 2007-07-11  Danny Smith  <dannysmith@users.sourceforge.net>
223
224         * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
225         DWARF2_DEBUG on 32 bit target too.
226         (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition. 
227
228 2007-07-11  Nick Clifton  <nickc@redhat.com>
229
230         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
231         version for 64-bit hosts.
232
233 2007-07-10  David Daney  <ddaney@avtrex.com>
234
235         * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
236         predicate.
237         (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of  library
238         call.
239         * config/mips/mips.c (mips_expand_synci_loop): New function.
240         * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
241         (UNSPEC_RDHWR): Same.
242         (UNSPEC_SYNCI): Same.
243         (UNSPEC_SYNC): Same.
244         (clear_cache): New expand.
245         (sync): New insn.
246         (synci): Same.
247         (rdhwr): Same.
248         (clear_hazard): Same.
249         * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
250         function.
251         * testsuite/gcc.target/mips/clear-cache-1.c: New test.
252         * testsuite/gcc.target/mips/clear-cache-2.c: New test.
253
254 2007-07-10  Ian Lance Taylor  <iant@google.com>
255
256         * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
257         no_new_pseudos.
258
259 2007-07-10  David Daney  <ddaney@avtrex.com>
260
261         * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
262         * builtins.c (expand_builtin___clear_cache): New function.
263         (expand_builtin): Call expand_builtin___clear_cache for
264         BUILT_IN_CLEAR_CACHE case.
265         * doc/extend.texi (__builtin___clear_cache): Document new builtin.
266         * doc/md.texi (clear_cache): Document new instruction pattern.
267         * testsuite/gcc.dg/builtins-64.c: New test.
268
269 2007-07-11  Hans-Peter Nilsson  <hp@axis.com>
270
271         * config/cris/cris.md ("movsi"): Fix typo in last change.
272
273 2007-07-09  Geoffrey Keating  <geoffk@apple.com>
274
275         PR 32617
276         * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
277         FUNCTION_DECLs.
278         (handle_aligned_attribute): Allow use on FUNCTION_DECLs.
279         * varasm.c (assemble_start_function): Honor DECL_ALIGN
280         for FUNCTION_DECLs.  Don't use align_functions_log if
281         DECL_USER_ALIGN.
282         * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
283         even for FUNCTION_DECLs.
284         * c-decl.c (merge_decls): Propagate DECL_ALIGN even for
285         FUNCTION_DECLs.
286         * tree.h (DECL_ALIGN): Update for new location of 'align'.
287         (DECL_FUNCTION_CODE): Update for new location and name of
288         'function_code'.
289         (DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
290         (struct tree_decl_common): Move 'align' and 'off_align' out
291         of union, ensure they're still on a 32-bit boundary.  Remove
292         other fields in union 'u1'.
293         (struct tree_function_decl): Add field 'function_code' replacing
294         'u1.f' in tree_decl_common.
295         * tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
296         * doc/extend.texi (Function Attributes): Add 'aligned' attribute.
297         (Variable Attributes): Cross-reference 'aligned' attribute
298         to Function Attributes.
299         * flags.h (force_align_functions_log): Delete.
300         * toplev.c (force_align_functions_log): Delete.
301
302 2007-07-10  Uros Bizjak  <ubizjak@gmail.com>
303
304         PR target/32708
305         * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
306         (*vec_concatv2di_rex): New insn pattern.
307
308 2007-07-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
309
310         PR target/32538
311         * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
312
313 2007-07-10  Ian Lance Taylor  <iant@google.com>
314
315         Replace no_new_pseudos in backends.
316         * rtl.h (can_create_pseudo_p): Define.
317         * config/darwin.c (machopic_indirect_data_reference): Use
318         can_create_pseudo_p () instead of no_new_pseudos.
319         (machopic_indirect_data_reference): Likewise.
320         (machopic_legitimize_pic_address): Likewise.
321         * config/alpha/alpha.c (alpha_legitimize_address): Likewise.
322         (alpha_emit_set_const_1): Likewise.
323         (alpha_emit_set_const): Likewise.
324         (alpha_emit_conditional_move): Likewise.
325         (alpha_split_conditional_move): Likewise.
326         * config/alpha/alpha.md (various splitters): Likewise.
327         (movti): Likewise.
328         * config/arm/arm.c (legitimize_pic_address): Likewise.
329         (arm_load_pic_register): Likewise.
330         * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
331         (movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
332         * config/bfin/bfin.c (legitimize_pic_address): Likewise.
333         * config/cris/cris.c (cris_expand_pic_call_address): Likewise.
334         * config/cris/cris.md (movsi): Likewise.
335         * config/frv/frv.md (symGOT2reg_hilo): Likewise.
336         (symGOTOFF2reg_hilo): Likewise.
337         (symGPREL2reg, symGPREL2reg_hilo): Likewise.
338         * config/h8300/h8300.md (insv, extzv): Likewise.
339         * config/i386/i386.c (ix86_expand_move): Likewise.
340         (ix86_expand_vector_move): Likewise.
341         (ix86_prepare_fp_compare_args): Likewise.
342         (ix86_expand_carry_flag_compare): Likewise.
343         * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
344         (tls_dynamic_gnu2_combine_32): Likewise.
345         (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
346         * config/ia64/ia64.c (ia64_expand_move): Likewise.
347         (ia64_expand_movxf_movrf): Likewise.
348         * config/m32c/m32c.c (m32c_prepare_move): Likewise.
349         (m32c_split_move): Likewise.
350         (m32c_expand_insv): Likewise.
351         * config/m68k/m68k.md (movsi): Likewise.
352         * config/mips/mips.c (mips_force_temporary): Likewise.
353         (mips_split_symbol): Likewise.
354         (mips_move_integer): Likewise.
355         (mips_legitimize_const_move): Likewise.
356         * config/mn10300/mn10300.md (movsi): Likewise.
357         * config/pa/pa.c (emit_move_sequence): Likewise.
358         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
359         (rs6000_got_register): Likewise.
360         (create_TOC_reference): Likewise.
361         (rs6000_machopic_legitimize_pic_address): Likewise.
362         * config/rs6000/rs6000.md (add<mode>3): Likewise.
363         (various splitters): Likewise.
364         (iorsi3, xorsi3, iordi3, xordi3): Likewise.
365         (movsi_got): Likewise.
366         * config/s390/s390.c (emit_symbolic_move): Likewise.
367         * config/s390/s390.md (movhi, movqi): Likewise.
368         (load_multiple, store_multiple): Likewise.
369         * config/score/score.c (score_force_temporary): Likewise.
370         * config/sh/sh.c (prepare_move_operands): Likewise.
371         (prepare_cbranch_operands): Likewise.
372         (emit_fpu_switch): Likewise.
373         (fpscr_set_from_mem): Likewise.
374         * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
375         (adddi3, subsi3): Likewise.
376         (various splitters): Likewise.
377         (divsi_inv_fp_combine): Likewise.
378         (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
379         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
380         (sne): Likewise.
381         * config/sh/predicates.md (xor_operand): Likewise.
382         * config/sparc/sparc.c (legitimize_tls_address): Likewise.
383         * config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
384         (movdi_pic_label_ref): Likewise.
385         * config/spu/spu.c (spu_split_immediate): Likewise.
386         * config/alpha/alpha.md (various splitters): Remove test
387         !no_new_pseudos || reload_completed.
388         * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
389         no_new_pseudos.
390         * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
391         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
392         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
393         * config/score/score.c (th_output_mi_thunk): Likewise.
394         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
395         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
396
397 2007-07-10  Kaz Kojima  <kkojima@gcc.gnu.org>
398
399         PR rtl-optimization/32664
400         * mode-switching.c (create_pre_exit): Skip barrier insns.
401
402 2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>
403
404         * tree-scalar-evolution.c (scev_const_prop): Add arguments to
405         force_gimple_operand_bsi.
406         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
407         rewrite_use_compare): Ditto.
408         * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
409         Ditto.
410         * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
411         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
412         * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
413         * tree-profile.c (prepare_instrumented_value,
414         tree_gen_interval_profiler, tree_gen_pow2_profiler,
415         tree_gen_one_value_profiler, tree_gen_ic_profiler,
416         tree_gen_ic_func_profiler, tree_gen_average_profiler,
417         tree_gen_ior_profiler): Ditto.
418         * tree-ssa-reassoc.c (negate_value): Ditto.
419         * matrix-reorg.c (transform_access_sites, transform_allocation_sites):
420         Use force_gimple_operand_bsi.
421         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
422         * tree-if-conv.c (add_to_dst_predicate_list,
423         find_phi_replacement_condition): Ditto.
424         * gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
425         Call mark_symbols_for_renaming for new statements.
426         * tree-flow.h (force_gimple_operand_bsi): Declaration changed.
427
428 2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>
429
430         * cfghooks.c (remove_edge): New function.
431         (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
432         loop exit rescans.
433         * cfghooks.h (remove_edge): Declare.
434         * cfg.c (remove_edge): Renamed to remove_edge_raw.
435         * basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
436
437 2007-07-09  Wolfgang Gellerich  <gellerich@de.ibm.com>
438
439         * optabs.h: Added declaration for signbit_optab.  
440         * optabs.c: (init_optabs): Added initialization for signbit_optab.
441         * genoptinit.c (optabs): Added entry for signbit insns.  
442         * builtins.c (expand_builtin_signbit): Added code to use a signbit
443         insn, if available.  
444         * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.  
445         * config/s390/s390.md (signbit<mode>2): New expander.  
446
447 2007-07-09  Richard Guenther  <rguenther@suse.de>
448
449         PR middle-end/32698
450         * fold-const.c (fold_plusminus_mult_expr): Move constant
451         arguments second to allow decomposing.
452
453 2007-07-09  Alexandre Oliva  <aoliva@oliva.athome.lsd.ic.unicamp.br>
454
455         Revert:
456         2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
457         PR debug/23551
458         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
459         Disregard DECL_FROM_INLINE.
460
461 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
462
463         PR target/27855
464         * doc/invoke.texi: Add ftree-reassoc flag.
465         * common.opt (ftree-reassoc): New flag.
466         * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
467         (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
468
469 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
470
471         PR tree-optimization/32681
472         * tree-if-conv.c (find_phi_replacement_condition): Use the condition
473         saved in second_edge->aux when first_bb is a loop header.
474
475 2007-07-09  Jan HUbicka  <jh@suse.cz>
476
477         * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
478
479 2007-07-09  Richard Guenther  <rguenther@suse.de>
480
481         * c-decl.c (start_function): Do not promote return type.
482
483 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
484
485         * function.c (do_warn_unused_parameter): Do not warn if
486         TREE_NO_WARNING is set.
487
488 2007-07-08  Andreas Schwab  <schwab@suse.de>
489
490         * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
491
492 2007-07-08  Sandra Loosemore  <sandra@codesourcery.com>
493
494         Revert this patch:
495         2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
496
497         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
498         apply to assembly language, too.
499         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
500
501 2007-07-07  Daniel Berlin  <dberlin@dberlin.org>
502
503         Revert (note the sccvn portions are *not* reverted)
504         2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
505
506         Fix PR tree-optimization/23488
507
508         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
509         handles.
510         * tree-flow-inline.h (get_value_handle): Ditto.
511         * tree-ssa-pre.c (decl_vh_map): New.
512         (decl_node_pool): New.
513         (can_value_number_operation): Support DECL_P.
514         (can_PRE_operation): Ditto.
515         (create_expression_by_pieces): Ditto.
516         (find_existing_value_expr): Modify to differnetiate between
517         addressing and top level.
518         (create_value_handle_for_expr): Handle DECL's.
519         (poolify_tree): Ditto.
520         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
521         (make_values_for_stmt): Handle DECL's properly.
522         (init_pre): Reorg to not init useless things during FRE.
523         (fini_pre): Ditto.
524         * tree-flow.h: Include pointer-set.h.
525         (decl_vh_map): Declare.
526         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
527
528 2007-07-07 Eric Weddington  <eweddington@cso.atmel.com>
529
530         * config/avr/constraints.md (define_memory_constraint "Q"): Fix
531         the constraint description.
532         * doc/md.texi: Update documentation of AVR constraints.
533
534 2007-07-07  Kazu Hirata  <kazu@codesourcery.com>
535
536         * auto-inc-dec.c, config/arm/arm.c,
537         config/m32r/constraints.md, config/mips/mips.md,
538         config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
539         df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
540         tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
541         typos.  Follow spelling conventions.
542         * doc/invoke.texi, doc/rtl.texi: Fix typos.
543
544         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
545         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
546
547         * tree-ssa-operands.c (realloc_vop, realloc_vdef,
548         realloc_vuse): Remove.
549         * tree-ssa-operands.h: Remove the prototype for realloc_vdef
550         and realloc_vuse.
551
552 2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
553
554         Fix PR tree-optimization/23488
555
556         * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
557         (try_to_simplify): Ditto.
558         (visit_use): Ditto.
559         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
560         handles.
561         * tree-flow-inline.h (get_value_handle): Ditto.
562         * tree-ssa-pre.c (decl_vh_map): New.
563         (decl_node_pool): New.
564         (can_value_number_operation): Support DECL_P.
565         (can_PRE_operation): Ditto.
566         (create_expression_by_pieces): Ditto.
567         (find_existing_value_expr): Modify to differnetiate between
568         addressing and top level.
569         (create_value_handle_for_expr): Handle DECL's.
570         (poolify_tree): Ditto.
571         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
572         (make_values_for_stmt): Handle DECL's properly.
573         (init_pre): Reorg to not init useless things during FRE.
574         (fini_pre): Ditto.
575         * tree-flow.h: Include pointer-set.h.
576         (decl_vh_map): Declare.
577         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
578                 
579 2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
580
581         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
582         apply to assembly language, too.
583         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
584
585 2007-07-06  Ian Lance Taylor  <iant@google.com>
586             Zack Weinberg  <zackw@panix.com>
587
588         PR middle-end/32441
589         * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
590
591 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
592
593         * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
594         (prefetch): Likewise if "pref" would be used.
595
596 2007-07-06  Josh Conner  <jconner@apple.com>
597
598         PR middle-end/32602
599         PR middle-end/32603
600         * calls.c (store_one_arg): Handle arguments which are partially
601         on the stack when detecting argument overlap.
602
603 2007-07-06  Bernd Schmidt  <bernd.schmidt@analog.com>
604
605         * reload1.c (choose_reload_regs): Set reload_spill_index for regs
606         chosen during find_reloads.
607
608 2007-07-06  Richard Guenther  <rguenther@suse.de>
609
610         * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
611         TYPE_ARG_TYPES for verification of argument types.  Use
612         DECL_ARG_TYPE instead of the PARM_DECL type.  Take excess
613         parameters as variable arguments.
614
615 2007-07-06  Andreas Krebbel  <krebbel1@de.ibm.com>
616
617         * libgcc2.h (word_type): Type definition removed.
618         (cmp_return_type, shift_count_type): Type definitions added.
619         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
620         replaced with shift_count_type.
621         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
622         cmp_return_type.
623         * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
624         changed from word_type to Wtype.
625         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
626         replaced with shift_count_type.
627         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
628         cmp_return_type.
629         * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
630         and libgcc_shift_count attribute added.
631         * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
632         TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
633         (TARGET_INITIALIZER): New target hooks added.
634         * targhooks.c (default_libgcc_cmp_return_mode,
635         default_libgcc_shift_count_mode): Default implementations for the new
636         target hooks added.
637         * targhooks.h (default_libgcc_cmp_return_mode,
638         default_libgcc_shift_count_mode): Function prototypes added.
639         * target.h (struct gcc_target): Fields for the new target hooks added.
640         * optabs.c (expand_binop): Use shift_count_mode when expanding shift
641         as library call.
642         (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
643         library call.
644
645         * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
646         TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
647
648         * config/s390/s390.c (s390_libgcc_cmp_return_mode,
649         s390_libgcc_shift_count_mode): Functions added.
650         (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE):
651         Target hooks defined.
652
653 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
654
655         * config/mips/mips.c (compute_frame_size): Restore the original
656         gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
657         fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
658         Document why the difference is needed.
659
660 2007-07-06  Richard Guenther  <rguenther@suse.de>
661
662         * c-common.c (boolean_increment): Use correctly typed
663         constant.
664
665 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
666
667         * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
668         the topmost argument register is not also included in the save mask.
669         (mips16e_collect_argument_save_p): Take a pointer to the argument
670         register, rather than a pointer to the number of arguments.
671         (mips16e_collect_argument_saves): Only include argument saves
672         that aren't in the register mask.
673
674 2007-07-06  Uros Bizjak  <ubizjak@gmail.com>
675
676         PR rtl-optimization/32450
677         * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
678         to ensure that instructions are not moved into the prologue when
679         profiling is on.  Remove unused prologue_end variable.
680         (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
681         as a scheduling barrier.
682
683 2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
684
685         PR debug/23551
686         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
687         Disregard DECL_FROM_INLINE.
688
689 2007-07-05  Adam Nemet  <anemet@caviumnetworks.com>
690
691         * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
692         IORing with a constant.
693
694 2007-07-05  Seongbae Park  <seongbae.park@gmail.com>
695
696         PR rtl-optimization/32475
697         * df-scan.c (df_def_record_1): Add a use of the stack pointer
698         for every definition of the stack pointer.
699
700 2007-07-05  Richard Earnshaw  <rearnsha@arm.com>
701
702         * arm.c (vfp3_const_double_index): Copy signed results of
703         REAL_VALUE_TO_INT into unsigned vars.
704
705 2007-07-05  Richard Guenther  <rguenther@suse.de>
706
707         PR middle-end/32639
708         * alias.c (get_alias_set): Tread METHOD_TYPE the same as
709         FUNCTION_TYPE.
710         * tree-ssa.c (useless_type_conversion_p): Check canonical
711         types early.
712
713 2007-07-05 Anatoly Sokolov <aesok@post.ru>
714
715         * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2, 
716         zero_extendhisi2): Change to define_insn_and_split. 
717         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
718
719 2007-07-05  Paolo Bonzini  <bonzini@gnu.org>
720
721         * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
722         pass_match_asm_constraints): New.
723         * passes.c (init_optimization_passes): Add new pass.
724         * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
725         * function.h (struct function): Add has_asm_statement bit.
726         (current_function_has_asm_statement): New.
727         * tree-pass.h (pass_match_asm_constraints): New.
728
729 2007-07-05  Richard Sandiford  <rsandifo@nildram.co.uk>
730
731         * config/mips/mips.c (mips_file_start): Avoid declaration
732         after code.
733
734 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
735
736         * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
737
738 2007-07-05  Uros Bizjak  <ubizjak@gmail.com>
739
740         * rtl.def (NOTE): Change print format string to print
741         operand 5 as a note insn name.
742
743 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
744             David Ung  <davidu@mips.com>
745
746         * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
747         * doc/invoke.texi: (MIPS Options): Document them.
748
749 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
750             David Ung  <davidu@mips.com>
751
752         Add support for SmartMIPS ASE.
753
754         * optabs.c (expand_binop_directly): New, broken out from...
755         (expand_binop): Here.  Make it try rotating in the other
756         direction even when the second operand isn't constant.
757         * config/mips/mips.md (*lwxs): New.
758         * config/mips/mips.opt (msmartmips): New.
759         * config/mips/mips.c (mips_lwxs_address_p): New.
760         (mips_rtx_costs): Make it recognize scaled indexed addressing.
761         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
762         __mips_smartmips when compiling for TARGET_SMARTMIPS.
763         (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
764         (ISA_HAS_LWXS): New.
765         (ASM_SPEC): Add -msmartmips/-mno-smartmips.
766         * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
767         * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
768         * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
769         * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
770         * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
771         * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
772
773 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
774
775         * tree-vectorizer.c (new_loop_vec_info): Initialize
776         LOOP_VINFO_COST_MODEL_MIN_ITERS.
777         * tree-vectorizer.h (_loop_vec_info): Added new filed
778         min_profitable_iters.
779         (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
780         (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
781         * tree-vect-analyze.c (vect_analyze_operations): Set
782         LOOP_VINFO_COST_MODEL_MIN_ITERS.
783         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
784         VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
785         Fix calculation of peel_iters_prologue. Move consideration of epilogue
786         and prologue cost to after they are computed.
787         (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
788         TARG_VEC_STMT_COST.
789         (vect_model_simple_cost): Takes additional argument dt. Consider cost
790         of creating vectors from scalars according to dt.
791         (vect_model_store_cost): Likewise.
792         (vectorizable_call): Use dt array instead of scalar dt. Call
793         vect_model_simple_cost with additional argument dt.
794         (vectorizable_assignment): Likewise.
795         (vectorizable_operation): Likewise.
796         (vectorizable_type_demotion): Likewise.
797         (vectorizable_type_promotion): Likewise.
798         (vectorizable_store): Use dt array instead of scalar dt. Call
799         vect_model_store_cost with additional argument dt.
800         (vect_do_peeling_for_loop_bound): Don't call
801         vect_estimate_min_profitable_iters. Instead, lookup
802         LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
803         "may not be profitable".
804
805 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
806
807         PR testsuite/32014
808         * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
809         (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
810         (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
811         (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns. 
812
813 2007-07-05  Zdenek Dvorak  <dvorakz@suse.cz>
814
815         * config/i386/i386.c (ix86_address_cost): Do not consider more complex
816         addressing modes cheaper.
817
818 2007-07-05  Alexandre Oliva  <aoliva@redhat.com>
819
820         * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
821         (dw_ranges_struct): Rename block_num to num.  Adjust.
822         (dw_ranges_by_label_struct): New.
823         (ranges_by_label, ranges_by_label_allocated,
824         ranges_by_label_in_use): New variables.
825         (add_ranges_num): Factored most of the code out of...
826         (add_ranges): ... this one.  Rewrite in terms of the former.
827         (add_ranges_by_labels): New.
828         (output_ranges): Output by-label ranges.
829         (dwarf2out_finish): Output range for multiple-section
830         compile_unit.  Output standard DW_AT_low_pc in addition to
831         unexpected DW_AT_entry_pc.
832
833 2007-07-04  Daniel Berlin  <dberlin@dberlin.org>
834
835         PR tree-optimization/32604
836         PR tree-optimization/32606
837
838         * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
839         (compute_antic_safe): Removed.
840         (ANTIC_SAFE_LOADS): Ditto.
841         (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
842         (execute_pre): Don't call compute_antic_safe.
843         (vuse_equiv): New function.
844         (make_values_for_stmt): Use it
845         * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
846         not always true.
847
848 2007-07-04 Anatoly Sokolov <aesok@post.ru>
849
850         PR target/31331
851         * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
852         rather than a decl. 
853         (avr_attribute_table): Make "naked" attribute apply to function types
854         rather than to decls.
855         (avr_handle_fntype_attribute): New function.
856
857 2007-07-04  Joseph Myers  <joseph@codesourcery.com>
858
859         * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
860         after \.
861
862 2007-07-04  David Ung  <davidu@mips.com>
863             Joseph Myers  <joseph@codesourcery.com>
864
865         * config/mips/mips.md (type): Add logical, signext and move.
866         (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
867         *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
868         *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
869         combinations", *zero_extend<SHORT:mode><GPR:mode>2,
870         *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
871         *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
872         *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
873         *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
874         *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
875         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
876         movv2sf_hardfloat_64bit): Use the new types.
877         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
878         *movdf_softfloat, *movdf_mips16): Use "multi".
879         (extendqihi2): Replace with a define_expand.
880         (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
881         Based on extend<SHORT:mode><GPR:mode>2 patterns.
882         * config/mips/74k.md (r74k_int_logical): New reservation and
883         bypasses.
884         (r74k_int_arith): Remove "slt".
885         * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
886         config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
887         config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
888         config/mips/sb1.md, config/mips/sr71k.md: Add new types to
889         reservations for "arith".
890
891 2007-07-04  Richard Guenther  <rguenther@suse.de>
892
893         * tree-ssa.c (useless_type_conversion_p): Add handling for
894         scalar float and vector types.  Only call the types_compatible_p
895         langhook for aggregate types as last resort.  Follow the
896         rules.
897
898 2007-07-04  Richard Guenther  <rguenther@suse.de>
899
900         * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
901         the same as NOP_EXPR.
902
903 2007-07-04  Nick Clifton  <nickc@redhat.com>
904
905         * target.h (struct gcc_target): Add target_help field.
906         * target-def.h (TARGET_HELP): New.
907         (TARGET_INITIALIZER): Use TARGET_HELP.
908         * opts.c (command_handle_option): Invoke target_help function, if
909         defined, when the user has specified --target-help on the command
910         line.
911         * doc/invoke.texi: Mention that --target-help might print
912         additional information.
913         * doc/tm.texi: Document TARGET_HELP hook.
914
915         * arm.c (TARGET_HELP): Override default definition.
916         (arm_target_help): New - display a wrapped list of cores and
917         architectures supported.
918
919 2007-07-04  Rask Ingemann Lambertsen  <rask@sygehus.dk>
920
921         * config/gcc/v850/v850.c (expand_prologue): Make sure
922         GEN_INT() argument is sign extended rather than zero extended.
923         (expand_epilogue): Likewise.
924         (output_move_double): Delete.
925         * config/gcc/v850/v850-protos.h (output_move_double): Delete.
926         * config/gcc/v850/v850.md (movdi): Delete.
927         (*movdi_internal): Delete.
928         (movdf): Delete.
929         (*movdf_internal): Delete.
930
931 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
932
933         * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
934         unless compiling RTP PIC.
935
936 2007-07-04  Richard Guenther  <rguenther@suse.de>
937
938         PR tree-optimization/32482
939         * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
940         original ssa name if we didn't find a shift expression.
941         Fix shift constant for bit zero test.
942
943 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
944
945         * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
946
947 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
948
949         * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
950         * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
951         * config/arm/vxworks.h (ASM_SPEC): Delete.
952         (SUBTARGET_EXTRA_ASM_SPEC): Define.
953
954 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
955
956         * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
957         (DDR_REVERSED_P): New.
958         * tree-data-ref.c (initialize_data_dependence_relation,
959         build_classic_dist_vector): Set DDR_REVERSED_P.
960
961 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
962
963         PR middle-end/32457
964         * tree-data-ref.c (analyze_siv_subscript_cst_affine,
965         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
966         init_omega_for_ddr_1): Use non conservative number of iterations
967         estimations.
968         (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
969         (analyze_siv_subscript): Remove FIXME and reinitialization of 
970         last_conflicts to chrec_dont_know.
971         * testsuite/gfortran.dg/vect/pr32457.f90: New.
972
973 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
974
975         * tree.c (maybe_canonicalize_argtypes): Improve description.
976
977 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
978
979         * tree.c (maybe_canonicalize_argtypes): New.
980         (build_function_type): Set canonical type.
981         (build_method_type_directly): Ditto.
982         (reconstruct_complex_type): Rebuild the METHOD_TYPE node
983         properly.
984
985 2007-07-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
986
987         * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
988         like PLUS_EXPR.
989         (rewrite_use_nonlinear_expr): Likewise.
990
991 2007-07-03  Seongbae Park  <seongbae.park@gmail.com>
992
993         * rtl.def (UNSPEC, USE, CLOBBER): More comments.
994
995 2007-07-04  Ben Elliston  <bje@au.ibm.com>
996
997         * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
998         of this file.
999
1000         * c-objc-common.c (c_types_compatible_p): Fix indentation.
1001
1002         * doc/tm.texi (Run-time Target): Capitalise "CPU".
1003         (Exception Handling): Likewise.
1004
1005 2007-07-03  Jan Hubicka  <jh@suse.cz>
1006
1007         * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
1008
1009 2007-07-03  Eric Christopher  <echristo@apple.com>
1010
1011         * doc/cppopts.texi: Add conflicting option note to -dM.
1012         * doc/invoke.texi: Add note about possible conflicts with
1013         -E for -dCHARS and note that -dM will not produce
1014         any results if there is no machine dependent reorg.
1015         
1016 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
1017
1018         * tree.h (DECL_ALIGN): Back out previous change.
1019
1020 2007-07-03  Joseph Myers  <joseph@codesourcery.com>
1021
1022         * configure.ac: Test for .dtprelword support on MIPS.
1023         * configure, config.in: Regenerate.
1024         * config/mips/mips.c (mips_output_dwarf_dtprel): New.
1025         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
1026
1027 2007-07-03  Julian Brown  <julian@codesourcery.com>
1028
1029         * config.gcc (with_fpu): Allow --with-fpu=vfp3.
1030         * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
1031         * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
1032         * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
1033         capability.
1034         (all_fpus): Add FPUTYPE_VFP3.
1035         (fp_model_for_fpu): Add VFPv3 field.
1036         (arm_rtx_costs_1): Give cost to VFPv3 constants.
1037         (vfp3_const_double_index): New function. Return integer index of
1038         VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
1039         isn't suitable.
1040         (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
1041         and argument represents a valid RTX for a VFPv3 constant.
1042         (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
1043         two instructions.
1044         (vfp_emit_fstmd): Similar, for fstmd.
1045         (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
1046         constants, represented as integer indices.
1047         (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
1048         VFP_REGNO_OK_FOR_DOUBLE macros.
1049         (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
1050         (arm_file_start): Set float-abi attribute for VFPv3, and output
1051         correct ".fpu" assembler directive.
1052         (arm_dbx_register_numbering): Add FIXME.
1053         * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
1054         (fputype): Add FPUTYPE_VFP3.
1055         (FIXED_REGISTERS): Add 32 registers for D16-D31.
1056         (CALL_USED_REGISTERS): Likewise.
1057         (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
1058         of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
1059         (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
1060         (D7_VFP_REGNUM): New.
1061         (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
1062         (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
1063         (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
1064         (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
1065         (REG_ALLOC_ORDER): Adjust for VFPv3.
1066         (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
1067         (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
1068         VFP_LO_REGS, VFP_HI_REGS.
1069         (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
1070         (IS_VFP_CLASS): Define macro.
1071         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
1072         IS_VFP_CLASS.
1073         (REGISTER_MOVE_COST): Likewise.
1074         * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
1075         * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
1076         (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
1077         (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
1078         (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
1079         (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
1080         (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
1081         (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
1082         (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
1083         (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
1084         (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
1085         where appropriate for single-word registers.
1086         (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
1087         As above. Fix type attributes.
1088         * config/arm/constraints.md (register_contraint "t"): Define.
1089         (register_constraint "w"): Change to D0-D15, or D0-D31 for
1090         VFPv3/NEON.
1091         (register_constraint "x"): Define.
1092         (constraint "Dv"): Define.
1093
1094 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
1095
1096         * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
1097
1098 2007-07-03  Tom Tromey  <tromey@redhat.com>
1099
1100         * c-parser.c (objc_pq_context): Removed.
1101         (objc_need_raw_identifier): Likewise.
1102         (c_parser) <objc_pq_context>: New field.
1103         <objc_need_raw_identifier>: Likewise.
1104         (OBJC_NEED_RAW_IDENTIFIER): Removed.
1105         (c_lex_one_token): Update.
1106         (c_parser_objc_protocol_definition): Update.
1107         (c_parser_objc_method_definition): Update.
1108         (c_parser_objc_methodproto): Update.
1109         (c_parser_declspecs): Update.
1110
1111 2007-07-03  David Ung  <davidu@mips.com>
1112
1113         * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
1114
1115 2007-07-03  David Ung  <davidu@mips.com>
1116             Richard Sandiford  <richard@codesourcery.com>
1117
1118         * doc/invoke.texi: Document -march=74kf3_2.
1119         * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
1120         (TUNE_74K): Check for it.
1121         * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
1122         (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
1123         * config/mips/mips.md (cpu): Add 74kf3_2.
1124         * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
1125         (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
1126         (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
1127         (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
1128         74kf3_2 to the CPU list.
1129         (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
1130         (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
1131         (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
1132         (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
1133         (r74kf3_2_fxfer_from_c1): New insn reservations.
1134
1135 2007-07-03  Richard Sandiford  <richard@codesourcery.com>
1136             David Ung  <davidu@mips.com>
1137
1138         * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
1139         -march=24kx with -march=24kf1_1.  Likewise 24ke[fx], 34k[fx]
1140         and 74k[fx].  Document aliases for the new options.
1141         * config/mips/mips.h (PROCESSOR_24KF): Rename to...
1142         (PROCESSOR_24KF2_1): ...this.
1143         (PROCESSOR_24KX): Rename to...
1144         (PROCESSOR_24KF1_1): ...this.
1145         (PROCESSOR_74KF): Rename to...
1146         (PROCESSOR_74KF2_1): ...this.
1147         (PROCESSOR_74KX): Rename to...
1148         (PROCESSOR_74KF1_1): ...this.
1149         (TUNE_74K): Update PROCESSOR_* names.
1150         * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
1151         for 24kf.  Add 24kf1_1 and 24kfx as synonyms for 24kx.  Likewise
1152         the 24ke*, 34k* and 74k* processors.  Update PROCESSOR_* names.
1153         (mips_rtx_cost_data): Update processor names in comments.
1154         (mips_issue_rate): Update PROCESSOR_* names.
1155         * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
1156         24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
1157         * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
1158         to r24kf2_1_*.  Rename r24kx_* insn reservations to r24kf1_1_*.
1159         Update cpu attribute names.
1160         (r24k_fpu_iss): Rename this reservation to...
1161         (r24kf2_1_fpu_iss): ...this and update all uses.
1162         (r24kx_fpu_iss): Rename this reservation to...
1163         (r24kf1_1_fpu_iss): ...this and update all uses.
1164         * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
1165         to r74kf2_1_*.  Rename r74kx_* insn reservations to r74kf1_1_*.
1166         Update cpu attribute names.
1167
1168 2007-07-01  Kaz Kojima  <kkojima@gcc.gnu.org>
1169
1170         * config/m32r/constraints.md: New file.
1171         * config/m32r/m32r.c: Include tm-constrs.h.
1172         (small_data_operand): Use satisfies_constraint_* instead of macro.
1173         (addr24_operand, gen_compare): Likewise.
1174         * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
1175         (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
1176         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
1177         EXTRA_CONSTRAINT): Likewise.
1178         * config/m32r/m32r.md: Include constraints.md.
1179         (*movsi_insn): Use satisfies_constraint_* instead of macro.
1180         (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
1181         * config/m32r/predicates.md (conditional_move_operand): Likewise.
1182         (two_insn_const_operand, int8_operand, uint16_operand,
1183         reg_or_int16_operand, reg_or_uint16_operand,
1184         reg_or_cmp_int16_operand, cmp_int16_operand,
1185         seth_add3_operand): Likewise.
1186
1187 2007-07-03  Eric Christopher  <echristo@gmail.com>
1188
1189         * libgcc2.h: Conditionally declare __bswapsi2 and
1190         __bswapdi2.
1191         
1192 2007-07-03  H.J. Lu  <hongjiu.lu@intel.com>
1193
1194         * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
1195         defined.
1196
1197 2007-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1198
1199         PR target/28307
1200         * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
1201         (__gthrw_pragma): Provide default definition.
1202         (__gthrw2): Use it.
1203         * gthr-posix.c (__gthrw_pragma): Define.
1204
1205 2007-07-03  Daniel Berlin  <dberlin@dberlin.org>
1206
1207         * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
1208         before declaring inequality.
1209
1210 2007-07-03  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1211
1212         * combine.c (recog_for_combine): Log the success or failure of
1213           matching new insn patterns against the machine description in
1214           detailed dumps.
1215
1216 2007-07-03  Revital Eres  <eres@il.ibm.com>
1217
1218         * ddg.c (print_sccs): New function.
1219         (check_sccs): New function.
1220         (create_ddg_all_sccs): Use it.
1221         * ddg.h (print_sccs): Declare.
1222         * modulo-sched.c (sms_order_nodes): Call print_sccs.
1223
1224 2007-07-03  Uros Bizjak  <ubizjak@gmail.com>
1225
1226         * targhooks.h (default_mode_for_suffix): New function declaration.
1227         * targhooks.c (default_mode_for_suffix): New default target hook.
1228         * target.h (struct c): New structure in the targetm struct.
1229         (mode_for_suffix): New target hook as part of struct c.
1230         target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
1231         default_mode_for_suffix.
1232         (TARGET_C): New define.
1233         * c-lex.c: Include "target.h".
1234         (interpret_float): Use targetm.c.mode_for_suffix to determine
1235         the mode for a given non-standard suffix.
1236         Makefile.in (c-lex.o): Depend on $(TARGET_H).
1237
1238         * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
1239         (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
1240
1241         * doc/extend.texi (Floating Types): New node.  Document __float80 and
1242         __float128 types.  Document 'w', 'W', 'q' and 'Q' suffixes.
1243
1244 2007-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1245
1246         PR target/32506
1247         * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
1248         predicate instead of target_operand.
1249         (divsi3_i1_media, divsi3_media_2): Likewise.
1250
1251 2007-07-02  Eric Botcazou  <ebotcazou@adacore.com>
1252
1253         * tree.h (alias_sets_might_conflict_p): Rename into
1254         alias_sets_must_conflict_p.
1255         * alias.c (alias_sets_might_conflict_p): Likewise.
1256         (alias_sets_conflict_p): Use it.
1257         (objects_must_conflict_p): Likewise.
1258         * c-common.c (strict_aliasing_warning): Adjust.
1259
1260 2007-07-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1261
1262         * rtlhooks.c (gen_lowpart_if_possible): Check for
1263         invalid subreg before calling gen_lowpart_SUBREG.
1264
1265 2007-07-02  Geoffrey Keating  <geoffk@apple.com>
1266
1267         * config/darwin9.h: Add copyright notice.
1268         (LINK_COMMAND_SPEC): Add comment.
1269         (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
1270         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
1271         DARWIN_LIBSYSTEM_HAS_UNWIND.
1272
1273 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
1274
1275         PR libgomp/32468
1276         * omp-low.c (check_combined_parallel): New function.
1277         (lower_omp_parallel): Call it via walk_stmts, set
1278         OMP_PARALLEL_COMBINED if appropriate.
1279         (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
1280         isn't the only statement in WS_ENTRY_BB or OMP_RETURN
1281         the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
1282         don't consider it as combined parallel.
1283
1284 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
1285
1286         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
1287         (gcc_tooldir): Likewise.
1288         * configure: Regenerate.
1289         * Makefile.in (libsubdir_to_prefix): New variable, based on the
1290         old configure.ac gcc_tooldir setting.
1291         (prefix_to_exec_prefix): New variable.
1292         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
1293         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
1294
1295 2007-07-02  Daniel Berlin  <dberlin@dberlin.org>
1296
1297         Fix PR tree-optimization/32583
1298         Fix PR tree-optimization/32584
1299         * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
1300         (phi_translate_set): Use phi_translate directly now.
1301         (make_values_for_stmt): Don't value number RHS if we already know
1302         it is constant.
1303
1304 2007-07-02  Steve Ellcey  <sje@cup.hp.com>
1305             Jim Wilson <wilson@specifix.com>
1306
1307         PR target/31684
1308         * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
1309         copy_insn.
1310
1311 2007-07-02  Sandra Loosemore  <sandra@codesourcery.com>
1312             Richard Sandiford  <richard@codesourcery.com>
1313             Nigel Stephens  <nigel@mips.com>
1314
1315         * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
1316         (mips16e_output_save_restore): Declare.
1317         (mips16e_save_restore_pattern_p): Likewise.
1318         * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
1319         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
1320         for GENERATE_MIPS16E_SAVE_RESTORE.  Return 0x400 for TARGET_MIPS16
1321         && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
1322         (BITSET_P): New global macro, extracted from...
1323         (mips_for_each_saved_reg): ...here.
1324         (mips16e_save_restore_info): New struct.
1325         (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
1326         (mips16e_save_restore_regs): New variable.
1327         (mips_split_plus, mips16e_find_first_register): New functions.
1328         (mips16e_mask_registers): New function.
1329         (compute_frame_size): Expand the commentary before the function.
1330         Enforce the MIPS16e save and restore register range restrictions.
1331         Pad the general register save area at the low end.
1332         (mips16e_save_restore_reg, mips16e_build_save_restore)
1333         (mips16e_save_restore_pattern_p, mips16e_add_register_range)
1334         (mips16e_output_save_restore, mips16e_collect_propagate_value)
1335         (mips16e_collect_argument_save, mips16e_collect_argument_saves):
1336         New functions.
1337         (mips_expand_prologue, mips_expand_epilogue): Handle
1338         GENERATE_MIPS16E_SAVE_RESTORE.
1339         * config/mips/mips.md (*mips16e_save_restore): New pattern.
1340
1341 2007-07-02  Uros Bizjak  <ubizjak@gmail.com>
1342
1343         PR tree-optimization/31966
1344         PR tree-optimization/32533
1345         * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
1346         "basic_block" description as its third argument.  Update function
1347         calls to get destination bb from "edge" argument.  Save "cond" into
1348         aux field of the edge.  Update prototype for changed arguments.
1349         (if_convertible_loop_p): Clear aux field of incoming edges if bb
1350         contains phi node.
1351         (find_phi_replacement_condition): Operate on incoming edges, not
1352         on predecessor blocks.  If there is a condition saved in the
1353         incoming edge aux field, AND it with incoming bb predicate.
1354         Return source bb of the first edge.
1355         (clean_predicate_lists): Clean aux field of outgoing node edges.
1356         (tree_if_conversion): Do not initialize cond variable. Move
1357         variable declaration into the loop.
1358         (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
1359         initializations of new_stmt, arg0 and arg1 variables.
1360
1361 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
1362
1363         * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
1364         SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
1365
1366 2007-07-02  Richard Guenther  <rguenther@suse.de>
1367
1368         * tree-ssa.c (useless_type_conversion_p): Document
1369         future intent as defining the middle-end type system.
1370         Re-structure to call langhook last, group by type class,
1371         mark questionable parts.
1372
1373 2007-07-02  Richard Guenther  <rguenther@suse.de>
1374
1375         * tree-flow.h (types_compatible_p): Declare.
1376         * tree-ssa.c (types_compatible_p): New function.
1377         * ipa-type-escape.c (discover_unique_type): Use
1378         types_compatible_p instead of lang_hooks.types_compatible_p.
1379         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
1380         * tree-vn.c (expressions_equal_p): Likewise.
1381         * tree.c (fields_compatible_p): Likewise.
1382         * tree-ssa-dom.c (avail_expr_eq): Likewise.
1383         (cprop_operand): Use useless_type_conversion_p instead of
1384         lang_hooks.types_compatible_p.
1385         * tree-inline.c (setup_one_parameter): Likewise.
1386         (declare_return_variable): Likewise.
1387         * tree-nrv.c (tree_nrv): Likewise.
1388         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
1389         (maybe_fold_offset_to_component_ref): Likewise.
1390         (maybe_fold_offset_to_reference): Likewise.
1391         * tree-ssa-copy.c (may_propagate_copy): Likewise.
1392         (merge_alias_info): Likewise.
1393         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1394         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1395         * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
1396         * tree-tailcall.c (find_tail_calls): Likewise.
1397         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
1398         * gimplify.c (canonicalize_addr_expr): Likewise.
1399         (fold_indirect_ref_rhs): Likewise.
1400         (gimplify_addr_expr): Likewise.  Swap parameters to cpt_same_type.
1401         (cpt_same_type): Likewise.
1402         (check_pointer_types_r): Swap parameters to cpt_same_type
1403         where appropriate.
1404         * fold-const.c (fold_convert): Revert fix for PR15988.
1405         * tree-inline.c (setup_one_parameter): Instead fix it here by
1406         using fold_build1 instead of fold_convert and checking for
1407         error_mark_node.  Convert only if the conversion is necessary.
1408
1409 2007-07-02  Joseph Myers  <joseph@codesourcery.com>
1410
1411         * configure.ac: Check for .gnu_attribute on Power.
1412         * configure: Regenerate.
1413         * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
1414         attribute for floating-point ABI.
1415
1416 2007-07-02  Ira Rosen  <irar@il.ibm.com>
1417
1418         PR tree-optimization/32230
1419         PR tree-optimization/32477
1420         * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base 
1421         address is a constant.
1422
1423 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
1424
1425         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
1426         (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
1427         (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
1428         stanzas.  Use the first part of the triplet to set MIPS_ISA_DEFAULT.
1429         Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
1430         64-bit targets.  Add support for *-elfoabi*.
1431         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
1432         different settings if $(tm_defines) does not select the EABI.
1433         (MULTILIB_EXCLUSIONS): Define in those circumstances.
1434         * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
1435         (MIPS_ARCH_OPTION_SPEC): Likewise.
1436         (MIPS_ISA_LEVEL_SPEC): Likewise.
1437         (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
1438         * config/mips/elfoabi.h: New file.
1439
1440 2007-07-02  Richard Guenther  <rguenther@suse.de>
1441
1442         * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
1443         (useless_type_conversion_p): ... this.
1444         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
1445         (useless_type_conversion_p): ... this.
1446         * builtins.c (fold_builtin_memory_op): Rename
1447         tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
1448         * tree-cfg.c (verify_expr): Likewise.
1449         * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
1450         * tree-ssa-ccp.c (ccp_fold): Likewise.
1451         * tree-ssa-copy.c (may_propagate_copy): Likewise.
1452         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
1453         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1454         * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
1455         * tree-ssa-pre.c (eliminate): Likewise.
1456         * tree-ssa.c (delete_tree_ssa): Likewise.
1457         (tree_ssa_useless_type_conversion): Likewise.
1458         * tree.c (build2_stat): Likewise.
1459
1460 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
1461
1462         Fix PR tree-optimization/32571
1463         * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
1464         simplifying them.
1465
1466 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
1467
1468         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
1469         and other expected operations explicitly, change default to
1470         gcc_unreachable. 
1471
1472 2007-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
1473
1474         * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
1475         PARALLEL.
1476         * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
1477         (tls_load_dot_plus_eight): Move the label number into the unspec.
1478         * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
1479
1480 2007-07-01  Andreas Schwab  <schwab@suse.de>
1481
1482         * dwarf2out.c (initial_return_save): Define only if used.
1483
1484 2007-07-01  Kenneth Zadeck <zadeck@naturalbridge.com>
1485
1486         Unreverting Richard's Revert of:
1487
1488         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
1489
1490         * dce.c (deletable_insn_p_1): New function, split out from...
1491         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
1492         specially, not those inside PARALLELs.  Remove BODY argument
1493         and adjust recursive call accordingly.
1494         (prescan_insns_for_dce): Update call to delete_insn_p.
1495
1496 2007-07-01  Vladimir Yanovsky  <yanov@il.ibm.com>
1497             Revital Eres  <eres@il.ibm.com>
1498
1499         * ddg.c (create_ddg_all_sccs): Fix missed
1500         initialization of scc_nodes.
1501
1502 2007-07-01  Uros Bizjak  <ubizjak@gmail.com>
1503
1504         PR middle-end/32559
1505         * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
1506         X + ~X to 1 only for INTEGRAL_TYPE_P type.
1507
1508 2007-06-30  Joseph Myers  <joseph@codesourcery.com>
1509
1510         * configure.ac: Check for .gnu_attribute on MIPS.
1511         * configure, config.in: Regenerate.
1512         * config/mips/mips.c (mips_file_start): If supported, output
1513         attribute for floating-point ABI.
1514
1515 2007-06-30  Uros Bizjak  <ubizjak@gmail.com>
1516
1517         PR target/32433
1518         * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
1519         (ffs_cmove): New expander to expand using ctz pattern.
1520         (*ffs_cmove): Remove pattern.
1521         (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
1522         (ffsdi2): Expand using ctz pattern.
1523         (*ffs_rex64): Remove pattern.
1524
1525 2007-06-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1526
1527         PR rtl-optimization/32296
1528         * pa.md (return): Delete pattern.
1529         (return_internal): Remove "(const_int 1)" from pattern.
1530         (epilogue): Use return_internal pattern for trivial returns.
1531         * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
1532         * pa.c (hppa_can_use_return_insn_p): Delete function.  Include "df.h".
1533
1534 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
1535
1536         * tree-ssa-pre.c (is_exception_related): New function
1537         (can_value_number_operation): Use it.
1538
1539 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
1540         
1541         Fix PR tree-optimization/32540
1542         Fix PR tree-optimization/31651
1543
1544         * tree-ssa-sccvn.c: New file.
1545
1546         * tree-ssa-sccvn.h: Ditto.
1547         
1548         * tree-vn.c: Include tree-ssa-sccvn.h
1549         (val_expr_paid_d): Removed.
1550         (value_table): Ditto.
1551         (vn_compute): Ditto.
1552         (val_expr_pair_hash): Ditto.
1553         (val_expr_pair_expr_eq): Ditto.
1554         (copy_vuses_from_stmt): Ditto.
1555         (vn_delete): Ditto.
1556         (vn_init): Ditto.
1557         (shared_vuses_from_stmt): Ditto.
1558         (print_creation_to_file): Moved up.
1559         (sort_vuses): Ditto.
1560         (sort_vuses_heap): Ditto.
1561         (set_value_handle): Make non-static.
1562         (make_value_handle): Ditto.
1563         (vn_add): Rewritten to use sccvn lookups.
1564         (vn_add_with_vuses): Ditto.
1565         (vn_lookup): Ditto (and second argument removed).
1566         (vn_lookup_with_vuses): Ditto.
1567         (vn_lookup_or_add): Ditto (and second argument removed);
1568         (vn_lookup_or_add_with_vuses): Ditto.
1569         (vn_lookup_with_stmt): New.
1570         (vn_lookup_or_add_with_stmt): Ditto.
1571         (create_value_handle_for_expr): Ditto.
1572
1573         * tree-ssa-pre.c: Include tree-ssa-sccvn.h.
1574         (seen_during_translate): New function.
1575         (phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
1576         (phi_trans_add): Ditto.
1577         (constant_expr_p): FIELD_DECL is always constant.
1578         (phi_translate_1): Renamed from phi_translate, add seen bitmap.
1579         Use constant_expr_p.
1580         Avoid infinite recursion on mutually valued expressions.
1581         Change callers of vn_lookup_or_add.
1582         (phi_translate): New function.
1583         (compute_antic_safe): Allow phi nodes.
1584         (create_component_ref_by_pieces): Update for FIELD_DECL change.
1585         (find_or_generate_expression): Rewrite slightly.
1586         (create_expression_by_pieces): Updated for vn_lookup_or_add
1587         change.
1588         Update VN_INFO for new names.
1589         (insert_into_preds_of_block): Update for new names.
1590         (add_to_exp_gen): New function.
1591         (add_to_sets): Use vn_lookup_or_add_with_stmt.
1592         (find_existing_value_expr): Rewrite to changed vn_lookup.
1593         (create_value_expr_from): Ditto, and use add_to_exp_gen.
1594         (try_look_through_load): Removed.
1595         (try_combine_conversion): Ditto.
1596         (get_sccvn_value): New function.
1597         (make_values_for_phi): Ditto.
1598         (make_values_for_stmt): Ditto.
1599         (compute_avail): Rewritten for vn_lookup_or_add changes and to use
1600         SCCVN.
1601         (init_pre): Update for SCCVN changes.
1602         (fini_pre): Ditto.
1603         (execute_pre): Ditto.
1604
1605         * tree-flow.h (make_value_handle): Declare.
1606         (set_value_handle): Ditto.
1607         (sort_vuses_heap): Ditto.
1608         (vn_lookup_or_add_with_stmt): Ditto.
1609         (vn_lookup_with_stmt): Ditto.
1610         (vn_compute): Remove.
1611         (vn_init): Ditto.
1612         (vn_delete): Ditto.
1613         (vn_lookup): Update arguments.
1614
1615         * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
1616         (tree-vn.o): Ditto.
1617         (tree-ssa-sccvn.o): New.
1618         (OBJS-common): Add tree-ssa-sccvn.o
1619         
1620 2007-06-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1621
1622         PR c/4076
1623         * c-typeck.c (build_external_ref): Don't mark as used if called
1624         from itself.
1625         * calls.c (rtx_for_function_call): Likewise.
1626         
1627 2007-06-30  Richard Sandiford  <richard@codesourcery.com>
1628
1629         Revert:
1630
1631         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
1632
1633         * dce.c (deletable_insn_p_1): New function, split out from...
1634         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
1635         specially, not those inside PARALLELs.  Remove BODY argument
1636         and adjust recursive call accordingly.
1637         (prescan_insns_for_dce): Update call to delete_insn_p.
1638
1639 2007-06-30  Rask Ingemann Lambertsen <rask@sygehus.dk>
1640
1641         * combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
1642         (try_combine): Move potential calls to undo_all() so they happen
1643         before we commit to using the combined insns.
1644
1645 2006-06-30  Jan Hubicka  <jh@suse.cz>
1646
1647         * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
1648         code.
1649
1650 2006-06-30  Thomas Neumann  <tneumann@users.sourceforge.net>
1651
1652         * ipa.c (cgraph_postorder): Cast according to the coding conventions.
1653         (cgraph_remove_unreachable_nodes): Likewise.
1654         * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
1655         * ipa-inline.c (update_caller_keys): Cast according to the coding
1656         conventions.
1657         (cgraph_decide_recursive_inlining): Likewise.
1658         (cgraph_decide_inlining_of_small_function): Likewise.
1659         (try_inline): Likewise.
1660         (cgraph_decide_inlining_incrementally): Likewise.
1661         * ipa-pure-const.c (get_function_state): Likewise.
1662         (scan_function): Likewise.
1663         (analyze_function): Likewise.
1664         (static_execute): Likewise.
1665         * gcc/ipa-reference.c (scan_for_static_refs): Likewise.
1666         (merge_callee_local_info): Likewise.
1667         (analyze_function): Use type safe memory macros.
1668         (static_execute): Likewise. Cast according to the coding conventions.
1669         * ipa-type-escape.c (scan_for_regs): Cast according to the coding
1670         conventions.
1671         * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
1672         names.
1673         (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
1674         * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
1675         variable names.
1676
1677 2007-06-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1678
1679         PR middle-end/30024
1680         * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
1681         for complex modes (both int and real).
1682
1683 2007-06-29  Jan Hubicka  <jh@suse.cz>
1684
1685         * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
1686
1687 2007-06-29  Jan Hubicka  <jh@suse.cz>
1688
1689         PR middle-end/32372
1690         * cse.c (cse_insn): Avoid invalid sharing in between register note and
1691         the insn pattern.
1692
1693 2007-06-29  Anatoly Sokolov <aesok@post.ru>
1694
1695         PR target/32335
1696         * config/avr/avr.c: Include dataflow header file.
1697         (expand_prologue): Adjust for prologue insn change.
1698         * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
1699         inside a insn.
1700
1701 2007-06-29  Richard Guenther  <rguenther@suse.de>
1702
1703         PR middle-end/32493
1704         * gimplify.c (gimplify_call_expr): Ignore variable argument parts
1705         during type verification.
1706
1707 2007-06-29  Jan Hubicka  <jh@suse.cz>
1708
1709         * recog.c (validate_change_rtx_1): Unshare TO argument.
1710
1711 2007-06-29  Uros Bizjak  <ubizjak@gmail.com>
1712
1713         PR tree-optimization/24659
1714         * tree-vect-transform.c (vectorizable_call): Handle
1715         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
1716
1717         * config/i386/sse.md (vec_pack_sfix_v2df): New expander.
1718         * config/i386/i386.c (enum ix86_builtins)
1719         [IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
1720         (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
1721         description.
1722         (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
1723         const using def_builtin_const.
1724         (ix86_expand_binop_builtin): Remove bogus assert() that insn wants
1725         input operands in the same modes as the result.
1726         (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.
1727
1728 2007-06-29  Richard Sandiford  <rsandifo@nildram.co.uk>
1729
1730         * df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
1731         (df_set_dead_notes_for_mw): Likewise.
1732
1733 2007-06-29  Eric Botcazou  <ebotcazou@adacore.com>
1734
1735         * c-common.c (pointer_int_sum): Do the negation in sizetype.
1736
1737 2007-06-28  DJ Delorie  <dj@redhat.com>
1738
1739         * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.
1740
1741 2007-06-28  Geoffrey Keating  <geoffk@apple.com>
1742
1743         * doc/invoke.texi (C++ Dialect Options): Document
1744         fvisibility-ms-compat.
1745         * c.opt (fvisibility-ms-compat): New.
1746
1747 2007-06-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1748
1749         PR tree-opt/32417
1750         * tree-affine.c (aff_combination_add_elt): Handle
1751         pointer addition specially.
1752
1753 2007-06-28  Jakub Jelinek  <jakub@redhat.com>
1754
1755         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
1756         decl is non-external for AIX ABI.
1757
1758 2007-06-28  David Edelsohn  <edelsohn@gnu.org>
1759
1760         * config/rs6000/predicates.md (current_file_function_operand):
1761         Ensure the symbol is non-external for AIX ABI.
1762
1763 2007-06-28  Nick Clifton  <nickc@redhat.com>
1764
1765         * common.opt (fipa-matrix-reorg): Add Optimization attribute.
1766         (fdce, fdse, fpredictive-commoning): Likewise.
1767
1768 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1769
1770         PR other/31400
1771         * gcc.c (process_command): Recognize the new -static-libgfortran
1772         option.
1773
1774 2007-06-27  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1775
1776         PR target/32418
1777         * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix:
1778         Use a call clobbered hard reg instead of a pseudo reg.
1779
1780 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1781
1782         * config/sh/sh.md (load_gbr): Use correct operand constraint.
1783
1784 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1785
1786         PR target/32479
1787         * config/sh/sh.md (udivsi3): Don't wrap the sequence with
1788         REG_LIBCALL and REG_RETVAL notes.
1789         (divsi3, mulsi3): Likewise.
1790         (mulhisi3): Likewise.  Use emit_libcall_block.
1791         (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.
1792
1793 2007-06-27  Seongbae Park  <seongbae.park@gmail.com>
1794
1795         PR rtl-optimization/32481
1796         * combine.c (adjust_for_new_dest): Rescan the changed insn.
1797
1798 2007-06-27  Richard Sandiford  <richard@codesourcery.com>
1799
1800         * dce.c (deletable_insn_p_1): New function, split out from...
1801         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
1802         specially, not those inside PARALLELs.  Remove BODY argument
1803         and adjust recursive call accordingly.
1804         (prescan_insns_for_dce): Update call to delete_insn_p.
1805
1806 2007-06-27  Richard Guenther  <rguenther@suse.de>
1807
1808         PR middle-end/32492
1809         * tree.h (fold_convertible_p): Declare.
1810         * fold-const.c (fold_convertible_p): New function.
1811         * gimplify.c (gimplify_call_expr): Use fold_convertible_p
1812         instead of lang_hooks.types_compatible_p.
1813
1814 2007-06-26  Jan Hubicka  <jh@suse.cz>
1815
1816         * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
1817         * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
1818         early use validate_unshare_change.
1819         (reload_combine): Likewise.
1820         * recog.c (change_t): New field unshare.
1821         (validate_change_1): Rename from validate_change; add argument unshare.
1822         (validate_change): Turn into wrapper of validate_change_1; update
1823         prototype for bools.
1824         (validate_unshare_change): New.
1825         (confirm_change_group): Unshare changes if asked for; avoid unnecesary
1826         calls of df_insn_rescan.
1827         * recog.h (validate_change): Replace ints by bools.
1828         (validate_unshare_change): Declare.
1829
1830 2007-06-26  Kenneth Zadeck <zadeck@naturalbridge.com>
1831
1832         * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
1833         
1834 2007-06-26  Steve Ellcey  <sje@cup.hp.com>
1835
1836         * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
1837
1838 2007-06-25  Jan Hubicka  <jh@suse.cz>
1839
1840         * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
1841         uninlinable call.
1842         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
1843         cgraph_decide_inlining_incrementally): Move uninlinability checks to
1844         places other call site specific checks are performed.
1845
1846 2007-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1847
1848         PR tree-opt/32421
1849         * tree-vect-transform.c (vectorizable_operation): Convert
1850         POINTER_PLUS_EXPR over to PLUS_EXPR.
1851
1852 2007-06-25  Chao-ying Fu  <fu@mips.com>
1853
1854         * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
1855         UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
1856         Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
1857         Document GET_MODE_IBIT, and GET_MODE_FBIT.
1858
1859         * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
1860         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1861         (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
1862         SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
1863         SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
1864         ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
1865         ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
1866         SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
1867         ALL_FIXED_POINT_MODE_P): New define.
1868         (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1869         MODE_UACCUM.
1870         (GET_MODE_IBIT, GET_MODE_FBIT): New define.
1871
1872         * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
1873         MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
1874         MODE_VECTOR_UACCUM): New mode classes.
1875
1876         * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
1877         UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
1878         Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
1879         USA, UDA, and UTA.
1880
1881         * genmodes.c (struct mode_data): Add ibit and fbit fields.
1882         (blank_mode): Initialize ibit and fbit.
1883         (adj_ibit, adj_fbit): New to adjust ibit and fbit.
1884         (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1885         MODE_UACCUM.
1886         (new_adjust): Change required_class to required_class_from and
1887         required_class_to for testing within a range.
1888         (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
1889         MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
1890         MODE_VECTOR_UACCUM.
1891         (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
1892         (make_fixed_point_mode): New.
1893         (_ADD_ADJUST): Change C to C1 and C2.
1894         (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
1895         use a range for machine classes.
1896         (ADJUST_IBIT, ADJUST_FBIT): New.
1897         (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
1898         CONST_MODE_FBIT.
1899         (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
1900         MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1901         Emit adjustment for ibit and fbit.
1902         (emit_mode_ibit, emit_mode_fbit): New.
1903         (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
1904
1905 2007-06-25  Nathan Froyd  <froydnj@codesourcery.com>
1906
1907         * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
1908         as the source of the set.
1909
1910 2007-06-25  Roman Zippel <zippel@linux-m68k.org>
1911
1912         * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
1913         FP_REGNO_P): Use IN_RANGE.
1914         (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
1915         (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
1916         (DATA_REG_P): Use DATA_REGNO_P.
1917         (FP_REG_P): Use FP_REGNO_P.
1918         (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
1919         * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
1920         REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
1921
1922 2007-06-24  Jan Hubicka  <jh@suse.cz>
1923
1924         PR middle-end/30563
1925         * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
1926
1927 2007-06-24  Sebastian Pop  <sebpop@gmail.com>
1928
1929         PR middle-end/32461
1930         * fold-const.c (fold_binary): Strip nops of operand 0
1931         of BIT_NOT_EXPR before calling operand_equal_p.
1932         * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
1933         * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
1934
1935 2007-06-23  Mark Mitchell  <mark@codesourcery.com>
1936
1937         * doc/extend.texi: Document that dllimport and dllexport imply
1938         default visibility.
1939         * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
1940         imported or exported declaration, including type declarations.
1941         * c-common.c (handle_visibility_attribute): Check for conflicts
1942         with dllimport/dllexport.
1943         (c_determine_visibility): Handle dllimport/dllexport as an
1944         explicit visibility atttribute.
1945
1946 2007-06-23  Richard Guenther  <rguenther@suse.de>
1947
1948         PR tree-optimization/16876
1949         PR middle-end/29478
1950         * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
1951         for CALL_EXPRs.
1952         * tree-inline.c (initialize_inlined_parameters): Do not call
1953         lang_hooks.tree_inlining.convert_parm_for_inlining.
1954         * cgraphbuild.c (initialize_inline_failed): Set inline failed
1955         reason for mismatched types.
1956         * gimplify.c (gimplify_call_expr): Verify the call expression
1957         arguments match the called function type signature.  Otherwise
1958         mark the call expression to be not considered for inlining
1959         using CALL_CANNOT_INLINE_P flag.
1960         * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
1961         edges call expression.
1962         (cgraph_decide_inlining_of_small_function): Likewise.
1963         (cgraph_decide_inlining): Likewise.
1964         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
1965         Remove define.
1966         * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
1967         * c-typeck.c (c_convert_parm_for_inlining): Remove.
1968         * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
1969         Remove declaration.
1970         (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
1971         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
1972         Remove.
1973         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
1974         convert_parm_for_inlining member.
1975
1976 2007-06-23  Richard Earnshaw  <rearnsha@arm.com>
1977
1978         PR target/31152
1979         * arm.md (negscc): Match the correct operand for optimized LT0 test.
1980         Remove optimization for GT.
1981
1982 2007-06-23  Kenneth Zadeck <zadeck@naturalbridge.com>
1983
1984         PR middle-end/32437
1985         * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
1986         is a PARALLEL.
1987         (prescan_insns_for_dce): Add extra parameter.
1988         
1989 2007-06-23  Jan Hubicka  <jh@suse.cz>
1990
1991         PR middle-end/31541
1992         * gimplify.c (mark_addressable): New function.
1993         (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
1994
1995 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
1996
1997         PR middle-end/32374
1998         * expr.c (store_constructor): Do not clobber non-zeroed memory. 
1999
2000 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
2001
2002         PR target/32413
2003         * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
2004         moves between MMX/SSE registers to at least 8 units to prevent
2005         ICE caused by non-tieable SI/HI/QImodes in SSE registers. 
2006
2007 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
2008
2009         * config/i386/i386.c (override_options): Correct x86_sahf
2010         setting condition.
2011
2012 2007-06-21  David Daney  <ddaney@avtrex.com>
2013
2014         PR target/32406
2015         * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
2016         to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
2017         (exception_receiver): Renamed to ...
2018         (nonlocal_goto_receiver): ... this.
2019
2020 2007-06-22  Roman Zippel <zippel@linux-m68k.org>
2021
2022         * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
2023         (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
2024         partial register accesses.
2025
2026 2007-06-21  Adam Nemet  <anemet@caviumnetworks.com>
2027
2028         * fold-const.c (debug_fold_checksum): Move it under
2029         ENABLE_FOLD_CHECKING.
2030
2031 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
2032
2033         PR middle-end/20623
2034         * tree.h (debug_fold_checksum): Declared.
2035         * fold-const.c (build_fold_addr_expr_with_type_1): New.
2036         (build_fold_addr_expr_with_type, build_fold_addr_expr): Use 
2037         build_fold_addr_expr_with_type_1.
2038         (fold_addr_expr, debug_fold_checksum): New.
2039         (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
2040         (fold_unary, fold_comparison, split_address_to_core_and_offset):
2041         Use fold_addr_expr.
2042         
2043 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
2044
2045         PR tree-optimization/19590
2046         * tree-vrp.c (adjust_range_with_scev): Set the range when the result
2047         of scev is a constant.
2048         * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
2049
2050 2007-06-21  Kenneth Zadeck <zadeck@naturalbridge.com>
2051
2052         * df-problems.c (df_note_bb_compute): Made computation of live
2053         info consistent with df_lr.
2054
2055 2007-06-21  Richard Guenther  <rguenther@suse.de>
2056
2057         PR tree-optimization/32453
2058         * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
2059         for pointer anti-range.
2060
2061 2007-06-21  H.J. Lu  <hongjiu.lu@intel.com>
2062
2063         * config/i386/i386.c (processor_target_table): Increase maximum
2064         skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
2065         default 64bit.
2066
2067         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
2068         byte alignment if > 8 byte alignment is preferred.
2069         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
2070
2071 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
2072
2073         PR tree-optimization/31866
2074         * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
2075         if ASM_EXPR's input is not a SSA_NAME.
2076
2077         PR middle-end/32362
2078         * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
2079         but decl is a global var, instead return decl.
2080         * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
2081         even for is_global_var decls, if they are private in some outer
2082         context.
2083
2084 2007-06-21  Richard Guenther  <rguenther@suse.de>
2085
2086         PR tree-optimization/32451
2087         * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
2088
2089 2007-06-21  Christian Bruel  <christian.bruel@st.com>
2090
2091         * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
2092         * config/sh/sh.c (sh_loads_bankedreg_p): New function.
2093         (push_regs): Changed saving order or banked registers.
2094         (sh_expand_epilogue): Likewise.
2095         * config/sh/sh.h (BANKED_REGISTER_P): New macro.
2096         (FIRST_BANKED_REG): Likewise.
2097         (LAST_BANKED_REG): Likewise.
2098         * config/sh/sh.md (banked) New attribute.
2099         (in_delay_slot): Check banked attribute.
2100         
2101 2007-06-20  Sebastian Pop  <sebpop@gmail.com>
2102
2103         PR tree-optimization/32075
2104         * tree-data-ref.c (subscript_dependence_tester_1, 
2105         analyze_miv_subscript, analyze_overlapping_iterations,
2106         add_distance_for_zero_overlaps, build_classic_dist_vector,
2107         subscript_dependence_tester_1, analyze_overlapping_iterations,
2108         subscript_dependence_tester, access_functions_are_affine_or_constant_p,
2109         compute_affine_dependence, compute_all_dependences): Pass loop_nest 
2110         to evolution_function_is_affine_multivariate_p.
2111
2112 2007-06-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
2113
2114         * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
2115
2116 2007-06-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2117
2118         PR target/32335
2119         * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
2120         for TARGET_A16.
2121         * config/m32c/prologue.md (epilogue_exitd_16): New.
2122         (epilogue_reit_16): New.
2123         (epilogue_exitd): Rename to epilogue_exitd_24.
2124         (epilogue_reit): Rename to epilogue_reit_24.
2125
2126 2007-06-20  Seongbae Park  <seongbae.park@gmail.com>
2127             Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2128
2129         * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
2130         New counters.
2131         * haifa-sched.c (queue_to_ready): Don't requeue next insn
2132         if dbg_cnt (sched_insn) reaches the limit.
2133         (choose_ready): New parameter INSN_PTR and new return value.
2134         (schedule_block): Handle dbg_cnt (sched_insn). Handle
2135         the new return value from choose_ready.
2136         * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
2137         (rest_of_handle_global_alloc): New global_alloc_at_func.
2138
2139 2007-06-20  Adam Nemet  <anemet@caviumnetworks.com>
2140
2141         PR tree-optimization/25737
2142         * tree.h (struct tree_struct_field_tag): Add new field alias_set.
2143         (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
2144         * tree-flow.h (struct fieldoff): Add new field alias_set.
2145         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
2146         argument addressable_type.  Set alias_set of fieldoff.
2147         * tree-ssa-alias.c (create_sft): Add new argument alias_set.
2148         (create_overlap_variables_for): Pass alias_set from fieldoff to
2149         create_sft.
2150         * alias.c (get_alias_set): Use alias_set from SFT if set.
2151
2152 2007-06-20  Hui-May Chang  <hm.chang@apple.com>
2153
2154         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
2155         of a variable as an unsigned HOST_WIDE_INT integer.
2156
2157 2007-06-20  Zdenek Dvorak  <dvorakz@suse.cz>
2158
2159         PR rtl-optimization/32405
2160         * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
2161
2162 2007-06-20  Jakub Jelinek  <jakub@redhat.com>
2163
2164         * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
2165
2166         PR middle-end/31959
2167         * builtins.c: Include diagnostic.h.
2168         (expand_builtin_expect): Make gcc_assert more permissive.
2169         * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
2170
2171         PR inline-asm/32109
2172         * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
2173         and !allows_mem.
2174
2175         PR middle-end/32285
2176         * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
2177         if ACCUMULATE_OUTGOING_ARGS.
2178
2179 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2180
2181         * config/m68hc11/m68hc11.c: Include dataflow header file.
2182         (m68hc11_reorg): Port to dataflow.
2183
2184 2007-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
2185
2186         * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
2187         (struct df_problem.free_blocks_on_set_blocks): New field.
2188         (struct dataflow.optional_p): New field.
2189         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
2190         (df_live_set_all_dirty): New function.
2191         * df-scan.c (df_scan_alloc): Initialize optional_p.
2192         (problem_SCAN): Initialize free_blocks_on_set_blocks.
2193         * df-core.c (df_set_blocks): Removed use of
2194         DF_FIRST_OPTIONAL_PROBLEM.  Now uses
2195         df_problem.free_blocks_on_set_blocks to determine which blocks are
2196         recycled.
2197         (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
2198         (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM.  Now
2199         uses dataflow.optional_p to determine if problem should be
2200         deleted.
2201         (rest_of_handle_df_initialize): Only start live problem if 
2202         -02 or above.
2203         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
2204         * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
2205         df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
2206         (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
2207         problem_NOTE):  Initialize free_blocks_on_set_blocks.
2208         (df_lr_bb_local_compute): Recompute luids if df_live problem is
2209         not active.
2210         (df_live_set_all_dirty, df_note_alloc): New function.
2211         * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
2212         df_get_live_*.
2213         * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
2214         * postreload.c (reload_combine): Ditto.
2215         * cse.c (cse_extended_basic_block): Ditto.
2216         * regmove.c (mark_flags_life_zones): Ditto.
2217         * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
2218         erase_matching_seqs): Ditto.
2219         * bt-load.c (compute_defs_uses_and_gen): Ditto.
2220         * integrate (allocate_initial_values): Ditto.
2221         * combine.c (reg_dead_at_p): Ditto.
2222         * resource.c (mark_target_live_regs): Ditto.
2223         * sched-rgn.c (check_live_1, update_live_1): Ditto.
2224         * config/sh/sh.c (find_r0_life_regions): Ditto.
2225         * global.c (rest_of_handle_global_alloc): Only add back df_live
2226         for -O > 1.
2227         * local-alloc.c (rest_of_handle_local_alloc): Only remove
2228         df_live for -O > 1.
2229         * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
2230         df_get_live_*.
2231         (if_convert): Make sure df_live is there at -O == 1.
2232         (pass_if_after_combine): Cleanup flags.
2233         * init-regs.c (initialize_uninitialized_regs): Make sure df_live
2234         is there at -O == 1.
2235         
2236 2007-06-19  Seongbae Park  <seongbae.park@gmail.com>
2237
2238         * config/arm/arm.c (arm_get_frame_offsets): Set
2239         offsets->locals_base to avoid negative stack size.
2240         (thumb1_expand_prologue): Assert on negative stack size.
2241
2242 2007-04-19  Sebastian Pop  <sebpop@gmail.com>
2243
2244         PR tree-optimization/32367
2245         * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side 
2246         of the chrec has no evolution in that loop.
2247         * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
2248
2249 2007-06-19  Bob Wilson  <bob.wilson@acm.org>
2250
2251         * config/xtensa/xtensa.c: Include "df.h".
2252         (xtensa_builtin_saveregs): Use adjust_address instead of
2253         change_address.
2254         (xtensa_va_start): Invoke make_tree with sizetype for
2255         expand_builtin_saveregs and then convert the result to a pointer.
2256         Use POINTER_PLUS_EXPR.  Use size_int instead of build_int_cst.
2257         (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
2258         Subtract argument size from index value as integers and then use
2259         POINTER_PLUS_EXPR to add the result to the array address.
2260         
2261 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2262
2263         PR target/32335
2264         * config/m32c/m32c.c: Include dataflow header file.
2265         (m32c_emit_prologue): Adjust for prologue insn change.
2266         * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
2267         once inside a PARALLEL. Assume frame size passed in operand 0
2268         includes space to save the fb register.
2269         (prologue_enter_24): Likewise.
2270         (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
2271
2272 2007-06-19  David Daney  <ddaney@avtrex.com
2273
2274         PR target/32313
2275         * config/mips/mips.md (cprestore): Mark $gp as used.
2276
2277 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2278
2279         PR target/32369
2280         * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
2281         (frv_ifcvt_modify_insn): Likewise.
2282
2283 2007-06-19  Richard Guenther  <rguenther@suse.de>
2284
2285         * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
2286         only handle positive offsets that fit in a HOST_WIDE_INT.
2287
2288 2007-06-19  Uros Bizjak  <ubizjak@gmail.com>
2289
2290         * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
2291         result of rsqrt insn for zero input argument to avoid NaN.
2292
2293 2007-06-19  Richard Guenther  <rguenther@suse.de>
2294
2295         PR middle-end/31950
2296         * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
2297
2298 2007-06-19  Jakub Jelinek  <jakub@redhat.com>
2299
2300         PR tree-optimization/32353
2301         * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
2302
2303 2007-06-19  Nick Clifton  <nickc@redhat.com>
2304
2305         * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
2306
2307 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
2308
2309         PR target/32389
2310         * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
2311         * config/i386/i386.c (assign_386_stack_local): Assert that
2312         SLOT_VIRTUAL is valid only before virtual regs are instantiated.
2313         (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
2314         Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
2315         * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
2316
2317 2007-06-18  Steve Ellcey  <sje@cup.hp.com>
2318
2319         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
2320
2321 2007-06-18  Seongbae Park  <seongbae.park@gmail.com>
2322
2323         PR rtl-optimization/32321
2324         * gcse.c (replace_store_insn): Update the note before
2325         calling emit_insn_after.
2326
2327 2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>
2328
2329         PR middle-end/32355
2330         * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
2331         cse_main.
2332         * df-problems.c (df_note_bb_compute): Fix dumping info.
2333         
2334 2007-06-18  Kazu Hirata  <kazu@codesourcery.com>
2335
2336         * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
2337         insn with emit_jump_insn.
2338
2339 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
2340
2341         PR tree-optimization/32383
2342         * targhooks.c (default_builtin_reciprocal): Add new bool argument.
2343         * targhooks.h (default_builtin_reciprocal): Update prototype.
2344         * target.h (struct gcc_target): Update builtin_reciprocal.
2345         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
2346         * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
2347         where arg1 is not SSA_NAME.  Pass true to targetm.builtin_reciprocal
2348         when fndecl is in BUILT_IN_MD class.
2349         (execute_convert_to_rsqrt): Ditto.
2350
2351         * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
2352         argument.  Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
2353         Convert BUILT_IN_SQRTF code only  when md_fn is false.
2354
2355 2007-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2356
2357         * bt-load.c (move_btr_def): Fix the order of arguments
2358         to validate_replace_rtx.
2359
2360 2007-06-18  Nathan Sidwell  <nathan@codesourcery.com>
2361
2362         * config/m68k/m68k-devices.def: Add 54450..54455.
2363
2364 2007-06-17  Uros Bizjak  <ubizjak@gmail.com>
2365
2366         PR rtl-optimization/32366
2367         * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
2368         FLOAT_EXTEND]: Prevent non-scalar modes from entering
2369         significand_size.
2370
2371 2007-06-17  Kenneth Zadeck <zadeck@naturalbridge.com>
2372
2373         PR middle-end/32349
2374         * modulo-sched (generate_reg_moves): Added rescan parameter and if
2375         this is true, rescan insn being modified.
2376         (sms_schedule): Added rescan parameter.
2377         (rest_of_handle_sms): Moved freeing of dominance info to before
2378         getting out of cfg_layout.
2379         
2380 2007-06-17  Nathan Sidwell  <nathan@codesourcery.com>
2381
2382         * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
2383         * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
2384         appropriate.
2385
2386         * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
2387         FL_CF_EMAC from the entry for isac.
2388
2389         * config/m68k/predicates.md (const_call_operand): Adjust comment.
2390         (const_sibcall_operand): New.
2391         (sibcall_operand): Use it.
2392         * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
2393         (m68k_isas): ISAC does not imply FPU or EMAC.
2394         (override_options): Add ISA_C logic for symbolic jump & call.
2395
2396 2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
2397
2398         * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
2399         return mode from the builtin itself.
2400         (sparc_fold_builtin): Fix cast of zero constant.
2401
2402 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
2403
2404         * targhooks.c (default_builtin_reciprocal): New default target hook.
2405         * targhooks.h (default_builtin_reciprocal): Add prototype.
2406         * hooks.c (hook_tree_tree_bool_null): Remove hook.
2407         * hooks.h (hook_tree_tree_bool_null): Remove prototype.
2408         * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
2409         default_builtin_reciprocal.
2410
2411 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
2412
2413         PR middle-end/31723
2414         * hooks.c (hook_tree_tree_bool_null): New hook.
2415         * hooks.h (hook_tree_tree_bool_null): Add prototype.
2416         * tree-pass.h (pass_convert_to_rsqrt): Declare.
2417         * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
2418         * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
2419         and convert it to reciprocal a*rfunc(b).
2420         (execute_convert_to_rsqrt): New function.
2421         (gate_convert_to_rsqrt): New function.
2422         (pass_convert_to_rsqrt): New pass definition.
2423         * target.h (struct gcc_target): Add builtin_reciprocal.
2424         * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
2425         (TARGET_INITIALIZER): Initialize builtin_reciprocal with
2426         TARGET_BUILTIN_RECIPROCAL.
2427         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
2428
2429         * config/i386/i386.h (TARGET_RECIP): New define.
2430         * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
2431         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
2432         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
2433         and not optimizing for size.
2434         (*rcpsf2_sse): New insn pattern.
2435         (*rsqrtsf2_sse): Ditto.
2436         (rsqrtsf2): New expander.  Expand by calling ix86_emit_swsqrtsf
2437         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
2438         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
2439         and not optimizing for size.
2440         (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
2441         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
2442         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
2443         and not optimizing for size.
2444         * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
2445         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
2446         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
2447         and not optimizing for size.
2448         (*sse_rsqrtv4sf2): Do not export.
2449         (sqrtv4sf2): Ditto.
2450         (sse_rsqrtv4sf2): New expander.  Expand by calling ix86_emit_swsqrtsf
2451         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
2452         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
2453         and not optimizing for size.
2454         (sqrtv4sf2): Ditto.
2455         * config/i386/i386.opt (mrecip): New option.
2456         * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
2457         (ix86_emit_swsqrtsf): Ditto.
2458         * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
2459         (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
2460         builtin definition.
2461         (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
2462         ix86_expand_unop1_builtin.
2463         (ix86_emit_swdivsf): New function.
2464         (ix86_emit_swsqrtsf): Ditto.
2465         (ix86_builtin_reciprocal): New function.
2466         (TARGET_BUILTIN_RECIPROCAL): Use it.
2467         (ix86_vectorize_builtin_conversion): Rename from
2468         ix86_builtin_conversion.
2469         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
2470         * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
2471         "i386 and x86_64 Options" section.
2472         (Intel 386 and AMD x86_64 Options): Document -mrecip.
2473
2474 2007-06-15  Andrew Pinski <andrew_pinski@playstation.sony.com>
2475             Zdenek Dvorak <dvorakz@suse.cz>
2476             Richard Guenther  <rguenther@suse.de>
2477             Kaz Kojima  <kkojima@gcc.gnu.org>
2478
2479         * tree-vrp.c (compare_values_warnv): Convert val2 to
2480         the type of val1.
2481         (extract_range_from_assert): Create
2482         POINTER_PLUS_EXPR for pointer types.
2483         (extract_range_from_binary_expr): Handle
2484         only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
2485         for pointer types.
2486         * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
2487         * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
2488         POINTER_PLUS_EXPR as PLUS_EXPR.
2489         (number_of_iterations_lt_to_ne):
2490         For pointer types, use sizetype when
2491         creating MINUS_EXPR/PLUS_EXPRs.
2492         (assert_loop_rolls_lt): For pointer types, use sizetype when
2493         creating MINUS_EXPR/PLUS_EXPRs.
2494         (number_of_iterations_le): Likewise.
2495         (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
2496         (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
2497         like PLUS_EXPR and MINUS_EXPR.
2498         * tree-pretty-print.c (dump_generic_node): Handle
2499         POINTER_PLUS_EXPR.
2500         (op_prio): Likewise.
2501         (op_symbol_1): Likewise.
2502         * optabs.c (optab_for_tree_code): Likewise.
2503         * tree-ssa-loop-manip.c (create_iv): Handle pointer base
2504         specially.
2505         * tree-tailcall.c (process_assignment): Mention
2506         POINTER_PLUS_EXPR in a TODO comment.
2507         * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or 
2508         MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
2509         not used with a pointer and an integer type.
2510         * tree-scalar-evolution.c (add_to_evolution_1): Convert the
2511         increment using chrec_convert_rhs instead of chrec_convert.
2512         (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
2513         PLUS_EXPR except for the right hand side's type will be
2514         sizetype.
2515         (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
2516         (fold_used_pointer_cast): Kill.
2517         (pointer_offset_p): Kill.
2518         (fold_used_pointer): Kill.
2519         (pointer_used_p): Kill.
2520         (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
2521         call fold_used_pointer.
2522         (instantiate_parameters_1): Convert the increment
2523         using chrec_convert_rhs instead of chrec_convert.
2524         Handle POINTER_PLUS_EXPR as PLUS_EXPR.
2525         * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
2526         instead of PLUS_EXPR.
2527         (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
2528         PLUS_EXPR for pointers.
2529         (std_gimplify_va_arg_expr): Likewise.
2530         (fold_builtin_memory_op): Likewise.
2531         (fold_builtin_strstr): Likewise.
2532         (fold_builtin_strchr): Likewise.
2533         (fold_builtin_strrchr): Likewise.
2534         (fold_builtin_strpbrk): Likewise.
2535         (expand_builtin_memory_chk): Likewise.
2536         (fold_builtin_memory_chk): Likewise.
2537         (std_expand_builtin_va_start): Use
2538         sizetype for the call to make_tree and then convert
2539         to the pointer type.
2540         (fold_builtin_memchr): Use POINTER_PLUS_EXPR
2541         instead of PLUS_EXPR for adding to a pointer.
2542         (std_gimplify_va_arg_expr): Use fold_build2 for
2543         the creating of POINTER_PLUS_EXPR.  For the BIT_AND_EXPR, cast
2544         the operands to sizetype first and then cast the BIT_AND_EXPR
2545         back to the pointer type.
2546         * fold-const.c (build_range_check): Handle pointer types
2547         specially.
2548         (extract_array_ref): Look for POINTER_PLUS_EXPR instead
2549         of PLUS_EXPR's. Make sure the offset is converted to
2550         sizetype.
2551         (try_move_mult_to_index): Strip the NOPs from the offset.
2552         Remove code argument and replace all uses with PLUS_EXPR.
2553         (fold_to_nonsharp_ineq_using_bound): Handle pointer types
2554         specially. Don't use a pointer type for MINUS_EXPR.
2555         (fold_unary): Handle for (T1)(X op Y),
2556         only p+ as that is the only as that can be handled for
2557         binary operators now.
2558         (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
2559         POINTER_PLUS_EXPR.
2560         <case PLUS_EXPR>: Add folding of PTR+INT into
2561         PTR p+ INT.
2562         Don't call try_move_mult_to_index.
2563         <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
2564         into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
2565         (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
2566         Don't call try_move_mult_to_index.
2567         (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
2568         (tree_expr_nonzero_p): Likewise.
2569         (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
2570         of PLUS_EXPR for the complex expression folding.
2571         * tree-chrec.c (chrec_fold_plus_poly_poly): If the
2572         first chrec is a pointer type, then the second should
2573         be sizetype and not the first's type.
2574         For POINTER_PLUS_EXPR, use a different right hand side type.
2575         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
2576         (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
2577         different right hand side type.
2578         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
2579         (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
2580         instead of PLUS_EXPR.
2581         When either operand is zero, convert the other operand.
2582         (chrec_apply): Use chrec_convert_rhs
2583         on the argument x instead of chrec_convert.
2584         (reset_evolution_in_loop): For pointer types, the new_evol
2585         should be sizetype.
2586         (convert_affine_scev): For POINTER_PLUS_EXPR, use a
2587         different right hand side type.
2588         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
2589         (chrec_convert_rhs): New function.
2590         (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
2591         different right hand side type.
2592         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
2593         * tree-chrec.h (chrec_convert_rhs): New prototype.
2594         (build_polynomial_chrec): For pointer types, the right hand
2595         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
2596         POINTER_PLUS_EXPR instead of PLUS_EXPR's.
2597         Remove subtraction case as it is always addition now.
2598         Make sure the offset is converted to sizetype.
2599         (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
2600         Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
2601         * tree-ssa-loop-ivopts.c (determine_base_object): Abort for 
2602         PLUS_EXPR in pointer type.
2603         Handle POINTER_PLUS_EXPR.
2604         (tree_to_aff_combination): Likewise.
2605         (force_expr_to_var_cost): Likewise.
2606         (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
2607         instead of PLUS_EXPR for pointers.
2608         * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
2609         instead of PLUS_EXPR of pointer types.
2610         * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
2611         as PLUS_EXPR.
2612         (check_va_list_escapes): Likewise.
2613         (check_all_va_list_escapes): Likewise.
2614         * dwarf2out.c (loc_descriptor_from_tree_1):
2615         Handle POINT_PLUS_EXPR as a PLUS_EXPR.
2616         * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
2617         (string_constant): Likewise.
2618         * tree-ssa-address.c (tree_mem_ref_addr): When adding
2619         the offset to the base, use POINTER_PLUS_EXPR.
2620         (add_to_parts): Convert the index to sizetype.
2621         (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
2622         * matrix-reorg.c (collect_data_for_malloc_call): Stmt
2623         will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
2624         Offset only holds something for PLUS_EXPR.
2625         (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
2626         a PLUS_EXPR.
2627         (analyze_transpose): POINTER_PLUS_EXPR will only show up now
2628         and not PLUS_EXPR.
2629         (analyze_accesses_for_modify_stmt): Likewise.
2630         Remove comment about the type being integral type as it is
2631         wrong now.
2632         (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
2633         PLUS_EXPR.
2634         (transform_access_sites): POINTER_PLUS_EXPR will only show up now
2635         and not PLUS_EXPR.
2636         Correct the type which the artimentic is done in (is now
2637         sizetype).
2638         Reindent one loop.
2639         * tree-data-ref.c (split_constant_offset): Handle
2640         POINTER_PLUS_EXPR
2641         * tree-affine.c (tree_to_aff_combination): Likewise.
2642         * c-typeck.c (build_unary_op): For pointers create the increment
2643         as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
2644         for pointers.
2645         * gimplify.c (gimplify_self_mod_expr): Create a
2646         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
2647         (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
2648         * tree.def (POINTER_PLUS_EXPR): New tree code.
2649         * tree-predcom.c (ref_at_iteration): If we have a pointer
2650         type do the multiplication in sizetype.
2651         * tree-mudflap.c (mf_xform_derefs_1): Create a
2652         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
2653         * tree-ssa-forwprop.c 
2654         (forward_propagate_addr_into_variable_array_index):
2655         Don't expect there to be a cast for the index as that
2656         does not exist anymore.
2657         (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
2658         instead of PLUS_EXPR.
2659         Don't check for the first operand of the POINTER_PLUS_EXPR
2660         was the index as it cannot be.
2661         Call forward_propagate_addr_into_variable_array_index with
2662         the SSA_NAME instead of the statement.
2663         * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
2664         (compare_constant): Likewise.
2665         (copy_constant): Likewise.
2666         (compute_reloc_for_constant): Likewise.
2667         (output_addressed_constants): Likewise.
2668         (initializer_constant_valid_p): Likewise.
2669         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
2670         Convert the MIN/MAX of the inner type to the outer
2671         type before comparing them.
2672         * tree-ssa-loop-prefetch.c (idx_analyze_ref):  Handle
2673         POINTER_PLUS_EXPR instead of PLUS_EXPR.
2674         (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
2675         of PLUS_EXPR for pointers.
2676         * tree-inline.c (estimate_num_insns_1): Handle
2677         POINTER_PLUS_EXPR.
2678         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): 
2679         Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
2680         (bump_vector_ptr): Create a POINTER_PLUS_EXPR
2681         instead of PLUS_EXPR for the pointer increment statement.
2682         (vect_update_ivs_after_vectorizer): For pointer types, create
2683         POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
2684         MULT_EXPR in sizetype.
2685         (vect_gen_niters_for_prolog_loop): Add a cast when creating
2686         byte_misalign.
2687         * tree-object-size.c (plus_expr_object_size): Handle
2688         POINTER_PLUS_EXPR instead of PLUS_EXPR.  Removing all the extra
2689         code which is trying to figure out which side is a pointer and 
2690         is the index.
2691         (check_for_plus_in_loops_1): Likewise.
2692         (check_for_plus_in_loops): Likewise.
2693         * c-common.c (pointer_int_sum): Create a
2694         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
2695         * tree-ssa-structalias.c (handle_ptr_arith): Handle
2696         only POINTER_PLUS_EXPR.  Removing all the extra
2697         code which is trying to figure out which side is a pointer and 
2698         is the index.
2699         * tree-cfg.c (verify_expr): Add extra checking for pointers and
2700         PLUS_EXPR and MINUS_EXPR.
2701         Also add checking to make sure the operands of POINTER_PLUS_EXPR
2702         are correct.
2703         * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
2704         with make_tree, instead of a pointer type.
2705         * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
2706         for pointers instead of PLUS_EXPR.
2707         (s390_gimplify_va_arg): Likewise.
2708         * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
2709         instead of PLUS_EXPR when doing addition on pointer
2710         types.  Use sizetype for the second operand.
2711         (spu_gimplify_va_arg_expr): Likewise.
2712         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use 
2713         POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
2714         a pointer.  Don't create a BIT_AND_EXPR for pointer types.
2715         * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
2716         for the pointer addition and also use size_int/sizetype
2717         for the offset.
2718         (ix86_gimplify_va_arg): Likewise.
2719         Perform BIT_AND_EXPR on sizetype arguments.
2720         * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
2721         and convert its result to a pointer type.  Use POINTER_PLUS_EXPR
2722         for the pointer additions and also use size_int for the offsets.
2723         (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
2724         additions and also use size_int for the offsets.  Perform
2725         BIT_AND_EXPR on sizetype arguments.
2726         * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
2727         POINTER_PLUS_EXPR for pointers and create the
2728         BIT_AND_EXPR in sizetype.
2729         * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
2730         instead of PLUS_EXPR for pointer addition.
2731         (rs6000_va_start): Likewise.
2732         Also use sizetype for the offset.
2733         * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
2734         as PLUS_EXPR/MINUS_EXPR.
2735         (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
2736         PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
2737         Don't use BIT_AND_EXPR on a pointer type, convert the
2738         expression to sizetype first.
2739         * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
2740         for pointers.
2741         (mips_gimplify_va_arg_expr): Likewise.
2742         Don't create BIT_AND_EXPR in a pointer type.
2743
2744 2007-06-15  Eric Christopher  <echristo@apple.com>
2745
2746         * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
2747         (x86_64-*-darwin*): Ditto.
2748         * config/i386/darwin.h (CRTEND_SPEC): New. Add support
2749         for above.
2750
2751 2007-06-15  Matthew Wilcox <matthew@wil.cx>
2752
2753         * doc/extend.texi: Document behavior of __attribute__((aligned))
2754         on typedefs.
2755
2756 2007-06-15  Mark Mitchell  <mark@codesourcery.com>
2757
2758         * rtlanal.c (note_stores): Improve documentation.
2759
2760 2007-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2761
2762         * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
2763         LOCAL_LABEL_PREFIX): Delete.
2764         * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
2765         (bfin_internal_label): Delete.
2766
2767 2007-06-15  Uros Bizjak  <ubizjak@gmail.com>
2768
2769         * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
2770         define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
2771         otherwise define to LIBGCC2_TF_CEXT.
2772         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
2773         (LIBGCC_TF_CEXT): Ditto.
2774         (TF_SIZE): Ditto.
2775
2776 2007-06-14  Seongbae Park  <seongbae.park@gmail.com>
2777
2778         PR rtl-optimization/32339
2779         * df-scan.c (df_uses_record): Don't modify flags but just add to
2780         it for df_ref_record.
2781
2782 2007-06-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2783
2784         * tree-mudflap.c: Fix whitespace issues.
2785
2786 2007-06-15  Kazu Hirata  <kazu@codesourcery.com>
2787
2788         * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
2789
2790 2007-06-14  Eric Christopher  <echristo@apple.com>
2791
2792         * config/i386/sse.md (movdi_to_sse): Rewrite body.
2793         (movv4sf): Use gcc_unreachable instead of abort.
2794
2795 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
2796
2797         PR target/32268
2798         * config/i386/sfp-machine.h (CMPtype): New define.
2799         (mach stubs): Use CMPtype instead of int as a return type.
2800
2801 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
2802
2803         * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
2804         config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
2805         config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
2806         config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
2807         config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
2808         config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
2809         config/soft-fp/soft-fp.h: Update from glibc CVS.
2810
2811 2007-06-14  Bernd Schmidt  <bernd.schmidt@analog.com>
2812
2813         * config/bfin/uclinux.h (MFWRAP_SPEC): New.
2814
2815 2007-06-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2816
2817         PR target/32341
2818         * config/v850/v850.c: Include dataflow header file.
2819         (substitute_ep_register): Fix typo.
2820
2821 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
2822
2823         * configure.ac: Fix earlier checkin.
2824         * configure: Regenerated.
2825
2826 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
2827
2828         * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
2829         * aclocal.m4: Regenerate.
2830         * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
2831         ACX_PROG_CC_WARNINGS_ARE_ERRORS,
2832         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
2833         * configure: Regenerate.
2834         * Makefile.in (LOOSE_WARN): Subst loose_warn.
2835
2836         * Makefile.in (quickstrap): Build libgcc too.
2837
2838 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
2839
2840         * configure.ac: Add --enable-checking=df.  Explicitly mention that
2841         the variables are initialized as for "release".
2842         * df-core.c: Use it.
2843         * configure: Regenerate.
2844         * config.in: Regenerate.
2845
2846 2007-06-14  Bob Wilson  <bob.wilson@acm.org>
2847
2848         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
2849         validate_replace_rtx instead of replace_rtx.
2850         (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
2851
2852 2007-06-14  Danny Smith  <dannysmith@users.sourceforge.net>
2853
2854         * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
2855         (DWARF2_UNWIND_INFO): Override default if configured with
2856         SJLJ EH disabled.
2857         * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
2858         (ENDFILE_SPEC): Add crtend.o.
2859         * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
2860         (ENDFILE_SPEC): Add crtend.o.
2861         (TARGET_USE_JCR_SECTION): Define.
2862         (MD_UNWIND_SUPPORT): Define for 32-bit target.
2863
2864         * config/i386/cygming-crtbegin.c: New file.
2865         * config/i386/cygming-crtend.c: New file.
2866
2867 2007-06-14  Pascal Obry Pascal Obry  <obry@adacore.com>
2868
2869         * config/i386/w32-unwind.h: New file.
2870
2871 2007-06-13  Eric Christopher  <echristo@apple.com>
2872
2873         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
2874         the user set a value below STACK_BOUNDARY.
2875
2876 2007-06-13  Thiemo Seufer  <ths@networkno.de>
2877
2878         * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
2879         imply -lpthread for -pthread.
2880
2881 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
2882
2883         * basic-block.h: Remove the prototype for
2884         free_basic_block_vars.
2885         * cfglayout.h: Remove the prototype for
2886         insn_locators_initialize.
2887         * tree.h: Remove the prototype for emit_line_note.
2888
2889         * tree-ssa-pre.c (mergephitemp): Remove.
2890         (init_pre): Don't use mergephitemp.
2891
2892 2007-06-13  Eric Christopher  <echristo@apple.com>
2893
2894         * config/i386/i386.c (override_options): If we've specified
2895         an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
2896
2897 2007-06-13  Bob Wilson  <bob.wilson@acm.org>
2898
2899         * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
2900         is defined.
2901
2902 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2903
2904         * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
2905         * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
2906         (eh_store_handler): New pattern.
2907         (eh_return): Emit it instead of a plain move.
2908
2909 2007-06-13  Uros Bizjak  <ubizjak@gmail.com>
2910
2911         * config/i386/i386.c (ix86_init_mmx_sse_builtins)
2912         [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
2913         [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
2914         def_builtin_const.
2915
2916 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2917
2918         * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
2919         (find_next_insn_start, find_load): New functions.
2920         (bfin_reorg): Use them to deal with the fact that parallel insns are
2921         no longer represented as a SEQUENCE.
2922
2923 2007-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2924
2925         * config/sparc/sparc.c (sparc_override_options): Initialize
2926         fpu mask correctly.
2927
2928 2007-06-13  Dave Korn  <dave.korn@artimi.com>
2929
2930         * config/i386/i386.c (ix86_eax_live_at_start_p): Use
2931         df_get_live_out.
2932
2933 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
2934
2935         * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
2936         config/sh/divcost-analysis, dbgcnt.def, df-core.c,
2937         df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
2938         tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
2939         tree-vect-transform.c: Fix comment typos.  Follow spelling
2940         conventions.
2941
2942 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
2943
2944        * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
2945        to the exit block use set.
2946        (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring". 
2947        * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
2948        * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
2949
2950 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
2951
2952         * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
2953         * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
2954         to indicate an error.
2955         (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters):
2956         New functions.
2957         (dbg_cnt_process_opt): Print an error on a bad argument.
2958         * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
2959         * common.opt (-fdbg-cnt-list): New.
2960         * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
2961
2962 2007-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2963
2964         * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
2965         flag on ref-all pointers.
2966
2967 2007-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2968
2969         PR middle-end/31579
2970         * expr.c (expand_expr_addr_expr_1): Call expand_expr
2971         for the offset with the modifier as EXPAND_INITIALIZER
2972         if the modifier is EXPAND_INITIALIZER.
2973         (expand_expr_real_1 <case INTEGER_CST>): Don't force to
2974         a register if we had an overflow.
2975
2976 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2977
2978         * real.c (real_isfinite): New.
2979         (real_sqrt): Use it.
2980         * real.h (real_isfinite): New.
2981         * builtins.c: Use it.
2982
2983 2007-06-12  Ian Lance Taylor  <iant@google.com>
2984             Daniel Berlin  <dberlin@dberlin.org>
2985
2986         PR libstdc++/29286
2987         * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
2988         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
2989         (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
2990         (DECL_NO_TBAA_P): Define.
2991         (struct tree_decl_common): Add no_tbaa_flag field.
2992         * tree-ssa-structalias.c (struct variable_info): Add
2993         no_tbaa_pruning field.
2994         (new_var_info): Initialize no_tbaa_pruning field.
2995         (unify_nodes): Copy no_tbaa_pruning field.
2996         (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
2997         (dump_solution_for_var): Print no_tbaa_pruning flag.
2998         (set_uids_in_ptset): Add no_tbaa_pruning parameter.  Change all
2999         callers.
3000         (compute_tbaa_pruning): New static function.
3001         (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
3002         Call compute_tbaa_pruning.
3003         * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
3004         * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
3005         * gimple-low.c (lower_stmt): Likewise.
3006         * tree-gimple.c (is_gimple_stmt): Likewise.
3007         * tree-ssa-operands.c (get_expr_operands): Likewise.
3008         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3009         * tree-inline.c (estimate_num_insns_1): Likewise.
3010         (copy_result_decl_to_var): Likewise.
3011         * expr.c (expand_expr_real_1): Likewise.
3012         * tree-pretty-print.c (dump_generic_node): Likewise.
3013         * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
3014         * omp-low.c (omp_copy_decl_2): Likewise.
3015         * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
3016         * doc/c-tree.texi (Expression trees): Document
3017         CHANGE_DYNAMIC_TYPE_EXPR.
3018
3019 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3020
3021         * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
3022         with !HONOR_NANS and !HONOR_INFINITIES.
3023         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3024
3025 2007-06-12  Tristan Gingold  <gingold@adacore.com>
3026
3027         * gcov.c: Comments updated.
3028         (source_info): Add file_time field.
3029         (source_index): New variable.
3030         (mutiple_files): New variable.
3031         (generate_results): New function extracted from process_file.
3032         (process_file): Save and restore chain of functions, generate
3033         results and free structures only if not merging results.
3034         (release_structures): File names are now freed in create_file_names
3035         (create_file_names): Free previous file names.
3036         (find_source): File date is now read here and modifications in
3037         source files is checked here.
3038         (read_graph_file): Only reverse order of functions for the current
3039         object file.
3040         (make_gcov_file_name): Do not generate long names if input_name is
3041         NULL.
3042         (output_lines): If merging results do not display graph, data and
3043         runs informations.
3044         Checking source file modification is done in find_source.
3045
3046         * doc/gcov.texi: Append an s to sourcefile.
3047
3048 2007-06-12  Bernd Schmidt  <bernd.schmidt@analog.com>
3049
3050         * config/bfin/bfin.md (UNSPEC_NOP): New constant.
3051         (forced_nop): New pattern.
3052         * config/bfin/bfin.c: Include "df.h".
3053         (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
3054         (bfin_discover_loop): Use df_get_live_in instead of
3055         global_live_at_start.
3056         (bfin_reorder_loops): Pass 0 to cfg_layout_initialize.  Call
3057         df_analyze when done.
3058         (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
3059         the insns.  Use QImode for the final insn in a bundle.  Call
3060         df_insn_rescan on generated NOPs; use gen_forced_nop instead of
3061         gen_nop.
3062         (reorder_var_tracking_notes): New function.
3063         (bfin_reorg): Pass no argument to split_all_insns.  Don't call
3064         update_life_info.  Call df_analyze after scheduling and bundle
3065         generation.  Call reorder_var_tracking_notes if generating these
3066         notes.  Call df_finish_pass at the end.
3067
3068 2007-06-12  Dirk Mueller  <dmueller@suse.de>
3069
3070         * optabs.c (debug_optab_libfuncs): fix gcc_assert to
3071         a comparison, not an assignment.
3072
3073 2007-06-12  Olivier Hainque  <hainque@adacore.com>
3074
3075         * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
3076         Request walking the subtrees only, leaving the current is_lhs/val_only
3077         untouched.
3078         (convert_non_local_reference): Likewise.
3079
3080 2007-06-12  Nathan Sidwell  <nathan@codesourcery.com>
3081
3082         * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
3083
3084 2007-06-12  Richard Guenther  <rguenther@suse.de>
3085
3086         PR tree-optimization/15353
3087         PR tree-optimization/31657
3088         * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
3089         * timevar.def: Add TV_TREE_IFCOMBINE.
3090         * tree-pass.h (pass_tree_ifcombine): Declare.
3091         * tree-ssa-ifcombine.c: New file.
3092         * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
3093         * tree-flow.h (blocks_in_phiopt_order): Declare.
3094         * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
3095         (tree-ssa-ifcombine.o): New dependencies.
3096
3097 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
3098
3099         PR rtl-optimization/32293
3100         * combine.c (simplify_if_then_else): Truncate return from
3101         nonzero_bits() to correct mode.
3102
3103 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
3104
3105         * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
3106         into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
3107
3108 2007-06-11  Diego Novillo  <dnovillo@google.com>
3109
3110         * Makefile.in (reload1.o-warn): Remove.
3111
3112 2007-06-11  Seongbae Park <seongbae.park@gmail.com>
3113
3114         * combine.c (subst): Use reg_overlap_mentioned_p
3115         instead of comparing register numbers directly.
3116
3117 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
3118
3119         * reload1.c (mark_home_live_1): Use the mode parameter.
3120
3121 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
3122
3123         * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
3124         df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
3125         word "deferred".
3126         * df-core.c: Ditto.
3127
3128 2007-06-11  Daniel Berlin  <dberlin@dberlin.org>
3129
3130         * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
3131
3132 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
3133
3134         * config/i386/i386.md ("*movtf_internal): Penalize moves to and
3135         from integer registers.
3136         (FP mode splitters): Handle TFmode.
3137
3138 2007-06-11  Eric Botcazou  <ebotcazou@adacore.com>
3139
3140         * tree-ssa-structalias.c (find_what_p_points_to): Return false
3141         for ref-all pointers that point-to anything.
3142
3143 2007-06-11  Joseph Myers  <joseph@codesourcery.com>
3144
3145         * config/arm/arm.c (arm_output_dwarf_dtprel,
3146         TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
3147
3148 2007-06-11  Bernd Schmidt  <bernd.schmidt@analog.com>
3149
3150         * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
3151         movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
3152         to memory moves.
3153
3154 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
3155
3156         * gcc/tree.c (signed_or_unsigned_type_for): New.
3157         (unsigned_type_for): Use signed_or_unsigned_type_for.
3158         (signed_type_for): Use signed_or_unsigned_type_for.
3159         * gcc/tree.h (signed_or_unsigned_type_for): New.
3160         (get_signed_or_unsigned_type): Remove.
3161         * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
3162         lang_hooks.types.signed_type
3163         (size_diffop): Likewise.
3164         (all_ones_mask_p): Likewise.
3165         (build_range_check): Likewise.
3166         (fold_cond_expr_with_comparison): Likewise.
3167         (fold_cond_expr_with_comparison): Likewise.
3168         (unextend): Likewise.
3169         (extract_muldiv_1): Likewise.
3170         (fold_single_bit_test_into_sign_test): Likewise.
3171         (fold_binary): Likewise.
3172         (fold_ternary): Likewise.
3173         (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
3174         instead of get_signed_or_unsigned_type.
3175         * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
3176         (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
3177         * gcc/expr.c (signed_or_unsigned_type_for): Use
3178         signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
3179         * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
3180         (lhd_signed_or_unsigned_type): Remove.
3181         * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
3182         signed_or_unsigned_type.
3183         (lhd_signed_or_unsigned_type): Remove.
3184         * gcc/expmed.c (make_tree): Use signed_type_for instead of
3185         lang_hooks.types.signed_type.
3186         * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
3187         c_common_signed_type instead of lang_hooks.types.signed_type.
3188         (c_common_unsigned_type): New.
3189         (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
3190         (shorten_compare): Use c_common_unsigned_type instead of
3191         c_common_signed_or_unsigned_type.
3192         (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
3193         unsigned_type_for.
3194         * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
3195         lang_hooks.types.signed_type.
3196         * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
3197         (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
3198         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
3199         * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
3200         instead of unsigned_type_for.
3201         * gcc/c-decl.c (groakdeclarator): Likewise.
3202         * gcc/c-typeck.c (convert_for_assignment): Likewise.
3203         * gcc/c-common.h (c_common_unsigned_type): New.
3204
3205 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
3206
3207         PR target/32280
3208         * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
3209         * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
3210
3211 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
3212
3213         PR middle-end/32279
3214         * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
3215         into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
3216
3217 2007-06-10  Jan Sjodin  <jan.sjodin@amd.com>
3218             Sebastian Pop  <sebpop@gmail.com>
3219
3220         * lambda-code.c (remove_iv): New.
3221         (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
3222
3223 2007-06-10  Zdenek Dvorak  <dvorakz@suse.cz>
3224
3225         * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
3226         * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
3227         * tree-ssa-loop-prefetch.c: Include optabs.h.
3228         (FENCE_FOLLOWING_MOVNT): New macro.
3229         (struct mem_ref): Add independent_p and storent_p fields.
3230         (record_ref): Initalize the new fields.
3231         (gather_memory_references_ref): Return true if the reference
3232         could be analysed.
3233         (gather_memory_references): Check whether all memory accesses
3234         in loop were recorded.
3235         (should_issue_prefetch_p): Return false for nontemporal stores.
3236         (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
3237         may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
3238         (determine_loop_nest_reuse): Detect independent memory references.
3239         (loop_prefetch_arrays): Call mark_nontemporal_stores.
3240         * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
3241         * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
3242         * config/i386/i386.h (x86_mfence): Declare.
3243         (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
3244         * config/i386/i386.c (x86_mfence): New variable.
3245         (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
3246
3247         * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
3248         * optabs.c (init_optabs): Initialize storent_optab.
3249         * optabs.h (enum optab_index): Add OTI_storent.
3250         (storent_optab): Declare.
3251         * genopinit.c (optabs): Add initialization for storent_optab.
3252         * tree.h (MOVE_NONTEMPORAL): New macro.
3253         * expr.c (expand_assignment, store_expr, store_constructor_field,
3254         store_constructor, store_field, expand_expr_real_1): Propagate
3255         nontemporality of the expanded store.
3256         (emit_storent_insn): New function.
3257         * expr.h (expand_assignment, store_expr): Declaration changed.
3258         * function.c (assign_parm_setup_reg): Pass false as nontemporality
3259         to expand_assignment.
3260         * stmt.c (expand_asm_expr): Ditto.
3261         * calls.c (initialize_argument_information): Pass false as
3262         nontemporality to store_expr.
3263         * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
3264         storentsi): New.
3265
3266 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
3267
3268         * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
3269         parameter, use it.
3270         (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
3271
3272 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
3273
3274         * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
3275         and allow DECL_P here.
3276
3277 2007-06-09  Zdenek Dvorak  <dvorakz@suse.cz>
3278
3279         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
3280         follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
3281         track of the size of the expression.
3282         * cfghooks.c (merge_blocks): Remove block from loops structure only
3283         after call of the merge_blocks hook.
3284
3285 2007-06-09  Tom Tromey  <tromey@redhat.com>
3286
3287         * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
3288         (deprecated_state): Removed.
3289         (start_decl): Update.
3290         (enum deprecated_states): Moved earlier.
3291         (groktypename): Update.
3292         (push_parm_decl): Likewise.
3293         (grokfield): Likewise.
3294         (start_function): Likewise.
3295
3296 2007-06-09  Ian Lance Taylor  <iant@google.com>
3297
3298         PR tree-optimization/32169
3299         * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
3300         CONVERT_EXPR, check whether min and max both converted to an
3301         overflow infinity representation.
3302
3303 2007-06-08  Eric Botcazou  <ebotcazou@adacore.com>
3304
3305         * reload1.c (fixup_abnormal_edges): Clear bb field for insns
3306         not inserted on the edge.
3307
3308 2007-06-08  Bob Wilson  <bob.wilson@acm.org>
3309
3310         * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
3311         instructions if they are supported.
3312         (__divsi3, __umodsi3, __modsi3): Likewise.
3313         (__ashldi3, __ashrdi3, __lshrdi3): New.
3314         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
3315
3316 2007-06-08  Harsha Jagasia <harsha.jagasia@amd.com>
3317             Tony Linthicum <tony.linthicum@amd.com>
3318
3319         * doc/invoke.texi: Add fvect-cost-model flag.
3320         * common.opt (fvect-cost-model): New flag.
3321         * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
3322         cost fields in stmt_vec_info struct for STMT.
3323         * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
3324         fields in stmt_vec_info struct and access functions for the same.
3325         (TARG_COND_BRANCH_COST): Define cost of conditional branch.
3326         (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
3327         load, store and vector to scalar operation.
3328         (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
3329         (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
3330         (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
3331         (TARG_VEC_STORE_COST): Define cost of vector store.
3332         (vect_estimate_min_profitable_iters): Define new function.
3333         * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
3334         check to evaluate if loop iterations are less than minimum profitable
3335         iterations determined by cost model or minimum vect loop bound defined
3336         by user, whichever is more conservative.
3337         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
3338         run-time check to evaluate if loop iterations are less than minimum
3339         profitable iterations determined by cost model or minimum vect loop
3340         bound defined by user, whichever is more conservative.
3341         (vect_estimate_min_profitable_iterations): New function to estimate
3342         mimimimum iterartions required for vector version of loop to be
3343         profitable over scalar version.
3344         (vect_model_reduction_cost): New function.
3345         (vect_model_induction_cost): New function.
3346         (vect_model_simple_cost): New function.
3347         (vect_cost_strided_group_size): New function.
3348         (vect_model_store_cost): New function.
3349         (vect_model_load_cost): New function.
3350         (vectorizable_reduction): Call vect_model_reduction_cost during
3351         analysis phase.
3352         (vectorizable_induction): Call vect_model_induction_cost during
3353         analysis phase.
3354         (vectorizable_load): Call vect_model_load_cost during analysis phase.
3355         (vectorizable_store): Call vect_model_store_cost during analysis phase.
3356         (vectorizable_call, vectorizable_assignment, vectorizable_operation,
3357         vectorizable_promotion, vectorizable_demotion): Call
3358         vect_model_simple_cost during analysis phase.
3359
3360 2007-06-08  Simon Baldwin  <simonb@google.com>
3361
3362         * reg-stack.c (get_true_reg): Readability change.  Moved default case
3363         label into direct switch statement scope.
3364
3365 2007-06-08  Simon Baldwin  <simonb@google.com>
3366
3367         * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
3368         in gcc_assert() with '==' comparison.
3369
3370 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
3371
3372         * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
3373         TARGET_ABM handling of x86_popcnt variable.
3374
3375 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
3376
3377         * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
3378         __builtin_copysignq and __builtin_infq built-in functions.
3379
3380 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
3381
3382         * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
3383         SSE4.2 section.  Correct built-in function names in SSE4A section.
3384
3385 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
3386
3387         PR tree-optimization/32243
3388         * tree-vect-transform.c (vectorizable_type_promotion): Move check
3389         for ncopies after ratio check between nunits_out and nunits_in.
3390         (vectorizable_type_demotion): Remove single-use variable "scalar_type".
3391
3392 2007-06-08  Dorit Nuzman  <dorit@il.ibm.com>
3393
3394         PR tree-optimization/32224
3395         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
3396         vectorization upon a non GIMPLE_MODIFY_STMT.
3397
3398 2007-06-08  Christian Bruel  <christian.bruel@st.com>
3399
3400         PR target/29953
3401         * config/sh/sh.md (doloop_end): New pattern and splitter.
3402         * loop-iv.c (simple_rhs_p): Check for hardware registers.
3403
3404 2007-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
3405
3406         PR middle-end/32209
3407         * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
3408         functions.
3409         (verify_dominators): Do not change dominance tree.
3410
3411 2007-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
3412
3413         * config/sh/constraints.md: New file.
3414         * config/sh/sh.c: Include tm-constrs.h.
3415         (reg_class_from_letter): Remove.
3416         (prepare_cbranch_operands): Use satisfies_constraint_*
3417         function instead of macro.
3418         (andcosts, broken_move, sh_secondary_relo