OSDN Git Service

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