OSDN Git Service

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