OSDN Git Service

a76df2a26657f6442ef0f072175271296a03921e
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-09-07  Diego Novillo  <dnovillo@google.com>
2
3         * tree-flow.h (const_block_stmt_iterator): Remove.
4         Update all users to use block_stmt_iterator.
5         * tree-iterator.h (const_tree_stmt_iterator): Remove.
6         Update all users to use tree_stmt_iterator.
7
8 2007-09-07  Sandra Loosemore  <sandra@codesourcery.com>
9
10         * config/mips/mips.c (mips_set_current_function): Temporarily
11         make this a no-op to fix bootstrap errors, pending rewrite.
12
13 2007-09-07  Jan Hubicka  <jh@suse.cz>
14
15         * reorg.c (dbr_schedule): Move code removing placeholder USEs later
16         in the pass.
17
18 2007-09-07  Dorit Nuzman  <dorit@il.ibm.com>
19
20         PR tree-optimization/33299
21         * tree-vect-transform.c (vect_create_epilog_for_reduction): Update uses 
22         for all relevant loop-exit phis, not just the first.
23
24 2007-09-07  Richard Guenther  <rguenther@suse.de>
25
26         PR middle-end/33330
27         * tree-ssa-operands.c (access_can_touch_variable): An access
28         of the form (*p)[0] can touch a variable of same size.
29
30 2007-09-07  Jan Hubicka  <jh@suse.cz>
31
32         * passes.c (init_optimization_passes): Add simple dce and addressable
33         passes.
34         * tree-ssa.c (execute_update_addresses_taken): New function.
35         (pass_update_address_taken): New.
36         * tree-ssa-dse.c (execute_simple_dse): New function.
37         (pass_simple_dse): New.
38         * tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare.
39
40 2007-09-07  Tobias Burnus  <burnus@net-b.de>
41
42         PR middle-end/33321
43         * doc/invoke.texi: Fix -Wstrict-overflow= table.
44
45 2007-09-07  Richard Guenther  <rguenther@suse.de>
46
47         Revert
48         2007-09-06  Richard Guenther  <rguenther@suse.de>
49
50         PR tree-optimization/32586
51         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
52         folding if nothing changed.
53         (simplify_unary_expression): New function.  Do tree combining
54         on conversion like codes.
55         (try_to_simplify): Call it.
56
57 2007-09-07  Richard Guenther  <rguenther@suse.de>
58             Uros Bizjak  <ubizjak@gmail.com>
59
60         PR tree-optimization/32821
61         * tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of
62         NULL in the call to set_bb_stmt_list.
63
64 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
65
66         * config/mips/mips.c (build_mips16_call_stub): Emit all direct
67         float calls here, rather than leaving some to the caller.
68         Use call_internal_direct and call_value_internal_direct.
69         * config/mips/mips.md (call_internal_direct): New pattern.
70         (call_value_internal_direct): Likewise.
71
72 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
73
74         * config/mips/mips.c (mips_base_move_loop_invariants): New variable.
75         (mips_set_mips16_mode): Restore flag_move_loop_invariants, then set
76         to 0 for MIPS16.
77         (override_options): Set mips_base_move_loop_invariants.
78
79 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
80
81         * config/mips/mips.opt (mcode-readable=): Move to keep list
82         alphabetical.
83
84 2007-09-07  Richard Sandiford  <richard@codesourcery.com>
85
86         * doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata
87         and -mgpopt options.  Adjust the -G documentation to match.
88         * config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New.
89         * config/mips/mips.c (mips_rtx_constant_in_small_data_p): New
90         function, split out from mips_classify_symbol.  Return false for
91         !TARGET_LOCAL_SDATA.
92         (mips_classify_symbol): Call mips_rtx_constant_in_small_data_p.
93         Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT.
94         (override_options): Check whether the -mgpopt setting is consistent
95         with the other flags.
96         (symbolic_expression_p): Delete.
97         (mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p
98         and default_elf_select_rtx_section.
99         (mips_in_small_data_p): Honor section attributes for MIPS16 too.
100         Return false for local data unless TARGET_LOCAL_SDATA.  Likewise
101         external data and TARGET_EXTERN_SDATA.
102
103 2007-09-07  Tobias Burnus  <burnus@net-b.de>
104
105         PR fortran/33303
106         * doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__.
107
108 2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
109
110         * regrename.c (copyprop_hardreg_forward_1): New variable next. Use
111         FOR_BB_INSNS_SAFE instead of for loop.
112         * cse.c (cse_extended_basic_block): Likewise.
113         * postreload.c (reload_cse_regs_1): New variable next. Make sure
114         that the for loop does not invoke NEXT_INSN on a deleted insn.
115         * function.c (instantiate_virtual_regs): Likewise.
116         * lower-subreg.c (remove_retval_note): Likewise.
117         (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
118         FOR_BB_INSNS.
119         * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
120         a deleted insn.
121         * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
122         insn, if it's a jump.
123         (try_redirect_by_replacing_jump): New variable jump_p. Call
124         tablejump_p before delete_insn_chain.
125         * reload1.c (reload): New variable next. Make sure that the for
126         loop does not invoke NEXT_INSN on a deleted insn.
127         (fixup_eh_region_note): Make the loop terminate if i becomes NULL.
128         (delete_output_reload): New variable prev. Make sure the the for
129         loops do not invoke PREV_INSN on a deleted insn.
130
131 2007-09-06  Zdenek Dvorak  <ook@ucw.cz>
132
133         * cgraphbuild.c (rebuild_cgraph_edges): Export.
134         * cgraph.h (rebuild_cgraph_edges): Declare.
135         * tree-pass.h (pass_expand_omp_ssa): New.
136         * omp-low.c (find_omp_clause): Export.
137         (copy_var_decl): Split from omp_copy_decl_2.
138         (build_omp_barrier): Return the call to emit instead of emitting
139         it directly.
140         (lower_rec_input_clauses, expand_omp_single): Gimplify the result of
141         build_omp_barrier.
142         (extract_omp_for_data, expand_parallel_call, expand_omp_parallel,
143         expand_omp_for_generic, expand_omp_for_static_nochunk,
144         expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
145         Adapted to work on SSA form.
146         (execute_expand_omp): Do not invalidate dominance information.
147         (gate_expand_omp): Do not run with -fopenmp-ssa flag.
148         (gate_expand_omp_ssa, pass_expand_omp_ssa): New.
149         * gimplify.c (gimplify_omp_for): Ensure that the control variable is
150         a gimple_reg.
151         (force_gimple_operand): Allow gimplifying code expressions without
152         value.
153         * tree-predcom.c (mark_virtual_ops_for_renaming): Handle phi nodes.
154         * common.opt (fopenmp-ssa): New.
155         * tree-flow.h (find_omp_clause, copy_var_decl): Declare.
156         * Makefile.in (tree-cfg.o): Add TREE_INLINE_H dependency.
157         * tree-cfg.c: Include tree-inline.h.
158         (struct move_stmt_d): Replace vars_to_remove by vars_map field.
159         (replace_by_duplicate_decl, replace_ssa_name,
160         mark_virtual_ops_in_region): New functions.
161         (move_stmt_r, move_block_to_fn, move_sese_region_to_fn): Adapted
162         to work on SSA form.
163         * passes.c (init_optimization_passes): Add pass_expand_omp_ssa pass.
164         * tree-ssa-operands.c (get_expr_operands): Handle operands of OMP
165         constructs.
166
167 2007-09-06  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
168
169         * tree-loop-linear.c: Include obstack.h.
170         (linear_transform_loops): New obstack lambda_obstack.
171         Initialize it, pass it to gcc_loopnest_to_lambda_loopnest,
172         lambda_loopnest_transform, lambda_loopnest_to_gcc_loopnest calls
173         and free afterwards.
174         * lambda.h (struct obstack): New forward declaration.
175         (lambda_linear_expression_new): New parameter of type struct
176         obstack *.
177         (lambda_loopnest_new): Likewise.
178         (lambda_loopnest_transform): Likewise.
179         (lambda_body_vector_new): Likewise.
180         (lambda_body_vector_compute_new): Likewise.
181         (gcc_loopnest_to_lambda_loopnest): Likewise.
182         (lambda_loopnest_to_gcc_loopnest): Likewise.
183         * lambda-code.c: Include obstack.h.
184         (lambda_lattice_new): New parameter lambda_obstack.  Use it for
185         allocation of ret.
186         (lambda_body_vector_new): Likewise.
187         (lambda_linear_expression_new): Likewise.
188         (lambda_lattice_new): Likewise.
189         (lambda_loopnest_new): Likewise.  Additionally use obstack to
190         allocate LN_LOOPS(ret).
191         (lambda_lattice_compute_base): New parameter lambda_obstack.  Pass
192         it to lambda_lattice_new.
193         (lambda_body_vector_compute_new): New parameter lambda_obstack.
194         Pass it to lambda_body_vector_new.
195         (lambda_lattice_compute_base): New paramater lambda_obstack.  Pass
196         it to lambda_lattice_new.
197         (compute_nest_using_fourier_motzkin): New parameter lambda_obstack.
198         Pass it to lambda_loopnest_new, lambda_linear_expression_new.
199         (lambda_compute_target_space): Likewise.
200         (lambda_compute_auxillary_space): New parameter lambda_obstack.
201         Pass it to lambda_lattice_compute_base and
202         compute_nest_using_fourieer_motzkin.
203         (lambda_loopnest_transform): New parameter lambda_obstack.  Pass
204         it to lambda_lattice_compute_base, lambda_lattice_auxillary_space
205         and lambda_lattice_compute_target_space.
206         (gcc_tree_to_linear_expression): Nex parameter lambda_obstack.
207         Pass it to lambda_linear_expression_new.
208         (gcc_loop_to_lambda_loop): New parameter lambda_obstack.  Pass it
209         to gcc_tree_to_linear_expression.
210         (gcc_loopnest_to_lambda_loopnest): New parameter lambda_obstack.
211         Pass it to gcc_loop_to_lambda_loop and lambda_loopnest_new.
212         (lambda_loopnest_to_gcc_loopnest): New parameter lambda_obstack.
213         Pass it to lambda_body_vector_new and
214         lambda_body_vector_compute_new.
215         * Makefile.in (tree-loop-linear.o): Add $(OBSTACK_H) dependency.
216         (lambda-code.o): Likewise.
217
218 2007-09-06  Chao-ying Fu  <fu@mips.com>
219
220         * ginclude/stdfix.h: New file.
221         * Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h.
222         (convert.o): Add dependence on fixed-value.h.
223         * c-convert.c (convert): Support FIXED_POINT_TYPE.
224         * c-cppbuiltin.c (builtin_define_fixed_point_constants): New function
225         to define fixed-point constants.
226         (c_cpp_builtins): Define fixed-point constants.
227         * convert.c (fixed-value.h): New include.
228         (convert_to_real): Update comment to include fixed-point.
229         Support FIXED_POINT_TYPE.
230         (convert_to_integer): Update comment to include fixed-point.
231         Support FIXED_POINT_TYPE.
232         (convert_to_complex): Support FIXED_POINT_TYPE.
233         (convert_to_fixed): New function.
234         * convert.h (convert_to_fixed): Declare.
235         * genopinit.c: Add comment about $Q for only fixed-point modes.
236         (optabs): Add fract_optab, fractuns_optab, satfract_optab,
237         satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab,
238         sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab,
239         ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab,
240         usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab,
241         usneg_optab for fixed-point modes.
242         (gen_insn): Add force_fixed to track the $Q format for all fixed-point
243         modes.
244         * optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR,
245         PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or
246         unsigned saturation optabs, when type is saturating.
247         (shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT.
248         (expand_fixed_convert): New function.
249         (gen_fixed_libfunc, gen_signed_fixed_libfunc,
250         gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc,
251         gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc,
252         gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc,
253         gen_fract_conv_libfunc, gen_fractuns_conv_libfunc,
254         gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New
255         functions.
256         (init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab,
257         ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab,
258         usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab,
259         ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab,
260         usneg_optab, fract_optab, fractuns_optab, satfract_optab,
261         satfractuns_optab.
262         Initialize fixed-point libraries, including add, ssadd, usadd, sub,
263         sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl,
264         ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract,
265         fractuns, satfractuns.
266         * optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub,
267         OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg,
268         OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen,
269         OTI_ssmsub_widen,  OTI_usmsub_widen.
270         (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
271         usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
272         ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab,
273         umsub_widen_optab, usmsub_widen_optab): Define.
274         (enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract,
275         COI_satfractuns.
276         (fract_optab, fractuns_optab, satfract_optab, satfractuns_optab):
277         Define.
278         (expand_fixed_convert): Declare.
279         * expr.c (convert_move): Support the move of fixed-point modes.
280         (emit_move_insn_1): Handle fixed-point mode to move via integer.
281         (categorize_ctor_elements_1): Handle FIXED_CST.
282         (count_type_elements): Handle FIXED_POINT_TYPE.
283         (expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT,
284         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
285         Support FIXED_CST.
286         For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating
287         multiply and add/subtract for fixed-point types.
288         For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point
289         mode, we jump to binop directly.
290         Support FIXED_CONVERT_EXPR.
291         (do_store_flag): Check FIXED_CST to put a constant second.
292         (vector_mode_valid_p): Handle MODE_VECTOR_FRACT,
293         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
294         (const_vector_from_tree): Support FIXED_CST.
295         * doc/extend.texi (Fixed-Point): New node.
296         * doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv,
297         ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract,
298         satfract, fractuns, satfractuns): Document them.
299
300 2007-09-07  Bernd Schmidt  <bernd.schmidt@analog.com>
301
302         * config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc
303         addresses into I registers.
304
305 2007-09-06  Jan Hubicka  <jh@suse.cz>
306             Andreas Tobler  <a.tobler@schweiz.org>
307
308         * config/darwin.c (machopic_indirect_data_reference): Avoid invalid
309         sharing.
310         (machopic_legitimize_pic_address): Likewise.
311
312 2007-09-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
313             Jan Hubicka  <jh@suse.cz>
314
315         * config/spu/spu.md (floatsidf2): Use convert_optab_libfunc
316         instead of ufloat_optab->handlers directly.
317         (floatdidf2): Likewise.
318
319 2007-09-06  Sandra Loosemore  <sandra@codesourcery.com>
320
321         * config/mips/mips.c:  Include diagnostic.h.
322         (mips_set_current_function): Check errorcount and sorrycount 
323         before generating RTL.
324
325 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
326
327         PR target/33256
328         * config/mips/mips.c (mips_classify_symbolic_expression): New function.
329         (mips_classify_address): Use it instead of mips_symbolic_constant_p.
330         (print_operand_reloc): Likewise.
331
332 2007-09-06  Janis Johnson  <janis187@us.ibm.com>
333
334         Revert:
335
336         2007-09-06  Jan Hubicka  <jh@suse.cz>
337  
338         * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
339         real_2expN.
340
341         2007-09-06  Richard Sandiford  <richard@codesourcery.com>
342
343         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
344         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
345
346         2007-09-05  Janis Johnson  <janis187@us.ibm.com>
347
348         * optabs.c (expand_float): Convert unsigned integer as signed only
349         if it provides sufficient accuracy; add mode argument to real_2expN.
350         (expand_fix): Fix comment typos; extend binary float into mode
351         wider than destination for converion to unsigned integer; add mode
352         argument to real_2expN.
353         * real.c (real_2expN): Add mode argument to special-case decimal
354         float values.
355         * real.h (real_2expN): Ditto.
356         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
357         real_2expN.
358         (fixed_from_string): Ditto.
359         (fixed_to_decimal): Ditto.
360         (fixed_convert_from_real): Ditto.
361         (real_convert_from_fixed): Ditto.
362         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
363         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
364         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
365         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
366
367 2007-09-06  Tom Tromey  <tromey@redhat.com>
368
369         * tree-cfg.c (remove_bb): Only warn if line is non-zero.
370         * c-pch.c (c_common_read_pch): Restore current location after
371         reading PCH file.
372         * tree.c (expand_location): Update.
373         (expr_filename): Changed return type.  Unified the two cases.
374         (expr_lineno): Likewise.
375         (annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME
376         as lvalues.
377         * toplev.c (line_table): Changed type.
378         (general_init): Update.
379         (realloc_for_line_map): New function.
380         (general_init): Allocate line_table using GC.
381         * fix-header.c (line_table): Changed type.
382         (read_scan_file): Update.
383         (read_scan_file): Update.
384         * c-ppoutput.c (maybe_print_line): Update.
385         (print_line): Update.
386         (cb_line_change): Update.
387         (cb_define): Update.
388         (pp_file_change): Update.
389         * c-opts.c (c_common_init_options): Update.
390         (finish_options): Update.
391         (push_command_line_include): Update.
392         * c-lex.c (cb_line_change): Update.
393         (cb_def_pragma): Update.
394         (cb_define): Update.
395         (cb_undef): Update.
396         (c_lex_with_flags): Use cpp_get_token_with_location.
397         * input.h (line_table): Changed type.
398         (location_from_locus): New macro.
399         * tree.h (EXPR_FILENAME): No longer an lvalue.
400         (EXPR_LINENO): Likewise.
401         (expr_locus, set_expr_locus): Declare separately for
402         USE_MAPPED_LOCATION.
403         (expr_filename, expr_lineno): Changed return type.
404         * gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS.
405         * cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus.
406         (expand_gimple_basic_block): Likewise.
407         * final.c (final_scan_insn): Use expanded_location.
408
409 2007-09-06  Richard Guenther  <rguenther@suse.de>
410
411         PR tree-optimization/32586
412         * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
413         folding if nothing changed.
414         (simplify_unary_expression): New function.  Do tree combining
415         on conversion like codes.
416         (try_to_simplify): Call it.
417         * builtins.c (fold_builtin_cexp): Fold the built expressions.
418         * fold-const.c (fold_unary): Test result of get_callee_fndecl().
419
420 2007-09-06  Jan Hubicka  <jh@suse.cz>
421
422         PR target/33318
423         * cse.c (fold_rtx): Avoid invalid sharing.
424
425 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
426
427         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
428         (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
429
430 2007-09-06  Revital Eres  <eres@il.ibm.com>
431
432         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
433         Fix offsettable memory reference for 750CL.
434
435 2007-09-06  Pat Haugen  <pthaugen@us.ibm.com>
436
437         * reload.c (find_reloads_address_1): Try to preserve original
438         base/index regclass of operands.
439         * regrename.c (scan_rtx_address): Likewise.
440         (replace_oldest_value_addr): Likewise.
441
442 2007-09-06  Richard Guenther  <rguenther@suse.de>
443
444         PR tree-optimization/33302
445         * domwalk.c (walk_dominator_tree): The exit block is
446         interesting even if it is not reachable.
447
448 2007-09-06  Richard Sandiford  <richard@codesourcery.com>
449
450         PR middle-end/33306
451         * optabs.c (avoid_expensive_constant): Do nothing if MODE is VOIDmode.
452
453 2007-09-06  Basile Starynkevitch  <basile@starynkevitch.net>
454
455         * cfg.c (dump_bb_info, dump_edge_info): Added cfun test for 
456         robustness.
457
458 2007-09-05  Ian Lance Taylor  <iant@google.com>
459
460         * tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int
461         when printing.
462         (dump_generic_node): Likewise.
463         * print-rtl.c (print_decl_name): Likewise.
464         * print-tree.c (print_node_brief): Likewise.
465         (print_node): Likewise.
466         * Makefile.in (RTL_BASE_H): Add alias.h.
467         (TREE_H): Likewise.
468
469 2007-09-06  Jesper Nilsson  <jesper.nilsson@axis.com>
470
471         * longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros):
472         Defined.
473         * config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented.
474         * config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined.
475
476 2007-09-06  Jie Zhang  <jie.zhang@analog.com>
477
478         * config.gcc (tm_file): Add linux.h for bfin*-uclinux*.
479         (tm_defines): Define UCLIBC_DEFAULT to 1.
480         (extra_options): Add linux.opt.
481         * config/bfin/linux.h (CPLUSPLUS_CPP_SPEC): Don't define.
482         (CRT_CALL_STATIC_FUNCTION): Likewise.
483         (NO_IMPLICIT_EXTERN_C): Likewise.
484         (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
485         * config/bfin/elf.h (OBJECT_FORMAT_ELF): Don't define.
486         * config/bfin/uclinux.h (CPLUSPLUS_CPP_SPEC): Don't define.
487         (ENDFILE_SPEC): Don't define.
488         (LIB_SPEC): Likewise.
489         (CRT_CALL_STATIC_FUNCTION): Likewise.
490         (NO_IMPLICIT_EXTERN_C): Likewise.
491         (LINUX_TARGET_OS_CPP_BUILTINS): Likewise.
492         (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
493
494 2007-09-06  Jan Hubicka  <jh@suse.cz>
495
496         * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
497         real_2expN.
498
499 2007-09-06  Jan Hubicka  <jh@suse.cz>
500
501         * opts.c (common_handle_option): Enable inlining functions for
502         -fprofile-generate.
503
504 2007-09-06  Jakub Jelinek  <jakub@redhat.com>
505
506         * builtin-attrs.def (ATTR_NONNULL_3): New.
507         (DEF_FORMAT_ATTRIBUTE): Use just ATTR_NONNULL_##FA instead of
508         ATTR_NOTHROW_NONNULL_##FA.
509         (DEF_FORMAT_ATTRIBUTE_NOTHROW, DEF_FORMAT_ATTRIBUTE_BOTH): New macros.
510         (ATTR_FORMAT_PRINTF_NOTHROW_2_0, ATTR_PRINTF_NOTHROW_2_3,
511         ATTR_FORMAT_PRINTF_NOTHROW_3_0, ATTR_FORMAT_PRINTF_NOTHROW_3_4,
512         ATTR_FORMAT_PRINTF_NOTHROW_4_0, ATTR_PRINTF_NOTHROW_4_5,
513         ATTR_FORMAT_PRINTF_NOTHROW_5_0, ATTR_FORMAT_PRINTF_NOTHROW_5_6,
514         ATTR_FORMAT_SCANF_NOTHROW_2_0, ATTR_FORMAT_SCANF_NOTHROW_2_3,
515         ATTR_FORMAT_STRFTIME_NOTHROW_3_0, ATTR_FORMAT_STRFMON_NOTHROW_3_4):
516         New.
517         (ATTR_FORMAT_PRINTF_4_0, ATTR_PRINTF_4_5, ATTR_FORMAT_PRINTF_5_0,
518         ATTR_FORMAT_PRINTF_5_6, ATTR_FORMAT_STRFTIME_3_0,
519         ATTR_FORMAT_NOTHROW_3_4): Remove.
520         * builtins.def (snprintf, sprintf, sscanf, vsnprintf, vsprintf,
521         vsscanf, strfmon, strftime, __snprintf_chk, __sprintf_chk,
522         __vsnprintf_chk, __vsprintf_chk): Use ATTR_FORMAT_*_NOTHROW_*
523         instead of ATTR_FORMAT_*_*.
524
525 2007-09-06  Hans-Peter Nilsson  <hp@axis.com>
526
527         * config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
528         parts re-used for REG_FRAME_RELATED_EXPR.
529
530 2007-09-05  Janis Johnson  <janis187@us.ibm.com>
531
532         * optabs.c (expand_float): Convert unsigned integer as signed only
533         if it provides sufficient accuracy; add mode argument to real_2expN.
534         (expand_fix): Fix comment typos; extend binary float into mode
535         wider than destination for converion to unsigned integer; add mode
536         argument to real_2expN.
537         * real.c (real_2expN): Add mode argument to special-case decimal
538         float values.
539         * real.h (real_2expN): Ditto.
540         * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
541         real_2expN.
542         (fixed_from_string): Ditto.
543         (fixed_to_decimal): Ditto.
544         (fixed_convert_from_real): Ditto.
545         (real_convert_from_fixed): Ditto.
546         * config/rs6000/rs6000.md (FP): Include DD and TD modes.
547         * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
548         muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
549         floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
550
551 2007-09-05  Ian Lance Taylor  <iant@google.com>
552
553         * init-regs.c (initialize_uninitialized_regs): Call
554         emit_insn_before rather than add_insn_before.
555
556 2007-09-05  Jakub Jelinek  <jakub@redhat.com>
557
558         * builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.
559         * tree.h (CALL_EXPR_VA_ARG_PACK): Define.
560         * tree-inline.h (copy_body_data): Add call_expr field.
561         * tree-inline.c (expand_call_inline): Initialize call_expr.
562         (copy_bb): Append anonymous inline fn arguments to arguments
563         when inlining a CALL_EXPR_VA_ARG_PACK call.
564         * builtins.c (expand_builtin): Issue an error if
565         BUILT_IN_VA_ARG_PACK is seen during expand.
566         (fold_call_expr, fold_builtin_call_array): Don't fold
567         CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with
568         __builtin_va_arg_pack () call as last argument.
569         * gimplify.c (gimplify_call_expr): If last argument to a vararg
570         function is __builtin_va_arg_pack (), decrease number of call
571         arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR.
572         * expr.c (expand_expr_real_1): Issue an error if
573         CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand.
574         * tree-pretty-print.c (dump_generic_node): Handle printing
575         CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs.
576         * doc/extend.texi (__builtin_va_arg_pack): Document.
577
578 2007-09-05  Adam Nemet  <anemet@caviumnetworks.com>
579
580         PR tree-optimization/21513
581         * builtins.c (build_builtin_expect_predicate): New function.
582         (fold_builtin_expect): Add argument for expected value.
583         Distribute __builtin_expect over short-circuiting operations.
584         Fold nested builtin_expects.
585         (fold_builtin_2): Adjust call to fold_builtin_expect.
586
587 2007-09-05  Rask Ingemann Lambertsen  <rask@sygehus.dk>
588
589         PR web/32965
590         PR tree-optimization/13756
591         * doc/invoke.texi (Options That Control Optimization): Document
592         -ftree-dse.
593
594 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
595
596         * gcc/config/i386/cpuid.h: New file.
597         * gcc/config/i386/driver-i386.c: Include cpuid.h.
598         (describe_cache): Shrink size and line strings to 100 bytes.
599         (detect_caches_amd): Return "" for unsupported max_ext_level.
600         Use __cpuid function.
601         (detect_caches_intel): Return "" for unsupported max_level.
602         Use __cpuid function.
603         (host_detect_local_cpu): Change feature flag variables to
604         unsigned int.  Initialize only extended feature flag variables.
605         Use __get_cpuid_max to determine max supported cpuid level.
606         Use __cpuid function to determine supported features.  Fix
607         calculation of family id.  Remove is_amd and check signature
608         directly.  Check for Geode signature.  Handle family 4 id.
609         [PROCESSOR_GENERIC32]: New default for unknown family id.  Move
610         cpu discovery code to lower part of the function.
611         [PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune
612         for sub-architecture.
613         [PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code.
614         [PROCESSOR_K8]: Add k8-sse3 architecture.
615         [PROCESSOR_NOCONA]: Remove.
616         [PROCESSOR_GENERIC64]: Ditto.
617         * gcc/config/i386/x-i386 (driver-i386.o): Depend on cpuid.h.
618         * gcc/config/i386/crtfastmath.c: Include cpuid.h.  Use __get_cpuid
619         to check for SSE and FXSAVE support.
620         * gcc/config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h.
621         Add -minline-all-stringops.
622         * gcc/config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers.
623         (x86_64-*-*): Ditto.
624
625 2007-09-05  Jie Zhang  <jie.zhang@analog.com>
626
627         * config/bfin/linux-unwind.h: New file.
628         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Define.
629         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Define.
630
631 2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
632
633         * Makefile.in (stmt.o): Add alloc-pool.h dependency.
634         * stmt.c: Include alloc-pool.h.
635         (struct case_node): Remove GTY marker.
636         (add_case_node): New parameter case_node_pool.  Use it for
637         allocation of r.
638         (expand_case): New allocation pool case_node_pool.  Initialize it,
639         pass to add_case_node and free it.
640
641 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
642             David Ung  <davidu@mips.com>
643             Nigel Stephens <nigel@mips.com>
644
645         Add mips16/nomips16 function attributes and -mflip-mips16 option
646         for testing mixed-mode compilation.
647
648         * config/mips/mips.opt (mflip-mips16): New.
649
650         * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define.
651         (SYMBOL_FLAG_MIPS16_FUNC_P): Define.
652
653         * config/mips/mips.c (mips_base_target_flags): New.
654         (mips_base_mips16): New.
655         (mips_base_schedule_insns): New.
656         (mips_base_reorder_blocks_and_partition): New.
657         (mips_base_align_loops): New.
658         (mips_base_align_jumps): New.
659         (mips_base_align_functions): New.
660         (mips16_flipper): New.
661         (mips_attribute_table): Add "mips16" and "nomips16" entries.
662         (TARGET_SET_CURRENT_FUNCTION): Define.
663         (mips_mips16_type_p, mips_nomips16_type_p): New.
664         (mips_comp_type_attributes): Check mips16/nomips16 attributes.
665         (mips_function_ok_for_sibcall): Make it deal with functions with
666         mips16 attributes.
667         (mips_init_split_addresses): New, split out from override_options.
668         (mips_init_relocs): New, split out from override_options.
669         (was_mips16_p): New.
670         (mips_set_mips16_mode): New, split out from override_options.
671         (mips_set_current_function): New.
672         (override_options): Add sorry for unsupported mips16/pic
673         combination.  Remove error for mips16/dsp combination.  Save
674         base option settings.  
675         (mips_file_start): Move mips16 mode setting output from here....
676         (mips_output_function_prologue): ....to here.
677         (mips_output_mi_thunk): Check for mips16 function.
678         (build_mips16_function_stub): Don't set .mips16 here.
679         (build_mips16_call_stub): Likewise.
680         (mips_expand_builtin): Error in mips16 mode.
681         (mips_use_mips16_mode_p): New.
682         (mips_encode_section_info): Check for mips16 function, and set
683         SYMBOL_REF_FLAGS accordingly.
684
685         * doc/extend.texi (Function Attributes): Document new
686         mips16/nomips16 attributes.
687         * doc/invoke.texi (Option Summary): Add -mflip-mips16.
688         (MIPS Options): Document -mflip-mips16.
689
690 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
691
692         * config/mips/mips.c (mips_legitimize_tls_address): Call sorry
693         if we encounter TLS address in MIPS16 mode.
694         (mips_legitimize_const_move): Check cannot_force_const_mem for
695         the (const (plus symbol offset)) case; this forces invalid TLS
696         address in MIPS16 mode to be caught by the above call to sorry.
697         (override_options): Don't reset targetm.have_tls in MIPS16 mode,
698         because that now enables emutls, which is not ABI compatible
699         with native TLS in non-MIPS16 mode.
700
701 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
702
703         Add target hook invoked when cfun changes.
704
705         * doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document.
706         * target.h (struct gcc_target): Add set_current_function.
707         * target-def.h (TARGET_SET_CURRENT_FUNCTION): Define.
708         (TARGET_INITIALIZER): Add initializer for set_current_function.
709         * tree.h (push_struct_function): New.
710         * tree-inline.h (push_cfun, pop_cfun): Move declarations to...
711         * function.h: Here.
712         (set_cfun): Declare.
713         * tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to...
714         * function.c: Here.
715         (push_function_context_to): Use allocate_struct_function
716         to create null context, not init_dummy_function_start.  Use set_cfun.
717         (pop_function_context_from): Use set_cfun.
718         (in_dummy_function): New.
719         (invoke_set_current_function_hook): New.
720         (set_cfun): New.
721         (push_cfun, pop_cfun): Use set_cfun.
722         (push_struct_function): New.
723         (allocate_struct_function): Call invoke_set_current_function_hook
724         before returning.
725         (prepare_function_start): Don't set cfun here.  Remove unused
726         argument; fix all callers.
727         (init_dummy_function_start): Fiddle with in_dummy_function.  Call
728         push_struct_function.
729         (init_function_start): Set cfun here.
730         (expand_dummy_function_end): Fiddle with in_dummy_function.  Pop cfun.
731         * omp-low.c (create_omp_child_function): Use push_struct_function
732         and pop_cfun to save/restore state.
733         (expand_omp_parallel): Remove unused saved_cfun variable.
734         * cgraphunit.c (ipa_passes): Use set_cfun.
735         * gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here.
736         * dwarf2out.c (dwarf2out_abstract_function): Likewise.
737         * matrix-reorg.c (transform_allocation_sites): Likewise.
738         (matrix_reorg): Use set_cfun.
739         * gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here.
740         * tree-optimize.c (tree_rest_of_compilation): Remove one redundant
741         assignment to cfun; use set_cfun for the other.
742         * tree-cfg.c (move_sese_region_to_fn): Use set_cfun.
743         (dump_function_to_file): Use push_cfun/pop_cfun here.
744         * c-decl.c (finish_function): Use set_cfun.
745
746 2007-09-05  Kenneth Zadeck <zadeck@naturalbridge.com>
747
748         * regrename.c (rerename_optimize): Use deferred rescanning and
749         insert explicit calls to rescan insns when changed.
750         
751 2007-09-05  Jan Hubicka  <jh@suse.cz>
752
753         * optabs.c (libfunc_entry): Change optab to integer.
754         (hash_libfunc, convert_optab_libfunc, optab_libfunc,
755         set_optab_libfunc, set_conv_libfunc): Use optable indexes instead
756         of pointers for hashing.
757
758 2007-09-05  Jan Hubicka  <jh@suse.cz>
759
760         * regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing
761         verifier.
762         * fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise.
763         * see.c (pass_see): Likewise.
764         * tracer.c (pass_tracer): Likewise.
765         * postreload-gcse.c (pass_gcse2): Likewise.
766         * postreload.c (pass_postreload_cse): Likewise.
767         * mode-switching.c (pass_mode_switching): Likewise.
768         * modulo-sched.c (pass_sms): Likewise.
769         * cse.c (cse_insn): Likewise.
770         * web.c (pass_web): Likweise.
771         * combine-stack-adj.c (pass_stack_adjustments): Likewise.
772         * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise.
773         * loop-init.c (pass_rtl_loop_init): Likewise.
774         (pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch,
775         pass_rtl_unroll_and, pass_rtl_doloop): Likewise.
776         * global.c (pass_global_alloc): Likewise.
777         * ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine,
778         pass_if_after_reload): Likewise.
779         * reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise.
780         * dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise.
781         * regmove.c (pass_regmove): Likewise.
782         * function.c (pass_thread_prologugues_epilogues): Likewise.
783         * gcse.c (pass_gcse): Likewise.
784         * rtl-factoring.c (pass_rtl_seqabstr): Likewise.
785         * lower-subreg.c (pass_lower_subreg2): Likewise.
786         * bt-load.c (pass_branch_target_load): Likewise.
787         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
788         * cfgcleanup.c (pass_jump, pass_jump2): Likewise.
789         * combine.c (pass_combine): Likewise.
790         * bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise.
791         (pass_partition_blocks): Likewise.
792         * var-tracking.c (pass_variable_track): Likewise.
793         * reg-stack.c (pass_stack_regs_run): Likewise.
794         * sched-rgn.c (pass_sched, pass_sched2): Likewise.
795         * passes.c (pass_postreload): Likewise.
796         (execute_function_todo): Add TODO_verify_rtl_sharing handling code.
797         * tree-pass.h (TODO_verify_rtl_sharing): New.
798         (TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
799         TODO_update_ssa_only_virtuals, TODO_remove_unused_locals,
800         TODO_set_props, TODO_df_finish, TODO_df_verify,
801         TODO_mark_first_instance, TODO_rebuild_alias): Renumber.
802
803 2007-09-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
804
805         * fold-const.c (all_ones_mask_p, sign_bit_p, simple_operand_p,
806         fold_real_zero_addition_p, reorder_operands_p,
807         div_if_zero_remainder, fold_undefer_overflow_warnings,
808         int_binop_types_match_p, fold_convert_const_int_from_int,
809         fold_convert_const_int_from_real,
810         fold_convert_const_int_from_fixed,
811         fold_convert_const_real_from_real,
812         fold_convert_const_real_from_fixed,
813         fold_convert_const_fixed_from_fixed,
814         fold_convert_const_fixed_from_int,
815         fold_convert_const_fixed_from_real, maybe_lvalue_p,
816         fold_checksum_tree, fold_check_failed, print_fold_checksum,
817         debug_fold_checksum, multiple_of_p): Constify.
818         * tree-flow-inline.h (get_lineno): Likewise.
819         * tree-flow.h (get_lineno): Likewise.
820         * tree-object-size.c (compute_object_offset, addr_object_size,
821         alloc_object_size, pass_through_call): Likewise.
822         * tree-pretty-print.c (op_symbol, print_call_name,
823         print_struct_decl, do_niy): Likewise.
824         * tree.h (fold_undefer_overflow_warnings, multiple_of_p,
825         debug_fold_checksum): Likewise.
826
827 2007-09-04  Steven Bosscher  <steven@gcc.gnu.org>
828
829         PR middle-end/33029
830         * lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL
831         note, remove the associated REG_RETVAL note.
832
833 2007-09-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
834
835         * config.gcc (powerpc*-*-*): Install
836         spu2vmx.h, vec_types.h, and si2vmx.h headers.
837         * config/rs6000/spu2vmx.h: New header.
838         * config/rs6000/si2vmx.h: New header.
839         * config/rs6000/vec_types.h: New header.
840
841 2007-09-05  Ben Elliston  <bje@au.ibm.com>
842
843         * varasm.c (initializer_constant_valid_p): Fix comment typo.
844
845 2007-09-05  Ben Elliston  <bje@au.ibm.com>
846
847         * config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint,
848         not `m' for *ptrp.
849         (__stdcx): Make asm volatile.
850         (__stwcx, __stdcx): Return only 0 or 1.
851
852 2007-09-05  Jan Hubicka  <jh@suse.cz>
853
854         Revert:
855
856         2007-09-04  Jan Hubicka  <jh@suse.cz>
857         * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
858
859         2007-09-04  Richard Guenther  <rguenther@suse.de>
860         * tree-ssa-operands.c (add_virtual_operand): Only mark
861         stores as has_volatile_ops if alias information is not available.
862
863 2007-09-05  Jakub Jelinek  <jakub@redhat.com>
864
865         * config/rs6000/tramp.asm: Include config.h.
866         Check __PIC__ or __pic__ macro instead of SHARED.
867
868         PR rtl-optimization/32300
869         * see.c (see_copy_insn): New function.
870         (see_def_extension_not_merged, see_merge_one_use_extension,
871         see_merge_one_def_extension): Use it.  Avoid changing
872         PREV_INSN/NEXT_INSN chains directly, insted emit insns
873         into sequences.  Call df_insn_delete on temporary insns
874         that won't be emitted into the insn stream.
875         (rest_of_handle_see): Turn off DF_DEFER_INSN_RESCAN
876         and run df_process_deferred_rescans () before run_fast_dce.
877
878         PR tree-optimization/33017
879         * tree-data-ref.c (split_constant_offset) <case SSA_NAME>: Don't
880         recurse for pure or const function calls.
881
882 2007-09-04  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
883
884         * c-format.c: Include alloc-pool.h.
885         (check_format_info_main): New argument fwt_alloc.  Use allocation
886         pool instead of GC.  Remove GC deallocation code.
887         (check_format_arg): Create allocation pool, pass it to
888         check_format_info_main and free it afterwards.
889         * Makefile.in (c-format.o): Add alloc-pool.h dependency.
890
891 2007-09-05  Ben Elliston  <bje@au.ibm.com>
892
893         * config/rs6000/ppu_intrinsics.h (__protected_stream_count):
894         Rename count macro arugment for clarity.
895         (__protected_unlimited_stream_set): Pass UG=1 to __dcbt_TH1000.
896         (__protected_stream_set): Likewise, pass 0.
897
898 2007-09-04  Jan Hubicka  <jh@suse.cz>
899
900         * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
901
902 2007-09-04  Jan Hubicka  <jh@suse.cz>
903
904         * invoke.texi (-finline-small-functions): Document.
905         * ipa-inline.c (cgraph_default_inline_p): Do not use DECL_INLINE
906         when deciding what is inlinable.
907         (cgraph_decide_recursive_inlining): Handle flag_inline_functions.
908         (cgraph_decide_inlining_of_small_function): Handle new flags.
909         (cgraph_decide_inlining_incrementally): Likewise.
910         * opts.c (decode_options): Enable flag_inline_small_functions at -O2
911         * common.opt (finline-small-functions): New.
912         * Makefile.in (build/gengtype.o-warn): Work around PR29478
913
914 2007-09-04  Richard Guenther  <rguenther@suse.de>
915
916         * tree-ssa-operands.c (add_virtual_operand): Only mark
917         stores as has_volatile_ops if alias information is not available.
918
919 2007-09-04  Andrew Haley  <aph@redhat.com>
920
921         * config/arm/libgcc-bpabi.ver: Add _Unwind_Backtrace as GCC_4.3.0.
922
923 2007-09-04  Andrew Haley  <aph@redhat.com>
924
925         * config/arm/libunwind.S (UNWIND_WRAPPER _Unwind_Backtrace): New.
926         * config/arm/unwind-arm.h (__gnu_Unwind_Backtrace): New.
927         * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): New.
928
929 2007-09-04  Emmanuel Thome  <Emmanuel.Thome@inria.fr>
930
931         PR c++/14178
932         * common.opt: Mention ABI version 2 in comment.
933
934 2007-09-04  Jan Hubicka  <jh@suse.cz>
935
936         * optabs.c (debug_optab_libfunc): Update; make available to gdb.
937         (libfunc_entry): New structure.
938         (libfunc_hash): New hashtable.
939         (hash_libfunc): New function.
940         (eq_libfunc): New function.
941         (convert_optab_libfunc): New function.
942         (optab_libfunc): New function.
943         (expand_binop, sign_expand_binop, expand_twoval_binop_libfunc,
944         expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn,
945         expand_float, expand_fix, new_optab, new_convert_optab):
946          Update for new libfunc API.
947         (init_libfunc, init_integral_libfuncs,
948         init_floating_libfuncs, init_interclass_conv_libfuncs
949         init_intraclass_conv_libfuncs): Remove; reorganize all logic to:
950         (gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc,
951         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
952         gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc,
953         gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc,
954         gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc,
955         gen_extend_conv_libfunc): New.
956         (init_one_libfunc): Revamp for hashtables.
957         (set_conv_libfunc): Likewise.
958         (init_optabs): Initialize hashtable; use lazy initialization where
959         possible.
960         * optabs.h (optab_handlers): Move out of GGC.
961         (optab, convert_optab): Move out of GGC; add lazy gen info.
962         (code_to_optab, convert_optab_table, optab_table): Move out of GGC.
963         (optab_libfunc, convert_optab_libfunc): New.
964         * builtins.c (expand_builtin_powi): Update for new API.
965         * expr.c (convert_move): Likewise.
966         * expmed.c (expand_divmod): Likewise.
967
968 2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
969
970         * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the
971         GOT pointer only if there is a constant pool.  Use the allocated space
972         for SPE also.
973
974 2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>
975
976         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct
977         typo for AltiVec.
978
979 2007-09-04  Revital Eres  <eres@il.ibm.com>
980             Richard Guenther  <rguenther@suse.de>
981             R. Clint Whaley  <whaley@cs.utsa.edu>
982
983         * doc/invoke.texi (-fassociative-math, -freciprocal-math):
984         Document new flags.
985         * tree-tailcall.c (process_assignment): Use -fassociative-math
986         when reodering operands of floating-point type.
987         * fold-const.c (fold_comparison, fold_binary): Use
988         -fassociative-math and -freciprocal-math instead of
989         -funsafe-math-optimization flag.
990         * toplev.h (set_unsafe_math_optimizations_flags): Declare function.
991         * tree-ssa-math-opts.c (gate_cse_reciprocals): Use
992         -freciprocal-math instead of -funsafe-math-optimizations.
993         * opts.c (set_fast_math_flags): Set -freciprocal-math and
994         -fassociative-math when -ffast-math is set.
995         (set_unsafe_math_optimizations_flags): New Function
996         to set -freciprocal-math and -fassociative-math when
997         -funsafe-math-optimizations is set.
998         (common_handle_option): Call it.
999         * tree-vectorizer.c (vect_is_simple_reduction): Use
1000         -fassociative-math when doing reduction on floats.
1001         * loop-unroll.c (analyze_insn_to_expand_var): Use
1002         -fassociative-math when expanding an accumulator of type float.
1003         * simplify-rtx.c (simplify_binary_operation_1): Use
1004         -fassociative-math and -freciprocal-math when reordeing operands
1005         of floating-point type.
1006         * combine.c (combine_simplify_rtx): Likewise.
1007         * tree-ssa-reassoc.c (break_up_subtract_bb, reassociate_bb):
1008         Likewise.
1009         * common.opt (-fassociative-math, -freciprocal-math): New flags.
1010
1011 2007-09-04  Paolo Carlini  <pcarlini@suse.de>
1012
1013         PR c++/18608
1014         * doc/install.texi (--enable-__cxa_atexit): Fix typo.
1015
1016 2007-09-04  Jan Hubicka  <jh@suse.cz>
1017
1018         * regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop.
1019
1020 2007-09-04  Jan Hubicka  <jh@suse.cz>
1021
1022         * regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR
1023         and corresponding MATCH_DUP.
1024
1025 2007-09-04  Uros Bizjak  <ubizjak@gmail.com>
1026
1027         PR middle-end/33187
1028         * combine.c (subst): Do not try to simplify X if it represents load
1029         of FP constant from the constant pool via float extension.
1030
1031 2007-09-04  Ben Elliston  <bje@au.ibm.com>
1032
1033         * c-opts.c: Include "tm_p.h".
1034         * Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency.
1035
1036 2007-09-04  Richard Guenther  <rguenther@suse.de>
1037
1038         PR tree-optimization/33291
1039         * tree-pretty-print.c (dump_generic_node): Dump all
1040         qualifiers for pointer types, not only first.  Dump
1041         qualifiers for aggregate types as well.
1042         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always
1043         use the canonical type for building ARRAY_REFs.
1044         * gimplify.c (canonicalize_addr_expr): Clean up.  The
1045         correct validness check is compatibility of the pointer
1046         types.  Always use the canonical type for building
1047         ARRAY_REFs and ADDR_EXPRs.
1048         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert
1049         change that disabled propagation of ADDR_EXPRs into statements
1050         with volatile ops.
1051
1052 2007-09-03  Zack Weinberg  <zack@codesourcery.com>
1053
1054         * config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart)
1055         (umulsi3_highpart): Make into expanders; existing insns are
1056         now named *[insn]_nov6.  Add stars to existing [insn]_v6
1057         counterparts' names.
1058
1059 2007-09-03  Daniel Jacobowitz  <dan@codesourcery.com>
1060
1061         * Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o)
1062         (unprotoize.o): Remove SHLIB_MULTILIB.
1063
1064 2007-09-03  Eric Weddington  <eweddington@cso.atmel.com>
1065
1066         * doc/extend.texi: Document progmem attribute for AVR.
1067
1068 2007-09-03  Anatoly Sokolov <aesok@post.ru>
1069
1070         PR target/28902
1071         * config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define.
1072
1073 2007-09-03  Zack Weinberg  <zack@codesourcery.com>
1074
1075         * optabs.c (expand_ffs): Initialize val and defined_at_zero
1076         to avoid warnings.
1077
1078         * optabs.c: Remove unnecessary forward declarations.
1079         (expand_unop_direct): New, broken out of expand_unop.
1080         (expand_doubleword_clz): New.
1081         (expand_ctz): Move above expand_ffs.  Use
1082         start_sequence, end_sequence, add_equal_note, and
1083         expand_unop_direct.  Add more commentary.
1084         (expand_ffs): Try both ctz optab and expand_ctz.
1085         Generate a test and branch if the hardware doesn't give us
1086         a useful value for input zero.  Style improvements similar to
1087         expand_ctz.
1088
1089         * config/arm/arm.md (ffssi2, ctzsi2): Delete.
1090
1091 2007-09-03  Zack Weinberg  <zack@codesourcery.com>
1092
1093         * config.gcc: Delete stanza for arm-semi-aof and
1094         armel-semi-aof targets.
1095         * config/arm/arm-protos.h
1096         * config/arm/arm.c
1097         * config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks;
1098         make all #ifndef AOF_ASSEMBLER blocks unconditional.  Also
1099         delete aof_pic_label and remove mention of AOF in comments.
1100         * config/arm/arm.md: Delete patterns used only for AOF assembly.
1101         * config/arm/aof.h
1102         * config/arm/semiaof.h
1103         * config/arm/t-semi: Delete file.
1104
1105 2007-09-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1106
1107         * system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX,
1108         CONST_CAST_BB): New macros for type-specific casts.
1109         (CONST_CAST): Add a TYPE parameter and define it in terms of
1110         CONST_CAST2.
1111
1112         * c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST.
1113         * c-lex.c (cb_ident, lex_string): Likewise,
1114         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise,
1115         * config/i386/i386.c (ix86_function_regparm,
1116         ix86_function_sseregparm): Use CONST_CAST_TREE.
1117         * config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for
1118         CONST_CAST.
1119         * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
1120         give_switch, set_multilib_dir): Likewise,
1121         * gengtype-parse.c (string_seq, typedef_name): Likewise,
1122         * gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE.
1123         * jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX.
1124         * passes.c (execute_one_pass): Supply a TYPE for CONST_CAST.
1125         * prefix.c (update_path): Likewise,
1126         * pretty-print.c (pp_base_destroy_prefix): Likewise,
1127         * rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX.
1128         * tree-cfg.c (tree_can_merge_blocks_p,
1129         tree_block_ends_with_condjump_p): Use CONST_CAST_BB.
1130         * tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE.
1131         * tree.c (build_string): Supply a TYPE for CONST_CAST.
1132         (attribute_list_contained): Use CONST_CAST_TREE.
1133
1134 2007-09-03  Krister Walfridsson  <cato@df.lth.se>
1135
1136         * config/netbsd-elf.h (USE_LD_AS_NEEDED): Define.
1137
1138 2007-09-03  Richard Sandiford  <richard@codesourcery.com>
1139
1140         PR middle-end/33290
1141         * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs
1142         before forcing them into a register.
1143
1144 2007-09-03  Richard Sandiford  <richard@codesourcery.com>
1145
1146         * config/mips/mips.md (fetchop_bit): Use define_code_iterator
1147         rather than define_code_macro.
1148
1149 2007-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1150
1151         * gcc.c (xputenv): New function.
1152         (putenv_from_prefixes): Use xputenv instead of putenv.
1153         (process_command): Use xputenv instead of putenv.
1154         (set_collect_gcc_options): Use xputenv instead of putenv.
1155         (main): Use xputenv instead of putenv.
1156
1157 2007-09-03  Jesper Nilsson  <jesper.nilsson@axis.com>
1158
1159         * config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe
1160         availability of swap instruction.
1161         * config/cris/cris.md (bswapsi2): Implement using swap instruction.
1162
1163 2007-09-03  Revital Eres  <eres@il.ibm.com>
1164
1165         * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update
1166         Documentation.
1167
1168 2007-09-03  Vladimir Yanovsky  <yanov@il.ibm.com>
1169             Ayal Zaks  <zaks@il.ibm.com>
1170             Revital Eres  <eres@il.ibm.com>
1171
1172         * modulo-sched.c (ps_insert_empty_row, verify_partial_schedule,
1173         compute_split_row): New functions.
1174         (ps_unschedule_node): Remove.
1175         (normalize_sched_times): Iterate over the already scheduled
1176         insns instead of the number of nodes.
1177         (MAX_SPLIT_NUM): New definition.
1178         (sms_schedule_by_order): Change the scheduling heuristic to
1179         avoid useless increases of initiation interval ii.
1180         (get_sched_window): Add dump printouts.
1181
1182 2007-09-02  David Daney  <ddaney@avtrex.com>
1183
1184         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP, UNSPEC_SYNC_OLD_OP,
1185         UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE): New define_constants.
1186         (optab, insn): Add more attributes.
1187         (fetchop_bit): New code macro.
1188         (immediate_insn): New code macro attribute.
1189         (sync): Change condition to ISA_HAS_SYNC.
1190         (rdhwr): Change predicate for operand 0 to register_operand.
1191         (memory_barrier): New expand.
1192         (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
1193         sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
1194         sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
1195         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1196         sync_new_nand<mode>, sync_lock_test_and_set<mode>): New insns.
1197         * config/mips/mips.h (ISA_HAS_SYNC, ISA_HAS_LL_SC): New ISA predicates.
1198         (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
1199         MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
1200         MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): New Macros.
1201         
1202 2007-09-03  Jesper Nilsson  <jesper.nilsson@axis.com>
1203             Hans-Peter Nilsson  <hp@axis.com>
1204
1205         * config/cris/cris.h (TARGET_HAS_LZ, CLZ_DEFINED_VALUE_AT_ZERO):
1206         Defined to describe availability and behavior of CLZ.
1207         * config/cris/cris.md (clzsi2): Implement using lz instruction.
1208         * config/cris/cris.opt: Tweak comment for "-metrax4".
1209         * config/cris/arit.c (LZ): When defined, define as __builtin_clz.
1210         * longlong.h [__CRIS__ && __CRIS_arch_version >= 3]
1211         (count_leading_zeros): Define.
1212
1213 2007-09-01  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1214
1215         * ggc-page.c (ggc_pch_read): Call validate_free_objects.
1216
1217 2007-09-02  Joseph Myers  <joseph@codesourcery.com>
1218
1219         PR middle-end/33272
1220         * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter
1221         decayed from array.
1222
1223 2007-09-01  Kazu Hirata  <kazu@codesourcery.com>
1224
1225         * config/arm/arm.c, config/rs6000/ppu_intrinsics.h,
1226         config/spu/spu.c, df-scan.c, fixed-value.c, fold-const.c,
1227         ginclude/tgmath.h, haifa-sched.c, optabs.c, recog.c,
1228         sched-deps.c, sched-int.h, system.h, target.h,
1229         tree-ssa-live.c, tree-vect-transform.c, tree-vectorizer.c,
1230         tree.def: Fix comment typos.
1231
1232 2007-09-01  Kazu Hirata  <kazu@codesourcery.com>
1233
1234         * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove.
1235         (override_options): Turn on -mstrict-align on non-ColdFire
1236         targets.
1237         * config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment.
1238
1239 2007-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1240
1241         * c-common.c (const_strip_array_types): Delete.
1242         * c-common.h (const_strip_array_types): Likewise.
1243         * emit-rtl.c (const_next_insn, const_previous_insn,
1244         const_next_nonnote_insn, const_prev_nonnote_insn,
1245         const_next_real_insn, const_prev_real_insn,
1246         const_next_active_insn, const_prev_active_insn, const_next_label,
1247         const_prev_label): Delete.
1248         * gimple-low.c (block_may_fallthru): Use expr_last.
1249         * jump.c (reversed_comparison_code_parts): Use prev_nonnote_insn.
1250         * rtl.h (const_previous_insn, const_next_insn,
1251         const_prev_nonnote_insn, const_next_nonnote_insn,
1252         const_prev_real_insn, const_next_real_insn,
1253         const_prev_active_insn, const_next_active_insn, const_prev_label,
1254         const_next_label): Delete.
1255         * rtlanal.c (keep_with_call_p): Use next_nonnote_insn.
1256         * system.h (CONST_CAST): Update comment.
1257         * tree-cfg.c (tree_can_merge_blocks_p): Use last_stmt.
1258         (const_first_stmt, const_last_stmt): Delete.
1259         (tree_block_ends_with_condjump_p): Use last_stmt.
1260         * tree-flow.h (const_first_stmt, const_last_stmt): Delete.
1261         * tree-iterator.c (const_expr_first, const_expr_last,
1262         const_expr_only): Delete.
1263         * tree.c (const_lookup_attribute): Likewise.
1264         (attribute_list_contained): Use lookup_attribute.
1265         * tree.h (const_lookup_attribute, const_expr_first,
1266         const_expr_last, const_expr_only): Delete.
1267
1268 2007-09-01  Richard Guenther  <rguenther@suse.de>
1269
1270         * tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE
1271         instead of TREE_THIS_VOLATILE.
1272         * tree-ssa-operands.c (add_virtual_operand): Do not set
1273         has_volatile_ops.  Do not check s_ann for NULL.
1274         (get_indirect_ref_operands): Likewise.
1275         (get_expr_operands): Likewise.  For all reference trees
1276         set has_volatile_ops based on TREE_THIS_VOLATILE.  Also
1277         check base of reference for TREE_THIS_VOLATILE.
1278
1279 2007-09-01  Richard Guenther  <rguenther@suse.de>
1280
1281         * tree-cfg.c (verify_gimple_expr): Fix check for conversions
1282         between integral types.  Also allow conversions between
1283         pointer types.
1284
1285 2007-08-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1286
1287         * optabs.c (prepare_float_lib_cmp): Use
1288         libgcc_cmp_return_mode instead of word_mode.
1289         * config/dfp-bit.h: Likewise.
1290         * config/fp-bit.h: Likewise.
1291         * config/spu/spu.c (spu_libgcc_cmp_return_mode):
1292         New function.
1293         (spu_libgcc_shift_count_mode): New function.
1294         (TARGET_LIBGCC_CMP_RETURN_MODE): Define.
1295         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Define.
1296
1297 2007-08-31  Joseph Myers  <joseph@codesourcery.com>
1298
1299         * tree-pretty-print.c: Include output.h.
1300         (dump_decl_name, dump_generic_node): Use %wd with pp_printf, not
1301         HOST_WIDE_INT_PRINT_DEC.
1302         * Makefile.in (tree-pretty-print.o): Add dependency on output.h.
1303
1304 2007-08-31  Zdenek Dvorak  <ook@ucw.cz>
1305
1306         PR rtl-optimization/33224
1307         * loop-iv.c (latch_dominating_def): Check that the definition belongs
1308         to the analysed region.
1309
1310 2007-08-31  Richard Guenther  <rguenther@suse.de>
1311
1312         * function.c (allocate_struct_function): Do not set
1313         current_function_returns_pointer.
1314         * function.h (struct var_refs_queue): Remove.
1315         (struct simple_obstack_stack): Likewise.
1316         (struct function): Remove fixup_var_refs_queue member.
1317         Remove returns_pointer flag.
1318         (current_function_returns_pointer): Remove define.
1319
1320 2007-08-31  Nick Clifton  <nickc@redhat.com>
1321
1322         * tree-ssa-coalesce.c (compare_pairs): Use the elements as
1323         secondary keys in order to obtain a stable sort.
1324
1325 2007-08-31  Nick Clifton  <nickc@redhat.com>
1326
1327         PR target/33132
1328         * config/m32r/constraints.md: Add W constraint for integer zero.
1329         * config/m32r/m32r.md (get_pc): Use W and i constraints.
1330         Fix length calculation by using alternatives.
1331
1332 2007-08-31  Richard Sandiford  <richard@codesourcery.com>
1333
1334         * optabs.c (shift_optab_p, commutative_optab_p): New functions,
1335         split out from expand_binop.
1336         (avoid_expensive_constant): New function.
1337         (expand_binop_directly): Remove commutative_op argument and
1338         (expand_binop_directly): Remove commutative_op argument and
1339         call cummutative_optab_p instead.  Do not change op0 or op1
1340         when swapping xop0 and xop1.  Apply avoid_expensive_constant
1341         to each argument after potential swapping.  Enforce the
1342         canonical order of commutative operands.
1343         (expand_binop): Use shift_optab_p and commutative_optab_p.
1344         Update the calls to expand_binop_directly.  Only force constants
1345         into registers when widening an operation.  Only swap operands
1346         once a direct expansion has been rejected.
1347         (expand_twoval_binop): Only force constants into registers when
1348         using a direct expansion.
1349
1350 2007-08-31  Maxim Kuvyrkov  <maxim@codesourcery.com>
1351
1352         * sched-deps.c (update_dep): Mark arguments with ATTRIBUTE_UNUSED.
1353         (sched_analyze_insn): Don't postprocess speculative dependencies when
1354         target has no scheduling.
1355         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Fix
1356         'uninitialized' warning.
1357
1358 2007-08-31  Richard Guenther  <rguenther@suse.de>
1359
1360         * tree.c (build_complex_type): Always set TYPE_NAME for
1361         comples types.
1362
1363 2007-08-31  Olivier Hainque  <hainque@adacore.com>
1364
1365         * config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New
1366         internal macro. Default alignment factor for csect directives, chosen
1367         to match what BIGGEST_ALIGNMENT allows.
1368         (DATA_SECTION_ASM_OP): Use it.
1369         * config/rs6000/rs6000.c
1370         (rs6000_xcoff_output_readonly_section_asm_op):
1371         Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR.
1372         (rs6000_xcoff_output_readwrite_section_asm_op): Likewise.
1373         
1374 2007-08-31  Olivier Hainque  <hainque@adacore.com>
1375
1376         * dbxout.c (dbxout_block): Move declaration within the first
1377         #if defined (DBX_DEBUGGING_INFO) block.  Rearrange another such
1378         block to include the definition, together with the associated
1379         helpers.
1380
1381 2007-08-31  David Edelsohn  <edelsohn@gnu.org>
1382             Revital Eres  <eres@il.ibm.com>
1383
1384         * doc/invoke.texi (-mpaired): Document flag.
1385         * config.gcc: Include paired.h in powerpc extra_headers and
1386         750cl.h in powerpc-*-linux*paired*.
1387         * config/rs6000/rs6000.opt (-mpaired): New flag.
1388         * config/rs6000/rs6000.c (paired_init_builtins,
1389         paired_expand_builtin, paired_expand_lv_builtin,
1390         paired_expand_stv_builtin, paired_expand_predicate_builtin):
1391         New functions to support the paired single builtin functions.
1392         (rs6000_hard_regno_mode_ok): Handle PAIRED_VECTOR_MODE.
1393         (def_builtin, bdesc_3arg, bdesc_2arg, bdesc_1arg): Add paired
1394         single builtins.
1395         (bdesc_paired_preds): New structure for paired predicate
1396         instructions.
1397         (rs6000_expand_builtin): Expand paired single builtins.
1398         (rs6000_init_builtins): Init paired single builtins.
1399         (rs6000_common_init_builtins): Add v2sf_ftype_v2sf_v2sf_v2sf.
1400         Rename v2sf_ftype_v2sf_v2sf to v2sf_ftype_v2sf_v2sf_spe
1401         and v2sf_ftype_v2sf_spe to v2sf_ftype_v2sf.  Add new types
1402         v2sf_ftype_v2sf_v2sf and v2sf_ftype_v2sf.
1403         (rs6000_vector_mode_supported_p): Support paired vector mode.
1404         * config/rs6000/rs6000.h: (UNITS_PER_PAIRED_WORD,
1405         PAIRED_VECTOR_MODE, PAIRED_SIMD_REGNO_P, TARGET_PAIRED_FLOAT):
1406         New.
1407         (LOCAL_ALIGNMENT): Handle PAIRED_VECTOR_MODE.
1408         (DATA_ALIGNMENT): Likewise.
1409         (UNITS_PER_SIMD_WORD): Handle PAIRED_VECTOR_MODE.
1410         (rs6000_builtins): Add PAIRED builtins.
1411         * config/rs6000/rs6000.md: Include paired.md.
1412         * config/rs6000/paired.h: New.
1413         * config/rs6000/paired.md: New.
1414         * config/rs6000/750cl.h: New.
1415         * config/rs6000/spe.md: Recognize movv2sf instruction for 750cl.
1416
1417 2007-08-30  Ollie Wild  <aaw@google.com>
1418
1419         * c-opts.c (c_common_handle_option): Support -fno-directives-only.
1420         * gcc.c (default_compilers): Add -fno-directives-only to
1421         @assembler-with-cpp.
1422
1423 2007-08-30  Sandra Loosemore  <sandra@codesourcery.com>
1424
1425         PR middle-end/33211
1426
1427         * regclass.c (initial_fixed_regs): Revert previous change and make
1428         it const again.
1429         (initial_call_used_regs): Likewise.
1430         (initial_call_really_used_regs): Delete, reverting previous addition.
1431         (initial_reg_names): Likewise.
1432         (init_reg_sets): Revert previous change.
1433         (saved_fixed_regs): New.
1434         (saved_call_used_regs): New.
1435         (saved_call_really_used_regs): New.
1436         (saved_reg_names): New.
1437         (save_register_info): New.
1438         (restore_register_info): New.
1439         (init_reg_sets_1): Replace reset of register info with call to
1440         restore_register_info.
1441         * rtl.h (save_register_info): Declare.
1442         * toplev.c (backend_init): Call save_register_info.
1443
1444 2007-08-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1445
1446         * tree-ssa-propagate.c (set_rhs): Remove the copied annotation
1447         from the original statement.
1448
1449 2007-08-30  Chao-ying Fu  <fu@mips.com>
1450
1451         * c-lex.c (interpret_fixed): Declare.
1452         (interpret_float): Process _Fract and _Accum.
1453         (interpret_fixed): New function.
1454         * final.c (output_addr_const): Process CONST_FIXED.
1455         * simplify-rtx.c (simplify_const_unary_operation): Handle US_NEG.
1456         (simplify_binary_operation_1): Handle US_ASHIFT, SS_MULT, US_MULT,
1457         SS_DIV, US_DIV.
1458         (simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV,
1459         US_DIV, US_ASHIFT.
1460         (simplify_immed_subreg): Support CONST_FIXED.
1461         Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
1462         (simplify_subreg): Support CONST_FIXED.
1463
1464 2007-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1465
1466         * config/rs6000/ppu_intrinsics.h: New file.
1467         * config.gcc (powerpc*-*-* <extra_headers>): Install
1468         ppu_intrinsics.h.
1469
1470 2007-08-30  Kenneth Zadeck <zadeck@naturalbridge.com>
1471
1472         * cfg.c (dump_flow_info): Change to also print entry and exit
1473         block info.
1474         * print-rtl.c (print_rtl_single): Allow to print rtl with
1475         -fdump-unnumbered.
1476         
1477 2007-08-30  Kenneth Zadeck <zadeck@naturalbridge.com>
1478
1479         * df-core.h (df_dump_region): New function.
1480         * df.h (df_dump_region): New function.
1481         * loop-invariant.c (find_defs): Add call to df_dump_region.
1482         * loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to
1483         df_dump_region.
1484         
1485 2007-08-30  Jakub Jelinek  <jakub@redhat.com>
1486
1487         PR target/33168
1488         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Return
1489         true if any of the compare_section_name calls returned true,
1490         rather than if any returned false.
1491
1492 2007-08-30  Richard Guenther  <rguenther@suse.de>
1493
1494         PR tree-optimization/33199
1495         * tree-ssa-structalias.c (handle_lhs_call): New function.
1496         (find_func_aliases): In non-IPA mode make sure that for
1497         calls that return a pointer we add a constraint for the
1498         result to point to anything.
1499
1500 2007-08-30  Richard Guenther  <rguenther@suse.de>
1501
1502         * doc/invoke.texi (-mveclibabi): Document new target option.
1503         * config/i386/i386.opt (-mveclibabi): New target option.
1504         * config/i386/i386.c (ix86_veclib_handler): Handler for
1505         vectorization library support.
1506         (override_options): Handle the -mveclibabi option, initialize
1507         the vectorization library handler.
1508         (ix86_builtin_vectorized_function): As fallback call the
1509         vectorization library handler, if set.
1510         (ix86_veclibabi_acml): New static function for ACML ABI style
1511         vectorization support.
1512
1513 2007-08-30  Jakub Jelinek  <jakub@redhat.com>
1514
1515         * config/rs6000/rs6000.c (rs6000_emit_sync): For QI or HI mode
1516         used_m, even if it is 32-bit aligned, adjust used_m MEM to have
1517         SImode and update m.  Don't run gen_lowpart_common on arbitrary
1518         memory address, force it to register first.
1519
1520         PR middle-end/32758
1521         * dce.c (dce_process_block): Don't delete setters of
1522         artificially used registers.
1523
1524 2007-08-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1525
1526         * config/s390/s390.md ("*add<mode>3_alc_carry1_cc",
1527         "*add<mode>3_alc_carry1_cconly", "*add<mode>3_alc_carry2_cc",
1528         "*add<mode>3_alc_carry2_cconly"): New insn definitions.
1529
1530 2007-08-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1531
1532         * config/s390/s390.c (s390_expand_addcc): Emit canonical alc
1533         pattern.
1534         * config/s390/s390.md ("*add<mode>3_alc_cc", "*add<mode>3_alc",
1535         "addti3", "*adddi3_31z", "*scond<mode>"): Make alc pattern canonical.
1536
1537 2007-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1538
1539         * system.h: Activate -Wcast-qual as warning-only.
1540
1541 2007-08-29  Paolo Bonzini  <bonzini@gnu.org>
1542
1543         PR target/33168
1544         * config/rs6000/rs6000.c (compare_section_name): New function.
1545         (rs6000_elf_in_small_data_p): Compare section prefixes instead
1546         of full name.
1547
1548 2007-08-29  Olivier Hainque  <hainque@adacore.com>
1549
1550         * xcoffout.c: #include debug.h.
1551         * Makefile.in (xcoffout.o): Add debug.h dependency.
1552
1553 2007-08-29  Uros Bizjak  <ubizjak@gmail.com>
1554
1555         * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
1556         Change CONST_VECTOR_ELT to XVECEXP in elem calculation.
1557
1558 2007-08-29  Richard Guenther  <rguenther@suse.de>
1559
1560         * tree-pretty-print.c (dump_generic_node): Print
1561         label DECL_UID as D.%u.
1562         * tree-dfa.c (dump_variable): Print DECL_UID as D.%u.
1563
1564 2007-08-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1565
1566         * gcc/builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.
1567         * gcc/builtins.def (BUILT_IN_REALLOC): New builtin.
1568
1569 2007-08-29  Douglas Gregor  <doug.gregor@gmail.com>
1570
1571         PR c++/33194
1572         * tree.c (build_type_attribute_qual_variant): Set canonical types
1573         on the final, unqualified attribute variant before building the
1574         qualified version.
1575
1576 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
1577
1578         * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument
1579         order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu.
1580
1581 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
1582
1583         Revert
1584         2007-08-29  Jie Zhang  <jie.zhang@analog.com>
1585         * config/bfin/bfin.md (composev2hi): Put operands into vector
1586         with correct order.
1587
1588 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
1589
1590         * config/bfin/bfin.md (composev2hi): Put operands into vector
1591         with correct order.
1592
1593 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
1594
1595         * config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text
1596         attribute when appropriate.
1597         (bfin_handle_l1_text_attribute): New.
1598         (bfin_handle_l1_data_attribute): New.
1599         (bfin_attribute_table): Add attributes: l1_text, l1_data,
1600         l1_data_A and l1_data_B.
1601         * doc/extend.texi (node Function Attributes): Document l1_text
1602         function attribute.
1603         (Variable Attributes): Add Blackfin subsection. Document l1_data,
1604         l1_data_A and l1_data_B variable attributes.
1605
1606 2007-08-28  Jie Zhang  <jie.zhang@analog.com>
1607
1608         * config/bfin/bfin.opt (minline-plt): Add.
1609         * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit
1610         call to global functions.
1611         * doc/invoke.texi (Option Summary): Mention -minline-plt.
1612         (Blackfin Options): Document -minline-plt.
1613
1614 2007-08-28  Nathan Sidwell  <nathan@codesourcery.com>
1615
1616         * config/m68k/m68k.c (m68k_get_function_kind): Assert we're never
1617         given a non-function.
1618         (m68k_ok_for_sibcall_p): Only sibcall functions of the same kind.
1619
1620 2007-08-28  DJ Delorie  <dj@redhat.com>
1621
1622         * config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support.
1623
1624 2007-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1625
1626         * system.h (CONST_CAST): Avoid union for gcc-4.0.x.
1627
1628 2007-08-28  Richard Guenther  <rguenther@suse.de>
1629
1630         * tree.h (struct tree_function_decl): Increase size of
1631         function_code bitfield.
1632
1633 2007-08-28  Nathan Sidwell  <nathan@codesourcery.com>
1634             Kazu Hirata  <kazu@codesourcery.com>
1635
1636         * gcc/config/m68k/linux.h
1637         (M68K_HONOR_TARGET_STRICT_ALIGNMENT): Redefine as 0.
1638         * config/m68k/m68k.c (TARGET_RETURN_IN_MEMORY): New.
1639         (m68k_return_in_memory): New.
1640         * gcc/config/m68k/m68k.h (M68K_HONOR_TARGET_STRICT_ALIGNMENT):
1641         New.
1642
1643 2007-08-28  Uros Bizjak  <ubizjak@gmail.com>
1644
1645         PR target/32661
1646         * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
1647         Simplify nested VEC_SELECT (with optional VEC_CONCAT operator as
1648         operand) when top VEC_SELECT extracts scalar element.
1649         * config/i386/sse.md (*vec_extract_v4si_mem): New pattern.
1650         (*vec_extract_v4sf_mem): Ditto.
1651
1652 2007-08-28  Jakub Jelinek  <jakub@redhat.com>
1653
1654         PR middle-end/32370
1655         * passes.c (init_optimization_passes): Move pass_df_finish
1656         after pass_postreload sublist.
1657
1658         PR rtl-optimization/33148
1659         * simplify-rtx.c (simplify_unary_operation_1): Only optimize
1660         (neg (lt X 0)) if X has scalar int mode.
1661
1662         PR debug/32914
1663         * dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR
1664         initializer, use build_vector_from_ctor if possible to create
1665         VECTOR_CST out of it.  If vector initializer is not VECTOR_CST
1666         even after this, return NULL.
1667
1668 2007-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1669
1670         * c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST.
1671
1672 2007-08-28  Richard Guenther  <rguenther@suse.de>
1673
1674         * tree.h (DECL_DISREGARD_INLINE_LIMITS): New.
1675         (struct tree_function_decl): Make function_code a bitfield.
1676         Add disregard_inline_limits flag.
1677         * cgraphunit.c (cgraph_process_new_functions): Check
1678         DECL_DISREGARD_INLINE_LIMITS instead of disregard_inline_limits_p.
1679         (cgraph_preserve_function_body_p): Likewise.
1680         * ipa-inline.c (compute_inline_parameters): Likewise.
1681         * c-decl.c (finish_function): Set DECL_DISREGARD_INLINE_LIMITS
1682         for GNU C extern inline functions.
1683         (merge_decls): Merge DECL_DISREGARD_INLINE_LIMITS.
1684         * tree-inline.c (disregard_inline_limits_p): Remove.
1685         * tree-inline.h (disregard_inline_limits_p): Likewise.
1686         * c-common.c (handle_always_inline_attribute): Set
1687         DECL_DISREGARD_INLINE_LIMITS.
1688         * langhooks.c (add_builtin_function): Verify the function code
1689         fits in the bitfield.
1690
1691 2007-08-28  Mircea Namolaru  <namolaru@il.ibm.com>
1692             Vladimir Yanovsky  <yanov@il.ibm.com>
1693             Revital Eres  <eres@il.ibm.com>
1694             Andrey Belevantsev  <abel@ispras.ru>
1695
1696         * config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched
1697         is set.
1698         * modulo-sched.c: Add documentation regarding do-loop.
1699         (doloop_register_get): Change number of arguments to support
1700         the new do-loop pattern and check whether COUNT_REG has no other
1701         occurences in the loop besides in the control part.
1702         (duplicate_insns_of_cycles): Do not duplicate the insn which
1703         changes count_reg as it is already adjusted.
1704         (generate_prolog_epilog): New argument to support the new
1705         do-loop pattern.  Change the subtract instruction to use
1706         expand_simple_binop.  Call duplicate_insns_of_cycles with new
1707         argument.
1708         (sms_schedule): Call doloop_register_get and
1709         generate_prolog_epilog with new argument.  Do not handle loops
1710         with single sets insns with subreg in their lhs.
1711         * loop-doloop.c (doloop_optimize): Support for another do-loop
1712         pattern.
1713         (doloop_condition_get): Gets an instruction instead of a pattern
1714         and change the return condition when the do-loop pattern is
1715         not parallel.
1716         * ddg.c (create_ddg_dep_from_intra_loop_link): Handle only reg
1717         deps when considering to not create edges.
1718
1719 2007-08-27  Alexandre Oliva  <aoliva@redhat.com>
1720
1721         * doc/extend.texi (gnu_inline funtion attribute): Document C++
1722         behavior.
1723
1724 2007-08-27  Jason Merrill  <jason@redhat.com>
1725
1726         PR c++/31337
1727         * gimplify.c (gimplify_modify_expr): Discard the assignment of 
1728         zero-sized types after calling gimplify_modify_expr_rhs.
1729
1730 2007-08-27  Sandra Loosemore  <sandra@codesourcery.com>
1731
1732         * regclass.c (init_reg_autoinc): Fix typo.
1733
1734 2007-08-27  Daniel Berlin  <dberlin@dberlin.org>
1735         
1736         Fix PR tree-optimization/33173
1737         * tree-ssa-alias.c (find_used_portions): Fix reversed test.
1738
1739 2007-08-27  H.J. Lu  <hongjiu.lu@intel.com>
1740
1741         PR target/31385
1742         * config/i386/i386.h (VALID_DFP_MODE_P): New.
1743         * config/i386/i386.c (ix86_hard_regno_mode_ok): Allow DFP in
1744         GPR.
1745
1746 2007-08-27  Sandra Loosemore  <sandra@codesourcery.com>
1747             David Ung  <davidu@mips.com>
1748             Nigel Stephens <nigel@mips.com>
1749
1750         Separate target-specific initialization from general
1751         back-end initialization.
1752
1753         * toplev.c (init_alignments): New, split out from...
1754         (process_options): ...here.
1755         (backend_init_target): New, split out from...
1756         (backend_init): ...here.
1757         (lang_dependent_init_target): New, split out from...
1758         (lang_dependent_init): ...here.
1759         (target_reinit): New.
1760         * toplev.h (target_reinit): Declare.
1761         * expr.c (init_expr_target): Renamed from init_expr_once, since it
1762         now can be called more than once.  Update comments.
1763         * expr.h (init_expr_target): Likewise.
1764         * alias.c (init_alias_target): Renamed from init_alias_once, since it
1765         now can be called more than once.  Explicitly zero
1766         static_reg_base_value.
1767         * emit-rtl.c (init_emit_regs): New, split out from...
1768         (init_emit_once): Here.
1769         * regclass.c (initial_fixed_regs, initial_call_used_regs): Make
1770         non-const, so that changes from command-line arguments can overwrite
1771         values provided by the static initializers.
1772         (initial_call_really_used_regs): New, used similarly to the above.
1773         (initial_reg_names): Likewise.
1774         (last_mode_for_init_move_cost): Promoted function-local static to
1775         file-scope static to make it accessible outside init_move_cost.
1776         (init_reg_sets): Do not initialize fixed_regs and call_used_regs yet.
1777         Do not initialize inv_reg_alloc_order yet, either.  Do initialize
1778         reg_names since it is needed for parsing command-line options.
1779         (init_move_cost): Use last_mode_for_init_move_cost instead of
1780         function-local static.
1781         (init_reg_sets_1): Initialize fixed_regs, call_used_regs, and
1782         call_really_used_regs now.  Reinitialize reg_names.  Also
1783         initialize inv_reg_alloc_order.  Zero reg_class_subunion and
1784         reg_class_superunion.  Clear losing_caller_save_reg_set.
1785         Preserve global registers if called more than once.  Reset
1786         move cost, may_move_in_cost, may_move_out_cost, and
1787         last_mode_for_init_move_cost.
1788         (init_reg_modes_target): Renamed from init_reg_modes_once, since it
1789         can now be invoked more than once.  Update comments.
1790         (init_regs): Update comments.
1791         (fix_register): Update initial_fixed_regs, initial_call_used_regs,
1792         and initial_call_really_used_regs, instead of the non-initial 
1793         variables.  This allows us to save the command-line register settings
1794         after target reinitialization.
1795         (init_reg_autoinc): Zero forbidden_inc_dec_classes.
1796         * rtl.h (init_emit_regs): Declare.
1797         (init_reg_modes_target, init_alias_target): Renamed as described
1798         above.
1799         * reload1.c (init_reload): Update comments.
1800         * optabs.c (init_optabs): Likewise.
1801         * cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs.
1802         
1803 2007-08-26  Chao-ying Fu  <fu@mips.com>
1804
1805         * rtl.h (XCNMPFV): Preserve const-ness of parameters through use of
1806         __typeof().
1807
1808 2007-08-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1809
1810         * alias.c (memory_modified_1, memory_modified_in_insn_p):
1811         Constify.
1812         * basic-block.h (tree_predicted_by_p, rtl_predicted_by_p):
1813         Likewise.
1814         * bb-reorder.c (copy_bb_p): Likewise.
1815         * cfghooks.c (can_remove_branch_p, can_merge_blocks_p,
1816         predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
1817         block_ends_with_condjump_p): Likewise.
1818         * cfghooks.h (can_remove_branch_p, can_merge_blocks_p,
1819         predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
1820         block_ends_with_condjump_p): Likewise.
1821         * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
1822         * cfgrtl.c (can_delete_note_p, can_delete_label_p,
1823         rtl_can_merge_blocks, cfg_layout_can_merge_blocks_p,
1824         rtl_block_ends_with_call_p, rtl_block_ends_with_condjump_p,
1825         need_fake_edge_p, rtl_can_remove_branch_p): Likewise.
1826         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Use
1827         debug_true_const_tree instad of debug_true_tree.
1828         * debug.c (do_nothing_debug_hooks): Likewise.
1829         * debug.h (ignore_block, debug_true_const_tree): Constify.
1830         * dwarf2out.c (stack_adjust_offset, clobbers_queued_reg_save,
1831         dwarf2out_ignore_block, is_pseudo_reg, is_tagged_type,
1832         decl_ultimate_origin, block_ultimate_origin, lookup_decl_loc,
1833         same_dw_val_p, add_ranges, is_subrange_type, type_is_enum,
1834         dbx_reg_number, is_based_loc, field_type,
1835         simple_type_align_in_bits, simple_decl_align_in_bits,
1836         simple_type_size_in_bits, field_byte_offset, insert_float,
1837         type_tag, member_declared_type, is_redundant_typedef,
1838         secname_for_decl, is_inlined_entry_point): Likewise.
1839         * emit-rtl.c (const_next_insn, const_previous_insn,
1840         const_next_nonnote_insn, const_prev_nonnote_insn,
1841         const_next_real_insn, const_prev_real_insn,
1842         const_next_active_insn, const_prev_active_insn, const_next_label,
1843         const_prev_label): Likewise.
1844         * except.h (lookup_stmt_eh_region_fn, lookup_stmt_eh_region):
1845         Likewise.
1846         * haifa-sched.c (may_trap_exp, haifa_classify_insn,
1847         find_set_reg_weight, no_real_insns_p, find_set_reg_weight,
1848         sched_insn_is_legitimate_for_speculation_p): Likewise.
1849         * jump.c (reversed_comparison_code_parts,
1850         reversed_comparison_code, reversed_comparison, condjump_label):
1851         Likewise.
1852         * predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise.
1853         * reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned):
1854         Likewise.
1855         * rtl.h (const_previous_insn, const_next_insn,
1856         const_prev_nonnote_insn, const_next_nonnote_insn,
1857         const_prev_real_insn, const_next_real_insn,
1858         const_prev_active_insn, const_next_active_insn, const_prev_label,
1859         const_next_label, modified_between_p, modified_in_p,
1860         const_note_storeskeep_with_call_p, condjump_label,
1861         reversed_comparison, reversed_comparison_code,
1862         reversed_comparison_code_parts, memory_modified_in_insn_p,
1863         stack_regs_mentioned): Likewise.
1864         * rtlanal.c (modified_between_p, modified_in_p, const_note_stores,
1865         keep_with_call_p): Likewise.
1866         * sched-deps.c (deps_may_trap_p, sched_get_condition,
1867         conditions_mutex_p, sched_insns_conditions_mutex_psd_next_list,
1868         sd_lists_size, sd_lists_empty_p): Likewise.
1869         * sched-int.h (sched_insns_conditions_mutex_p,
1870         haifa_classify_insn, no_real_insns_p,
1871         sched_insn_is_legitimate_for_speculation_p, sd_next_list,
1872         sd_lists_size, sd_lists_empty_p): Likewise.
1873         * sdbout.c (sdb_debug_hooks): Likewise.
1874         * tree-cfg.c (tree_can_merge_blocks_p, is_ctrl_altering_stmt,
1875         stmt_ends_bb_p, tree_can_remove_branch_p, tree_can_duplicate_bb_p,
1876         -tree_block_ends_with_call_p, tree_block_ends_with_condjump_p):
1877         Likewise.
1878         * tree-eh.c (lookup_stmt_eh_region_fn, lookup_stmt_eh_region,
1879         tree_can_throw_internal): Likewise.
1880         * tree-flow-inline.h (phi_nodes): Likewise.
1881         * tree-flow.h (phi_nodesstmt_ends_bb_p, is_ctrl_altering_stmt,
1882         tree_can_throw_internal, lookup_stmt_eh_region): Likewise.
1883         * tree-gimple.c (const_get_call_expr_in): Likewise.
1884         * tree-gimple.h (const_get_call_expr_in): Likewise.
1885         * tree.c (const_lookup_attribute, attribute_list_equal,
1886         attribute_list_contained): Likewise.
1887         * tree.h (attribute_list_equal, attribute_list_contained,
1888         const_lookup_attribute): Likewise.
1889         * vmsdbgout.c (vmsdbgout_ignore_block): Likewise.
1890
1891 2007-08-26  Bernhard Fischer  <aldot@gcc.gnu.org>
1892
1893         * tree-ssa-sccvn.c, tree-ssa-sccvn.h, tree-vn.c,
1894         tree-ssa-pre.c: Remove unnecessary trailing whitespace.
1895
1896 2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>
1897
1898         PR target/32991
1899         * config/alpha/constraints.md: Delete "svn:mime-type" property
1900         with svn propdel "svn:mime-type".
1901
1902 2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>
1903
1904         PR middle-end/33181
1905         * ifcvt.c (noce_get_alt_condition): Make sure that the previous
1906         non NOTE insn doesn't cross basic block.
1907         (noce_try_abs): Likewise.
1908         (noce_process_if_block): Likewise.
1909
1910 2007-08-26  David Edelsohn  <edelsohn@gnu.org>
1911
1912         PR target/33151
1913         * config/rs6000/predicates.md (offsettable_mem_operand): Memory
1914         operand without auto-inc-dec.
1915         * config/rs6000/rs6000.md (floatsidf2_internal): Use
1916         offsettable_mem_operand.
1917         (floatunssidf2_internal): Same.
1918         (fix_truncdfsi2_internal): Same.
1919         (floatsidf_ppc64): Same.
1920         (floatunssidf_ppc64): Same.
1921         (fix_trunctfsi2_internal): Same.
1922
1923 2007-08-26  Bernhard Fischer  <aldot@gcc.gnu.org>
1924
1925         PR bootstrap/30620
1926         * Makefile.in (libbackend.o): Add gcov-iov.h dependency and
1927         pass defines needed for version.c.
1928
1929 2007-08-25  Joseph Myers  <joseph@codesourcery.com>
1930
1931         * configure.ac (--debug-prefix-map check): Change assembler
1932         version presumed to have feature to 2.18.
1933         * configure: Regenerate.
1934
1935 2007-08-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1936
1937         * c-common.c (vector_types_convertible_p,
1938         decl_with_nonnull_addr_p, c_promoting_integer_type_p,
1939         self_promoting_args_p): Constify.
1940         * c-common.h (has_c_linkage, decl_with_nonnull_addr_p,
1941         c_promoting_integer_type_p, self_promoting_args_p,
1942         anon_aggr_type_p, vector_types_convertible_p): Likewise.
1943         * c-decl.c (anon_aggr_type_p): Likewise.
1944         * * c-dump.c (dump_stmt): Likewise.
1945         * c-objc-common.c (has_c_linkage): Likewise.
1946         * c-tree.h (same_translation_unit_p): Likewise.
1947         * c-typeck.c (null_pointer_constant_p,
1948         tagged_types_tu_compatible_p, function_types_compatible_p,
1949         type_lists_compatible_p, lvalue_or_else, lvalue_p,
1950         comptypes_internal, struct tagged_tu_seen_cache,
1951         same_translation_unit_p, alloc_tagged_tu_seen_cache,
1952         c_size_in_bytes): Likewise.
1953         * ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor,
1954         hash_ptr, eq_ptr): Likewise.
1955         * langhooks-def.h (lhd_decl_ok_for_sibcall,
1956         LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise.
1957         * langhooks.c (lhd_decl_ok_for_sibcall): Likewise.
1958         * langhooks.h (ok_for_sibcall, omp_privatize_by_reference):
1959         Likewise.
1960         * optabs.c (optab_for_tree_code): Likewise.
1961         * optabs.h (optab_for_tree_code): Likewise.
1962         * rtl.h (simplify_rtx): Likewise.
1963         * simplify-rtx.c (simplify_rtx): Likewise.
1964         * tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type,
1965         dump_flag, dump_node): Likewise.
1966         * tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index,
1967         queue_and_dump_type, dump_flag): Likewise.
1968         * tree-flow.h (vect_can_force_dr_alignment_p): Likewise.
1969         * tree-pass.h (dump_node): Likewise.
1970         * tree-vectorizer.c (vect_can_force_dr_alignment_p,
1971         supportable_narrowing_operation): Likewise.
1972         * tree-vectorizer.h (vect_can_force_dr_alignment_p,
1973         supportable_narrowing_operation): Likewise.
1974         * tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity,
1975         is_negative_overflow_infinity, is_positive_overflow_infinity,
1976         is_overflow_infinity, vrp_val_is_max, vrp_val_is_min,
1977         nonnull_arg_p, get_value_range, vrp_operand_equal_p,
1978         update_value_range, add_equivalence, ssa_name_nonnegative_p,
1979         ssa_name_nonzero_p, fp_predicate): Likewise.
1980         * tree.c (auto_var_in_fn_p, empty_body_p): Likewise.
1981         * tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p,
1982         ssa_name_nonnegative_p): Likewise.
1983
1984 2007-08-25  Hans Kester  <hans.kester@ellips.nl>
1985
1986         * config.gcc : Add x86_64-elf target.
1987
1988 2007-08-25  Jakub Jelinek  <jakub@redhat.com>
1989
1990         * expr.c (store_expr): Fix order of store_by_pieces arguments.
1991
1992 2007-08-24  Sandra Loosemore  <sandra@codesourcery.com>
1993             Nigel Stephens <nigel@mips.com>
1994
1995         PR target/11787
1996
1997         * doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros.
1998         (STORE_BY_PIECES_P): No longer applies to __builtin_memset.
1999         * expr.c (SET_BY_PIECES_P): Define.
2000         (can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use
2001         it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P.
2002         (store_expr): Pass MEMSETP argument to can_store_by_pieces and
2003         store_by_pieces.
2004         * expr.h (SET_RATIO): Define.
2005         (can_store_by_pieces, store_by_pieces): Update prototypes.
2006         * builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to
2007         can_store_by_pieces/store_by_pieces.
2008         (expand_builtin_memcpy_args): Likewise.
2009         (expand_builtin_strncpy): Likewise.
2010         (expand_builtin_memset_args): Likewise.  Also remove special case
2011         for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can
2012         decide what to do instead.
2013         * value-prof.c (tree_stringops_transform): Pass MEMSETP argument
2014         to can_store_by_pieces.
2015
2016         * config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P.
2017         * config/s390/s390.h (SET_BY_PIECES_P): Likewise.
2018
2019         * config/mips/mips.opt (mmemcpy): Change from Var to Mask.
2020         * config/mips/mips.c (override_options): Make -Os default to -mmemcpy.
2021         * config/mips/mips.h (MIPS_CALL_RATIO): Define.
2022         (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define.
2023         (STORE_BY_PIECES_P): Define.
2024
2025 2007-08-24  Tom Tromey  <tromey@redhat.com>
2026
2027         * varpool.c (varpool_last_needed_node): Fix comment typo.
2028         * c-decl.c (duplicate_decls): Fix comment typo.
2029         (clone_underlying_type): Update comment.
2030
2031 2007-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2032
2033         * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp,
2034         alpha_in_small_data_p, alpha_split_complex_arg,
2035         alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
2036         Constify.
2037         * config/arm/arm-protos.h (arm_mangle_type): Likewise.
2038         * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
2039         Likewise.
2040         * config/bfin/bfin.c (funkind, bfin_comp_type_attributes,
2041         TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2042         * config/darwin-protos.h (darwin_binds_local_p): Likewise.
2043         * config/darwin.c (darwin_binds_local_p): Likewise.
2044         * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p):
2045         Likewise.
2046         * config/i386/i386-protos.h (i386_pe_binds_local_p,
2047         i386_pe_valid_dllimport_attribute_p): Likewise.
2048         * config/i386/i386.c (ix86_function_regparm,
2049         ix86_comp_type_attributes, ix86_ms_bitfield_layout_p,
2050         x86_can_output_mi_thunk, ix86_mangle_type,
2051         TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
2052         * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p,
2053         i386_pe_binds_local_p): Likewise.
2054         * config/ia64/ia64.c
2055         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
2056         ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type,
2057         ia64_invalid_conversion, ia64_invalid_unary_op,
2058         ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
2059         Likewise.
2060         * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise.
2061         * config/m32r/m32r.c (m32r_in_small_data_p): Likewise.
2062         * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2063         * config/mips/mips.c (mips_use_blocks_for_constant_p,
2064         mips_in_small_data_p, mips_use_anchors_for_symbol_p,
2065         mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2066         mips_near_type_p, mips_far_type_p, mips_global_symbol_p,
2067         mips_symbol_binds_local_p, mips_classify_symbol): Likewise.
2068         * config/pa/pa.c (pa_commutative_p): Likewise.
2069         * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p):
2070         Likewise.
2071         * config/rs6000/rs6000.c (rs6000_invalid_within_doloop,
2072         rs6000_ms_bitfield_layout_p, rs6000_mangle_type,
2073         rs6000_use_blocks_for_constant_p,
2074         rs6000_vector_alignment_reachable, rs6000_is_opaque_type,
2075         invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2076         TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise.
2077         * config/s390/s390.c (s390_mangle_type,
2078         TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP):
2079         Likewise.
2080         * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2081         th_in_small_data_p): Likewise.
2082         * config/sh/sh.c (sh_ms_bitfield_layout_p,
2083         sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
2084         Likewise.
2085         * config/sparc/sparc.c (sparc_can_output_mi_thunk,
2086         sparc_mangle_type): Likewise.
2087         * config/spu/spu.c (spu_vector_alignment_reachable): Likewise.
2088         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise.
2089         * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq):
2090         Likewise.
2091         * hooks.c (hook_bool_mode_const_rtx_false,
2092         hook_bool_mode_const_rtx_true,
2093         hook_bool_const_tree_hwi_hwi_const_tree_false,
2094         hook_bool_const_tree_hwi_hwi_const_tree_true,
2095         hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
2096         hook_constcharptr_const_tree_null,
2097         hook_constcharptr_const_rtx_null,
2098         hook_constcharptr_const_tree_const_tree_null,
2099         hook_constcharptr_int_const_tree_null,
2100         hook_constcharptr_int_const_tree_const_tree_null): New.
2101         (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
2102         hook_bool_tree_hwi_hwi_tree_false,
2103         hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
2104         hook_int_tree_tree_1, hook_constcharptr_tree_null,
2105         hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
2106         hook_constcharptr_int_tree_null,
2107         hook_constcharptr_int_tree_tree_null): Delete.
2108         (default_can_output_mi_thunk_no_vcall): Constify.
2109         * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
2110         hook_bool_tree_hwi_hwi_tree_false,
2111         hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
2112         hook_int_tree_tree_1, hook_constcharptr_tree_null,
2113         hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
2114         hook_constcharptr_int_tree_null,
2115         hook_constcharptr_int_tree_tree_null): Delete.
2116         (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
2117         hook_bool_const_tree_hwi_hwi_const_tree_false,
2118         hook_bool_const_tree_hwi_hwi_const_tree_true,
2119         hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
2120         hook_constcharptr_const_tree_null,
2121         hook_constcharptr_const_rtx_null,
2122         hook_constcharptr_const_tree_const_tree_null,
2123         hook_constcharptr_int_const_tree_null,
2124         hook_constcharptr_int_const_tree_const_tree_null): New.
2125         (default_can_output_mi_thunk_no_vcall): Constify.
2126         * integrate.c (function_attribute_inlinable_p): Likewise.
2127         * integrate.h (function_attribute_inlinable_p): Likewise.
2128         * jump.c (rtx_renumbered_equal_p): Likewise.
2129         * output.h (decl_readonly_section, categorize_decl_for_section,
2130         default_use_anchors_for_symbol_p, default_binds_local_p,
2131         default_binds_local_p_1): Likewise.
2132         * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model):
2133         Likewise.
2134         * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2135         TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P,
2136         TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P,
2137         TARGET_COMP_TYPE_ATTRIBUTES,
2138         TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P,
2139         TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE,
2140         TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION,
2141         TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
2142         TARGET_DWARF_CALLING_CONVENTION): Likewise.
2143         * target.h (can_output_mi_thunk, needs_block_p,
2144         first_cycle_multipass_dfa_lookahead_guard_spec,
2145         vector_alignment_reachable, comp_type_attributes,
2146         function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type,
2147         commutative_p, use_blocks_for_constant_p,
2148         use_anchors_for_symbol_p, in_small_data_p, binds_local_p,
2149         vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook,
2150         invalid_within_doloop, valid_dllimport_attribute_p,
2151         split_complex_arg, invalid_arg_for_unprototyped_fn,
2152         invalid_conversion, invalid_unary_op, invalid_binary_op):
2153         Likewise.
2154         * targhooks.c (default_invalid_within_doloop,
2155         hook_invalid_arg_for_unprototyped_fn,
2156         default_builtin_vector_alignment_reachable): Likewise.
2157         (hook_bool_rtx_commutative_p): Delete.
2158         (hook_bool_const_rtx_commutative_p): New.
2159         * targhooks.h (default_invalid_within_doloop,
2160         default_builtin_vector_alignment_reachable,
2161         hook_invalid_arg_for_unprototyped_fn): Constify.
2162         (hook_bool_rtx_commutative_p): Delete.
2163         (hook_bool_const_rtx_commutative_p): New.
2164         * varasm.c (bss_initializer_p, decl_default_tls_model,
2165         categorize_decl_for_section, decl_readonly_section,
2166         default_use_anchors_for_symbol_p, default_binds_local_p,
2167         default_binds_local_p_1): Constify.
2168
2169 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
2170
2171         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2172         __NO_BUILTIN if -fno-builtin.
2173
2174 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
2175
2176         * config/bfin/bfin.c (print_operand): Report error instead of
2177         ICE for wrong operand.
2178
2179 2007-08-24  Michael Matz  <matz@suse.de>
2180
2181         * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst).
2182
2183 2007-08-24  Richard Guenther  <rguenther@suse.de>
2184
2185         PR middle-end/33166
2186         * tree-ssa.c (useless_type_conversion_p): Split into a
2187         recursive and a non-recursive part.
2188         (useless_type_conversion_p_1): New function.
2189         * tree-ssa-ccp.c (fold_stmt_r): Make sure that the result
2190         from maybe_fold_offset_to_reference is trivially convertible
2191         to the desired type before doing the simplification.
2192
2193 2007-08-24  Jakub Jelinek  <jakub@redhat.com>
2194
2195         * expr.c (store_expr): Optimize initialization of an array
2196         with STRING_CST.
2197         * expr.h (builtin_strncpy_read_str): New prototype.
2198         * builtins.c (builtin_strncpy_read_str): Remove prototype.
2199         No longer static.
2200
2201 2007-08-24  Uros Bizjak  <ubizjak@gmail.com>
2202
2203         PR middle-end/33157
2204         * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest
2205         field when initializing if_info structure.
2206
2207 2007-08-24  Richard Guenther  <rguenther@suse.de>
2208
2209         * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H)
2210         dependencies.
2211         * c-objc-common.c (c_cannot_inline_tree_fn): Remove.
2212         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise.
2213         * tree-inline.c (inlinable_function_p): Fold in common parts of
2214         the cannot_inline_tree_fn langhook.
2215         * langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove.
2216         (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise.
2217         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
2218         cannot_inline_tree_fn langhook.
2219         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
2220         cannot_inline_tree_fn member.
2221
2222 2007-08-24  Richard Guenther  <rguenther@suse.de>
2223
2224         * expr.c (get_inner_reference): Do computation of bitoffset
2225         from offset in a way we can detect overflow reliably.
2226
2227 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
2228
2229         * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc.
2230
2231 2007-08-24  Jie Zhang  <jie.zhang@analog.com>
2232
2233         * config/bfin/bfin.opt (mfast-fp): Add.
2234         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let
2235         libbffastfp override libgcc if -mfast-fp.
2236         * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
2237         * doc/invoke.texi (Option Summary): Mention -mfast-fp.
2238         (Blackfin Options): Document -mfast-fp.
2239
2240 2007-08-24  Jakub Jelinek  <jakub@redhat.com>
2241
2242         PR tree-optimization/32573
2243         PR middle-end/32946
2244         * tree-data-ref.c (initialize_data_dependence_relation): Clear
2245         DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning.
2246         (finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it.
2247         (build_classic_dist_vector): Return false rather than true if
2248         DDR_ARE_DEPENDENT is non-NULL at the beginning.  Return false
2249         if either subscript_dependence_tester_1 or build_classic_dist_vector_1
2250         returned false.  Don't call save_dist_v before calling
2251         build_classic_dist_vector_1.
2252         (free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS
2253         with NULL DDR_ARE_DEPENDENT.  Also free DDR_DIST_VECTS and/or
2254         DDR_DIR_VECTS vectors.
2255
2256 2007-08-23  Brian Sidebotham  <brian.sidebotham@gmail.com>
2257
2258         * configure.ac (leb128): Modify sed statement to work with any
2259         binutils version string.
2260         * configure: Regenerate
2261
2262 2007-08-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2263
2264         * config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg):
2265         Wrap in RTX_CODE macro guard.
2266         * config/arm/pe.c (arm_dllexport_p, arm_dllimport_p,
2267         arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport,
2268         arm_mark_dllimport, arm_pe_encode_section_info,
2269         arm_pe_unique_section): Use ISO-C function declarations.
2270         * config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION,
2271         c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE,
2272         c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored):
2273         Likewise.
2274         * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning.
2275         * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before
2276         defining.
2277         * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format
2278         warnings.
2279         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise.
2280         * config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise.
2281         (register_move_cost): Use ISO-C function declarations.
2282         * config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings.
2283         * config/score/score-protos.h (score_declare_object): Add
2284         ATTRIBUTE_PRINTF_4.
2285         * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format
2286         warnings.
2287         * final.c (profile_function): Avoid empty if-bodies.
2288         
2289         
2290         * calls.c (must_pass_in_stack_var_size,
2291         must_pass_in_stack_var_size_or_pad): Constify.
2292         * config/alpha/alpha-protos.h (function_value): Likewise.
2293         * config/alpha/alpha.c (alpha_return_in_memory,
2294         alpha_pass_by_reference, function_value,
2295         unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS,
2296         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
2297         Likewise.
2298         * config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference,
2299         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2300         TARGET_PROMOTE_PROTOTYPES): Likewise.
2301         * config/arm/arm-protos.h (arm_return_in_memory,
2302         arm_pad_arg_upward, arm_function_value): Likewise.
2303         * config/arm/arm.c (arm_pass_by_reference,
2304         arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack,
2305         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2306         arm_function_value, arm_return_in_memory, arm_pad_arg_upward):
2307         Likewise.
2308         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
2309         * config/avr/avr-protos.h (avr_function_value): Likewise.
2310         * config/avr/avr.c (avr_return_in_memory,
2311         gas_output_limited_string, gas_output_ascii, avr_function_value,
2312         avr_return_in_memory): Likewise.
2313         * config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise.
2314         * config/bfin/bfin.c (bfin_pass_by_reference,
2315         bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES,
2316         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN):
2317         Likewise.
2318         * config/cris/cris.c (cris_pass_by_reference,
2319         TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
2320         * config/crx/crx.c (crx_return_in_memory): Likewise.
2321         * config/darwin.c (function_base, machopic_function_base_name):
2322         Likewise.
2323         * config/fr30/fr30.c (fr30_must_pass_in_stack,
2324         TARGET_PROMOTE_PROTOTYPES): Likewise.
2325         * config/frv/frv.c (frv_must_pass_in_stack): Likewise.
2326         * config/h8300/h8300.c (h8300_return_in_memory): Likewise.
2327         * config/i386/i386-protos.h (ix86_return_in_memory,
2328         ix86_sol10_return_in_memory): Likewise.
2329         * config/i386/i386.c (ix86_function_value,
2330         ix86_function_sseregparm, ix86_must_pass_in_stack,
2331         type_natural_mode, classify_argument, examine_argument,
2332         construct_container, ix86_pass_by_reference, function_value_32,
2333         function_value_64, ix86_function_value_1, return_in_memory_32,
2334         return_in_memory_64, return_in_memory_ms_64,
2335         ix86_return_in_memory, ix86_sol10_return_in_memory,
2336         TARGET_PROMOTE_PROTOTYPES): Likewise.
2337         * config/ia64/ia64-protos.h (ia64_function_value,
2338         ia64_hpux_function_arg_padding): Likewise.
2339         * config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory,
2340         ia64_function_value, bundle_state_hash, bundle_state_eq_p,
2341         ia64_hpux_function_arg_padding): Likewise.
2342         * config/iq2000/iq2000-protos.h (function_arg,
2343         iq2000_function_value): Likewise.
2344         * config/iq2000/iq2000.c (iq2000_return_in_memory,
2345         iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS,
2346         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
2347         function_arg, iq2000_function_value): Likewise.
2348         * config/m32c/m32c-protos.h (m32c_function_value,
2349         m32c_promote_function_return): Likewise.
2350         * config/m32c/m32c.c (m32c_pass_by_reference,
2351         m32c_promote_prototypes, m32c_promote_function_return,
2352         m32c_function_value): Likewise.
2353         * config/m32r/m32r.c (m32r_return_in_memory,
2354         m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
2355         m32r_in_small_data_p): Likewise.
2356         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding):
2357         Likewise.
2358         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory,
2359         m68hc11_function_arg_padding): Likewise.
2360         * config/m68k/m68k-protos.h (m68k_function_value): Likewise.
2361         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES,
2362         m68k_function_value): Likewise.
2363         * config/mcore/mcore-protos.h (mcore_num_arg_regs,
2364         mcore_function_value): Likewise.
2365         * config/mcore/mcore.c (handle_structs_in_regs,
2366         mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
2367         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
2368         mcore_num_arg_regs, mcore_function_value): Likewise.
2369         * config/mips/mips-protos.h (mips_pad_arg_upward,
2370         mips_function_value): Likewise.
2371         * config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb,
2372         mips_return_in_memory, mips_pass_by_reference, mips_callee_copies,
2373         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2374         TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward,
2375         mips_function_value): Likewise.
2376         * config/mmix/mmix-protos.h (mmix_function_outgoing_value):
2377         Likewise.
2378         * config/mmix/mmix.c (mmix_pass_by_reference,
2379         TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value,
2380         mmix_encode_section_info): Likewise.
2381         * config/mn10300/mn10300-protos.h (mn10300_function_value):
2382         Likewise.
2383         * config/mn10300/mn10300.c (mn10300_return_in_memory,
2384         mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
2385         mn10300_function_value): Likewise.
2386         * config/mt/mt-protos.h (mt_function_value): Likewise.
2387         * config/mt/mt.c (mt_pass_by_reference, mt_function_value,
2388         mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise.
2389         * config/pa/pa-protos.h (function_arg_padding, function_value,
2390         pa_return_in_memory): Likewise.
2391         * config/pa/pa.c (pa_pass_by_reference,
2392         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
2393         function_arg_padding, function_value, pa_return_in_memory):
2394         Likewise.
2395         * config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise.
2396         * config/rs6000/rs6000-protos.h (rs6000_function_value,
2397         function_arg_padding): Likewise.
2398         * config/rs6000/rs6000.c (rs6000_return_in_memory,
2399         rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
2400         rs6000_pass_by_reference, rs6000_must_pass_in_stack,
2401         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2402         function_arg_padding, altivec_expand_dst_builtin,
2403         altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins,
2404         altivec_init_builtins, rs6000_common_init_builtins,
2405         rs6000_function_value): Likewise.
2406         * s390/s390-protos.h (s390_function_value): Likewise.
2407         * config/s390/s390.c (s390_function_arg_size,
2408         s390_pass_by_reference, s390_return_in_memory,
2409         s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
2410         TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
2411         * config/score/score-protos.h (score_function_value): Likewise.
2412         * config/score/score.c (score_arg_partial_bytes,
2413         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2414         TARGET_PROMOTE_PROTOTYPES, score_return_in_memory,
2415         score_pass_by_reference, score_add_offset, score_function_value):
2416         Likewise.
2417         * config/sh/sh-protos.h (sh_attr_renesas_p,
2418         sh_promote_prototypes): Likewise.
2419         * config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference,
2420         sh_callee_copies, sh_promote_prototypes, shcompact_byref,
2421         sh_attr_renesas_p): Likewise.
2422         * config/sparc/sparc-protos.h (function_value,
2423         function_arg_padding): Likewise.
2424         * config/sparc/sparc.c (sparc_promote_prototypes,
2425         sparc_return_in_memory, sparc_pass_by_reference,
2426         TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
2427         function_arg_record_value_2, function_arg_record_value_1,
2428         function_arg_record_value, function_arg_record_value,
2429         function_arg_padding, function_value): Likewise.
2430         * config/spu/spu-protos.h (spu_function_value): Likewise.
2431         * config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory,
2432         spu_function_value): Likewise.
2433         * config/stormy16/stormy16-protos.h (xstormy16_function_value):
2434         Likewise.
2435         * config/stormy16/stormy16.c (xstormy16_return_in_memory,
2436         xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
2437         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
2438         Likewise.
2439         * config/v850/v850.c (v850_return_in_memory,
2440         v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise.
2441         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise.
2442         * config/xtensa/xtensa.c (xtensa_return_in_msb,
2443         xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
2444         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
2445         Likewise.
2446         * explow.c (promote_mode, hard_function_value): Likewise.
2447         * expr.h (hard_function_value, promote_mode): Likewise.
2448         * function.c (aggregate_value_p): Likewise.
2449         * hooks.c (hook_bool_const_tree_true): New.
2450         * hooks.h (hook_bool_const_tree_true): New.
2451         * sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify.
2452         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
2453         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
2454         TARGET_RETURN_IN_MSB): Likewise.
2455         * target.h (promote_function_args, promote_function_return,
2456         promote_prototypes, return_in_memory, return_in_msb,
2457         pass_by_reference, must_pass_in_stack, callee_copies,
2458         function_value): Likewise.
2459         * targhooks.c (default_return_in_memory,
2460         hook_pass_by_reference_must_pass_in_stack,
2461         hook_callee_copies_named,
2462         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
2463         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
2464         default_function_value): Likewise. 
2465         * targhooks.h (default_return_in_memory,
2466         hook_pass_by_reference_must_pass_in_stack,
2467         hook_callee_copies_named,
2468         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
2469         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
2470         default_function_value): Likewise.
2471         * tree-ssa-structalias.c (const_equiv_class_label_t): New.
2472         (equiv_class_label_hash, equiv_class_label_eq): Constify.
2473         * tree-vectorizer.c (bb_in_loop_p): Likewise.
2474         * tree.c (needs_to_live_in_memory): Likewise.
2475         * tree.h (struct tree_type, needs_to_live_in_memory,
2476         aggregate_value_p, must_pass_in_stack_var_size,
2477         must_pass_in_stack_var_size_or_pad): Likewise.
2478         * vmsdbgout.c (write_debug_addr, write_debug_delta4,
2479         write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg,
2480         lookup_filename): Likewise.
2481
2482 2007-08-23  Uros Bizjak  <ubizjak@gmail.com>
2483
2484         PR target/17390
2485         * config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to
2486         fake fcomi i387 instruction for !TARGET_CMOVE.
2487         (ix86_expand_branch): Expand natural sequence with one jump for
2488         all targets, not only TARGET_CMOVE.
2489         * config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split
2490         pattern to implement fake fcomi sequence.  Split instruction after
2491         reload to correct compare sequences.
2492         (*cmpfp_xf_cc): Ditto.
2493         (*cmpfp_<mode>_cc): Ditto.
2494         (*cmpfp_u_cc): Ditto.
2495         (*cmpfp_<mode>_cc): Ditto.
2496
2497 2007-08-23  Richard Guenther  <rguenther@suse.de>
2498
2499         * tree-pretty-print.c (dump_generic_node): Annotate
2500         GIMPLE_MODIFY_STMTs with volatile ops with "{v}".
2501
2502 2007-08-23  Richard Guenther  <rguenther@suse.de>
2503
2504         * builtins.c (expand_builtin_mathfn): Wrap argument in
2505         save_expr directly instead of re-building the call.
2506         (expand_builtin_mathfn_2): Likewise.
2507         (expand_builtin_mathfn_3): Likewise.
2508         (expand_builtin_interclass_mathfn): Likewise.
2509         (expand_builtin_int_roundingfn): Set arg.
2510         (expand_builtin_int_roundingfn_2): Likewise.
2511
2512 2007-08-23  Paolo Bonzini  <bonzini@gnu.org>
2513
2514         * config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3,
2515         *sse_nand<mode>3, *sse_xor<mode>3): New.
2516
2517 2007-08-23  Uros Bizjak  <ubizjak@gmail.com>
2518
2519         * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code.
2520         * config/i386/i386.c (print_operand): Handle ';' code.  Output
2521         semicolon for TARGET_MACHO.
2522         * config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to
2523         emit semicolon after 'lock' prefix.
2524         (sync_double_compare_and_swap<mode>): Ditto.
2525         (*sync_double_compare_and_swapdi_pic): Ditto.
2526         (*sync_compare_and_swap_cc<mode>): Ditto.
2527         (sync_double_compare_and_swap_cc<mode>): Ditto.
2528         (*sync_double_compare_and_swap_ccdi_pic): Ditto.
2529         (sync_old_add<mode>): Ditto.
2530         (sync_add<mode>): Ditto.
2531         (sync_sub<mode>): Ditto.
2532         (sync_ior<mode>): Ditto.
2533         (sync_and<mode>): Ditto.
2534         (sync_xor<mode>): Ditto.
2535
2536 2007-08-22  Chao-ying Fu  <fu@mips.com>
2537
2538         * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes
2539         in DEF_RTL_EXPR.
2540         (copy_rtx): Handle CONST_FIXED.
2541         (rtx_equal_p): Likewise.
2542         * rtl.h (fixed_value.h): New include.
2543         (rtx_def): Add a new field of fixed_value to u.
2544         (XCNMPFV): Define for accessing fixed_value.
2545         (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW):
2546         Define.
2547         * rtl.def (CONST_FIXED): New constant.
2548         (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT,
2549         UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG,
2550         US_ASHIFT): New codes.
2551         * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult,
2552         us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract,
2553         unsigned_fract_convert, unsigned_sat_fract): Document them.
2554         * varasm.c (assemble_integer): Extend to support fixed-point constants
2555         by using different machine classes.
2556         (decode_addr_const): Handle FIXED_CST.
2557         (const_hash_1): Likewise.
2558         (compare_constant): Likewise.
2559         (copy_constant): Likewise.
2560         (const_rtx_hash_1): Handle CONST_FIXED.
2561         (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
2562         MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
2563         MODE_VECTOR_UACCUM.
2564         (initializer_constant_valid_p): Handle FIXED_CST.
2565         (output_constant): Support FIXED_POINT_TYPE.
2566         * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude.
2567         * cse.c (hash_rtx): Support CONST_FIXED.
2568         (exp_equiv_p): Likewise.
2569         (cannon_reg): Likewise.
2570         (fold_rtx): Likewise.
2571         (equiv_constant): Likewise.
2572         (cse_process_notes_1): Likewise.
2573         (count_reg_usage): Likewise.
2574         * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED.
2575         (rtx_equal_for_cselib_p): Handle CONST_FIXED.
2576         (wrap_constant): Check CONST_FIXED.
2577         (cselib_hash_rtx): Support CONST_FIXED.
2578         (cselib_subst_to_values): Likewise.
2579         * df-scan.c (df_uses_record): Likewise.
2580         * gcse.c (want_to_gcse_p): Likewise.
2581         (oprs_unchanged_p): Likewise.
2582         (oprs_not_set_p): Likewise.
2583         (compute_transp): Likewise.
2584         (extract_mentioned_regs_helper): Likewise.
2585         * genemit.c (gen_exp): Likewise.
2586         * local-alloc.c (equiv_init_varies_p): Likewise.
2587         (contains_replace_regs): Likewise.
2588         (memref_referenced_p): Likewise.
2589         * loop-invariant.c (check_maybe_invariant): Likewise.
2590         (hash_invariant_expr_1): Likewise.
2591         (invariant_expr_equal_p): Likewise.
2592         * postreload-gcse.c (oprs_unchanged_p): Likewise.
2593         * regclass.c (reg_scan_mark_refs): Likewise.
2594         * regrename.c (scan_rtx): Likewise.
2595         * resource.c (mark_referenced_resources): Likewise.
2596         (mark_set_resources): Likewise.
2597         * rtlanal.c (rtx_unstable_p): Likewise.
2598         (rtx_varies_p): Likewise.
2599         (count_occurrences): Likewise.
2600         (reg_mentioned_p): Likewise.
2601         (modified_between_p): Likewise.
2602         (modified_in_p): Likewise.
2603         (volatile_insn_p): Likewise.
2604         (volatile_refs_p): Likewise.
2605         (side_effects_p): Likewise.
2606         (may_trap_p_1): Likewise.
2607         (inequality_comparisons_p): Likewise.
2608         (computed_jump_p_1): Likewise.
2609         (commutative_operand_precedence): Likewise.
2610         * sched-deps.c (sched_analyze_2): Likewise.
2611         * sched-vis.c (print_value): Likewise.
2612         * reload.c (operands_match_p): Likewise.
2613         (subst_reg_equivs): Likewise.
2614         * reload1.c (eliminate_regs_1): Likewise.
2615         (elimination_effects): Likewise.
2616         (scan_paradoxical_subregs): Likewise.
2617         * alias.c (rtx_equal_for_memref_p): Likewise.
2618         * Makefile.in (RTL_BASE_H): Add fixed-value.h.
2619         * emit-rtl.c (const_fixed_htab): New hash table.
2620         (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed):
2621         Declare.
2622         (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed,
2623         const_fixed_from_fixed_value): New functions.
2624         (verify_rtx_sharing): Handle CONST_FIXED.
2625         (copy_rtx_if_shared_1): Likewise.
2626         (reset_used_flags): Likewise.
2627         (set_used_flags): Likewise.
2628         (copy_insn_1): Likewise.
2629         (init_emit_once): Create const_fixed_htab.
2630         Store fixed-point scalar and vector zero and one to const_tiny_rtx.
2631
2632 2007-08-22  Zdenek Dvorak  <ook@ucw.cz>
2633
2634         PR tree-optimization/32949
2635         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p
2636         before failing for ivs with non-constant step.
2637
2638 2007-08-22  Hans-Peter Nilsson  <hp@axis.com>
2639
2640         * doc/md.texi (Iterators): Renamed from Macros.  All contents
2641         changed to reflect rename of respectively define_code_macro and
2642         define_mode_macro to define_code_iterator and define_mode_iterator.
2643         (Mode Iterators, Code Iterators): Similar.
2644         * read-rtl.c (struct iterator_group, struct iterator_traverse_data)
2645         (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p)
2646         (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse)
2647         (initialize_iterators, find_iterator, check_code_iterator)
2648         (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping)
2649         (read_mapping, read_rtx_1): Similar.
2650         * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md,
2651         config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md,
2652         config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md,
2653         config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md,
2654         config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md,
2655         config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md,
2656         config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md,
2657         config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md,
2658         config/rs6000/sync.md, config/rs6000/rs6000.md,
2659         config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md,
2660         config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md,
2661         config/vax/vax.md, config/bfin/bfin.md: Similar.
2662
2663 2007-08-22  David Daney  <ddaney@avtrex.com>
2664
2665         * doc/install.texi (Testing): Mention testing on a simulator.
2666
2667 2007-08-22  Janis Johnson  <janis187@us.ibm.com>
2668
2669         * config/dfp-bit.c (DFP_TO_DFP): Check for overflow.
2670
2671         * doc/libgcc.texi (Decimal float library routines): Fix formatting
2672         and rearrange floating point conversion functions into different
2673         categories.
2674
2675 2007-08-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2676
2677         * target.h (struct gcc_target.sched: dfa_pre_advance_cycle,
2678         dfa_post_advance_cycle): New scheduler hooks.
2679         * target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
2680         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize
2681         new hooks.
2682         (TARGET_SCHED): Use them.
2683         * doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
2684         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks.
2685         * haifa-sched.c (advance_one_cycle): Invoke new hooks.
2686
2687         * genautomata.c (insn_has_dfa_reservation_p): New DFA interface
2688         function to facilitate debugging.
2689         (INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro.
2690         (output_insn_has_dfa_reservation_p): New static function to output
2691         insn_has_dfa_reservation_p ().
2692         (write_automata): Use it.
2693         * genattr.c (main): Output declaration for
2694         insn_has_dfa_reservation_p ().
2695
2696 2007-08-22  Christian Bruel  <christian.bruel@st.com>   
2697             Richard Guenther <rguenther@suse.de>
2698         
2699         * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only.
2700         * simplify_rtx (simplify_binary_operation_1): Likewise.
2701                 
2702 2007-08-22  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2703
2704         PR rtl-optimization/32557
2705         * df-problems.c (df_note_bb_compute): Use mws->start_regno instead
2706         of REGNO (mws->mw_reg).
2707
2708 2007-08-22  Richard Guenther  <rguenther@suse.de>
2709
2710         PR middle-end/33007
2711         * builtins.c (expand_builtin_int_roundingfn): Replace call
2712         argument wrapped with SAVE_EXPR directly.
2713         (expand_builtin_int_roundingfn_2): Likewise.
2714
2715 2007-08-22  Richard Guenther  <rguenther@suse.de>
2716
2717         * tree-inline.c (inlinable_function_p): Restore disregarding
2718         inline limits for GNU extern inline functions.
2719
2720 2007-08-22  Richard Guenther  <rguenther@suse.de>
2721
2722         PR middle-end/32563
2723         * tree.c (host_integerp): Treat sizetype as signed as it is
2724         sign-extended.
2725
2726 2007-08-21  Ian Lance Taylor  <iant@google.com>
2727
2728         PR tree-optimization/33134
2729         * tree-vrp.c (adjust_range_with_scev): Call
2730         set_value_range_to_value.
2731
2732 2007-08-21  Aldy Hernandez  <aldyh@redhat.com>
2733
2734         * value-prof.h (gimple_remove_histogram_value): Remove duplicate
2735         prototype.
2736         
2737 2007-08-21  Aldy Hernandez  <aldyh@redhat.com>
2738
2739         * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary
2740         whitespace.
2741
2742 2007-08-21  Nathan Froyd  <froydnj@codesourcery.com>
2743
2744         * config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE
2745         cases to set eight bytes at a time.
2746         (expand_block_move): Likewise.
2747         
2748 2007-08-21  Jakub Jelinek  <jakub@redhat.com>
2749
2750         PR debug/32610
2751         * dwarf2out.c (gen_decl_die): Don't call
2752         gen_tagged_type_instantiation_die if decl doesn't have tagged type.
2753
2754 2007-08-21  Paul Brook  <paul@codesourcery.com>
2755             Nathan Sidwell  <nathan@codesourcery.com>
2756             Mark Mitchell  <mark@codesourcery.com>
2757             Joseph Myers  <joseph@codesourcery.com>
2758
2759         * configure.ac: Add --with-pkgversion and --with-bugurl.
2760         * configure: Regenerate.
2761         * doc/install.texi: Document them.
2762         * version.c (version_string): Remove VERSUFFIX.
2763         (VERSUFFIX): Remove.
2764         (pkgversion_string): New.
2765         (bug_report_url): Do not hard-code initializer.
2766         * version.h (pkgversion_string): Declare.
2767         * Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI):
2768         Define.
2769         (version.o): Define PKGVERSION and BUGURL.
2770         (gcc-vers.texi): Define VERSION_PACKAGE and BUGURL.
2771         (%.pod): Define BUGURL.
2772         * gcc.c (process_command, main): Use pkgversion_string.
2773         * toplev.c (compile_file, print_version): Likewise.
2774         * protoize.c (main): Likewise.
2775         * gcov.c (print_version): Likewise.  Update copyright date.
2776         * gcov-dump.c (print_version): Likewise.  Update copyright date.
2777         * mips-tdump.c (main): Likewise.  Update copyright date.
2778         * mips-tfile.c (main): Likewise.  Update copyright date.
2779         * doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle.
2780         * doc/bugreport.texi: Use BUGURL for bug-reporting instructions;
2781         shorten description.
2782         * doc/gcc.texi: Include VERSION_PACKAGE in version description.
2783         * doc/gccint.texi: Likewise.
2784         * doc/invoke.texi: Use BUGURL for bug-reporting instructions.
2785         Update copyright date.
2786
2787 2007-08-21  Uros Bizjak  <ubizjak@gmail.com>
2788
2789         * config/i386/i386.c (ix86_expand_clear): Use FLAGS_REG.
2790         (ix86_expand_strlensi_unroll_1): Ditto.
2791         (ix86_expand_branch): Use FLAGS_REG and FPSR_REG.
2792         (ix86_expand_carry_flag_compare): Update comment.
2793
2794 2007-08-21  Jakub Jelinek  <jakub@redhat.com>
2795
2796         PR middle-end/32912
2797         * fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST.
2798         (fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations.
2799
2800 2007-08-21  Richard Guenther  <rguenther@suse.de>
2801
2802         * fold-const.c (fold_binary): Revert removing of index +p PTR folding.
2803
2804 2007-08-21  Richard Guenther  <rguenther@suse.de>
2805
2806         PR middle-end/33122
2807         * fold-const.c (fold_binary): Remove index +p PTR folding.
2808         Fix types of POINTER_PLUS_EXPR generated by folding of
2809         (PTR +p B) +p A.
2810
2811 2007-08-20  Chao-ying Fu  <fu@mips.com>
2812
2813         * c-common.h (enum rid): Add new enumeration values of RID_SAT,
2814         RID_FRACT, and RID_ACCUM.  RID_SAT needs to be inserted before
2815         RID_ONEWAY, so that it can be checked in declspecs_add_type.
2816         (c_common_fixed_point_type_for_size): Declare.
2817         * c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
2818         (c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
2819         (c_token_starts_declspecs): Likewise.
2820         (c_parser_declspecs): Likewise.
2821         (c_parser_attributes): Likewise.
2822         * c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
2823         (c_declspecs): Add saturating_p.
2824         * c-decl.c (build_null_declspecs): Initialize saturating_p.
2825         (declspecs_add_type): Avoid using complex with _Fract, _Accum, or
2826         _Sat.  Handle RID_SAT.
2827         Avoid using void, bool, char, int, float, double, _Decimal32,
2828         _Decimal64, _Decimal128, and complex with _Sat.
2829         Handle RID_FRACT and RID_ACCUM.
2830         Make sure _Sat is used with _Fract or _Accum.
2831         (finish_declspecs): Handle cts_fract and cts_accum.
2832         * c-common.c (fixed-value.h): New include.
2833         (constant_expression_warning): Handle FIXED_CST.
2834         (overflow_warning): Likewise.
2835         (warnings_for_convert_and_check): Likewise.
2836         (c_common_fixed_point_type_for_size): New.
2837         (c_common_type_for_mode): Handle fixed-point modes to
2838         return various saturating/non-saturating, signed/unsigned types.
2839         (c_common_signed_or_unsigned_type): Support fixed-point types.
2840         (shorten_compare): Check fixed-point zero.
2841         Handle FIXED_POINT_TYPE.
2842         (c_common_truthvalue_conversion): Handle FIXED_CST.
2843         Handle FIXED_POINT_TYPE.
2844         (c_common_nodes_and_builtins): Record builtin types for fixed-point
2845         types.
2846         (handle_mode_attribute): Handle fixed-point modes.  Need to check
2847         if the signness of base type and fixed-point modes are consistent.
2848         (handle_vector_size_attribute): Handle fixed-point modes.
2849         (same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
2850         (warn_for_div_by_zero): Check fixed-point zero.
2851         * c-typeck.c (c_common_type): Check FIXED_POINT_TYPE.  Build
2852         a common fixed-point type based on fbit, ibit, sign, and saturation.
2853         (build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
2854         NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
2855         PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
2856         (convert_for_assignment): Support FIXED_POINT_TYPE.
2857         (digest_init): Handle FIXED_POINT_TYPE.
2858         (build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
2859         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
2860         TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
2861         GE_EXPR, LT_EXPR, GT_EXPR.
2862         * target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
2863         (TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
2864         * target.h (gcc_target): Add fixed_point_supported_p.
2865         * targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
2866         MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
2867         (default_fixed_point_supported_p): Define.
2868         * targhooks.h (default_fixed_point_supported_p): Declare.
2869         * doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
2870         * doc/install.texi (Configuration): Add --enable-fixed-point.
2871         * configure.ac (--enable-fixed-point): New to enable fixed-point
2872         arithmetic extension to C.  For mips targets, we enable it by default.
2873         * configure, config.in: Regenerate.
2874
2875 2007-08-20  Pawel Sikora  <pluto@pld-linux.org>
2876
2877         * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation.
2878
2879 2007-08-20  David Edelsohn  <edelsohn@gnu.org>
2880
2881         * dwarf2out.c (text_section_used): Move declaration outside ifdef
2882         DWARF2_DEBUGGING_INFO.
2883         (cold_text_section_used): Same.
2884         (cold_text_section): Same.
2885
2886 2007-08-20  Richard Guenther  <rguenther@suse.de>
2887
2888         * c-typeck.c (convert_for_assignment): Use the type of
2889         the member for the initialization.
2890
2891 2007-08-20  Richard Guenther  <rguenther@suse.de>
2892
2893         * c-objc-common.c (c_disregard_inline_limits): Remove.
2894         * c-objc-common.h (c_disregard_inline_limits): Likewise.
2895         * cgraphunit.c (cgraph_process_new_functions): Call
2896         disregard_inline_limits_p.
2897         (cgraph_preserve_function_body_p): Likewise.
2898         * ipa-inline.c (compute_inline_parameters): Likewise.
2899         * langhooks-def.h (lhd_tree_inlining_disregard_inline_limits):
2900         Remove.
2901         (LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove.
2902         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
2903         disregard_inline_limits langhook.
2904         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
2905         Remove.
2906         * langhooks.h (lang_hooks_for_tree_inlining): Remove
2907         disregard_inline_limits langhook.
2908         * tree-inline.c (disregard_inline_limits_p): New function.
2909         * tree-inline.h (disregard_inline_limits_p): Declare.
2910
2911 2007-08-20  Richard Guenther  <rguenther@suse.de>
2912
2913         * langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove.
2914         (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise.
2915         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
2916         auto_var_in_fn_p langhook.
2917         * langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and
2918         move ...
2919         * tree.c (auto_var_in_fn_p): ... here.
2920         (find_var_from_fn): Call auto_var_in_fn_p directly.
2921         * langhooks.h (lang_hooks_for_tree_inlining): Remove
2922         auto_var_in_fn_p langhook.
2923         * tree-inline.c (remap_decls): Call auto_var_in_fn_p directly.
2924         (copy_body_r): Likewise.
2925         (self_inlining_addr_expr): Likewise.
2926         * tree.h (auto_var_in_fn_p): Declare.
2927
2928 2007-08-20  Richard Guenther  <rguenther@suse.de>
2929
2930         * tree.c (WALK_SUBTREE): Call walk_tree_1.
2931         (walk_type_fields): Take lh parameter.
2932         (walk_tree): Rename to ...
2933         (walk_tree_1): ... this.  Do not call the walk_subtrees
2934         langhook but the now passed callback.  Pass lh on recursion.
2935         (walk_tree_without_duplicates): Rename to ...
2936         (walk_tree_without_duplicates_1): ... this.  Take lh parameter
2937         and call walk_tree_1.
2938         * tree.h (walk_tree_lh): New typedef.
2939         (walk_tree_1): Declare.
2940         (walk_tree_without_duplicates_1): Likewise.
2941         (walk_tree): New define to walk_tree_1 with NULL lh parameter.
2942         (walk_tree_without_duplicates): New define to
2943         walk_tree_without_duplicates_1 with NULL lh parameter.
2944         * langhooks.c (lhd_tree_inlining_walk_subtrees): Remove.
2945         * langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees
2946         langhook.
2947         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove.
2948         (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
2949         (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees
2950         initializer.
2951
2952 2007-08-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2953
2954         PR middle-end/30564
2955         * tree-inline.c (optimize_inline_calls): Move the cgraph checking
2956         code in front of the compacting of basic blocks.
2957         Move the folding of statements inbetween the cgraph checking
2958         and compacting of basic blocks.
2959
2960 2007-08-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2961            Serge Belyshev  <belyshev@depni.sinp.msu.ru>
2962
2963         PR target/32522
2964         * config/alpha/alpha.c (va_list_skip_additions): Check for
2965         POINTER_PLUS_EXPR in addition to PLUS_EXPR.
2966         (alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of
2967         PLUS_EXPR when checking ap.__base.
2968         (alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR
2969         when doing addition on pointer types.  Use size_int instead of
2970         build_int_cst.
2971         (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of
2972         ptr_type in the second operand.
2973
2974 2007-08-19  Andrew Pinski  <pinskia@gmail.com>
2975
2976         PR target/33115
2977         * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front.
2978
2979 2007-08-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2980
2981         PR middle-end/32940
2982         * cfgexpand.c  (expand_one_register_var): Mark pointer
2983         DECL_ARTIFICIAL as REG_POINTER also.
2984         * stmt.c (expand_decl): Likewise.
2985
2986 2007-08-19  Daniel Berlin  <dberlin@dberlin.org>
2987
2988         Fix PR 32772
2989         Fix PR 32716
2990         Fix PR 32328
2991         Fix PR 32303
2992
2993         * tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
2994         * tree-ssa-alias.c (init_transitive_clobber_worklist): Add
2995         on_worklist argument and avoid adding things to worklist multiple
2996         times.
2997         (add_to_worklist): Ditto.
2998         (mark_aliases_call_clobbered): Mark entire structure clobbered if
2999         single SFT is clobbered.
3000         (set_initial_properties): Ditto.
3001         (compute_call_clobbered): Update for changes to function
3002         arguments.
3003         (create_overlap_variables_for): Always create SFT for offset 0.
3004         (create_structure_vars): Handle PHI's, since we are in SSA form at
3005         this point.
3006         * tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
3007         * tree-ssa-operands.c (access_can_touch_variable): Don't handle
3008         TARGET_MEM_REF.
3009         (add_vars_for_offset): Figure out aliases from access + points-to.
3010         (add_virtual_operand): Use add_vars-for_offset.
3011         (get_tmr_operands): Update for NMT changes, rewrite to be correct.
3012         (add_call_clobber_ops): Remove makes_clobbering_call set.
3013         (get_expr_operands): Always pass through the INDIRECT_REF
3014         reference.
3015         * tree-ssa-structalias.c (struct constraint_graph): Remove
3016         variables member.
3017         Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
3018         address_taken, pt_used, number_incoming.
3019         (FIRST_ADDR_NODE): Removed.
3020         (merge_graph_nodes): Remove broken code for the moment.
3021         (init_graph): New function.
3022         (build_pred_graph): Remove code to init_graph.
3023         Add location equivalence support.
3024         (struct scc_info): Rename roots to deleted.
3025         (scc_visit): Ditto.
3026         (init_scc_info): Ditto
3027         (init_topo_info): Use graph->size.
3028         (compute_topo_order): Ditto.
3029         (do_da_constraint): Removed.
3030         (do_sd_constraint): Remove calls to find().
3031         set_union_with_increment should always get 0 as last arg here.
3032         (do_complex_constraint): Replace do_da_constraint with assert.
3033         Stop calling find.
3034         (struct equiv_class_label): New.
3035         (pointer_equiv_class_table): Ditto.
3036         (location_equiv_class_table): Ditto.
3037         (equiv_class_label_hash): Ditto.
3038         (equiv_class_label_eq): Ditto
3039         (equiv_class_lookup): Ditto.
3040         (equiv_class_ladd): Ditto.
3041         (pointer_equiv_class): Ditto.
3042         (location_equiv_class): Ditto.
3043         (condense_visit): Rename and rewrite from label_visit to do only
3044         SCC related stuff for HU.
3045         (label_visit): Do HU work for HU.
3046         (perform_var_substitution): Update to do HU and location
3047         equivalence.
3048         (free_var_substitution_info): Update to free HU and location
3049         equivalence structures.  */
3050         (find_equivalent_node): Update for pointer but not location
3051         equivalence.
3052         (unite_pointer_equivalences): New function.
3053         (move_complex_constraints): Rewrite to only do moving.
3054         (rewrite_constraints): Split out of move_complex_constraints.
3055         (solve_graph): Use graph->size.
3056         (process_constraint_1): Add from_call argument, use it.
3057         Split *a = &b into two constraints.
3058         (process_constraint): Use new process_constraint_1.
3059         (get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
3060         (get_constraint_for): Handle non-pointer integers properly.
3061         Remove code that used to handle structures.
3062         (handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
3063         with unknown addends.
3064         (handle_rhs_call): New function.
3065         (find_func_aliases): Use handle_rhs_call.
3066         (set_uids_in_ptset): Add an assert.
3067         (set_used_smts): Fix bug in not considering unified vars.
3068         (compute_tbaa_pruning): Stop initing useless iteration_obstack.
3069         (compute_points_to_sets): Update for other function changes.
3070         (delete_points_to_sets): Ditto.
3071         (ipa_pta_execute): Ditto.
3072         (pass_ipa_pta): We need to update SSA after ipa_pta.
3073         
3074 2007-08-19  Jan Hubicka  <jh@suse.cz>
3075
3076         * i386.md: Replace "rim" and "mri" constraints by "g".
3077
3078 2007-08-19  Joseph Myers  <joseph@codesourcery.com>
3079
3080         * dwarf2out.c (text_section_used, cold_text_section_used,
3081         cold_text_section, dwarf2out_note_section_used): New.
3082         (dwarf2out_init): Initialize cold_text_section.
3083         (dwarf2out_switch_text_section, dwarf2out_begin_function): Call
3084         dwarf2out_note_section_used.
3085         (size_of_aranges): Only count entry for text section if it was
3086         used.  Count entry for cold text section if it was used.
3087         (output_aranges): Only output entries for text section and cold
3088         text section if they were used.
3089
3090 2007-08-19  Andrew Pinski  <pinskia@gmail.com>
3091
3092         * tree-pretty-print.c (debug_generic_expr): Add a comment about
3093         the function.
3094         (debug_generic_stmt): Likewise.
3095         (debug_tree_chain): Likewise.
3096
3097 2007-08-19  Dorit Nuzman  <dorit@il.ibm.com>
3098
3099         * tree-data-refs.c (split_constant_offset): Expose.
3100         * tree-data-refs.h (split_constant_offset): Add declaration.
3101
3102         * tree-vectorizer.h (dr_alignment_support): Renamed
3103         dr_unaligned_software_pipeline to dr_explicit_realign_optimized.
3104         Added a new value dr_explicit_realign.
3105         (_stmt_vec_info): Added new fields: dr_base_address, dr_init,
3106         dr_offset, dr_step, and dr_aligned_to, along with new access
3107         functions for these fields: STMT_VINFO_DR_BASE_ADDRESS,
3108         STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and
3109         STMT_VINFO_DR_ALIGNED_TO.
3110
3111         * tree-vectorizer.c (vect_supportable_dr_alignment): Add
3112         documentation.
3113         In case of outer-loop vectorization with non-fixed misalignment - use
3114         the dr_explicit_realign scheme instead of the optimized realignment
3115         scheme.
3116         (new_stmt_vec_info): Initialize new fields.
3117
3118         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the
3119         'nested_in_vect_loop' case. Change verbosity level.
3120         (vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case.
3121         Don't fail on zero step in the outer-loop for loads.
3122         (vect_analyze_data_refs): Call split_constant_offset to calculate
3123         base, offset and init relative to the outer-loop.
3124
3125         * tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused
3126         BSI function argument with a new function argument - at_loop.
3127         Simplify the condition that determines STEP. Takes additional argument
3128         INV_P. Support outer-loop vectorization (handle the
3129         nested_in_vect_loop case), including zero step in the outer-loop. Call
3130         vect_create_addr_base_for_vector_ref with additional argument.
3131         (vect_create_addr_base_for_vector_ref): Takes additional argument LOOP.
3132         Updated function documentation. Handle the 'nested_in_vect_loop' case.
3133         Fixed and simplified calculation of step.
3134         (vectorizable_store): Call vect_create_data_ref_ptr with loop instead
3135         of bsi, and with additional argument. Call bump_vector_ptr with
3136         additional argument. Fix typos. Handle the 'nested_in_vect_loop' case.
3137         (vect_setup_realignment): Takes additional arguments INIT_ADDR and
3138         DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case
3139         when the realignment setup needs to take place inside the loop.
3140         Support the dr_explicit_realign scheme. Allow generating the optimized
3141         realignment scheme for outer-loop vectorization. Added documentation.
3142         (vectorizable_load): Support the dr_explicit_realign scheme. Handle
3143         the 'nested_in_vect_loop' case, including loads that are invariant in
3144         the outer-loop and the realignment schemes. Handle the case when the
3145         realignment setup needs to take place inside the loop. Call
3146         vect_setup_realignment with additional arguments.  Call
3147         vect_create_data_ref_ptr with additional argument and with loop instead
3148         of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI.
3149         (vect_gen_niters_for_prolog_loop): Call
3150         vect_create_addr_base_for_vector_ref with additional arguments.
3151         (vect_create_cond_for_align_checks): Likewise.
3152         (bump_vector_ptr): Updated to support the new dr_explicit_realign
3153         scheme: takes additional argument bump; argument ptr_incr is now
3154         optional; updated documentation.
3155         (vect_init_vector): Takes additional argument (bsi). Use it, if
3156         available, to insert the vector initialization.
3157         (get_initial_def_for_induction): Pass additional argument in call to
3158         vect_init_vector.
3159         (vect_get_vec_def_for_operand): Likewise.
3160         (vect_setup_realignment): Likewise.
3161         (vectorizable_load): Likewise.
3162
3163 2007-08-19  Dorit Nuzman  <dorit@il.ibm.com>
3164
3165         * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info
3166         as argument instead of struct loop.
3167         (nested_in_vect_loop_p): New function.
3168         (vect_relevant): Add enum values vect_used_in_outer_by_reduction and
3169         vect_used_in_outer.
3170         (is_loop_header_bb_p): New. Used to differentiate loop-header phis
3171         from other phis in the loop.
3172         (destroy_loop_vec_info): Add additional argument to declaration.
3173
3174         * tree-vectorizer.c (supportable_widening_operation): Also check if
3175         nested_in_vect_loop_p (don't allow changing the order in this case).
3176         (vect_is_simple_reduction): Takes a loop_vec_info as argument instead
3177         of struct loop. Call nested_in_vect_loop_p and don't require
3178         flag_unsafe_math_optimizations if it returns true.
3179         (new_stmt_vec_info): When setting def_type for phis differentiate 
3180         loop-header phis from other phis.
3181         (bb_in_loop_p): New function.
3182         (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so
3183         just update their loop_vinfo.  Order of BB traversal now matters -
3184         call dfs_enumerate_from with bb_in_loop_p.
3185         (destroy_loop_vec_info): Takes additional argument to control whether
3186         stmt_vinfo of the loop stmts should be destroyed as well.
3187         (vect_is_simple_reduction): Allow the "non-reduction" use of a
3188         reduction stmt to be defines by a non loop-header phi.
3189         (vectorize_loops): Call destroy_loop_vec_info with additional argument.
3190
3191         * tree-vect-transform.c (vectorizable_reduction): Call
3192         nested_in_vect_loop_p. Check for multitypes in the inner-loop.
3193         (vectorizable_call): Likewise.
3194         (vectorizable_conversion): Likewise.
3195         (vectorizable_operation): Likewise.
3196         (vectorizable_type_promotion): Likewise.
3197         (vectorizable_type_demotion): Likewise.
3198         (vectorizable_store): Likewise.
3199         (vectorizable_live_operation): Likewise.
3200         (vectorizable_reduction): Likewise. Also pass loop_info to
3201         vect_is_simple_reduction instead of loop.
3202         (vect_init_vector): Call nested_in_vect_loop_p.
3203         (get_initial_def_for_reduction): Likewise.
3204         (vect_create_epilog_for_reduction): Likewise.
3205         (vect_init_vector): Check which loop to work with, in case there's an
3206         inner-loop.
3207         (get_initial_def_for_inducion): Extend to handle outer-loop
3208         vectorization. Fix indentation.
3209         (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def.
3210         In the case vect_induction_def get the vector def from the induction
3211         phi node, instead of calling get_initial_def_for_inducion.
3212         (get_initial_def_for_reduction): Extend to handle outer-loop 
3213         vectorization.
3214         (vect_create_epilog_for_reduction): Extend to handle outer-loop
3215         vectorization.
3216         (vect_transform_loop): Change assert to just skip this case.  Add a
3217         dump printout.
3218         (vect_finish_stmt_generation): Add a couple asserts.
3219
3220         (vect_estimate_min_profitable_iters): Multiply
3221         cost of inner-loop stmts (in outer-loop vectorization) by estimated
3222         inner-loop bound.
3223         (vect_model_reduction_cost): Don't add reduction epilogue cost in case
3224         this is an inner-loop reduction in outer-loop vectorization.
3225
3226         * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function.
3227         Same code as what used to be vect_analyze_scalar_cycles, only with
3228         additional argument loop, and loop_info passed to
3229         vect_is_simple_reduction instead of loop.
3230         (vect_analyze_scalar_cycles): Code factored out into
3231         vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest.
3232         Updated documentation.
3233         (analyze_operations): Check for inner-loop loop-closed exit-phis during
3234         outer-loop vectorization that are live or not used in the outerloop,
3235         cause this requires special handling.
3236         (vect_enhance_data_refs_alignment): Don't consider versioning for
3237         nested-loops.
3238         (vect_analyze_data_refs): Check that there are no datarefs in the
3239         inner-loop.
3240         (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer
3241         and vect_used_in_outer_by_reduction cases.
3242         (process_use): Also consider the case of outer-loop stmt defining an
3243         inner-loop stmt and vice versa.
3244         (vect_analyze_loop_1): New function.
3245         (vect_analyze_loop_form): Extend, to allow a restricted form of nested
3246         loops.  Call vect_analyze_loop_1.
3247         (vect_analyze_loop): Skip (inner-)loops within outer-loops that have
3248         been vectorized.  Call destroy_loop_vec_info with additional argument.
3249
3250         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow
3251         in the inner-loop when doing outer-loop vectorization. Add
3252         documentation and printout.
3253         (vect_recog_dot_prod_pattern): Likewise. Also add check for
3254         GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop).
3255
3256 2007-08-18  Andrew Pinski  <pinskia@gmail.com>
3257
3258         * tree-affine.h (print_aff): New prototype.
3259         (debug_aff): Likewise.
3260         * tree-affine.c (print_aff): New function.
3261         (debug_aff): Likewise.
3262
3263 2007-08-18  Paul Brook  <paul@codesourcery.com>
3264             Joseph Myers  <joseph@codesourcery.com>
3265
3266         * common.opt (-fdebug-prefix-map=): New option.
3267         * opts.c: Include debug.h.
3268         (common_handle_option): Handle -fdebug-prefix-map.
3269         * final.c: Include ggc.h.
3270         (struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
3271         remap_debug_filename): New.
3272         * Makefile.in (final.o, opts.o): Update dependencies.
3273         * debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
3274         * configure.ac: Check for assembler --debug-prefix-map support.
3275         * configure, config.in: Regenerate.
3276         * gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
3277         (ASM_DEBUG_SPEC): Include ASM_MAP.
3278         * doc/install.texi (--with-debug-prefix-map): Document.
3279         * doc/invoke.texi (-fdebug-prefix-map): Document.
3280         * dbxout.c (dbxout_init, dbxout_start_source_file,
3281         dbxout_source_file): Call remap_debug_filename.
3282         * dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
3283         dwarf2out_start_source_file, dwarf2out_finish): Call
3284         remap_debug_filename.
3285         (file_table_relative_p): Do not check d->emitted_number.
3286         * toplev.c (output_file_directive): Call remap_debug_filename.
3287         * vmsdbgout.c (write_srccorr): Call remap_debug_filename.
3288         * xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
3289
3290 2007-08-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3291
3292         * loop-invariant.c (find_invariants_to_move): Add missing macro
3293         argument.
3294
3295 2007-08-17  Tom Tromey  <tromey@redhat.com>
3296
3297         * tree.h (struct tree_label_decl): Removed old "java" fields.
3298
3299 2007-08-17  Richard Sandiford  <richard@codesourcery.com>
3300             Nigel Stephens  <nigel@mips.com>
3301
3302         * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
3303         Treat -mno-data-in-code and -mcode-xonly as aliases for
3304         -mcode-readable=no and -mcode-readable=pcrel respectively.
3305         * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
3306         (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
3307         (MULTILIB_DIRNAMES): Update accordingly.
3308
3309 2007-08-17  H.J. Lu  <hongjiu.lu@intel.com>
3310
3311         * Makefile.in (version.o): Depend on $(REVISION) only if
3312         REVISION_s is defined.
3313
3314 2007-08-17  Sa Liu  <saliu@de.ibm.com>
3315             Ulrich Weigand  <uweigand@de.ibm.com>
3316
3317         PR middle-end/32970
3318         * tree.c (reconstruct_complex_type): For a pointer to a vector,
3319         use build_qualified_type to retain qualifiers of the base type.
3320
3321 2007-08-17  Chen Liqin  <liqin@sunnorth.com.cn>
3322
3323         * config/score/score.md : Update pattern tablejump.
3324         * config/score/score.c : Update score_initialize_trampoline 
3325         function.
3326         * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
3327         (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
3328         * doc/contrib.texi: Add my entry.
3329
3330 2007-08-16  H.J. Lu  <hongjiu.lu@intel.com>
3331
3332         * Makefile.in (REVISION): New.
3333         (REVISION_c): New.
3334         (REVISION_s): New.
3335         (version.o): Also depend on $(REVISION). Add
3336         -DREVISION=$(REVISION_s).
3337
3338         * version.c (version_string): Add REVISION.
3339
3340 2007-08-16  Seongbae Park <seongbae.park@gmail.com>
3341
3342         * tree-eh.c (lower_try_finally_onedest): Reset the locus
3343         of GOTO that's relocated to a different block.
3344
3345 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3346
3347         * c-common.c (const_strip_array_types): New.
3348         * c-common.h (lang_missing_noreturn_ok_p): Delete.
3349         (const_strip_array_types): New.
3350         * c-objc-common.c (c_disregard_inline_limits,
3351         c_warn_unused_global_decl): Constify.
3352         * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
3353         c_vla_type_p, c_incomplete_type_error): Likewise.
3354         * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
3355         * hooks.c (hook_bool_const_tree_false): New.
3356         * hooks.h (hook_bool_const_tree_false): Likewise.
3357         * langhooks-def.h (lhd_warn_unused_global_decl,
3358         lhd_incomplete_type_error, lhd_expr_size,
3359         lhd_tree_inlining_disregard_inline_limits,
3360         lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
3361         LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
3362         * langhooks.c (lhd_warn_unused_global_decl,
3363         lhd_incomplete_type_error,
3364         lhd_tree_inlining_disregard_inline_limits,
3365         lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
3366         lhd_expr_size): Likewise.
3367         * langhooks.h (lang_hooks_for_tree_inlining,
3368         lang_hooks_for_tree_dump, lang_hooks_for_types,
3369         lang_hooks_for_decls, lang_hooks): Likewise.
3370         * pointer-set.c (pointer_set_t, pointer_set_create,
3371         pointer_set_contains, insert_aux, pointer_set_insert,
3372         pointer_set_traverse, pointer_map_t, pointer_map_create,
3373         pointer_map_contains, pointer_map_insert, pointer_map_traverse):
3374         Likewise.
3375         * pointer-set.h (pointer_set_contains, pointer_set_insert,
3376         pointer_set_traverse, pointer_map_contains, pointer_map_insert,
3377         pointer_map_traverse): Likewise.
3378         * predict.c (assert_is_empty): Likewise.
3379         * tree-affine.c (free_name_expansion): Likewise.
3380         * tree-cfg.c (edge_to_cases_cleanup): Likewise.
3381         * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
3382         * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.
3383
3384 2007-08-16  Victor Kaplansky <victork@il.ibm.com>
3385
3386         * tree-vectorizer.c (new_loop_vec_info): Initialize new 
3387         field.
3388         (destroy_loop_vec_info): Add call to VEC_free.
3389         * tree-vectorizer.h (may_alias_ddrs): Define.
3390         (LOOP_VINFO_MAY_ALIAS_DDRS): Define.
3391         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
3392         Change reporting to dump.
3393         (vect_is_duplicate_ddr): New.
3394         (vect_mark_for_runtime_alias_test): New.
3395         (vect_analyze_data_ref_dependences) Add call to
3396         vect_mark_for_runtime_alias_test.
3397         (vect_enhance_data_refs_alignment): Define local variable
3398         vect_versioning_for_alias_required, don't perform
3399         peeling for alignment if versioning for alias is
3400         required.
3401         (vect_enhance_data_refs_alignment): Use
3402         PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of
3403         PARAM_VECT_MAX_VERSION_CHECKS.
3404         * tree-vect-transform.c
3405         (vect_create_cond_for_alias_checks): New.
3406         (vect_transform_loop): Add call to
3407         vect_create_cond_for_alias_checks.
3408         (vect_vfa_segment_size): New.
3409         * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS):
3410         Rename.
3411         (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define.
3412         * gcc/doc/invoke.texi
3413         (vect-max-version-for-alignment-checks): Document.
3414         (vect-max-version-for-alias-checks): Document.
3415         (vect-max-version-checks): Remove.
3416      
3417 2007-08-16  Uros Bizjak  <ubizjak@gmail.com>
3418
3419         * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on
3420         the same line as the instruction for all asm dialects.
3421         (*rep_movsi): Ditto.
3422         (*rep_movsi_rex64): Ditto.
3423         (*rep_movqi): Ditto.
3424         (*rep_movqi_rex64): Ditto.
3425         (*rep_stosdi_rex64): Ditto.
3426         (*rep_stossi): Ditto.
3427         (*rep_stossi_rex64): Ditto.
3428         (*rep_stosqi): Ditto.
3429         (*rep_stosqi_rex64): Ditto.
3430         (*cmpstrnqi_nz_1): Ditto.
3431         (*cmpstrnqi_nz_rex_1): Ditto.
3432         (*cmpstrnqi_1): Ditto.
3433         (*cmpstrnqi_rex_1): Ditto.
3434         (*strlenqi_1): Ditto.
3435         (*strlenqi_rex_1): Ditto.
3436         * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock"
3437         prefix on the same line as the instruction for all asm dialects.
3438         (sync_double_compare_and_swap<mode>): Ditto.
3439         (*sync_double_compare_and_swapdi_pic): Ditto.
3440         (*sync_compare_and_swap_cc<mode>): Ditto.
3441         (sync_double_compare_and_swap_cc<mode>): Ditto.
3442         (*sync_double_compare_and_swap_ccdi_pic): Ditto.
3443         (sync_old_add<mode>): Ditto.
3444         (sync_add<mode>): Ditto.
3445         (sync_sub<mode>): Ditto.
3446         (sync_ior<mode>): Ditto.
3447         (sync_and<mode>): Ditto.
3448         (sync_xor<mode>): Ditto.
3449
3450 2007-08-16  Richard Sandiford  <richard@codesourcery.com>
3451
3452         PR middle-end/32897
3453         * reload.c (find_reloads): Check that the memory returned by
3454         find_reloads_toplev was not the result of forcing a constant
3455         to memory.
3456         (find_reloads_toplev): Always use simplify_gen_subreg to get
3457         the subreg of a constant.  If the result is also a constant,
3458         but not a legitimate one, force it into the constant pool
3459         and reload its address.
3460
3461 2007-08-15  David Edelsohn  <edelsohn@gnu.org>
3462
3463         * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
3464         POPCOUNT.
3465
3466 2007-08-15  Daniel Jacobowitz  <dan@codesourcery.com>
3467
3468         * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
3469         directive for the current vector ABI.
3470
3471 2007-08-15  Steve Ellcey  <sje@cup.hp.com>
3472
3473         PR target/32963
3474         * caller-save.c (reg_save_code): Set invalide status on restore code.
3475         
3476 2007-08-15  Diego Novillo  <dnovillo@google.com>
3477
3478         * tree-ssa-alias.c (compute_memory_partitions): Use
3479         alias_bitmap_obstack to allocate bitmaps.
3480         (reset_alias_info): Factor out of init_alias_info.
3481         Mark all name tags not associated to an SSA name for renaming.
3482         (init_alias_info): Call it.
3483         (create_name_tags): Tidy.  Add comments.
3484         (dump_points_to_info_for): Do not call get_mem_sym_stats_for.
3485
3486 2007-08-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
3487
3488         * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
3489         scheduler dependencies.
3490
3491 2007-08-15  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3492
3493         * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
3494         "register_operand".
3495         (*iorsi_1_zext): Likewise.
3496         (*iorsi_1_zext_imm): Likewise.
3497         * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand"
3498         with "rm"/"xm" constraint.
3499         (sse2_vmsqrtv2df2): Likewise.
3500
3501 2007-08-15  Jakub Jelinek  <jakub@redhat.com>
3502
3503         PR middle-end/33074
3504         * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
3505         REG_LIBCALL note.
3506
3507 2007-08-14  Daniel Berlin  <dberlin@dberlin.org>
3508
3509         * tree-pass.h (PROP_pta): Removed.
3510         (TODO_rebuild_alias): New.
3511         (pass_may_alias): Removed.
3512         * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
3513         aliasing if we changed something.
3514         * tree-ssa-alias.c (compute_may_aliases): Make non-static.  Update
3515         SSA internally.
3516         (pass_may_alias): Removed.
3517         (create_structure_vars): Return TODO_rebuild_alias.
3518         * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
3519         * tree-sra.c (tree_sra): Only rebuild aliasing if something
3520         changed.
3521         (tree_sra_early): We never affect aliasing right now.
3522         * tree-flow.h (compute_may_aliases): New prototype.
3523         * passes.c: Remove pass_may_alias from the passes.
3524         (execute_function_todo): Support TODO_rebuild_alias.    
3525
3526 2007-08-14  Kai Tietz  <kai.tietz@onevision.com>
3527
3528         * i386.c: (legitimize_address): Move dllimported variable check
3529         infront of legitimizing pic address of CONST symbols.
3530
3531 2007-08-14  Steve Ellcey  <sje@cup.hp.com>
3532
3533         PR tree-optimization/32941
3534         * tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
3535         (goto_queue_cmp): Remove.
3536         (find_goto_replacement): Change search method.
3537         (maybe_record_in_goto_queue): Add assert.
3538         (lower_try_finally): Remove qsort call, add pointer_map_destroy call.
3539         * Makefile.in (tree-eh.o): Add pointer-set.h dependency.
3540
3541 2007-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3542
3543         * alias.c (component_uses_parent_alias_set): Constify.
3544         * alias.h (component_uses_parent_alias_set): Likewise.
3545         * cfgrtl.c (print_rtl_with_bb): Likewise.
3546         * double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
3547         mpz_get_double_int): Likewise.
3548         * double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
3549         mpz_get_double_int): Likewise.
3550         * expr.c (is_aligning_offset, undefined_operand_subword_p,
3551         mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
3552         Likewise.
3553         * expr.h (safe_from_p): Likewise.
3554         * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
3555         Likewise.
3556         * gimplify.c (should_carry_locus_p, zero_sized_field_decl,
3557         zero_sized_type, goa_lhs_expr_p): Likewise.
3558         * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
3559         * rtl.h (print_rtl_with_bb): Likewise.
3560         * sched-vis.c (print_exp, print_value, print_pattern): Likewise.
3561         * tree-cfg.c (const_first_stmt, const_last_stmt): New.
3562         * tree-flow-inline.h (bb_stmt_list): Constify.
3563         (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
3564         cbsi_stmt): New.
3565         * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
3566         const_first_stmt, const_last_stmt): New.
3567         (block_may_fallthru, empty_block_p): Constify.
3568         * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
3569         EXPR_ONLY_BODY): New.
3570         (expr_first, expr_last, expr_only): Use macro for body.
3571         (const_expr_first, const_expr_last, const_expr_only): New.
3572         * tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
3573         ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
3574         ctsi_prev, ctsi_stmt): New.
3575         * tree-scalar-evolution.c (get_loop_exit_condition): Constify.
3576         * tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
3577         * tree-ssa-loop-niter.c (loop_only_exit_p,
3578         derive_constant_upper_bound): Likewise.
3579         * tree-ssa-phiopt.c (empty_block_p): Likewise.
3580         * tree-ssa-threadupdate.c (redirection_block_p): Likewise.
3581         * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
3582         * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
3583         * tree-vrp.c (vrp_bitmap_equal_p): Likewise.
3584         * tree.c (get_type_static_bounds): Likewise.
3585         * tree.h (const_expr_first, const_expr_last, const_expr_only): New.
3586         (get_type_static_bounds): Constify.
3587
3588 2007-08-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3589
3590         PR target/30315
3591         * config/i386/i386.h (CANONICALIZE_COMPARISON): New.
3592         * config/i386/i386.md (plusminus)(addsub)(SWI): New.
3593         (*<addsub><mode>3_cc_overflow): New.
3594         (*add<mode>3_cconly_overflow): New.
3595         (*sub<mode>3_cconly_overflow): New.
3596         (*<addsub>si3_zext_cc_overflow): New.
3597         * config/i386/predicates.md (fcmov_comparison_operator): Accept
3598         CCCmode for LTU, GTU, LEU and GEU.
3599         (ix86_comparison_operator): Likewise.
3600         (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
3601         * config/i386/i386.c (put_condition_code): Support CCCmode.
3602         (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
3603         or MINUS expressions.
3604
3605 2007-08-14  Andrew Pinski  <pinskia@gmail.com>
3606
3607         PR c/30428
3608         * c-typeck.c (build_binary_op): Disallow vector float types with
3609         BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
3610
3611 2007-08-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
3612
3613         * sched-int.h (struct _dep): Rename field 'kind' to 'type'.
3614         (DEP_KIND): Rename to DEP_TYPE.  Update all uses.
3615         (dep_def): New typedef.
3616         (init_dep_1, sd_debug_dep): Declare functions.
3617         (DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
3618         (debug_dep_links): Remove.
3619         (struct _deps_list): New field 'n_links'.
3620         (DEPS_LIST_N_LINKS): New macro.
3621         (FOR_EACH_DEP_LINK): Remove.
3622         (create_deps_list, free_deps_list, delete_deps_list): Remove
3623         declaration.
3624         (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
3625         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
3626         (copy_deps_list_change_con, move_dep_link): Ditto.
3627         (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
3628         and 'spec_back_deps'.  New field 'resolved_forw_deps'.  Remove field
3629         'dep_count'.
3630         (INSN_BACK_DEPS): Remove.
3631         (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
3632         New macros.
3633         (INSN_DEP_COUNT): Remove.
3634         (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP.  Fix comments.
3635         (spec_info, haifa_recovery_block_was_added_during_scheduling_p):
3636         Declare global variables.
3637         (deps_pools_are_empty_p, sched_free_deps): Declare functions.
3638         (add_forw_dep, compute_forward_dependences): Remove declarations.
3639         (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
3640         (add_back_forw_dep, delete_back_forw_dep): Ditto.
3641         (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
3642         functions.
3643         (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW):
3644         New constants.
3645         (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
3646         (sd_list_types_def): New typedef.
3647         (sd_next_list): Declare function.
3648         (struct _sd_iterator): New type.
3649         (sd_iterator_def): New typedef.
3650         (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
3651         functions.
3652         (FOR_EACH_DEP): New cycle wrapper.
3653         (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
3654         Declare functions.
3655         (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
3656         (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
3657         Ditto.
3658
3659         * sched-deps.c (init_dep_1): Make global.
3660         (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
3661         constants.
3662         (dump_dep): New static function.
3663         (dump_dep_flags): New static variable.
3664         (sd_debug_dep): New function.
3665         (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
3666         the list.
3667         (move_dep_link): Use remove_from_deps_list (), instead of
3668         detach_dep_link ().
3669         (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
3670         (dep_link_is_detached_p): New static function.
3671         (deps_obstack, dl_obstack, dn_obstack): Remove.  Use dn_pool, dl_pool
3672         instead.
3673         (dn_pool, dl_pool): New alloc_pools.
3674         (dn_pool_diff, dl_pool_diff): New static variables.
3675         (create_dep_node, delete_dep_node): New static function.
3676         (create_deps_list): Make it static.  Use alloc_pool 'dl_pool'.
3677         (deps_list_empty_p): Make it static.  Use 'n_links' field.
3678         (deps_pools_are_empty_p): New static function.
3679         (alloc_deps_list, delete_deps_list): Remove.
3680         (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
3681         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
3682         (copy_deps_list_change_con): Remove.  Use sd_copy_back_deps () instead.
3683         (forward_dependency_cache): Remove.
3684         (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
3685         'back' from the names.  Change signature to use dep_t instead of
3686         equivalent quad.
3687         (add_back_dep): Ditto.  Make global.
3688         (check_dep_status): Rename to check_dep ().
3689         (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
3690         New functions.
3691         (sd_finish_insn): Ditto.
3692         (sd_find_dep_between_no_cache): New static function.
3693         (sd_find_dep_between): New function.
3694         (ask_dependency_caches, set_dependency_caches): New static functions.
3695         (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
3696         (add_or_update_dep_1): Separate pieces of functionality into
3697         ask_dependency_caches (), update_dependency_caches (),
3698         change_spec_dep_to_hard (), update_dep ().
3699         (get_back_and_forw_lists): New static function.
3700         (sd_add_dep): Separate setting of dependency caches into
3701         set_dependency_caches ().
3702         (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
3703         New functions.
3704         (sd_delete_dep): Ditto.
3705         (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
3706         (dump_lists): New static function.
3707         (sd_debug_lists): New debug function.
3708         (delete_all_dependences, fixup_sched_groups): Update to use
3709         sd_* infrastructure.
3710         (sched_analyze_2): Create data-speculative dependency only if
3711         data-speculation is enabled.
3712         (sched_analyze_insn): If insn cannot be speculative, make all its
3713         dependencies non-speculative.
3714         (sched_analyze): Use sd_init_insn ().
3715         (add_forw_dep, compute_forward_dependencies): Remove.
3716         (delete_dep_nodes_in_back_deps): New static function.
3717         (sched_free_deps): New function.
3718         (init_dependency_caches): Init alloc_pools.
3719         (extend_depedency_caches): Update after removing of
3720         forward_dependency_cache.
3721         (free_dependency_caches): Ditto.  Free alloc_pools.
3722         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
3723         (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
3724         Ditto.
3725         (add_back_forw_dep, delete_back_forw_dep): Ditto.
3726         (add_dependence): Use init_dep ().
3727         (get_dep_weak_1): New static function.
3728         (get_dep_weak): Move logic to get_dep_weak_1 ().
3729         (dump_ds): New static function moved from haifa-sched.c:
3730         debug_spec_status ().
3731         (debug_ds): New debug function.
3732         (check_dep_status): Rename to check_dep ().  Update to check whole
3733         dependencies.
3734
3735         * haifa-sched.c (spec_info): Make global.
3736         (added_recovery_block_p): Rename to
3737         'haifa_recovery_block_was_added_during_current_schedule_block_p'.
3738         (haifa_recovery_block_was_added_during_scheduling_p): New variable.
3739         (dep_cost, priority, rank_for_schedule, schedule_insn): Update
3740         to use new interfaces.
3741         (ok_for_early_queue_removal): Ditto.
3742         (schedule_block): Initialize logical uids of insns emitted by the
3743         target.
3744         (sched_init): Initialize new variable.
3745         (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
3746         interfaces.
3747         (extend_global): Initialize insn data.
3748         (init_h_i_d): Remove code that is now handled in sd_init_insn ().
3749         (process_insn_forw_deps_be_in_spec): Change signature.  Update to use
3750         new interfaces.
3751         (add_to_speculative_block): Update to use new interfaces.
3752         (create_recovery_block): Set new variables.
3753         (create_check_block_twin, fix_recovery_deps): Update to use new
3754         interfaces.
3755         (sched_insn_is_legitimate_for_speculation_p): New function.
3756         (speculate_insn): Move checking logic to
3757         sched_insn_is_legitimate_for_speculation_p ().
3758         (sched_remove_insn): Finalize sched-deps information of instruction.
3759         (clear_priorities, add_jump_dependencies): Update to use new
3760         interfaces.
3761         (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
3762         
3763         * sched-rgn.c (set_spec_fed, find_conditional_protection): Update
3764         to use new interfaces.
3765         (is_conditionally_protected, is_pfree, is_prisky) Ditto.
3766         (new_ready): Try to use control speculation only if it is available.
3767         (add_branch_dependences): Update to use new interfaces.
3768         (compute_block_backward_dependences): Rename to
3769         compute_block_dependences ().  Call
3770         targetm.sched.dependencies_evaluation_hook ().
3771         (free_block_dependencies): New static function.
3772         (debug_dependencies): Update to use new interfaces.
3773         (schedule_region): Remove separate computation of forward dependencies.
3774         Move call of targetm.sched.dependencies_evaluation_hook () to
3775         compute_block_dependences ().  Free dependencies at the end of
3776         scheduling the region.
3777
3778         * sched-ebb.c (earliest_block_with_similiar_load): Update to use
3779         new interfaces.
3780         (add_deps_for_risky_insns): Ditto.
3781         (schedule_ebb): Remove separate computation of forward dependencies.
3782         Free dependencies at the end of scheduling the ebb.
3783
3784         * ddg.c (create_ddg_dependence): Update to use new interfaces.
3785         (build_intra_loop_deps): Ditto.  Remove separate computation of
3786         forward dependencies.  Free sched-deps dependencies.
3787
3788         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
3789         to use new interfaces.
3790         (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
3791
3792         * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
3793         new interfaces.
3794         (is_costly_group): Ditto.
3795
3796 2007-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3797
3798         * alias.c (rtx_equal_for_memref_p): Constify.
3799         * basic-block.h (const_edge, const_basic_block): New.
3800         (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
3801         single_pred_p, single_succ_edge, single_pred_edge, single_succ,
3802         single_pred, maybe_hot_bb_p, probably_cold_bb_p,
3803         probably_never_executed_bb_p, edge_probability_reliable_p,
3804         br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
3805         inside_basic_block_p, control_flow_insn_p, dominated_by_p):
3806         Likewise.
3807         * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
3808         * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
3809         Likewise.
3810         * cfganal.c (flow_active_insn_p, forwarder_block_p,
3811         flow_nodes_print, dfs_enumerate_from): Likewise.
3812         * cfgbuild.c (count_basic_blocks, inside_basic_block_p,
3813         control_flow_insn_p, count_basic_blocks): Likewise.
3814         * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
3815         get_loop_body_with_size, loop_exit_edge_p): Likewise.
3816         * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
3817         average_num_loop_insns, loop_exit_edge_p,
3818         just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
3819         * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
3820         average_num_loop_insns, seq_cost): Likewise.
3821         * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
3822         * dominance.c (dominated_by_p): Likewise.
3823         * emit-rtl.c (validate_subreg): Likewise.
3824         * except.c (can_throw_internal, can_throw_external): Likewise.
3825         * except.h (can_throw_internal, can_throw_external): Likewise.
3826         * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
3827         oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
3828         compute_transp, load_killed_in_block_p, reg_killed_on_edge,
3829         simple_mem, store_ops_ok, load_kills_store, find_loads,
3830         store_killed_in_insn, store_killed_after, store_killed_before,
3831         gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
3832         Likewise.
3833         * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
3834         noce_mem_write_may_trap_or_fault_p): Likewise.
3835         * pointer-set.c (pointer_set_contains, pointer_map_contains):
3836         Likewise.
3837         * pointer-set.h (pointer_set_contains, pointer_map_contains):
3838         Likewise.
3839         * predict.c (can_predict_insn_p, maybe_hot_bb_p,
3840         probably_cold_bb_p, probably_never_executed_bb_p,
3841         edge_probability_reliable_p, br_prob_note_reliable_p,
3842         can_predict_insn_p): Likewise.
3843         * regclass.c (reg_set_to_hard_reg_set): Likewise.
3844         * resource.c (return_insn_p): Likewise.
3845         * rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
3846         Likewise.
3847         * rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
3848         * tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
3849         * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
3850         verify_gimple_modify_stmt): Likewise.
3851         * tree-chrec.c (is_not_constant_evolution,
3852         is_multivariate_chrec_rec, is_multivariate_chrec,
3853         chrec_contains_symbols, chrec_contains_undetermined,
3854         tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
3855         evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
3856         eq_evolutions_p, scev_direction): Likewise.
3857         * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
3858         eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
3859         chrec_contains_symbols_defined_in_loop,
3860         chrec_contains_undetermined, tree_contains_chrecs,
3861         evolution_function_is_affine_multivariate_p,
3862         evolution_function_is_univariate_p, chrec_zerop,
3863         evolution_function_is_constant_p, evolution_function_is_affine_p,
3864         evolution_function_is_affine_or_constant_p,
3865         tree_does_not_contain_chrecs, chrec_type): Likewise.
3866         * tree-data-ref.c (tree_fold_divides_p,
3867         object_address_invariant_in_loop_p, dr_may_alias_p,
3868         ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
3869         same_access_functions, constant_access_functions,
3870         access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
3871         Likewise.
3872         * tree-flow.h (scev_direction): Likewise.
3873         * tree-gimple.c (is_gimple_stmt): Likewise.
3874         * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
3875         Likewise.
3876         * tree-pretty-print.c (op_prio): Likewise.
3877         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
3878         analyzable_condition, backedge_phi_arg_p): Likewise.
3879         * tree-scalar-evolution.h (get_chrec_loop): Likewise.
3880         * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
3881         * tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
3882         Likewise.
3883
3884 2007-08-13  Dan Hipschman  <dsh@google.com>
3885
3886         PR c/32953
3887         * c-format.c (check_format_arg): Move check for zero-length
3888         format strings below the check for unterminated strings.
3889
3890 2007-08-13  Andrew Pinski  <pinskia@gmail.com>
3891
3892         PR C/30427
3893         * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
3894         types.
3895
3896 2007-08-13  Nick Clifton  <nickc@redhat.com>
3897
3898         * config/arm/arm_neon.h: Revert GPLv3 patch to this file.
3899
3900 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3901
3902         PR fortran/32860
3903         * c-format.c (gcc_gfc_length_specs): New array.
3904         (gcc_gfc_char_table): Add unsigned specifier, and references to
3905         the l length modifier.
3906         (format_types_orig): Use the new gcc_gfc_length_specs.
3907
3908 2007-08-12  Sa Liu  <saliu@de.ibm.com>
3909
3910         * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
3911         and with REG_RETVAL note after split.
3912
3913 2007-08-11  David Daney  <ddaney@avtrex.com>
3914
3915         * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter
3916