OSDN Git Service

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