OSDN Git Service

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