OSDN Git Service

671afbf639fefa57c09696397e6e5493adcb312b
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-08-12  Sa Liu  <saliu@de.ibm.com>
2
3         * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
4         and with REG_RETVAL note after split.
5
6 2007-08-11  David Daney  <ddaney@avtrex.com>
7
8         * config/mips/mips.c (mips_sched_reorder):  Mark cycle parameter
9         as ATTRIBUTE_UNUSED.
10
11 2007-08-11  David Edelsohn  <edelsohn@gnu.org>
12             Segher Boessenkool  <segher@kernel.crashing.org>
13
14         * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
15         HAVE_LOCAL_CPU_DETECT not defined.
16
17 2007-08-11  Jan Hubicka  <jh@suse.cz>
18
19         * cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined.
20         (cgraph_process_new_functions): Honor previous value of
21         disregard_inline_limits.
22         * ipa-inline.c (compute_inline_parameters): Likewise.
23
24 2007-08-11  Ian Lance Taylor  <iant@google.com>
25
26         * alias.h (alias_set_type): Define new type.
27         (ALIAS_SET_MEMORY_BARRIER): Use it.
28         * rtl.h: Include alias.h.
29         (struct mem_attrs): Use alias_set_type.
30         * tree.h: Include alias.h
31         (struct tree_type): Use alias_set_type.
32         (struct tree_struct_field_tag): Likewise.
33         (struct tree_decl_common): Likewise.
34         * alias.c (struct alias_set_entry): Use alias_set_type.
35         (get_alias_set_entry, alias_set_subset_of): Likewise.
36         (alias_sets_conflict_p): Likewise.
37         (alias_sets_must_conflict_p): Likewise.
38         (objects_must_conflict_p): Likewise.
39         (get_alias_set, new_alias_set): Likewise.
40         (record_alias_subset, record_component_aliases): Likewise.
41         (varargs_set, frame_set): Change to alias_set_type.
42         (get_varargs_alias_set): Use alias_set_type.
43         (get_frame_alias_set): Likewise.
44         * builtins.c (setjmp_alias_set): Change to alias_set_type.
45         * dse.c (struct store_info): Use alias_set_type.
46         (struct read_info, struct clear_alias_mode_holder): Likewise.
47         (clear_alias_set_lookup, canon_address): Likewise.
48         (record_store, check_mem_read_rtx): Likewise.
49         (dse_record_singleton_alias_set): Likewise.
50         (dse_invalidate_singleton_alias_set): Likewise.
51         * emit-rtl.c (get_mem_attrs): Likewise.
52         (set_mem_attributes_minus_bitpos): Likewise.
53         (set_mem_alias_set): Likewise.
54         * expr.c (store_constructor_field, store_field): Likewise.
55         * gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise.
56         * langhooks.c (lhd_get_alias_set): Likewise.
57         * langhooks-def.h (lhd_get_alias_set): Likewise.
58         * reload1.c (alter_reg): Likewise.
59         * tree-flow.h (struct fieldoff): Likewise.
60         * tree-ssa-alias.c (struct alias_map_d): Likewise.
61         (may_alias_p, get_smt_for, create_sft): Likewise.
62         * tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise.
63         * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
64         (merge_smts_into): Likewise.
65         * varasm.c (const_alias_set): Likewise.
66         * c-common.c (strict_aliasing_warning): Likewise.
67         (c_common_get_alias_set): Likewise.
68         * dse.h (dse_record_singleton_alias_set): Update declaration.
69         (dse_invalidate_singleton_alias_set): Likewise.
70         * emit-rtl.h (set_mem_alias_set): Likewise.
71         * c-common.h (c_common_get_alias_set): Likewise.
72         * print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it.
73         * print-tree.c (print_node): Likewise.
74         * config/alpha/alpha.c (alpha_sr_alias_set): Change to
75         alias_set_type.
76         (alpha_setup_incoming_varargs): Use alias_set_type.
77         * config/i386/i386.c (setup_incoming_varargs_64): Use
78         alias_set_type.
79         (setup_incoming_varargs_ms_64): Likewise.
80         (ix86_GOT_alias_set): Likewise.
81         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
82         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
83         (set): Change to alias_set_type.
84         (get_TOC_alias_set): Use alias_set_type.
85         * config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update
86         declaration.
87         * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
88         * config/sparc/sparc.c (sparc_sr_alias_set): Change to
89         alias_set_type.
90         (struct_value_alias_set): Likewise.
91         * Makefile.in (GTFILES): Add $(srcdir)/alias.h.
92
93 2007-08-11  Richard Sandiford  <richard@codesourcery.com>
94
95         * config/vxworks-dummy.h (TARGET_VXWORKS): Define.
96         * config/vxworks.h (TARGET_VXWORKS): Override.
97         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
98         "mips" if TARGET_VXWORKS.
99
100 2007-08-11  Richard Sandiford  <richard@codesourcery.com>
101
102         * calls.c (avoid_likely_spilled_reg): New function.
103         (expand_call): Use it.
104
105 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
106
107         * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings.
108
109 2007-08-10  Adam Nemet  <anemet@caviumnetworks.com>
110
111         * config/mips/predicates.md (const_call_insn_operand): Invoke
112         SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
113
114 2007-08-10  David Edelsohn  <edelsohn@gnu.org>
115
116         PR target/33042
117         * config/rs6000/driver-rs6000.c: Include link.h.
118         Use ElfW instead of wordsize-specif typedef.
119
120 2007-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
121
122         * system.h (CONST_CAST): New.
123         * c-decl.c (c_make_fname_decl): Use it.
124         * c-lex.c (cb_ident, lex_string): Likewise.
125         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
126         * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
127         give_switch, set_multilib_dir): Likewise.
128         * gengtype-parse.c (string_seq, typedef_name): Likewise.
129         * passes.c (execute_one_pass): Likewise.
130         * prefix.c (update_path): Likewise.
131         * pretty-print.c (pp_base_destroy_prefix): Likewise.
132         * tree.c (build_string): Likewise.
133
134 2007-08-10  Aldy Hernandez  <aldyh@redhat.com>
135
136         * tree-flow-inline.h (is_exec_stmt): Remove.
137         (is_label_stmt): Remove.
138         * tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and
139         is_label_stmt.
140
141 2007-08-10  Andreas Krebbel  <krebbel1@de.ibm.com>
142
143         * lower-subreg.c (resolve_shift_zext): Don't adjust
144         src_reg_num for wordmode operands.
145
146 2007-08-10  Sandra Loosemore  <sandra@codesourcery.com>
147             David Ung  <davidu@mips.com>
148
149         * config/mips/mips.c (TARGET_SCHED_INIT): Define.
150         (TARGET_SCHED_REORDER2): Define.
151         (mips_maybe_swap_ready): New.
152         (mips_last_74k_agen_insn): New.
153         (mips_74k_agen_init): New.
154         (mips_74k_agen_reorder): New function to group loads and stores
155         in the ready queue.
156         (mips_sched_init): New.  
157         (mips_sched_reorder): Don't do initialization here.  Call
158         mips_74k_agen_reorder.
159         (mips_variable_issue): Call mips_74k_agen_init.
160
161 2007-08-10  Aldy Hernandez  <aldyh@redhat.com>
162
163         * tree-flow-inline.h (get_filename): Remove.
164
165 2007-08-10  Richard Sandiford  <richard@codesourcery.com>
166
167         * config/mips/mips-protos.h (mips_address_insns): Add a boolean
168         argument.
169         (mips_fetch_insns): Delete in favor of...
170         (mips_load_store_insns): ...this new function.
171         * config/mips/mips.c (mips_address_insns): Add a boolean argument
172         to say whether multiword moves _might_ be split.
173         (mips_fetch_insns): Delete in favor of...
174         (mips_load_store_insns): ...this new function.
175         (mips_rtx_costs): Update the call to mips_address_insns.
176         (mips_address_cost): Likewise.
177         * config/mips/mips.md (length): Use mips_load_store_insns instead
178         of mips_fetch_insns.
179         * config/mips/constraints.md (R): Use mips_address_insns rather
180         than mips_fetch_insns.  Assume that the move never needs to be split.
181
182 2007-08-09  Sandra Loosemore  <sandra@codesourcery.com>
183
184         * config/mips/mips.opt (mhard-float, msoft-float):  Make these
185         control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
186         than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.  
187         * config/mips/mips.h (mips16_hard_float): Delete.
188         (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI):  Delete these
189         definitions, and replace with....
190         (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
191         * config/mips/mips.c (mips16_hard_float): Delete.  Replace
192         all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
193         (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
194         (override_options):  Replace MASK_SOFT_FLOAT references with
195         MASK_SOFT_FLOAT_ABI.  Delete twiddling with MASK_SOFT_FLOAT
196         and mips16_hard_float when TARGET_MIPS16.
197         
198 2007-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
199
200         PR c/32796
201         * c-typeck.c (build_binary_op): Check for non pointer types before
202         calling int_fits_type_p.
203
204 2007-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
205
206         PR middle-end/32813
207         * fold-const.c (omit_one_operand): Return only the ommitted expression
208         if the result is an empty statement.
209         (pedantic_omit_one_operand): Likewise.
210
211 2007-08-09  Daniel Berlin  <dberlin@dberlin.org>
212
213         * c-typeck.c (readonly_error): Improve error for assignment.
214         
215         * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
216         expression. 
217         (pp_c_expression): Ditto.
218
219 2007-08-09  Simon Baldwin  <simonb@google.com>
220
221         * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
222         break that was preventing simplify_associative_operation() for xor.
223
224 2007-08-09  Sandra Loosemore  <sandra@codesourcery.com>
225             Nigel Stephens  <nigel@mips.com>
226
227         * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
228         Document change in interpretation of value from boolean to
229         tri-state integer.
230         * optabs.c (expand_ffs, expand_ctz): New functions to compute
231         ffs and ctz using clz.
232         (expand_unop):  Call them.
233         * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
234         result value.
235         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
236         * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to
237         enable the new ffs expansion on this target.
238
239 2007-08-09  Jan Hubicka  <jh@suse.cz>
240
241         * optabs.c (expand_widen_pattern_expr): Use optabs accestors.
242         (expand_ternary_op): Likewise.
243         (expand_vec_shift_expr): Likewise.
244         (expand_binop_directly): Likewise.
245         (expand_binop): Likewise.
246         (sign_expand_binop): Likewise.
247         (expand_twoval_unop): Likewise.
248         (expand_twoval_binop): Likewise.
249         (expand_twoval_binop_libfunc): Likewise.
250         (widen_clz): Likewise.
251         (widen_bswap): Likewise.
252         (expand_parity): Likewise.
253         (expand_unop): Likewise.
254         (expand_abs_nojump): Likewise.
255         (expand_copysign): Likewise.
256         (emit_no_conflict_block): Likewise.
257         (emit_libcall_block): Likewise.
258         (can_compare_p): Likewise.
259         (prepare_cmp_insn): Likewise.
260         (emit_cmp_and_jump_insn_1): Likewise.
261         (prepare_float_lib_cmp): Likewise.
262         (emit_conditional_add): Likewise.
263         (gen_add2_insn): Likewise.
264         (have_add2_insn): Likewise.
265         (gen_sub2_insn): Likewise.
266         (have_sub2_insn): Likewise.
267         (can_extend_p): Likewise.
268         (can_fix_p): Likewise.
269         (can_float_p): Likewise.
270         (expand_float): Likewise.
271         (expand_fix): Likewise.
272         (expand_sfix_optab): Likewise.
273         (new_optab): Likewise.
274         (new_convert_optab): Likewise.
275         (init_libfuncs): Likewise.
276         (init_interclass_conv_libfuncs): Likewise.
277         (init_intraclass_conv_libfuncs): Likewise.
278         (set_conv_libfunc): Likewise.
279         (init_optabs): Likewise.
280         (debug_optab_libfuncs): Likewise.
281         (gen_cond_trap): Likewise.
282         * optabs.h (optab_handler, convert_optab_hanlder): New.
283         * genopinit.c: Update optabs generation table.
284         * reload.c (find_reloads_address_1): Use optabs accestors.
285         * builtins.c (expand_builtin_mathfn): Likewise.
286         (expand_builtin_mathfn_2): Likewise.
287         (expand_builtin_mathfn_3): Likewise.
288         (expand_builtin_interclass_mathfn): Likewise.
289         (expand_builtin_sincos): Likewise.
290         (expand_builtin_cexpi): Likewise.
291         (expand_builtin_powi): Likewise.
292         (expand_builtin_strlen): Likewise.
293         * dojump.c (do_jump): Likewise.
294         * expr.c (convert_move): Likewise.
295         (move_by_pieces): Likewise.
296         (move_by_pieces_ninsns): Likewise.
297         (can_store_by_pieces): Likewise.
298         (store_by_pieces_1): Likewise.
299         (emit_move_via_integer): Likewise.
300         (emit_move_complex): Likewise.
301         (emit_move_ccmode): Likewise.
302         (emit_move_insn_1): Likewise.
303         (emit_single_push_insn): Likewise.
304         (store_constructor): Likewise.
305         (expand_expr_real_1): Likewise.
306         (do_store_flag): Likewise.
307         * ada/misc.c (gnat_compute_largest_alignment): Likewise.
308         (enumerate_modes): Likewise.
309         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
310         (supportable_widening_operation): Likewise.
311         (supportable_narrowing_operation): Likewise.
312         * expmed.c (store_bit_field_1): Likewise.
313         (extract_bit_field_1): Likewise.
314         (expand_mult_highpart_optab): Likewise.
315         (expand_smod_pow2): Likewise.
316         (expand_divmod): Likewise.
317         (emit_store_flag): Likewise.
318         * tree-vect-patterns.c
319         (vect_pattern_recog_1): Likewise.
320         * tree-ssa-loop-prefetch.c
321         (nontemporal_store_p): Likewise.
322         * tree-vect-transform.c (vect_model_reduction_cost): Likewise.
323         (vect_create_epilog_for_reduction): Likewise.
324         (vectorizable_reduction): Likewise.
325         (vectorizable_operation): Likewise.
326         (vect_strided_store_supported): Likewise.
327         (vectorizable_store): Likewise.
328         (vect_strided_load_supported): Likewise.
329         (vectorizable_load): Likewise.
330         * combine.c (simplify_comparison): Likewise.
331         * tree-vect-generic.c
332         (type_for_widest_vector_mode): Likewise.
333         (expand_vector_operations_1): Likewise.
334         * config/spu/spu.c (spu_expand_mov): Likewise.
335         (spu_emit_vector_compare): Likewise.
336         * config/rs6000/rs6000.c
337         (rs6000_emit_vector_compare): Likewise.
338         * stmt.c (add_case_node): Likewise.
339         * reload1.c (gen_reload):
340
341 2007-08-09  Michael Matz  <matz@suse.de>
342
343         * tree.h (fixed_zerop): Declare as taking a const_tree.
344         * tree.c (fixed_zerop): Take a const_tree.
345
346 2007-08-09  Ira Rosen  <irar@il.ibm.com>
347
348         * tree-vect-transform.c (vectorizable_store): Remove call to
349         copy_virtual_operands() and call mark_symbols_for_renaming() for
350         the created vector store.
351         (vect_setup_realignment): Don't call copy_virtual_operands() and
352         update_vuses_to_preheader(). 
353         (vectorizable_load): Don't call copy_virtual_operands(). 
354         (update_vuses_to_preheader): Remove.
355
356 2007-08-08  Chao-ying Fu  <fu@mips.com>
357
358         * tree.def (FIXED_POINT_TYPE): New type.
359         (FIXED_CST): New constant.
360         (FIXED_CONVERT_EXPR): New expr.
361         * doc/c-tree.texi (Types): Document FIXED_POINT_TYPE.
362         (Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR.
363         * tree.h (struct tree_base): Add saturating_flag.
364         Remove one bit of spare for saturating_flag.
365         (NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE.
366         (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P,
367         FIXED_POINT_TYPE_P): Define.
368         (TYPE_SATURATING): Define.
369         (TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define.
370         (struct tree_fixed_cst): New.
371         (TYPE_IBIT, TYPE_FBIT): Define.
372         (tree_node): Add fixed_cst.
373         (enum tree_index): Add new enumeration values of
374         TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
375         TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE,
376         TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE,
377         TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE,
378         TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE,
379         TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE,
380         TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE,
381         TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE,
382         TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE,
383         TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE,
384         TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE,
385         TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE,
386         TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE,
387         TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE,
388         TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE,
389         TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE,
390         TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE,
391         TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE.
392         (sat_short_fract_type_node, sat_fract_type_node,
393         sat_long_fract_type_node, sat_long_long_fract_type_node,
394         sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node,
395         sat_unsigned_long_fract_type_node,
396         sat_unsigned_long_long_fract_type_node, short_fract_type_node,
397         fract_type_node, long_fract_type_node, long_long_fract_type_node,
398         unsigned_short_fract_type_node, unsigned_fract_type_node,
399         unsigned_long_fract_type_node, unsigned_long_long_fract_type_node,
400         sat_short_accum_type_node, sat_accum_type_node,
401         sat_long_accum_type_node, sat_long_long_accum_type_node,
402         sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node,
403         sat_unsigned_long_accum_type_node,
404         sat_unsigned_long_long_accum_type_node, short_accum_type_node,
405         accum_type_node, long_accum_type_node, long_long_accum_type_node,
406         unsigned_short_accum_type_node, unsigned_accum_type_node,
407         unsigned_long_accum_type_node, unsigned_long_long_accum_type_node,
408         qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node,
409         uqq_type_node, uhq_type_node, usq_type_node, udq_type_node,
410         utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node,
411         sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node,
412         sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node,
413         sat_utq_type_node, ha_type_node, sa_type_node, da_type_node,
414         ta_type_node, uha_type_node, usa_type_node, uda_type_node,
415         uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node,
416         sat_ta_type_node, sat_uha_type_node, sat_usa_type_node,
417         sat_uda_type_node, sat_uta_type_node): New macro.
418         (make_fract_type, make_accum_type): Declare.
419         (make_signed_fract_type, make_unsigned_fract_type,
420         make_sat_signed_fract_type, make_sat_unsigned_fract_type,
421         make_signed_accum_type, make_unsigned_accum_type,
422         make_sat_signed_accum_type, make_sat_unsigned_accum_type,
423         make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type,
424         make_or_reuse_sat_signed_fract_type,
425         make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type,
426         make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type,
427         make_or_reuse_sat_unsigned_accum_type): New macro.
428         (fixed_zerop): Declare.
429         * defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
430         LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
431         SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
432         LONG_LONG_ACCUM_TYPE_SIZE): Define.
433         * treestruct.def: Add TS_FIXED_CST.
434         * Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h.
435         (tree.o): Likewise.
436         (tree-dump.o): Likewise.
437         (print-tree.o): Likewise.
438         (tree-pretty-print.o): Likewise.
439         (fold-const.o): Likewise.
440         * tree-complex.c (some_nonzerop): Handle FIXED_CST.
441         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST.
442         (is_gimple_min_invariant): Handle FIXED_CST.
443         * stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT,
444         MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
445         MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
446         (layout_type): Handle FIXED_POINT_TYPE.
447         (make_fract_type, make_accum_type): New functions.
448         * tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE.
449         * tree-dump.c (fixed-value.h): New include.
450         (dump_fixed): New function.
451         (dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST.
452         * tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE.
453         (estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR.
454         * tree-pretty-print.c (fixed-value.h): New include.
455         (dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and
456         FIXED_CONVERT_EXPR.
457         * tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST.
458         * tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST.
459         * tree-ssa-pre.c (poolify_tree): Handle FIXED_CST.
460         * tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation
461         for non-saturating fixed-point types.
462         (reassociate_bb): Likewise.
463         * emit-rtl.c (fixed-value.h): New include.
464         (fconst0, fconst1): New array.
465         (init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes.
466         * tree-vect-generic.c expand_vector_operation): Support
467         MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and
468         MODE_VECTOR_UACCUM.
469         (type_for_widest_vector_mode): Add one parameter for the 
470         saturating flag.
471         Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their
472         vector mode.
473         Pass the satp parameter to type_for_mode for fixed-point types.
474         (expand_vector_operations_1): Pass the saturating flag to
475         type_for_widest_vector_mode.
476         Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
477         and MODE_VECTOR_UACCUM.
478         * tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST.
479         (vectorizable_condition): Likewise.
480         * tree.c (fixed-value.h): New include.
481         (tree_code_size): Support FIXED_CST.
482         (build_fixed): New function.
483         (build_one_cst): Support FIXED_POINT_TYPE for accum types.
484         (fixed_zerop): New function.
485         (tree_node_structure): Support FIXED_CST.
486         (type_contains_placeholder_1): Support FIXED_POINT_TYPE.
487         (build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE.
488         (type_hash_eq): Handle FIXED_POINT_TYPE.
489         (simple_cst_equal): Support FIXED_CST.
490         (iterative_hash_expr): Handle FIXED_CST.
491         (get_unwidened): Make sure type is not FIXED_POINT_TYPE.
492         (get_narrower): Likewise.
493         (variably_modified_type_p): Handle FIXED_POINT_TYPE.
494         (make_or_reuse_fract_type, make_or_reuse_accum_type): New functions.
495         (build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and
496         MAKE_FIXED_MODE_NODE macros to initialize fixed-point type
497         nodes.
498         (build_vector_type_for_mode): Handle MODE_VECTOR_FRACT,
499         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
500         (initializer_zerop): Support FIXED_CST.
501         (walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE.
502         * dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or
503         DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE.
504         (is_base_type): Handle FIXED_POINT_TYPE.
505         (add_type_attribute): Handle FIXED_POINT_TYPE.
506         (gen_type_die_with_usage): Handle FIXED_POINT_TYPE.
507         * print-tree.c (fixed-value.h): New include.
508         (print_node_brief): Support FIXED_CST.
509         (print_node): Support FIXED_POINT_TYPE and FIXED_CST.
510         * c-pretty-print.c (fixed-value.h): New include.
511         (pp_c_type_specifier): Handle FIXED_POINT_TYPE.  Need to pass
512         TYPE_SATURATING to c_common_type_for_mode for fixed-point modes.
513         (pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE.
514         Support fixed-point types for inner items in VECTOR_TYPE.
515         (pp_c_direct_declarator): Likewise.
516         (pp_c_declarator): Likewise.
517         (pp_c_fixed_constant): New function.
518         (pp_c_constant): Handle FIXED_CST.
519         (pp_c_primary_expression): Likewise.
520         (pp_c_expression): Likewise.
521         * fold-const.c (fixed-value.h): New include.
522         (negate_expr_p): Return true for FIXED_CST.
523         (fold_negate_expr): Support FIXED_CST.
524         (split_tree): Support FIXED_CST.
525         (const_binop): Support FIXED_CST.
526         (fold_convert_const_int_from_fixed): New function to convert from
527         fixed to int.
528         (fold_convert_const_real_from_fixed): New function to convert from
529         fixed to real.
530         (fold_convert_const_fixed_from_fixed): New function to convert from
531         fixed to another fixed.
532         (fold_convert_const_fixed_from_int): New function to convert from
533         int to fixed.
534         (fold_convert_const_fixed_from_real): New function to convert from
535         real to fixed.
536         (fold_convert_const): Support conversions from fixed to int, from
537         fixed to real, from fixed to fixed, from int to fixed, and from real
538         to fixed.
539         (fold_convert): Support FIXED_CST and FIXED_POINT_TYPE.
540         (operand_equal_p): Support FIXED_CST.
541         (make_range): For fixed-point modes, we need to pass the
542         saturating flag as the 2nd parameter.
543         (tree_swap_operands_p): Handle FIXED_CST.
544         (fold_plusminus_mult_expr): For fract modes, we cannot generate
545         constant 1.
546         (fold_unary): Support FIXED_CONVERT_EXPR.
547         (fold_binary): Handle FIXED_CST.
548         Make sure the type is not saturating, before associating operations.
549         Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2).
550         (tree_expr_nonnegative_warnv_p): Handle FIXED_CST.
551         (fold_negate_const): Support FIXED_CST.
552         (fold_relational_const): Support FIXED_CST.
553         * gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE.
554         (gimplify_expr): Handle FIXED_CST.
555         (gimplify_type_sizes): Handle FIXED_POINT_TYPE.
556         * ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST.
557         * ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE.
558         * doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE,
559         FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
560         SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
561         LONG_LONG_ACCUM_TYPE_SIZE.
562         * dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE.
563         * c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE.
564         * tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE.
565         * expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT,
566         MODE_ACCUM, and MODE_UACCUM.
567         * tree-vectorizer.c (vect_is_simple_reduction): Check for saturating
568         fixed-point types to disable reduction.
569         * explow.c (promote_mode): Support FIXED_POINT_TYPE.
570
571 2007-08-08  David Edelsohn  <edelsohn@gnu.org>
572
573         * config/rs6000/x-rs6000: New file.
574         * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu.
575         * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu.
576         (EXTRA_SPEC_FUNCTIONS): Define.
577         (HAVE_LOCAL_CPU_DETECT): Define.
578         (CC1_CPU_SPEC): Define.
579         * config/rs6000/driver-rs6000.c: New file.
580         * config/rs6000/aix.h (CC1_SPEC): Define.
581         * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu.
582         * config.host: Add x-rs6000 to host_xmake_file if host and target
583         are rs6000 or powerpc.
584
585 2007-08-08  Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
586
587         * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=.
588
589 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
590             Sandra Loosemore  <sandra@codesourcery.com>
591             Chao-ying Fu  <fu@mips.com>
592             Nigel Stephens  <nigel@mips.com>
593             David Ung  <davidu@mips.com>
594
595         * doc/invoke.texi (-mcode-readable): Document.
596         * config/mips/mips.opt (mcode-readable): New option.
597         * config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type.
598         * config/mips/mips.h (mips_code_readable_setting): New enum.
599         (mips_code_readable): Declare.
600         (TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros.
601         (TARGET_MIPS16_SHORT_JUMP_TABLES): New macro.
602         (JUMP_TABLES_IN_TEXT_SECTION): Use it.
603         (CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise.  Remove
604         boiler-plate comments.
605         (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
606         * config/mips/mips.c (mips_code_readable): New variable.
607         (mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for
608         MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES.  Use both the
609         context and -mcode-readable setting to restrict the use of
610         SYMBOL_PC_RELATIVE for MIPS16 constant pool references.
611         Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed.
612         (mips_symbolic_constant_p): Handle SYMBOL_32_HIGH.
613         (mips_blocks_for_constant_p): Only return false for
614         TARGET_MIPS16_PCREL_LOADS.
615         (mips_symbol_insns_1): Treat HIGHs as 2 extended instructions
616         for MIPS16.  Handle SYMBOL_32_HIGH.
617         (mips_const_insns): Allow HIGHs for MIPS16 too.
618         (mips_unspec_address_offset): New function, split out from...
619         (mips_unspec_address): ...here.
620         (mips_output_move): Handle MIPS16 HIGH moves.  Use "li" to load
621         16-bit symbolic constants.  Assert approropiate conditions for
622         using the "la" and "dla" macros.
623         (mips_handle_option): Handle -mcode-readable=.
624         (override_options): Use %hi/%lo relocations for TARGET_MIPS16 too.
625         Set up mips_lo_relocs[SYMBOL_32_HIGH].
626         (mips_strip_unspec_address): New function, split out from...
627         (print_operand_reloc): ...here.
628         (print_operand): Pass constants through mips_strip_unspec_address.
629         (print_operand_address): Likewise.
630         (mips_output_mi_thunk): Remove guard of mips16_lay_out_constants.
631         (mips_select_rtx_section): Remove MIPS16 handling.
632         (mips16_gp_pseudo_reg): Check currently_expanding_to_rtl.
633         (mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC.
634         (mips16_lay_out_constants): Do nothing unless
635         TARGET_MIPS16_PCREL_LOADS.
636         (mips_avoid_hazards): Remove guard of mips16_lay_out_constants.
637         * config/mips/mips.md: Split HIGHs for MIPS16.
638         (tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
639
640 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
641
642         * config/mips/mips-protos.h (mips_emit_move): Declare.
643         * config/mips/mips.c (mips_emit_move): New function.
644         (mips_force_temporary): Use mips_emit_move instead of emit_move_insn.
645         (mips_legitimize_const_move): Likewise.
646         (mips_legitimize_move): Likewise.
647         (mips_split_64bit_move): Likewise.
648         (mips_restore_gp): Likewise.
649         (mips_load_call_address): Likewise.
650         (mips_emit_fcc_reload): Likewise.
651         (mips_set_return_address): Likewise.
652         (mips_block_move_straight): Likewise.
653         (mips_block_move_loop): Likewise.
654         (mips_setup_incoming_varargs): Likewise.
655         (mips_save_reg): Likewise.
656         (mips_expand_prologue): Likewise.
657         (mips_restore_reg): Likewise.
658         (mips_expand_epilogue): Likewise.
659         (mips_output_mi_thunk): Likewise.
660         (build_mips16_call_stub): Likewise.
661         (mips_builtin_branch_and_move): Likewise.
662         * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise.
663         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
664         (fixuns_truncdfdi2): Likewise.
665         (fixuns_truncsfsi2): Likewise.
666         (fixuns_truncsfdi2): Likewise.
667         (loadgp_absolute): Likewise.
668         (builtin_setjmp_setup): Likewise.
669         (builtin_longjmp): Likewise.
670         (untyped_call): Likewise.
671
672 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
673
674         * config/mips/mips-protos.h (mips_split_symbol): Add a mode and
675         an "rtx *" argument.  Return a bool.
676         * config/mips/mips.c (mips_split_symbol): Accept arbitrary source
677         values and return true if they can be split.  Take the same kind of
678         mode argument as mips_symbol_insns.  Add a "lo_sum_out" parameter
679         and store the lo_sum there if nonnull.  Use the symbol type to
680         determine whether a $gp or HIGH is needed.
681         (mips_legitimize_address): Update call to mips_split_symbol and
682         simplify accordingly.
683         (mips_legitimize_const_move): Likewise.
684         * config/mips/mips.md: In the combine define_split,
685         check mips_split_symbol instead of splittable_symbolic_operand.
686         Update use of mips_split_symbol in the generator code.
687         * config/mips/predicates.md (splittable_symbolic_operand): Delete.
688
689 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
690
691         * config/mips/mips.c (mips_symbolic_address_p): Delete.
692         (mips_symbol_insns_1): New function, split out from...
693         (mips_symbol_insns): ...here.  Take a mode argument.  Treat loads
694         and stores separately from load addresses.
695         (mips_classify_address): Replace uses of mips_symbolic_address_p
696         with uses of mips_symbol_insns.
697         (mips_address_insns): Update calls to mips_symbol_insns.
698         (mips_const_insns): Likewise.
699         (mips_legitimize_address): Likewise.
700
701 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
702
703         * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type.
704         * config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS
705         block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS.
706         Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for
707         non-call contexts if TARGET_MIPS16.
708         (mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM.
709         (mips_symbolic_address_p): Likewise.  Remove special TARGET_MIPS16
710         code for SYMBOL_ABSOLUTE.
711         (mips_symbol_insns): Likewise.
712
713 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
714
715         * config/mips/mips-protos.h (mips_symbol_context): New enumeration.
716         * config/mips/mips.c (mips_classify_symbol): Take a context argument.
717         (mips_symbolic_constant_p): Likewise.  Update the call to
718         mips_classify_symbol.
719         (mips_classify_address): Update the calls to mips_symbolic_constant_p.
720         (mips_const_insns): Likewise.  Update the call to mips_classify_symbol.
721         (mips_legitimize_address): Update the call to mips_symbolic_constant_p.
722         (print_operand_reloc): Add a context argument.  Update the call to
723         mips_symbolic_constant_p.
724         (print_operand): Update the calls to print_operand_reloc.
725         (print_operand_address): Use print_operand_reloc rather than
726         print_operand.
727         (mips_rewrite_small_data_p): Add a context argument.  Update the call
728         to mips_symbolic_constant_p.
729         (mips_small_data_pattern_1): Make DATA the containing mem.
730         Update the call to mips_rewrite_small_data_p.
731         (mips_rewrite_small_data_1): Likewise.
732         (mips_use_anchors_for_symbol_p): Update the call to
733         mips_symbolic_constant_p.
734         * config/mips/predicates.md (const_call_insn_operand): Likewise.
735         (splittable_symbolic_operand): Likewise.
736         (move_operand): Likewise.
737         (absolute_symbolic_operand): Likewise.
738         (got_disp_operand): Likewise.
739         (got_page_ofst_operand): Likewise.
740
741 2007-08-08  Richard Sandiford  <richard@codesourcery.com>
742
743         * config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to...
744         (SYMBOL_ABSOLUTE): ...this.
745         (SYMBOL_SMALL_DATA): Rename to...
746         (SYMBOL_GP_RELATIVE): ...this.
747         (SYMBOL_CONSTANT_POOL): Rename to...
748         (SYMBOL_PC_RELATIVE): ...this.
749         * config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p)
750         (mips_symbolic_address_p, mips_symbol_insns, override_options)
751         (mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update
752         after above changes.
753         * config/mips/predicates.md (const_call_insn_operand): Likewise.
754         (general_symbolic_operand): Rename to...
755         (absolute_symbolic_operand): ...this.
756         * config/mips/mips.md: Update after above changes.
757
758 2007-08-08  Vladimir Yanovsky  <yanov@il.ibm.com>
759             Revital Eres  <eres@il.ibm.com>
760
761         * ddg.c (print_ddg): Add dump information.
762         * modulo-sched.c (print_node_sched_params): Add parameter and
763         verbosity.
764         (calculate_maxii): Remove function.
765         (undo_generate_reg_moves): Likewise.
766         (undo_permute_partial_schedule): Likewise.
767         (kernel_number_of_cycles): Likewise.
768         (MAXII_FACTOR): New definition to calculate the upper bound of II.
769         (sms_schedule): Use it.  Remove profitability checks.
770         (sms_schedule_by_order): Fix order of nodes within the cycle.
771
772 2007-08-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
773
774         * gcc/config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add
775         -profile option, add pie support.
776         (ENDFILE_SPEC): New spec.
777         * gcc/config/gnu.h (LIB_SPEC): Add -profile option.
778
779 2007-08-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
780
781         * gcc/config/i386/gnu.h (CPP_SPEC): Add -pthread option.
782         * gcc/config/gnu.h (LIB_SPEC): Likewise.
783
784 2007-08-07  Yaz Saito  <saito@google.com>
785             Ian Lance Taylor  <iant@google.com>
786
787         * common.opt (finstrument-functions-exclude-function-list): New
788         option.
789         (finstrument-functions-exclude-file-list): New option.
790         * opts.c (char_p): Define and DEF_VEC.
791         (flag_instrument_functions_exclude_functions): New static
792         variable.
793         (flag_instrument_functions_exclude_files): New static variable.
794         (add_instrument_functions_exclude_list): New static function.
795         (flag_instrument_functions_exclude_p): New function.
796         (common_handle_option): Handle new options.
797         * flags.h (flag_instrument_functions_exclude_p): Declare.
798         * gimplify.c (gimplify_function_tree): Call
799         flag_instrument_functions_exclude_p.
800         * doc/invoke.texi (Option Summary): Mention new options.
801         (Code Gen Options): Document new options.
802
803 2007-08-07  Ian Lance Taylor  <iant@google.com>
804
805         PR rtl-optimization/32776
806         * lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
807         (resolve_use): Likewise.
808         (decompose_multiword_subregs): Remove "changed" local variable.
809
810 2007-08-07  Carlos O'Donell  <carlos@codesourcery.com>
811
812         * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes.
813         * configure: Regenerate.
814         * config.in: Regenerate.
815         * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options
816         spec string.
817
818 2007-08-07  Ian Lance Taylor  <iant@google.com>
819
820         * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
821         note, just delete the insn.
822
823 2007-08-07  Andreas Schwab  <schwab@suse.de>
824
825         PR bootstrap/32973
826         * gengtype-lex.l: Ignore backslash/newline pair while scanning a
827         struct definition.
828
829 2007-08-07  Andreas Krebbel  <krebbel1@de.ibm.com>
830
831         * lower-subreg.c (resolve_subreg_use): Remove assertion.
832         (find_decomposable_shift_zext, resolve_shift_zext): New functions.
833         (decompose_multiword_subregs): Use the functions above to decompose
834         multiword shifts and zero-extends.
835
836 2007-08-07  Rask Ingemann Lambertsen  <rask@sygehus.dk>
837
838         * doc/sourcebuild.texi (Test Directives): Fix "compile" and
839         "assemble" descriptions which were swapped.
840
841 2007-08-06  Chao-ying Fu  <fu@mips.com>
842
843         * fixed-value.h: New file.
844         * fixed-value.c: New file.
845         * Makefile.in (OBJS-common): Add fixed-value.o.
846         (fixed-value.o): New rule.
847         (GTFILES): Add fixed-value.h.
848         * double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT
849         to compare a.low and b.low.
850         * gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef.
851
852 2007-08-06  H.J. Lu  <hongjiu.lu@intel.com>
853             Daniel Jacobowitz  <dan@codesourcery.com>
854
855         PR target/31868
856         * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
857         tmake_file.
858         (x86_64-*-netbsd*): Likewise.
859         (x86_64-*-linux*): Likewise.
860         (x86_64-*-kfreebsd*-gnu): Likewise.
861         (x86_64-*-knetbsd*-gnu): Likewise.
862         (i[34567]86-*-solaris2.1[0-9]*): Likewise.
863
864         * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
865
866         * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
867         Add -fno-asynchronous-unwind-tables.
868
869         * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
870         * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise.
871         * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise.
872         * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise.
873         * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise.
874
875 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
876
877         * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
878         (TARGET_C_MODE_FOR_SUFFIX): New.
879
880 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
881
882         * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
883
884 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
885
886         * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.
887
888 2007-08-06  H.J. Lu  <hongjiu.lu@intel.com>
889
890         * config/i386/i386.md: Check TARGET_ macros and optimize_size
891         before checking function returns in conditional expressions.
892
893 2007-08-06  Alfred Minarik  <a.minarik@aon.at>
894
895         PR pch/13676
896         * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
897
898 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
899
900         PR middle-end/32988
901         * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
902         for INTEGRAL_TYPE_P.
903
904 2008-08-05  Paolo Bonzini  <bonzini@gnu.org>
905
906         * configure.ac: Remove --enable-checking=df from default settings.
907         * tree-pass.h (TODO_df_verify): New.  Shift TODO_mark_first_instance.
908         * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
909         if the parameter is true.
910         (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
911         DF_VERIFY_SCHEDULED flag is true.
912         * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
913         (df_finish_pass): Adjust prototype.
914         * passes.c (execute_todo): Schedule verification if TODO_df_verify is
915         true.
916
917         * see.c (pass_see): Add TODO_df_verify.
918         * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
919         * global.c (rest_of_handle_global_alloc): Schedule verification
920         after the pass.
921         * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
922         before the pass.
923         * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
924         * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
925         * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
926
927         * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
928         * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
929         * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.
930
931 2007-08-05  Vladimir Yanovsky  <yanov@il.ibm.com>
932             Revital Eres <eres@il.ibm.com>
933
934         * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new
935         flag.
936         * ddg.c (create_ddg_dependence): Rename to...
937         (create_ddg_dep_from_intra_loop_link): This.  Do not check
938         for interloop edges.  Do not create anti dependence edge when
939         a true dependence edge exists in the opposite direction and
940         -fmodulo-sched-allow-regmoves is set.
941         (build_intra_loop_deps): Call create_ddg_dep_from_intra_loop_link.
942         (add_cross_iteration_register_deps): Create anti dependence edge
943         when -fno-modulo-sched-allow-regmoves is set.
944         * common.opt (-fmodulo-sched-allow-regmoves): New flag.
945
946 2007-08-04  Richard Sandiford  <richard@codesourcery.com>
947
948         * config/arm/arm.md (movsi): Add braces.
949
950 2007-08-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
951
952         PR middle-end/32780
953         * fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of operands
954         for the folding of "A - (A & B)" into "~B & A"; cast them to type.
955
956 2007-08-03  Zdenek Dvorak  <ook@ucw.cz>
957
958         * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops' state
959         accessor functions.
960         * cfgloopmanip.c (remove_path, create_preheaders,
961         force_single_succ_latches, fix_loop_structure): Ditto.
962         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
963         tree_duplicate_loop_to_header_edge): Ditto.
964         * cfgloopanal.c (mark_irreducible_loops): Ditto.
965         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize):
966         Ditto.
967         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures,
968         cleanup_tree_cfg): Ditto.
969         * tree-cfg.c (tree_merge_blocks): Ditto.
970         * cfgloop.c (rescan_loop_exit, record_loop_exits,
971         release_recorded_exits, get_loop_exit_edges, verify_loop_structure,
972         loop_preheader_edge, single_exit): Ditto.
973         (flow_loops_find): Do not clear loops->state.
974         * cfgloop.h (loops_state_satisfies_p, loops_state_set,
975         loops_state_clear): New functions.
976
977 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
978
979         PR middle-end/32399
980         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
981         when adding to the base and convert ELT to sizetype instead of type.
982
983 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
984
985         PR middle-end/32304
986         * ipa-reference.c (has_proper_scope_for_analysis): Return false when
987         the decl's type has TYPE_NEEDS_CONSTRUCTING set.
988
989 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
990
991         PR middle-end/32935
992         * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the
993          correct type the negate expression.
994
995 2007-08-03  Jan Hubicka  <jh@suse.cz>
996
997         * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred
998         stack boundary.
999
1000 2007-08-03  David Edelsohn  <edelsohn@gnu.org>
1001
1002         * config/rs6000/rs6000.c (struct processor_cost): Change
1003         l1_cache_lines to l1_cache_size.  Add l2_cache_size.
1004         (*_cost): Convert l1 cache information to kilobytes.  Add l2 cache
1005         information.
1006         (rios1_costs, rios2_cost): Correct cache line size.
1007         (rs6000_override_options): Set l2-cache-size parameter.
1008
1009 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1010             Diego Novillo  <dnovillo@google.com>
1011
1012         PR 31521
1013         * tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify
1014         if the range includes 0.
1015
1016 2007-08-03  Ben Elliston  <bje@au.ibm.com>
1017
1018         * config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate
1019         mode to unspec expressions to silence a warning from the generator
1020         programs.
1021         
1022 2007-08-02  Steve Ellcey  <sje@cup.hp.com>
1023
1024         * config/ia64/constraints.md ("U"): Make constraint vector only.
1025
1026 2007-08-02  Nathan Froyd  <froydnj@codesourcery.com>
1027
1028         PR middle-end/25446
1029         * c-objc-common.c (c_cannot_inline_tree_fn): Check for an
1030         always_inline attribute on the function decl.
1031
1032 2007-08-02  Nathan Froyd  <froydnj@codesourcery.com>
1033
1034         PR middle-end/25445
1035         * varasm.c (default_binds_local_p_1): Consult flag_whole_program
1036         if we are compiling with -fPIC.
1037
1038 2007-08-02  Sandra Loosemore  <sandra@codesourcery.com>
1039             Nigel Stephens  <nigel@mips.com>
1040
1041         * longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0):
1042         Define for MIPS32 and MIPS64.
1043
1044 2007-08-02  Nick Clifton  <nickc@redhat.com>
1045
1046         * config/host-hpux.c: Change copyright header to refer to version
1047         3 of the GNU General Public License and to point readers at the
1048         COPYING3 file and the FSF's license web page.
1049         * config/alpha/predicates.md, config/alpha/vms-ld.c,
1050         config/alpha/linux.h, config/alpha/alpha.opt,
1051         config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h,
1052         config/alpha/vms-unwind.h, config/alpha/ev4.md,
1053         config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c,
1054         config/alpha/alpha.h, config/alpha/sync.md,
1055         config/alpha/openbsd.h, config/alpha/alpha.md,
1056         config/alpha/alpha-modes.def, config/alpha/ev5.md,
1057         config/alpha/alpha-protos.h, config/alpha/freebsd.h,
1058         config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h,
1059         config/alpha/constraints.md, config/alpha/osf.h,
1060         config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h,
1061         config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h,
1062         config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def,
1063         config/frv/frv-asm.h, config/frv/frv-protos.h,
1064         config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h,
1065         config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h,
1066         config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt,
1067         config/s390/2064.md, config/s390/2084.md, config/s390/s390.md,
1068         config/s390/s390.opt, config/s390/s390-modes.def,
1069         config/s390/fixdfdi.h, config/s390/constraints.md,
1070         config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h,
1071         config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md,
1072         config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md,
1073         config/m32c/m32c-pragma.c, config/m32c/m32c.h,
1074         config/m32c/prologue.md, config/m32c/m32c.abi,
1075         config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md,
1076         config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt,
1077         config/m32c/t-m32c, config/m32c/m32c-modes.def,
1078         config/m32c/jump.md, config/m32c/shift.md,
1079         config/m32c/m32c-protos.h, config/libgloss.h,
1080         config/spu/spu-protos.h, config/spu/predicates.md,
1081         config/spu/spu-builtins.h, config/spu/spu.c,
1082         config/spu/spu-builtins.def, config/spu/spu-builtins.md,
1083         config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md,
1084         config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt,
1085         config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h,
1086         config/sparc/hypersparc.md, config/sparc/predicates.md,
1087         config/sparc/linux.h, config/sparc/sp64-elf.h,
1088         config/sparc/supersparc.md, config/sparc/cypress.md,
1089         config/sparc/openbsd1-64.h, config/sparc/openbsd64.h,
1090         config/sparc/niagara.md, config/sparc/sparc.md,
1091         config/sparc/long-double-switch.opt, config/sparc/ultra3.md,
1092         config/sparc/sparc.opt, config/sparc/sync.md,
1093         config/sparc/sp-elf.h, config/sparc/sparc-protos.h,
1094         config/sparc/ultra1_2.md, config/sparc/biarch64.h,
1095         config/sparc/sparc.c, config/sparc/little-endian.opt,
1096         config/sparc/sysv4-only.h, config/sparc/sparc.h,
1097         config/sparc/linux64.h, config/sparc/freebsd.h,
1098         config/sparc/sol2.h, config/sparc/rtemself.h,
1099         config/sparc/netbsd-elf.h, config/sparc/vxworks.h,
1100         config/sparc/sparc-modes.def, config/sparc/sparclet.md,
1101         config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h,
1102         config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md,
1103         config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt,
1104         config/m32r/linux.h, config/m32r/constraints.md,
1105         config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt,
1106         config/darwin-c.c, config/darwin.opt, config/i386/i386.h,
1107         config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h,
1108         config/i386/i386.md, config/i386/netware-crt0.c,
1109         config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h,
1110         config/i386/kaos-i386.h, config/i386/winnt-stubs.c,
1111         config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h,
1112         config/i386/sol2.h, config/i386/constraints.md,
1113         config/i386/netware-libgcc.c, config/i386/sysv5.h,
1114         config/i386/predicates.md, config/i386/geode.md,
1115         config/i386/x86-64.h, config/i386/kfreebsd-gnu.h,
1116         config/i386/freebsd64.h, config/i386/vxworksae.h,
1117         config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h,
1118         config/i386/rtemself.h, config/i386/netbsd-elf.h,
1119         config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c,
1120         config/i386/netware.h, config/i386/i386-modes.def,
1121         config/i386/sysv4-cpp.h, config/i386/i386-interix.h,
1122         config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h,
1123         config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h,
1124         config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h,
1125         config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md,
1126         config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt,
1127         config/i386/xm-mingw32.h, config/i386/linux64.h,
1128         config/i386/openbsdelf.h, config/i386/xm-cygwin.h,
1129         config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h,
1130         config/i386/winnt-cxx.c, config/i386/i386-interix3.h,
1131         config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c,
1132         config/i386/cygwin2.c, config/i386/i386-protos.h,
1133         config/i386/sync.md, config/i386/openbsd.h,
1134         config/i386/host-mingw32.c, config/i386/i386-aout.h,
1135         config/i386/nto.h, config/i386/biarch64.h,
1136         config/i386/i386-coff.h, config/i386/freebsd.h,
1137         config/i386/driver-i386.c, config/i386/knetbsd-gnu.h,
1138         config/i386/host-i386-darwin.c, config/i386/vxworks.h,
1139         config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h,
1140         config/darwin-protos.h, config/linux.opt, config/sol2.c,
1141         config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h,
1142         config/sh/linux.h, config/sh/elf.h, config/sh/superh.h,
1143         config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h,
1144         config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h,
1145         config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md,
1146         config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h,
1147         config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c,
1148         config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def,
1149         config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md,
1150         config/sh/superh64.h, config/sh/rtemself.h,
1151         config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h,
1152         config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h,
1153         config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c,
1154         config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def,
1155         config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h,
1156         config/avr/predicates.md, config/avr/constraints.md,
1157         config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt,
1158         config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h,
1159         config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h,
1160         config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt,
1161         config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt,
1162         config/c4x/c4x-modes.def, config/c4x/rtems.h,
1163         config/c4x/predicates.md, config/c4x/c4x.h,
1164         config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h,
1165         config/xtensa/predicates.md, config/xtensa/xtensa.c,
1166         config/xtensa/linux.h, config/xtensa/xtensa.h,
1167         config/xtensa/elf.h, config/xtensa/xtensa.md,
1168         config/xtensa/xtensa.opt, config/xtensa/constraints.md,
1169         config/xtensa/xtensa-protos.h, config/dbx.h,
1170         config/stormy16/predicates.md, config/stormy16/stormy16.md,
1171         config/stormy16/stormy16.c, config/stormy16/stormy16.opt,
1172         config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h,
1173         config/host-solaris.c, config/fr30/fr30.h,
1174         config/fr30/predicates.md, config/fr30/fr30-protos.h,
1175         config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt,
1176         config/vxworksae.h, config/sol2-c.c, config/lynx.h,
1177         config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md,
1178         config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c,
1179         config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h,
1180         config/m68hc11/m68hc12.h, config/openbsd-oldgas.h,
1181         config/host-linux.c, config/interix3.h, config/cris/cris.c,
1182         config/cris/predicates.md, config/cris/linux.h,
1183         config/cris/cris.h, config/cris/aout.h, config/cris/cris.md,
1184         config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt,
1185         config/cris/aout.opt, config/cris/cris-protos.h,
1186         config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h,
1187         config/iq2000/iq2000.h, config/iq2000/predicates.md,
1188         config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md,
1189         config/iq2000/iq2000.c, config/iq2000/iq2000.opt,
1190         config/host-darwin.c, config/mt/mt.md, config/mt/mt.c,
1191         config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h,
1192         config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h,
1193         config/chorus.h, config/mn10300/mn10300.c,
1194         config/mn10300/mn10300.opt, config/mn10300/predicates.md,
1195         config/mn10300/mn10300.h, config/mn10300/linux.h,
1196         config/mn10300/constraints.md, config/mn10300/mn10300-protos.h,
1197         config/mn10300/mn10300.md, config/ia64/predicates.md,
1198         config/ia64/itanium1.md, config/ia64/unwind-ia64.h,
1199         config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c,
1200         config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md,
1201         config/ia64/freebsd.h, config/ia64/ia64.md,
1202         config/ia64/ia64-modes.def, config/ia64/constraints.md,
1203         config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h,
1204         config/gofast.h, config/rtems.h, config/sol2-10.h,
1205         config/m68k/predicates.md, config/m68k/m68k.md,
1206         config/m68k/linux.h, config/m68k/m68k-modes.def,
1207         config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h,
1208         config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt,
1209         config/m68k/openbsd.h, config/m68k/m68k-aout.h,
1210         config/m68k/m68k.opt, config/m68k/m68020-elf.h,
1211         config/m68k/m68kelf.h, config/m68k/m68k-devices.def,
1212         config/m68k/uclinux-oldabi.h, config/m68k/m68k.c,
1213         config/m68k/constraints.md, config/m68k/rtemself.h,
1214         config/m68k/netbsd-elf.h, config/m68k/m68k.h,
1215         config/m68k/uclinux.h, config/rs6000/power4.md,
1216         config/rs6000/host-darwin.c, config/rs6000/6xx.md,
1217         config/rs6000/linux.h, config/rs6000/eabi.h,
1218         config/rs6000/aix41.opt, config/rs6000/xcoff.h,
1219         config/rs6000/secureplt.h, config/rs6000/linuxspe.h,
1220         config/rs6000/eabialtivec.h, config/rs6000/8540.md,
1221         config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h,
1222         config/rs6000/windiss.h, config/rs6000/603.md,
1223         config/rs6000/aix41.h, config/rs6000/cell.md,
1224         config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h,
1225         config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt,
1226         config/rs6000/darwin.md, config/rs6000/darwin64.h,
1227         config/rs6000/default64.h, config/rs6000/7xx.md,
1228         config/rs6000/darwin.opt, config/rs6000/spe.md,
1229         config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c,
1230         config/rs6000/rios2.md, config/rs6000/linuxaltivec.h,
1231         config/rs6000/7450.md, config/rs6000/linux64.h,
1232         config/rs6000/constraints.md, config/rs6000/440.md,
1233         config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c,
1234         config/rs6000/rs6000.c, config/rs6000/aix52.h,
1235         config/rs6000/rs6000.h, config/rs6000/power6.md,
1236         config/rs6000/predicates.md, config/rs6000/altivec.md,
1237         config/rs6000/aix64.opt, config/rs6000/rios1.md,
1238         config/rs6000/rs6000-modes.def, config/rs6000/rs64.md,
1239         config/rs6000/eabisim.h, config/rs6000/sysv4le.h,
1240         config/rs6000/darwin7.h, config/rs6000/dfp.md,
1241         config/rs6000/linux64.opt, config/rs6000/sync.md,
1242         config/rs6000/vxworksae.h, config/rs6000/power5.md,
1243         config/rs6000/lynx.h, config/rs6000/biarch64.h,
1244         config/rs6000/rs6000.md, config/rs6000/sysv4.opt,
1245         config/rs6000/eabispe.h, config/rs6000/e500.h,
1246         config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h,
1247         config/rs6000/netbsd.h, config/rs6000/e500-double.h,
1248         config/rs6000/aix.h, config/rs6000/vxworks.h,
1249         config/rs6000/40x.md, config/rs6000/aix51.h,
1250         config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md,
1251         config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def,
1252         config/arc/arc.h, config/mcore/mcore-elf.h,
1253         config/mcore/mcore-protos.h, config/mcore/predicates.md,
1254         config/mcore/mcore.md, config/mcore/mcore.c,
1255         config/mcore/mcore.opt, config/mcore/mcore.h,
1256         config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h,
1257         config/score/predicates.md, config/score/score-version.h,
1258         config/score/score-protos.h, config/score/misc.md,
1259         config/score/elf.h, config/score/score.c, config/score/mac.md,
1260         config/score/score7.md, config/score/score.h,
1261         config/score/score-conv.h, config/score/score-mdaux.c,
1262         config/score/score.md, config/score/score.opt,
1263         config/score/score-modes.def, config/score/score-mdaux.h,
1264         config/score/mul-div.S, config/arm/uclinux-elf.h,
1265         config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md,
1266         config/arm/symbian.h, config/arm/linux-elf.h,
1267         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
1268         config/arm/elf.h, config/arm/aout.h, config/arm/arm.c,
1269         config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h,
1270         config/arm/strongarm-pe.h, config/arm/arm.h,
1271         config/arm/cortex-a8-neon.md, config/arm/semiaof.h,
1272         config/arm/cortex-a8.md, config/arm/uclinux-eabi.h,
1273         config/arm/arm-modes.def, config/arm/linux-eabi.h,
1274         config/arm/rtems-elf.h, config/arm/neon-schedgen.ml,
1275         config/arm/arm-cores.def, config/arm/arm-protos.h,
1276         config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h,
1277         config/arm/wince-pe.h, config/arm/neon.md,
1278         config/arm/constraints.md, config/arm/neon.ml,
1279         config/arm/xscale-elf.h, config/arm/strongarm-coff.h,
1280         config/arm/arm.opt, config/arm/arm926ejs.md,
1281         config/arm/predicates.md, config/arm/iwmmxt.md,
1282         config/arm/arm_neon.h, config/arm/unknown-elf.h,
1283         config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt,
1284         config/arm/neon-testgen.ml, config/arm/arm.md,
1285         config/arm/xscale-coff.h, config/arm/pe.c,
1286         config/arm/arm-generic.md, config/arm/pe.h,
1287         config/arm/kaos-strongarm.h, config/arm/freebsd.h,
1288         config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md,
1289         config/arm/strongarm-elf.h, config/arm/cirrus.md,
1290         config/arm/netbsd-elf.h, config/arm/vxworks.h,
1291         config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c,
1292         config/pa/predicates.md, config/pa/pa64-hpux.h,
1293         config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt,
1294         config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h,
1295         config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h,
1296         config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h,
1297         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
1298         config/pa/pa-hpux1010.h, config/pa/pa-protos.h,
1299         config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h,
1300         config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h,
1301         config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt,
1302         config/pa/pa64-regs.h, config/pa/pa-modes.def,
1303         config/pa/constraints.md, config/darwin9.h, config/mips/4100.md,
1304         config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h,
1305         config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h,
1306         config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md,
1307         config/mips/7000.md, config/mips/9000.md, config/mips/4600.md,
1308         config/mips/linux64.h, config/mips/elforion.h,
1309         config/mips/constraints.md, config/mips/generic.md,
1310         config/mips/predicates.md, config/mips/4300.md,
1311         config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md,
1312         config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md,
1313         config/mips/5k.md, config/mips/vr4120-div.S,
1314         config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md,
1315         config/mips/mips-protos.h, config/mips/6000.md,
1316         config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h,
1317         config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h,
1318         config/mips/mips-modes.def, config/mips/vr.h,
1319         config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h,
1320         config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h,
1321         config/vax/vax.h, config/vax/elf.h, config/vax/vax.md,
1322         config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def,
1323         config/vax/openbsd1.h, config/vax/netbsd.h,
1324         config/vax/vax-protos.h, config/vax/netbsd-elf.h,
1325         config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h,
1326         config/h8300/rtems.h, config/h8300/predicates.md,
1327         config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h,
1328         config/h8300/h8300.md, config/h8300/h8300.opt,
1329         config/h8300/coff.h, config/h8300/h8300-protos.h,
1330         config/v850/v850.md, config/v850/predicates.md,
1331         config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt,
1332         config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c,
1333         config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h,
1334         config/mmix/mmix.h, config/mmix/predicates.md,
1335         config/mmix/mmix-protos.h, config/mmix/mmix.md,
1336         config/mmix/mmix.c, config/mmix/mmix.opt,
1337         config/mmix/mmix-modes.def, config/bfin/bfin.opt,
1338         config/bfin/rtems.h, config/bfin/bfin-modes.def,
1339         config/bfin/predicates.md, config/bfin/bfin-protos.h,
1340         config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md:
1341         Likewise.
1342
1343 2007-08-02  Richard Sandiford  <richard@codesourcery.com>
1344
1345         * emit-rtl.c (reset_used_decls): Rename to...
1346         (set_used_decls): ...this.  Set the used flag rather than clearing it.
1347         (unshare_all_rtl_again): Update accordingly.  Set flags on argument
1348         DECL_RTLs rather than resetting them.
1349
1350 2007-08-02  Andreas Krebbel  <krebbel1@de.ibm.com>
1351
1352         * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
1353
1354 2007-08-01  Sandra Loosemore  <sandra@codesourcery.com>
1355
1356         * reload.c (find_reloads_address_part):  Pass correct MEMREFLOC
1357         argument to find_reloads_address.
1358
1359 2007-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
1360
1361         PR tree-optimization/32919
1362         * tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs.
1363         * tree-ssa-coalesce.c (ssa_conflicts_dump): New.
1364         (coalesce_ssa_name): Call it.
1365
1366 2007-08-01  Sandra Loosemore  <sandra@codesourcery.com>
1367             David Ung  <davidu@mips.com>
1368
1369         * config/mips/mips16.S (__mips16_unordsf2, __mips16_floatunsisf): New.
1370         (__mips16_unorddf2, __mips16_floatunsidf): New.
1371         * config/mips/mips.c (mips_init_libfuncs): Add optab entries for
1372         above functions.
1373         * config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions.
1374
1375 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
1376
1377         * tree-pretty-print.c (dump_generic_node): Dump OMP_SECTIONS_SWITCH.
1378         Display new operands of OMP_SECTIONS and OMP_CONTINUE.
1379         * tree.h (OMP_SECTIONS_CONTROL): New macro.
1380         (OMP_DIRECTIVE_P): Add OMP_SECTIONS_SWITCH.
1381         * omp-low.c (get_ws_args_for, determine_parallel_type,
1382         expand_omp_for_generic, expand_omp_for_static_nochunk,
1383         expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
1384         Work with more precise CFG.
1385         (build_omp_regions_1): Handle OMP_SECTIONS_SWITCH.
1386         (lower_omp_sections): Emit OMP_SECTIONS_SWITCH.  Add arguments to
1387         OMP_CONTINUE.
1388         * tree-gimple.c (is_gimple_stmt): Handle OMP_SECTIONS_SWITCH.
1389         * gimple-low.c (lower_stmt): Ditto.
1390         * tree-inline.c (estimate_num_insns_1): Ditto.
1391         * tree.def (OMP_SECTIONS, OMP_CONTINUE): Added new operands.
1392         (OMP_SECTIONS_SWITCH): New.
1393         * tree-cfgcleanup.c (cleanup_omp_return): New.
1394         (cleanup_tree_cfg_bb): Call cleanup_omp_return.
1395         * tree-cfg.c (make_edges): Create back edges for OMP_CONTINUE
1396         and exit edge for OMP_FOR.  Handle OMP_SECTIONS_SWITCH.
1397         (tree_redirect_edge_and_branch): Handle omp constructs.
1398
1399         * fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS
1400         with three arguments.
1401
1402 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
1403
1404         * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only
1405         in loop closed ssa.
1406
1407 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
1408
1409         * tree-ssa-threadupdate.c (thread_through_all_blocks): Record that
1410         the loop structures may need fixing.
1411         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
1412         New functions.
1413         (cleanup_tree_cfg_loop): Removed.
1414         (cleanup_tree_cfg): If loops need fixing, call repair_loop_structures.
1415         * tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg
1416         instead of running cleanup_tree_cfg_loop.
1417         * cfgloop.h (LOOPS_NEED_FIXUP): New constant.
1418         * tree-flow.h (cleanup_tree_cfg_loop): Declaration removed.
1419         (tree_predictive_commoning): Declaration changed.
1420         * passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop.
1421
1422 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
1423
1424         * doc/invoke.texi (l1-cache-size): Update documentation.
1425         (l2-cache-size): Document.
1426         * params.h (L2_CACHE_SIZE): New macro.
1427         * tree-ssa-loop-prefetch.c (L1_CACHE_SIZE_BYTES): Reflect
1428         that L1_CACHE_SIZE is in kB now.
1429         (L2_CACHE_SIZE_BYTES): New macro.
1430         (tree_ssa_prefetch_arrays): Show size in kB.
1431         * config/i386/i386.h (struct processor_costs): Add l1_cache_size
1432         and l2_cache_size fields.
1433         * config/i386/driver-i386.c (describe_cache): Detect cache size
1434         in kB.
1435         * config/i386/i386.c (size_cost, i386_cost, i486_cost,pentium_cost,
1436         pentiumpro_cost, geode_cost, k6_cost, athlon_cost, k8_cost,
1437         amdfam10_cost, pentium4_cost, nocona_cost, core2_cost,
1438         generic64_cost, generic32_cost): Add l1_cache_size and l2_cache_size.
1439         (override_options): Set l1-cache-size and l2-cache-size to default
1440         values if not specified otherwise.
1441         * params.def (PARAM_L1_CACHE_SIZE): Change to set in kB.
1442         (PARAM_L2_CACHE_SIZE): New.
1443
1444 2007-08-01  Nigel Stephens  <nigel@mips.com>
1445             David Ung  <davidu@mips.com>
1446             Thiemo Seufer  <ths@mips.com>
1447             Chris Dearman  <chris@mips.com>
1448             Richard Sandiford  <richard@codesourcery.com>
1449
1450         * config.gcc (mips*-sde-elf*): New stanza.
1451         (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
1452         (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
1453         (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*, mips-*-elf*)
1454         (mipsel-*-elf*, mips64-*-elf*, mips64el-*-elf*, mips64orion-*-elf*)
1455         (mips64orionel-*-elf*, mips*-*-rtems*, mips-wrs-windiss)
1456         (mipstx39-*-elf*, mipstx39el-*-elf*): Add mips/t-libgcc-mips16
1457         to tmake_file.
1458         * config/mips/sde.h: New file.
1459         * config/mips/t-libgcc-mips16: Likewise.
1460         * config/mips/t-sde: Likewise.
1461         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove settings
1462         of _ABIN32, _ABI64, _ABIO32, _MIPS_SIM, _MIPS_SZLONG, _MIPS_SZPTR,
1463         _MIPS_FPSET and _MIPS_SZINT.
1464         * config/mips/iris.h (TARGET_OS_CPP_BUILTINS): Likewise.
1465         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Remove separate
1466         insertion of a default -mips option.  Use MIPS_32BIT_OPTION_SPEC.
1467         * config/mips/t-isa3264 (LIB1ASMSRC, LIB1ASMFUNCS): Delete.
1468         * config/mips/t-r3900 (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1469         * config/mips/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1470         * config/mips/mips.h (TARGET_CPU_CPP_BUITINS): Define _ABIO32,
1471         _ABIN32, _ABI64, _ABIO64, _MIPS_SIM, _MIPS_SZINT, _MIPS_SZLONG,
1472         _MIPS_SZPTR and _MIPS_FPSET.
1473         (MIPS_ISA_LEVEL_SPEC): Inject the default -mips option if no
1474         architecture is specified.
1475         (MIPS_32BIT_OPTION_SPEC): New macro.
1476
1477 2007-07-31  Dan Hipschman  <dsh@google.com>
1478
1479         * gcc.c (end_going_arg): New function.
1480         (do_spec_2): Use it.
1481         (do_spec_1): Use it.
1482
1483 2007-07-31  H.J. Lu  <hongjiu.lu@intel.com>
1484
1485         * ddg.c (add_cross_iteration_register_deps): Declare bb_info
1486         only if ENABLE_CHECKING is defined.
1487
1488 2007-07-31  Kenneth Zadeck <zadeck@naturalbridge.com>
1489
1490         * df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru,
1491         df_ru_add_problem, df_ru_get_bb_info): Removed.
1492         (DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered.
1493         * df-problems.c (df_ru_problem_data, df_ru_set_bb_info,
1494         df_ru_free_bb_info, df_ru_alloc,
1495         df_ru_bb_local_compute_process_def,
1496         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
1497         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
1498         df_ru_transfer_function, df_ru_free, df_ru_start_dump,
1499         df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU,
1500         df_ru_add_problem): Removed.
1501
1502 2007-07-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1503
1504         PR target/32847
1505         * pa.md (casesi32): Use match_scratch.  Revise insn condition.
1506         (casesi32p, casesi64p): Likewise.
1507         (casesi): Adjust for above.
1508
1509 2007-07-31  Richard Sandiford  <richard@codesourcery.com>
1510
1511         * mode-switching.c (create_pre_exit): Don't search past calls.
1512
1513 2007-07-31  Sandra Loosemore  <sandra@codesourcery.com>
1514
1515         * config/mips/mips.h (ISA_HAS_SYNCI):  Add !TARGET_MIPS16 test.
1516
1517 2007-07-31  Revital Eres  <eres@il.ibm.com>
1518
1519         * ddg.c (add_deps_for_def): Rename to...
1520         (add_cross_iteration_register_deps): This.  Change implementation
1521         to use only reaching def and def-use chains to construct the
1522         inter loop dependencies.
1523         (add_deps_for_use): Remove function.
1524         (build_inter_loop_deps): Call add_cross_iteration_register_deps
1525         function to build the inter loop dependencies.
1526         * modulo-sched.c (sms_schedule): Build only
1527         reaching def and def-use chains for the propose of the ddg
1528         construction.
1529
1530 2007-07-31  Julian Brown  <julian@codesourcery.com>
1531
1532         * config/arm/neon.md (vec_set<mode>_internal, vec_setv2di_internal):
1533         New define_insns. Use correct RTL.
1534         (vec_set<mode>): Write as expander.
1535
1536 2007-07-31  Razya Ladelsky  <razya@il.ibm.com>
1537
1538         * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring 
1539         to an unallocated space.
1540
1541 2007-07-30  Jan Sjodin  <jan.sjodin@amd.com>
1542
1543         * tree-data-ref.c
1544         (split_constant_offset): Enable split_constant_offset to extract
1545         constants from other statements.
1546         * tree-vect-transform.c
1547         (vect_create_addr_base_for_vector_ref): Generate data_ref_base
1548         to a temp var. Force base_offset to be simple.
1549
1550 2007-07-30  Seongbae Park <seongbae.park@gmail.com>
1551
1552         * df-scan.c (df_scan_verify): Remove artificial limit on
1553         the number of blocks for verification.
1554         * df-problems.c (df_lr_bb_local_compute, df_simulate_find_defs,
1555         df_simulate_defs): Avoid unnecessary insn checking for defs.
1556
1557 2007-07-29  Mark Mitchell  <mark@codesourcery.com>
1558
1559         gcc/
1560         * config/m68k/lb1sf68.asm (FUNC): New macro.
1561         (__mulsi3): Use it.
1562         (__udivsi3): Likewise.
1563         (__divsi3): Likewise.
1564         (__umodsi3): Likewise.
1565         (__modsi3): Likewise.
1566         (__subdf3): Likewise.
1567         (__adddf3): Likewise.
1568         (__muldf3): Likewise.
1569         (__divdf3): Likewise.
1570         (__negdf2): Likewise.
1571         (__cmpdf2): Likewise.
1572         (__subsf3): Likewise.
1573         (__addsf3): Likewise.
1574         (__mulsf3): Likewise.
1575         (__divsf3): Likewise.
1576         (__negsf2): Likewise.
1577         (__cmpsf2): Likewise.
1578         (__eqdf2): Likewise.
1579         (__nedf2): Likewise.
1580         (__gtdf2): Likewise.
1581         (__gedf2): Likewise.
1582         (__ltdf2): Likewise.
1583         (__ledf2): Likewise.
1584         (__eqsf2): Likewise.
1585         (__nesf2): Likewise.
1586         (__gtsf2): Likewise.
1587         (__gesf2): Likewise.
1588         (__ltsf2): Likewise.
1589         (__lesf2): Likewise.
1590
1591 2007-07-30  Ollie Wild  <aaw@google.com>
1592
1593         * c-ppoutput.c (print_lines_directives_only): New function.
1594         (scan_translation_unit_directives_only): New function.
1595         (preprocess_file): Add call to scan_translation_unit_directives_only.
1596         * c-opts.c (c_common_handle_option): Add OPT_fdirectives_only.
1597         (sanitize_cpp_opts): Add default flag_dump_macros setting for
1598         -fdirectives-only.  Add errors for -fdirectives-only conflict with
1599         -Wunused-macros and -traditional.
1600         (finish_options): Add builtin macro initialization for
1601         -fdirectives-only + -fpreprocessed.
1602         * c.opt (fdirectives-only): New.
1603         * doc/cppopts.texi (fdirectives-only): New.
1604
1605 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1606
1607         * alias.c (record_set, memory_modified_1): Constify.
1608         * bt-load.c (note_btr_set): Likewise.
1609         * caller-save.c (mark_set_regs, add_stored_regs): Likewise.
1610         * combine.c (set_nonzero_bits_and_sign_copies,
1611         expand_field_assignment, record_dead_and_set_regs_1,
1612         use_crosses_set_p, reg_dead_at_p_1, can_combine_p,
1613         likely_spilled_retval_1): Likewise.
1614         * config/frv/frv.c (frv_registers_update_1, frv_io_check_address,
1615         frv_io_handle_set): Likewise.
1616         * config/mips/mips.c (mips_sim_record_set,
1617         vr4130_true_reg_dependence_p_1): Likewise.
1618         * config/mt/mt.c (insn_dependent_p_1): Likewise.
1619         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
1620         * config/sh/sh.c (flow_dependent_p_1): Likewise.
1621         * cselib.c (cselib_invalidate_rtx_note_stores): Likewise.
1622         * dce.c (mark_nonreg_stores_1, mark_nonreg_stores_2): Likewise.
1623         * ddg.c (mark_mem_store): Likewise.
1624         * df-problems.c (df_urec_mark_reg_change): Likewise.
1625         * function.c (update_epilogue_consts): Likewise.
1626         * gcse.c (record_set_info, record_last_set_info,
1627         mems_conflict_for_gcse_p, canon_list_insert, reg_set_info,
1628         reg_clear_last_set): Likewise.
1629         * global.c (mark_reg_store, mark_reg_clobber, reg_becomes_live):
1630         Likewise.
1631         * jump.c (reversed_comparison_code_parts): Likewise.
1632         * local-alloc.c (validate_equiv_mem_from_store, no_equiv,
1633         reg_is_set): Likewise.
1634         * loop-iv.c (mark_altered): Likewise.
1635         * mode-switching.c (reg_becomes_live): Likewise.
1636         * optabs.c (no_conflict_move_test): Likewise.
1637         * postreload-gcse.c (record_last_set_info, find_mem_conflicts):
1638         Likewise.
1639         * postreload.c (reload_combine_note_store, move2add_note_store):
1640         Likewise.
1641         * regmove.c (flags_set_1): Likewise.
1642         * regrename.c (note_sets, kill_clobbered_value, kill_set_value):
1643         Likewise.
1644         * reload1.c (mark_not_eliminable, forget_old_reloads_1):
1645         Likewise. 
1646         * resource.c (update_live_status): Likewise.
1647         * rtl.h (set_of, note_stores): Likewise.
1648         * rtlanal.c (set_of_1, parms_set, struct set_of_data, set_of,
1649         note_stores, parms_set): Likewise.
1650         * sched-rgn.c (sets_likely_spilled_1): Likewise.
1651         * stack-ptr-mod.c (notice_stack_pointer_modification_1):
1652         Likewise. 
1653         * var-tracking.c (count_stores, add_stores): Likewise.
1654
1655 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1656
1657         * alias.c (mems_in_disjoint_alias_sets_p,
1658         fixed_scalar_and_varying_struct_p, aliases_everything_p,
1659         nonoverlapping_component_refs_p, nonoverlapping_memrefs_p,
1660         write_dependence_p, mems_in_disjoint_alias_sets_p,
1661         read_dependence, true_dependence, canon_true_dependence,
1662         anti_dependence, output_dependence): Constify.
1663         * combine.c (extended_count): Likewise.
1664         * cse.c (cse_rtx_varies_p, hash_rtx, exp_equiv_p): Likewise.
1665         * cselib.c (get_value_hash, references_value_p,
1666         cselib_reg_set_mode, cselib_rtx_varies_p): Likewise.
1667         * cselib.h (cselib_reg_set_mode, references_value_p): Likewise.
1668         * emit-rtl.c (mem_expr_equal_p, active_insn_p): Likewise.
1669         * function.c (contains, prologue_epilogue_contains,
1670         sibcall_epilogue_contains): Likewise. 
1671         * jump.c (simplejump_p, condjump_p, condjump_in_parallel_p,
1672         pc_set, any_uncondjump_p, any_condjump_p, onlyjump_p,
1673         only_sets_cc0_p, sets_cc0_p, rtx_renumbered_equal_p, true_regnum,
1674         reg_or_subregno): Likewise.
1675         * recog.c (asm_noperands): Likewise.
1676         * reload1.c (function_invariant_p): Likewise.
1677         * rtl.h (mem_expr_equal_p, active_insn_p, rtx_varies_p,
1678         rtx_addr_varies_p, asm_noperands, exp_equiv_p, hash_rtx,
1679         condjump_p, any_condjump_p, any_uncondjump_p, pc_set,
1680         simplejump_p, onlyjump_p, only_sets_cc0_p, sets_cc0_p,
1681         true_regnum, reg_or_subregno, condjump_in_parallel_p,
1682         extended_count, prologue_epilogue_contains,
1683         sibcall_epilogue_contains, function_invariant_p, true_dependence,
1684         canon_true_dependence, read_dependence, anti_dependence,
1685         output_dependence): Likewise.
1686         * rtlanal.c (rtx_varies_p, rtx_addr_varies_p): Likewise.
1687
1688 2007-07-30  Julian Brown  <julian@codesourcery.com>
1689
1690         * config/arm/neon.md (V_ext): New mode attribute.
1691         (neon_vget_lane<mode>): Replace with define_expand.
1692         (neon_vget_lane<mode>_sext_internal)
1693         (neon_vget_lane<mode>_zext_internal): New define_insns for double
1694         and quad precision vectors.
1695         (neon_vget_lanedi): Add bounds check. Remove dead comment.
1696         * config/arm/neon.ml (get_lane): Make 32-bit get-lane intrinsics
1697         have typeless 32-bit result.
1698
1699 2007-07-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1700
1701         PR tree-opt/32527
1702         * tree-affine.h (aff_tree): The type of rest is sizetype for types
1703         of pointers.
1704         * tree-affine.c (aff_combination_scale): If type is a pointer type,
1705         use sizetype for rest.
1706         (aff_combination_add_elt): Likewise. Don't specialize pointer types.
1707         (aff_combination_convert): Don't convert rest for pointer types.
1708
1709 2007-07-28  Daniel Berlin  <dberlin@dberlin.org>
1710
1711         * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h
1712
1713         * tree-ssa-alias.c: Add alloc-pool.h.
1714         (init_alias_info): Free alias_bitmap_obstack.
1715         (delete_alias_info): Call delete_mem_ref_stats.
1716         (get_mem_sym_stats_for): Use alloc_pool.
1717         (init_mem_ref_stats): Do not delete mem_ref_stats here.
1718         (delete_mem_sym_stats): Removed.
1719         
1720 2007-07-29  Sebastian Pop  <sebpop@gmail.com>
1721
1722         * tree-data-ref.c (add_multivariate_self_dist): Parametric access
1723         functions cannot be represented as classical distance vectors.
1724
1725 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1726
1727         * attribs.c (hash_attr, eq_attr, init_attributes): Constify.
1728         * builtins.c (validate_arg, builtin_mathfn_code,
1729         validate_arglist): Likewise.
1730         * calls.c (call_expr_flags): Likewise.
1731         * combine.c (reg_nonzero_bits_for_combine,
1732         reg_num_sign_bit_copies_for_combine, get_last_value,
1733         reg_truncated_to_mode): Likewise.
1734         * emit-rtl.c (subreg_lowpart_p): Likewise.
1735         * expr.c (highest_pow2_factor_for_target,
1736         categorize_ctor_elements_1, categorize_ctor_elements,
1737         count_type_elements, contains_packed_reference,
1738         highest_pow2_factor, highest_pow2_factor_for_target): Likewise.
1739         * fold-const.c (may_negate_without_overflow_p, int_const_binop,
1740         fold_convertible_p, operand_equal_p, tree_swap_operands_p,
1741         native_encode_int, native_encode_real, native_encode_complex,
1742         native_encode_vector, native_encode_expr, native_interpret_int,
1743         native_interpret_real, native_interpret_complex,
1744         native_interpret_vector, native_interpret_expr): Likewise.
1745         * function.c (use_register_for_decl): Likewise.
1746         * gimplify.c (get_name): Likewise.
1747         * langhooks-def.h (lhd_return_null_const_tree): New.
1748         (LANG_HOOKS_GET_CALLEE_FNDECL): Use it.
1749         * langhooks.c (lhd_return_null_const_tree): New.
1750         * langhooks.h (lang_get_callee_fndecl): Constify.
1751         * output.h (constructor_static_from_elts_p): Likewise.
1752         * rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise.
1753         * rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode,
1754         subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise.
1755         * rtlanal.c (cached_nonzero_bits, nonzero_bits1,
1756         cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p,
1757         nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise.
1758         * rtlhooks-def.h (reg_nonzero_bits_general,
1759         reg_num_sign_bit_copies_general, reg_truncated_to_mode_general):
1760         Likewise. 
1761         * rtlhooks.c (reg_num_sign_bit_copies_general,
1762         reg_nonzero_bits_general, reg_truncated_to_mode_general):
1763         Likewise. 
1764         * stmt.c (warn_if_unused_value, is_body_block): Likewise.
1765         * stor-layout.c (mode_for_size_tree): Likewise.
1766         * tree-ssa-loop-im.c (memref_eq): Likewise.
1767         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise.
1768         * tree.c (contains_placeholder_p, type_list_equal,
1769         simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p):
1770         Likewise. 
1771         * tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p,
1772         mode_for_size_tree, categorize_ctor_elements, count_type_elements,
1773         contains_placeholder_p, contains_packed_reference,
1774         get_callee_fndecl, operand_equal_for_phi_arg_p,
1775         warn_if_unused_value, is_body_block, native_encode_expr,
1776         native_interpret_expr, fold_convertible_p, operand_equal_p,
1777         int_const_binop, tree_swap_operands_p, builtin_mathfn_code,
1778         validate_arglist, simple_cst_equal, type_list_equal,
1779         use_register_for_decl, call_expr_flags, get_name,
1780         highest_pow2_factor): Likewise.
1781         (const_call_expr_arg_iterator_d,
1782         init_const_call_expr_arg_iterator, next_const_call_expr_arg,
1783         first_const_call_expr_arg, more_const_call_expr_args_p,
1784         FOR_EACH_CONST_CALL_EXPR_ARG): New.
1785         * varasm.c (constructor_static_from_elts_p): Constify.
1786
1787 2007-07-28  Kazu Hirata  <kazu@codesourcery.com>
1788
1789         * cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md,
1790         config/arm/neon-schedgen.ml, config/arm/neon.ml,
1791         config/arm/vec-common.md, config/ia64/div.md, cselib.c,
1792         df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c,
1793         regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c,
1794         tree-vect-transform.c, tree.def: Fix comment typos.  Follow
1795         spelling conventions.
1796         * doc/invoke.texi: Follow spelling conventions.
1797
1798 2007-07-29  Vladimir Yanovsky  <yanov@il.ibm.com>
1799             Revital Eres  <eres@il.ibm.com>
1800
1801         * modulo-sched.c (sms_schedule): Avoid loops which includes
1802         auto-increment instructions.
1803
1804 2007-07-28  Richard Guenther  <rguenther@suse.de>
1805
1806         PR middle-end/32920
1807         * fold-const.c (fold_cond_expr_with_comparison): Convert
1808         operand zero of MIN/MAX_EXPR to correct type.
1809
1810 2007-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1811
1812         * calls.c (special_function_p, setjmp_call_p, alloca_call_p,
1813         flags_from_decl_or_type): Constify.
1814         * gcc.c (do_spec_1): Likewise.
1815         * print-tree.c (dump_addr, print_node_brief): Likewise.
1816         * tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p,
1817         simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p,
1818         tree_purge_all_dead_eh_edges): Likewise.
1819         * tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p,
1820         tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges):
1821         Likewise. 
1822         * tree.c (expr_location, expr_has_location, expr_locus,
1823         expr_filename, expr_lineno, get_inner_array_type,
1824         fields_compatible_p): Likewise.
1825         * tree.h (get_inner_array_type, fields_compatible_p,
1826         expr_location, expr_has_location, expr_locus, expr_filename,
1827         expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type,
1828         setjmp_call_p, alloca_call_p): Likewise.
1829
1830 2007-07-28  Daniel Berlin  <dberlin@dberlin.org>
1831
1832         * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE,
1833         TV_FLOW_INSENSITIVE.
1834
1835         * tree-ssa-alias.c (compute_call_clobbered): Push/pop
1836         TV_CALL_CLOBBER.
1837         (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE.
1838         (compute_flow_insensitive_aliasing): Ditto for
1839         TV_FLOW_INSENSITIVE.    
1840
1841 2007-07-27  Jan Hubicka  <jh@suse.cz>
1842
1843         * config/i386/i386.c (register_move_cost): Remove accidentally comitted
1844         #if 0 block.
1845
1846         * attribs.c: Include hashtab.h
1847         (attribute_hash): New.
1848         (substring): New structure.
1849         (extract_attribute_substring, substring_hash, hash_attr, eq_attr):
1850         New function.
1851         (init_attributes): Initialize attribute hash.
1852         (decl_attributes): Use attribute hash.
1853         * Makefile.in (attribs.c): Depend on hashtab.h.
1854
1855 2007-07-27  Steve Ellcey  <sje@cup.hp.com>
1856
1857         * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test.
1858
1859 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
1860
1861         * doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp,
1862         __mips_dspr2 and __mips_dsp_rev macros.
1863         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev.
1864
1865 2007-07-27  Douglas Gregor  <doug.gregor@gmail.com>
1866         
1867        * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X.
1868
1869 2007-07-26  Kenneth Zadeck <zadeck@naturalbridge.com>
1870
1871         PR middle-end/32749
1872         
1873         * df-problems.c (df_create_unused_note): Removed do_not_gen parm
1874         and the updating of the live and do_not_gen sets.
1875         (df_note_bb_compute): Added updating of live and do_not_gen sets
1876         for regular defs so that the case of clobber inside conditional
1877         call is processed correctly.
1878         
1879 2007-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
1880
1881         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
1882         operands with compatible type.
1883
1884 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
1885
1886         * expr.h (store_bit_field): Don't return a value.
1887         * expmed.c (check_predicate_volatile_ok): New function.
1888         (store_bit_field_1): New function, extracted from store_bit_field.
1889         Take a fallback_p argument and return true if the operation succeeded.
1890         Only use store_fixed_bit_field if fallback_p.  Don't recompute
1891         mode_for_extraction; use op_mode instead.  Try forcing memories
1892         into registers if the insv expander fails.
1893         (store_bit_field): Use store_bit_field_1 with fallback_p true.
1894         Don't return a value.
1895         (convert_extracted_bit_field): New function, extracted from
1896         store_bit_field.
1897         (extract_bit_field_1): Likewise.  Take a fallback_p argument
1898         and return NULL if the operation succeeded.  Only use
1899         extract_fixed_bit_field if fallback_p.  Only calculate one
1900         extraction mode.  Combine code for extv and extzv.  Try forcing
1901         memories into registers if the ext(z)v expander fails.
1902         (extract_bit_field): Use extract_bit_field_1 with fallback_p true.
1903
1904 2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>
1905
1906         * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
1907         into bitfields.
1908         (df_ref): Likewise.  Put regno with other integer fields.
1909
1910 2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>
1911
1912         * df.h (df_mw_hardreg): Remove "loc" field.
1913         * df-scan.c (df_ref_record): Don't set it.  Remove redundant
1914         local variable.
1915         * df-problems.c (df_whole_mw_reg_unused_p): New function,
1916         split out from df_set_unused_notes_for_mw.  Return false for
1917         partial references.  Assert that mw_reg is a REG when returning true.
1918         (df_set_unused_notes_for_mw): Use it.  Use mw_reg instead of *loc.
1919         (df_whole_mw_reg_dead_p): New function, split out from
1920         df_set_dead_notes_for_mw.  Return false for partial references.
1921         Assert that mw_reg is a REG when returning true.
1922         (df_set_dead_notes_for_mw): Use it.  Use mw_reg instead of *loc.
1923         Remove redundant bitmap check.
1924
1925 2007-07-26  H.J. Lu  <hongjiu.lu@intel.com>
1926
1927         * config/ia64/t-ia64 ($(T)crtbegin.o): Removed.
1928         ($(T)crtend.o): Likwise.
1929         ($(T)crtbeginS.o): Likwise.
1930         ($(T)crtendS.o): Likwise.
1931         ($(T)crtfastmath.o): Likwise.
1932
1933 2007-07-26  Zdenek Dvorak  <dvorakz@suse.cz>
1934
1935         * dominance.c (dom_computed, n_bbs_in_dom_tree): Removed.
1936         * function.h (dom_computed, n_bbs_in_dom_tree): New macros.
1937         * basic-block.h (struct control_flow_graph): Added x_dom_computed
1938         and x_n_bbs_in_dom_tree fields.
1939
1940 2007-07-26  Steve Ellcey  <sje@cup.hp.com>
1941
1942         PR tree-optimization/32087
1943         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
1944         Do not call scale_bbs_frequencies_int with prob of zero.
1945
1946 2007-07-26  Julian Brown  <julian@codesourcery.com>
1947
1948         * config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds)
1949         (neon_element_bits): Add prototypes.
1950         * config/arm/arm.c (bounds_check, neon_lane_bounds)
1951         (neon_const_bounds, neon_element_bits): New functions.
1952         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_lanedi)
1953         (neon_vget_lanev2di, neon_vset_lane<mode>, neon_vset_lanedi)
1954         (neon_vset_lanev2di, neon_vdup_lane<mode>, neon_vdup_lanedi)
1955         (neon_vdup_lanev2di, neon_vcvt_n<mode>, neon_vmul_lane<mode>)
1956         (neon_vmull_lane<mode>, neon_vqdmull_lane<mode>)
1957         (neon_vqdmulh_lane<mode>, neon_vmla_lane<mode>)
1958         (neon_vmlal_lane<mode>, neon_vqdmlal_lane<mode>)
1959         (neon_vmls_lane<mode>, neon_vmlsl_lane<mode>)
1960         (neon_vqdmlsl_lane<mode>, neon_vext<mode>, neon_vshr_n<mode>)
1961         (neon_vshrn_n<mode>, neon_vqshrn_n<mode>, neon_vqshrun_n<mode>)
1962         (neon_vshl_n<mode>, neon_vshl_n<mode>, neon_vqshl_n<mode>)
1963         (neon_vqshlu_n<mode>, neon_vshll_n<mode>, neon_vsra_n<mode>)
1964         (neon_vsri_n<mode>, neon_vsli_n<mode>): Add bounds checks.
1965
1966 2007-07-26  Nathan Froyd  <froydnj@codesourcery.com>
1967
1968         * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo.
1969         (HAVE_AS_GNU_ATTRIBUTE): Undefine.
1970
1971 2007-07-26  Mark Shinwell  <shinwell@codesourcery.com>
1972             Julian Brown  <julian@codesourcery.com>
1973
1974         * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New.
1975         * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New.
1976         * config/arm/cortex-a8.md: New.
1977         * config/arm/cortex-a8-neon.md: New.
1978         * config/arm/neon-schedgen.ml: New.
1979         * config/arm/neon.md (vqh_mnem): New.
1980         (neon_type): New.
1981         (Is_float_mode): New.
1982         (Scalar_mul_8_16): New.
1983         (Is_d_reg): New.
1984         (V_mode_nunits): New.
1985         (All instruction patterns): Annotate with neon_type attribute
1986         values.
1987         * config/arm/arm.md: Include cortex-a8.md.
1988         (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
1989         values.
1990         Annotate instruction patterns accordingly.
1991         (generic_sched): Do not use generic scheduling for Cortex-A8.
1992         (generic_vfp): Do not use generic VFP scheduling for Cortex-A8.
1993
1994 2007-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
1995
1996         * fold-const.c (fold_read_from_constant_string): Use
1997         build_int_cst_type.
1998         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
1999
2000 2007-07-26  Nick Clifton  <nickc@redhat.com>
2001
2002         * tree-ssa-operands.h: Change copyright header to refer to version
2003         3 of the GNU General Public License and to point readers at the
2004         COPYING3 file and the FSF's license web page.
2005         * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c,
2006         sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c,
2007         tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c,
2008         targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h,
2009         tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c,
2010         hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c,
2011         flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c,
2012         opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c,
2013         gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c,
2014         cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c,
2015         rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c,
2016         optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c,
2017         tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h,
2018         genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c,
2019         reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c,
2020         c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c,
2021         rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h,
2022         tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h,
2023         diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c,
2024         gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c,
2025         input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def,
2026         gensupport.h, builtin-attrs.def, sync-builtins.def, params.c,
2027         cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c,
2028         graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c,
2029         genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c,
2030         tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h,
2031         reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h,
2032         real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c,
2033         omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h,
2034         tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c,
2035         regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h,
2036         tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c,
2037         scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c,
2038         double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h,
2039         dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c,
2040         gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c,
2041         hosthooks.h, c-objc-common.h, caller-save.c, graph.c,
2042         ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c,
2043         c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h,
2044         tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c,
2045         xcoffout.h, tree-ssa-propagate.c, ipa-utils.c,
2046         tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h,
2047         gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c,
2048         mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c,
2049         alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c,
2050         dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h,
2051         expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h,
2052         genattrtab.c, genconditions.c, genattr.c, optc-gen.awk,
2053         timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c,
2054         tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c,
2055         recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c,
2056         dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h,
2057         matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c,
2058         tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c,
2059         lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h,
2060         ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c,
2061         ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h,
2062         langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h,
2063         sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c,
2064         gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c,
2065         ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c,
2066         init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c,
2067         loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c,
2068         mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h,
2069         opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in,
2070         insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c,
2071         tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def,
2072         dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c,
2073         bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c,
2074         coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h,
2075         stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c,
2076         cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c,
2077         tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c,
2078         loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c,
2079         lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c,
2080         tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c,
2081         tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt,
2082         ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c,
2083         varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c,
2084         sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c,
2085         target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c,
2086         omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h,
2087         intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c,
2088         sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h,
2089         genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c,
2090         tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h,
2091         bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c,
2092         cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c,
2093         cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk,
2094         tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c,
2095         c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c,
2096         fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c,
2097         vecprim.h, basic-block.h, tree-ssa-structalias.c,
2098         tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c,
2099         passes.c, genconstants.c, c-incpath.c, c-incpath.h,
2100         struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c,
2101         varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h,
2102         reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y,
2103         stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h,
2104         params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h,
2105         tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c,
2106         convert.c, convert.h, langhooks-def.h, reload1.c,
2107         tree-ssa-operands.c: Likewise.
2108
2109 2007-07-26  Jan Hubicka  <jh@suse.cz>
2110
2111         * tree-ssa-live.c: Include debug.h and flags.h.
2112         (mark_scope_block_unused): New function.
2113         (remove_unused_scope_block_p): New function.
2114         (remove_unused_locals): Remove unused blocks too.
2115
2116 2007-07-25  Ian Lance Taylor  <iant@google.com>
2117
2118         * combine.c (combine_max_regno): Remove.  Remove all uses.
2119         (struct reg_stat_struct): Rename from struct reg_stat.
2120         (reg_stat_type): Define, and declare VECs.
2121         (reg_stat): Change from pointer to VEC.  Change all uses.
2122         (combine_split_insns): New static function.
2123         (try_combine, find_split_point): Call it instead of split_insns.
2124
2125 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
2126
2127         * cfghooks.c (split_block): Fix the information about loop latch.
2128
2129 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
2130
2131         * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
2132
2133 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
2134
2135         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
2136         Scan the new edge for loop exit info.
2137
2138 2007-07-25  Andreas Tobler  <a.tobler@schweiz.org>
2139
2140         * config/darwin.c: Include debug.h.
2141
2142 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
2143
2144         PR target/32218
2145         * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
2146
2147 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
2148
2149         * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
2150         (HARD_REGNO_MODE_OK): Ditto.
2151         (MODES_TIEABLE_P): Ditto.
2152         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
2153         (CLASS_MAX_NREGS): Ditto.
2154         * config/ia64/ia64.c (ia64_print_operand_address): Add R format.
2155         * config/ia64/ia64.md (divsf3_internal_thr): Removed.
2156         (divdf3_internal_thr): Removed.
2157         * config/ia64/div.md: New file.
2158         * config/ia64/constraints.md: Add H constraint.
2159
2160 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2161
2162         * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount,
2163         sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p,
2164         sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not,
2165         sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg,
2166         sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b,
2167         sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p,
2168         sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c,
2169         sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c,
2170         sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap,
2171         dump_sbitmap_file, debug_sbitmap, popcount_table,
2172         sbitmap_popcount): Constify.
2173         * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New.
2174         (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap,
2175         dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal,
2176         sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg,
2177         sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c,
2178         sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c,
2179         sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b,
2180         sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg,
2181         sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p,
2182         sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap,
2183         sbitmap_popcount, sbitmap_verify_popcount): Constify.
2184
2185 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2186
2187         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop,
2188         bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits,
2189         bitmap_first_set_bit, bitmap_and, bitmap_and_into,
2190         bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
2191         bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior,
2192         bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p,
2193         bitmap_intersect_p, bitmap_intersect_compl_p,
2194         bitmap_ior_and_compl, bitmap_ior_and_compl_into,
2195         debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash):
2196         Constify.
2197         * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p,
2198         bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and,
2199         bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into,
2200         bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
2201         bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into,
2202         debug_bitmap, debug_bitmap_file, bitmap_print,
2203         bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init,
2204         bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
2205
2206 2007-07-25  Daniel Berlin  <dberlin@dberlin.org>
2207
2208         * config/darwin.c (darwin_override_options): Additional fix for
2209         debug info formats that don't support var tracking.
2210
2211 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2212
2213         * cselib.c (entry_and_rtx_equal_p): Constify.
2214         * gengtype.c (output_mangled_typename, write_types, write_local):
2215         Likewise.
2216         * gengtype.h (const_type_p): New.
2217         * see.c (eq_descriptor_extension, hash_descriptor_extension):
2218         Constify.
2219         * tlink.c (scan_linker_output): De-constify.
2220         * tree-ssa-loop-im.c (memref_eq): Constify.
2221         * tree-ssa-structalias.c (const_shared_bitmap_info_t): New.
2222         (shared_bitmap_hash, shared_bitmap_eq): Constify.
2223
2224 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2225
2226         * c-common.c (fname_as_string, c_type_hash): Constify.
2227         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
2228         * cgraph.c (edge_hash, edge_eq): Likewise.
2229         * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
2230         * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
2231         reg_attrs_htab_eq): Likewise.
2232         * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
2233         Likewise.
2234         * genautomata.c (const_reserv_sets_t, const_unit_decl_t,
2235         const_decl_t, const_state_t, const_automata_list_el_t): New.
2236         (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
2237         DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
2238         automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
2239         insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
2240         reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
2241         automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
2242         compare_max_occ_cycle_nums, out_state_arcs_num,
2243         compare_transition_els_num, units_cmp, state_reservs_cmp):
2244         Constify.
2245         * genmodes.c (cmp_modes): Likewise.
2246         * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
2247         * gimplify.c (compare_case_labels): Likewise.
2248         * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
2249         * loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
2250         * matrix-reorg.c (mtt_info_hash): Likewise.
2251         * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
2252         * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
2253         (htab_hash_bucket, htab_hash_elem): Constify.
2254         * tree-browser.c (TB_parent_eq): Likewise.
2255         * tree-scalar-evolution.c (hash_scev_info): Likewise.
2256         * tree-ssa-alias.c (sort_tags_by_id): Likewise.
2257         * tree-ssa-coalesce.c (const_coalesce_pair_p): New.
2258         (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
2259         Constify.
2260         * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
2261         * tree-ssa-pre.c (const_expr_pred_trans_t): New.
2262         (expr_pred_trans_hash, expr_pred_trans_eq): Constify.
2263         * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
2264         const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
2265         New.
2266         (vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
2267         vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
2268         vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
2269         * tree-ssa-threadupdate.c (redirection_data_hash,
2270         redirection_data_eq): Likewise. 
2271         * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
2272         * tree-ssa.c (var_ann_eq): Likewise.
2273         * tree-vrp.c (compare_case_labels): Likewise.
2274         * tree.c (int_cst_hash_hash, int_cst_hash_eq,
2275         tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
2276         tree_not_check_failed, tree_class_check_failed,
2277         tree_range_check_failed, tree_not_class_check_failed,
2278         omp_clause_check_failed, omp_clause_range_check_failed,
2279         tree_contains_struct_check_failed, tree_operand_check_failed):
2280         Likewise. 
2281         * tree.h (tree_contains_struct_check_failed, tree_check_failed,
2282         tree_not_check_failed, tree_class_check_failed,
2283         tree_range_check_failed, tree_not_class_check_failed,
2284         tree_operand_check_failed, omp_clause_operand_check_failed,
2285         tree_operand_length): Likewise. 
2286         * var-tracking.c (const_variable): New.
2287         (variable_htab_hash, variable_htab_eq): Constify.
2288         * varasm.c (const_desc_hash): Likewise.
2289
2290 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2291
2292         * expr.c (handled_component_p): Constify.
2293         * fold-const.c (fit_double_type): Likewise.
2294         * real.h (real_value_from_int_cst): Likewise.
2295         * tree-flow-inline.h (gimple_in_ssa_p,
2296         gimple_aliases_computed_p, gimple_addressable_vars,
2297         gimple_call_clobbered_vars, gimple_referenced_vars,
2298         gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
2299         end_htab_p, end_referenced_vars_p, var_ann, function_ann,
2300         may_aliases, end_readonly_imm_use_p, has_zero_uses,
2301         has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
2302         is_label_stmt, is_global_var, phi_ssa_name_p,
2303         factoring_name_p, is_call_clobbered, tree_common_ann,
2304         op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
2305         unmodifiable_var_p, array_ref_contains_indirect_ref,
2306         ref_contains_array_ref, lookup_subvars_for_var,
2307         var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
2308         gimple_mem_ref_stats): Likewise.
2309         * tree-flow.h (tree_common_ann, var_ann, function_ann,
2310         may_aliases, is_exec_stmt, is_label_stmt,
2311         ref_contains_array_ref, array_ref_contains_indirect_ref,
2312         var_can_have_subvars, overlap_subvar, is_call_clobbered,
2313         unmodifiable_var_p): Likewise.
2314         * tree-gimple.c (is_gimple_min_invariant): Likewise.
2315         * tree-gimple.h (is_gimple_min_invariant): Likewise. 
2316         * tree.c (type_hash_list, attribute_hash_list, tree_size,
2317         cst_and_fits_in_hwi, real_value_from_int_cst,
2318         build_real_from_int_cst, integer_zerop, integer_onep,
2319         integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
2320         tree_floor_log2, real_zerop, real_onep, real_twop,
2321         real_minus_onep, really_constant_p, purpose_member, chain_member,
2322         list_length, fields_length, int_size_in_bytes, bit_position,
2323         int_bit_position, byte_position, int_byte_position, expr_align,
2324         array_type_nelts, tree_node_structure,
2325         type_contains_placeholder_1, iterative_hash_pointer,
2326         is_attribute_with_length_p, is_attribute_p, check_qualified_type,
2327         tree_map_base_eq, type_hash_list, type_hash_eq,
2328         attribute_hash_list, type_num_arguments, tree_int_cst_equal,
2329         tree_int_cst_lt, tree_int_cst_compare, host_integerp,
2330         tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
2331         simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
2332         int_fits_type_p, get_containing_scope, decl_function_context,
2333         decl_type_context, omp_clause_operand_check_failed,
2334         initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
2335         * tree.h (omp_clause_operand_check_failed, tree_size,
2336         build_real_from_int_cst, array_type_nelts, purpose_member,
2337         tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
2338         host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
2339         is_attribute_p, check_qualified_type, expr_align,
2340         int_size_in_bytes, bit_position, int_bit_position, byte_position,
2341         int_byte_position, list_length, fields_length, initializer_zerop,
2342         integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
2343         integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
2344         tree_node_structure, handled_component_p, get_containing_scope,
2345         decl_function_context, decl_type_context, real_zerop,
2346         type_num_arguments, fit_double_type, really_constant_p,
2347         int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
2348         compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
2349         real_twop, real_minus_onep, int_cst_value): Likewise.
2350
2351 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2352
2353         * cfglayout.c (insn_scope, insn_line): Constify.
2354         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
2355         const_double_htab_hash, const_double_htab_eq,
2356         mem_attrs_htab_hash): Likewise.
2357         * loop-iv.c (biv_eq): Likewise.
2358         * print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
2359         print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
2360         debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
2361         Likewise. 
2362         * rtl-error.c (location_for_asm, diagnostic_for_asm,
2363         error_for_asm, warning_for_asm, _fatal_insn,
2364         _fatal_insn_not_found): Likewise. 
2365         * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
2366         rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
2367         rtl_check_failed_type2, rtl_check_failed_code1,
2368         rtl_check_failed_code2, rtl_check_failed_code_mode,
2369         rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
2370         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
2371         rtl_check_failed_type2, rtl_check_failed_code1,
2372         rtl_check_failed_code2, rtl_check_failed_code_mode,
2373         rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
2374         SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
2375         shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
2376         get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
2377         mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
2378         rtx_unstable_p, get_integer_term, get_related_value,
2379         offset_within_block_p, reg_mentioned_p, count_occurrences,
2380         reg_referenced_p, reg_used_between_p, no_labels_between_p,
2381         single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
2382         reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
2383         find_reg_note, find_regno_note, find_reg_equal_equiv_note,
2384         find_constant_src, find_reg_fusage, find_regno_fusage,
2385         pure_call_p, remove_note, side_effects_p, volatile_refs_p,
2386         volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
2387         may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
2388         computed_jump_p, auto_inc_p, in_expr_list_p,
2389         remove_node_from_expr_list, loc_mentioned_in_p,
2390         label_is_jump_target_p, reversed_comparison_code_parts,
2391         debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
2392         print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
2393         print_inline_rtx): Likewise.
2394         * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
2395         computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
2396         rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
2397         get_integer_term, get_related_value, offset_within_block_p,
2398         count_occurrences, reg_mentioned_p, no_labels_between_p,
2399         reg_used_between_p, reg_referenced_p, single_set_2,
2400         multiple_sets, set_noop_p, refers_to_regno_p,
2401         reg_overlap_mentioned_p, dead_or_set_p,
2402         covers_regno_no_parallel_p, covers_regno_p,
2403         dead_or_set_regno_p, find_reg_note, find_regno_note,
2404         find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
2405         find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
2406         remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
2407         side_effects_p, may_trap_p_1, may_trap_p,
2408         may_trap_after_code_motion_p, may_trap_or_fault_p,
2409         inequality_comparisons_p, tablejump_p, computed_jump_p_1,
2410         computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
2411         subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
2412         * simplify-rtx.c (neg_const_int, plus_minus_operand_p,
2413         mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
2414         Likewise. 
2415         * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
2416         warning_for_asm): Likewise.
2417         * tree.h (print_rtl): Likewise.
2418         * varasm.c (get_pool_mode): Likewise.
2419
2420 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2421
2422         * c-lex.c (c_lex_with_flags, lex_string): Constify.
2423         * c-ppoutput.c (print_line, pp_dir_change): Likewise.
2424         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
2425         * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
2426         * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
2427         * ddg.c (compare_sccs): Likewise.
2428         * df-scan.c (df_ref_compare, df_mw_compare): Likewise.
2429         * dfp.c (decimal_real_from_string, decimal_to_decnumber,
2430         decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
2431         decimal_do_fix_trunc, decimal_real_to_integer,
2432         decimal_real_to_integer2, decimal_real_maxval): Likewise.
2433         * dse.c (const_group_info_t): New.
2434         (invariant_group_base_eq, invariant_group_base_hash): Constify.
2435         * dwarf2out.c (const_dw_die_ref): New.
2436         (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
2437         * tree-browser.c (TB_parent_eq): Likewise.
2438         * unwind-dw2-fde.c (__register_frame_info_bases,
2439         __deregister_frame_info_bases, fde_unencoded_compare, fde_split,
2440         add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
2441         Likewise.
2442         * unwind-dw2-fde.h (get_cie, next_fde): Likewise.
2443         * unwind-dw2.c (uw_frame_state_for): Likewise.
2444         * value-prof.c (histogram_hash, histogram_eq): Likewise.
2445         * value-prof.h (const_histogram_value): New.
2446
2447 2007-07-25  Richard Sandiford  <richard@codesourcery.com>
2448
2449         * config/mips/mips.c (machine_function): Add
2450         initialized_mips16_gp_pseudo_p.
2451         (mips16_gp_pseudo_reg): Do not emit the initialization of
2452         mips16_gp_pseudo_rtx when being called from the gimple cost-
2453         calculation routines; emit it on the first use outside those
2454         routines.
2455
2456 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2457
2458         * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
2459         New.
2460         
2461         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
2462         RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK,
2463         RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3,
2464         RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6,
2465         RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND):
2466         Preserve const-ness of parameters through use of __typeof(),
2467         also constify and tidy.
2468         
2469         * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2,
2470         TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4,
2471         NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5,
2472         CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK,
2473         OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK,
2474         GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK,
2475         PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK,
2476         TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK,
2477         TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise.
2478
2479 2007-07-25  Julian Brown  <julian@codesourcery.com>
2480             Mark Shinwell  <shinwell@codesourcery.com>
2481
2482         * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to...
2483         (alpha_mangle_type): This.
2484         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
2485         (TARGET_MANGLE_TYPE): Define this instead.
2486         * config/arm/arm-protos.h (arm_mangle_type): Add prototype.
2487         * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook.
2488         (arm_init_neon_builtins): Fix comment.
2489         (arm_mangle_map_entry): New.
2490         (arm_mangle_map): New.
2491         (arm_mangle_type): New.
2492         * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to...
2493         (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
2494         mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
2495         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
2496         (TARGET_MANGLE_TYPE): Define this instead.
2497         * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to...
2498         (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT  and restrict
2499         mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
2500         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
2501         (TARGET_MANGLE_TYPE): Define this instead.
2502         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename
2503         to...
2504         (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT.
2505         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
2506         (TARGET_MANGLE_TYPE): Define this instead.
2507         * config/s390/s390.c (s390_mangle_fundamental_type): Rename to...
2508         (s390_mangle_type): This.
2509         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
2510         (TARGET_MANGLE_TYPE): Define this instead.
2511         * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to...
2512         (sparc_mangle_type): This.
2513         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
2514         (TARGET_MANGLE_TYPE): Define this instead.
2515         * cp/mangle.c (write_type): Call mangle_type target hook on all
2516         types before mangling.  Use original type, not main variant, as
2517         argument.
2518         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to...
2519         (TARGET_MANGLE_TYPE): This.
2520         * target.h (gcc_target): Rename mangle_fundamental_type to
2521         mangle_type.
2522         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
2523         (TARGET_MANGLE_TYPE): This. Note slightly different semantics.
2524
2525 2007-07-25  Julian Brown  <julian@codesourcery.com>
2526             Paul Brook  <paul@codesourcery.com>
2527             Joseph Myers  <joseph@codesourcery.com>
2528             Mark Shinwell  <shinwell@codesourcery.com>
2529
2530         * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
2531         * config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
2532         (with_fpu): Allow --with-fpu=neon.
2533         * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
2534         * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
2535         * config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
2536         * config/arm/arm-protos.h (neon_immediate_valid_for_move)
2537         (neon_immediate_valid_for_logic, neon_output_logic_immediate)
2538         (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
2539         (neon_emit_pair_result_insn, neon_disambiguate_copy)
2540         (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
2541         (output_move_neon): Add prototypes.
2542         * config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
2543         (all_fpus): Add FPUTYPE_NEON.
2544         (fp_model_for_fpu): Add NEON field.
2545         (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
2546         (arm_arg_partial_bytes): Allow NEON vectors to be passed partially
2547         in registers.
2548         (arm_legitimate_address_p): Don't support fancy addressing for NEON
2549         structure moves.
2550         (thumb2_legitimate_address_p): Likewise.
2551         (neon_valid_immediate): Recognize and prepare constants suitable for
2552         NEON instructions.
2553         (neon_immediate_valid_for_move): New function. Recognize and prepare
2554         immediates for NEON move instructions.
2555         (neon_immediate_valid_for_logic): New function. Recognize and
2556         prepare immediates for NEON logic instructions.
2557         (neon_output_logic_immediate): New function. Create asm string
2558         suitable for outputting immediate logic instructions.
2559         (neon_pairwise_reduce): New function. Implement reduction using
2560         pairwise operations.
2561         (neon_expand_vector_init): New function. Expand a (possibly
2562         non-constant) vector initialization.
2563         (neon_vector_mem_operand): New function. Memory operands supported
2564         for quad-word loads/stores to/from ARM or NEON registers. Don't
2565         allow base+offset addressing for core regs.
2566         (neon_struct_mem_operand): New function. Valid mems for NEON
2567         structure moves.
2568         (coproc_secondary_reload_class): Enable NEON registers to be loaded
2569         from neon_vector_mem_operand addresses without a secondary register.
2570         (add_minipool_forward_ref): Handle >8-byte minipool entries.
2571         (add_minipool_backward_ref): Likewise.
2572         (dump_minipool): Likewise.
2573         (push_minipool_fix): Likewise.
2574         (output_move_quad): New function. Output quad-word moves, loads and
2575         stores using ARM registers.
2576         (output_move_vfp): Add support for vectors in VFP (NEON) D
2577         registers.
2578         (output_move_neon): Output a NEON load/store to/from a quadword
2579         register.
2580         (arm_print_operand): Implement new codes:
2581         - 'c' for unadorned integers (without a # sign).
2582         - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
2583         mode.
2584         - 'e', 'f' for the low and high D parts of a NEON Q register.
2585         - 'q' outputs a NEON Q register.
2586         - 'h' outputs ranges of D registers for VLDM/VSTM etc.
2587         - 'T' prints NEON opcode features from a coded bitmask.
2588         - 'F' is similar to T, but signed/unsigned codes both print as
2589         'i'.
2590         - 't' is similar to T, but 'u' is printed instead of 'p'.
2591         - 'O' prints 'r' if NEON instruction should perform rounding (as
2592         specified by bitmask), else prints nothing.
2593         - '#' is a punctuation character to stop operand numbers from
2594         running together with following digits in the assembler
2595         strings for instructions (when using mode attributes).
2596         (arm_assemble_integer): Handle extra NEON vector modes. Permute
2597         constant vectors in big-endian mode, where necessary.
2598         (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
2599         Handle EI, OI, CI, XI modes.
2600         (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
2601         (ashrv2si3): Rename IWMMXT2_BUILTINs to...
2602         (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
2603         (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
2604         (neon_builtin_type_bits): Add enumeration, one bit for each vector
2605         type.
2606         (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
2607         (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
2608         to turn v8qi, etc. into bits defined above.
2609         (neon_itype): New enumeration. Classifications of NEON builtins.
2610         (neon_builtin_datum): Define struct. Contains information about
2611         a single builtin (with multiple modes).
2612         (CF): Define helper macro for...
2613         (VAR1...VAR10): Define builtins with a type, name and 1-10 different
2614         modes.
2615         (neon_builtin_data): New array. Define information about builtins
2616         for use during initialization/expansion.
2617         (arm_init_neon_builtins): New function.
2618         (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
2619         true.
2620         (neon_builtin_compare): New function.
2621         (locate_neon_builtin_icode): New function. Find an insn code for a
2622         builtin given a function code for that builtin. Also return type of
2623         builtin (NEON_BINOP, NEON_UNOP etc.).
2624         (builtin_arg): New enumeration. Types of arguments for builtins.
2625         (arm_expand_neon_args): New function. Expand a generic NEON builtin.
2626         Takes a variable argument list of builtin_arg types, terminated by
2627         NEON_ARG_STOP.
2628         (arm_expand_neon_builtin): New function. Expand a NEON builtin.
2629         (neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
2630         (neon_emit_pair_result_insn): New function. Support returning pairs
2631         of vectors via a pointer.
2632         (neon_disambiguate_copy): New function. Set up operands for a
2633         multi-word copy such that registers do not get clobbered.
2634         (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
2635         ARM_BUILTIN_NEON_BASE.
2636         (arm_file_start): Set float-abi attribute for NEON.
2637         (arm_vector_mode_supported_p): Enable NEON vector modes.
2638         (arm_mangle_map_entry): New.
2639         (arm_mangle_map): New.
2640         (arm_mangle_vector_type): New.
2641         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
2642         when appropriate.
2643         (TARGET_NEON): New macro. Target supports NEON.
2644         (fputype): Add FPUTYPE_NEON.
2645         (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
2646         for vectorization based on command-line arg.
2647         (NEON_REGNO_OK_FOR_NREGS): Define.
2648         (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
2649         (VALID_NEON_STRUCT_MODE): Define.
2650         (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
2651         (arm_builtins): Add ARM_BUILTIN_NEON_BASE.
2652         * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
2653         (consttable_16): Add pattern for outputting 16-byte minipool
2654         entries.
2655         (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
2656         vec-common.md).
2657         (vec-common.md, neon.md): Include md files.
2658         * config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
2659         * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
2660         (memory_constraint "Ut", "Un", "Us"): Define.
2661         * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
2662         (MMX_char): New mode attribute.
2663         (addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
2664         (*add<mode>3_iwmmxt): New insn pattern.
2665         (subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
2666         (*sub<mode>3_iwmmxt): New insn pattern.
2667         (mulv4hi3): Rename to...
2668         (*mulv4hi3_iwmmxt): This.
2669         (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
2670         (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
2671         (uminv4hi3, uminv2si3): Remove. Replace with...
2672         (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
2673         (*umin<mode>3_iwmmxt): These.
2674         (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
2675         (ashr<mode>3_iwmmxt): This new pattern.
2676         (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
2677         (lshr<mode>3_iwmmxt): This new pattern.
2678         (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
2679         (ashl<mode>3_iwmmxt): This new pattern.
2680         * config/arm/neon-docgen.ml: New file. Generate documentation for
2681         intrinsics.
2682         * config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
2683         * config/arm/arm_neon.h: New (autogenerated).
2684         * config/arm/neon-testgen.ml: New file. Generate NEON tests
2685         automatically.
2686         * config/arm/neon.md: New file. Define NEON instructions.
2687         * config/arm/neon.ml: New file. Abstract description of NEON
2688         instructions, used to generate arm_neon.h header, documentation and
2689         tests.
2690         * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
2691         * vec-common.md: New file. Shared parts for iWMMXt and NEON vector
2692         support.
2693         * doc/extend.texi (ARM Built-in Functions): Rename and remove
2694         extraneous comma.
2695         (ARM NEON Intrinsics): New subsection.
2696         * doc/arm-neon-intrinsics.texi: New (autogenerated).
2697
2698 2007-07-25  Danny Smith   <dannysmith@users.sourceforge.net>
2699
2700         * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
2701         prototype.
2702
2703 2007-07-24  Jan Hubicka  <jh@suse.cz>
2704
2705         * regclass.c (move_table): New type.
2706         (move_cost, may_move_in_cost, may_move_out_cost): Use it.
2707         (init_move_cost): Break out from ...
2708         (init_reg_sets_1): ... here; simplify computation of
2709         have_regs-of_mode and contains_reg_of_mode.
2710         (record_reg_classes): Unswitch internal loops.
2711         (copy_cost): Trigger lazy initialization of move cost
2712         (record_address_regs): Likewise.
2713
2714 2007-07-24  Daniel Berlin  <dberlin@dberlin.org>
2715
2716         * config/darwin.c (darwin_override_options): Don't force on
2717         flag_var_tracking_uninit when no debug info is requested.
2718
2719 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
2720
2721         * cfgloop.c (init_loops_structure): New function.
2722         (flow_loops_find): Create root of the loop tree unconditionally.
2723
2724 2007-07-24  Daniel Jacobowitz  <dan@codesourcery.com>
2725
2726         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
2727
2728 2007-07-24  Jan Hubicka  <jh@suse.cz>
2729
2730         * caller-save.c: Include ggc.h, gt-caller-save.h
2731         (reg_save_code, reg_restore_code): Rename to ...
2732         (cached_reg_save_code, cached_reg_restore_code): ... those.
2733         (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New.
2734         (reg_save_code, reg_restore_code): New functions.
2735         (init_caller_save): Do not intialize
2736         reg_save_code/reg_restore_code tables.
2737         * Makefile.in: (gt-caller-save.h): New.
2738
2739 2007-07-24  Andreas Krebbel  <krebbel1@de.ibm.com>
2740
2741         * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand
2742         with the mode of the original operand instead of
2743         integer_one_node.
2744
2745 2007-07-23  Jan Hubicka  <jH@suse.cz>
2746
2747         * i386.c (ix86_secondary_memory_needed): Break out to...
2748         (inline_secondary_memory_needed): ... here.
2749         (ix86_memory_move_cost): Break out to ...
2750         (inline_memory_move_cost): ... here; add support for IN value of 2 for
2751         maximum of input and output; fix handling of Q_REGS on 64bit.
2752         (ix86_secondary_memory_needed): Microoptimize.
2753
2754 2007-07-23  Sebastian Pop  <sebpop@gmail.com>
2755
2756         * tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr,
2757         create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
2758         stmts_from_loop, known_dependences_p, build_rdg): New.
2759         * tree-data-ref.h: Depends on graphds.h.
2760         (rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New.
2761         (build_rdg): Declared.
2762         * Makefile.in (TREE_DATA_REF_H): Depends on graphds.h.
2763
2764 2007-07-23  Daniel Berlin  <dberlin@dberlin.org>
2765
2766         * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
2767         ccp_min_invariant.
2768
2769 2007-07-23  Peter Bergner  <bergner@vnet.ibm.com>
2770             Jakub Jelinek  <jakub@redhat.com>
2771
2772         PR middle-end/PR28690
2773         * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow EQ compares.
2774         * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
2775         and MEM_POINTER operands over REG and MEM operands.
2776         (swap_commutative_operands_p): Change return value to bool.
2777         * rtl.h: Update the corresponding prototype.
2778         * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
2779         instead of gen_rtx_PLUS.
2780         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return
2781         value to bool.  Change function arguments to rtx's and update code
2782         to match.
2783         (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp
2784         calls to match the new declaration.
2785         * simplify-rtx.c (simplify_associative_operation): Don't
2786         reorder simplify_binary_operation arguments.
2787
2788 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
2789
2790         * config/mips/mips.c (override_options): Use mips_costs to derive
2791         the default branch cost.
2792         * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather
2793         than mips_costs.
2794         * config/mips/mips.opt (mbranch-cost=): New option.
2795         * doc/invoke.texi (-mbranch-cost): Document new MIPS option.
2796
2797 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
2798
2799         * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete.
2800         (SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
2801         * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p
2802         instead of GR_REG_CLASS_P and COP_REG_CLASS_P.
2803
2804 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
2805
2806         * config/mips/constraints.md (ks): New constraint.
2807         * config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into...
2808         (*add<mode>3_mips16): ...here.
2809
2810 2007-07-21  Uros Bizjak  <ubizjak@gmail.com>
2811
2812         * optabs.h (enum optab_index): Add new OTI_signbit.
2813         (signbit_optab): Define corresponding macro.
2814         (enum insn_code signbit_optab[]): Remove array.
2815         * optabs.c (init_optabs): Initialize signbit_optab using init_optab.
2816         (expand_copysign_absneg): If back end provides signbit insn, use it
2817         instead of bit operations on floating point argument.
2818         * builtins.c (enum insn_code signbit_optab[]): Remove array.
2819         (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code for
2820         availability of signbit insn.
2821
2822         * config/i386/i386.md (signbit<mode>2): New insn pattern to implement
2823         signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
2824         SSE mode is not active.
2825         (isinf<mode>2): Disable for mfpmath=sse,387.
2826
2827 2007-07-22  Ben Elliston  <bje@au.ibm.com>
2828
2829         * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
2830         `class' parameter.
2831         * struct-equiv.c (note_local_live): Likewise for `y_regno'.
2832
2833 2007-07-20  Richard Guenther  <rguenther@suse.de>
2834
2835         * tree-cfg.c (verify_expr): COND_EXPRs can have any
2836         integral typed condition.
2837         * tree-ssa.c (useless_type_conversion_p): Do not preserve
2838         booleanness.  Only preserve conversions from a non-base
2839         type to a base type, not in general between types with
2840         different TYPE_MIN_VALUE or TYPE_MAX_VALUE.
2841         * tree.def (COND_EXPR): Document that the condition
2842         can be of any integral type.
2843
2844 2007-07-20  Nigel Stephens  <nigel@mips.com>
2845             Richard Sandiford  <richard@codesourcery.com>
2846
2847         * config/mips/mips.h (mips_dwarf_regno): Declare.
2848         (DBX_REGISTER_NUMBER): Remove redundant brackets.
2849         (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way.
2850         (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM)
2851         (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete.
2852         (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
2853         (REG_CLASS_NAMES): Update accordingly.
2854         * config/mips/mips.c (mips_dwarf_regno): New array.
2855         (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
2856         (mips_subword): Remove special handling for accumulator registers.
2857         (override_options): Initiailize mips_dwarf_regno.  Remove use
2858         of ACC_HI_REG_P.
2859         (mips_swap_registers): New function.
2860         (mips_conditional_register_usage): Swap accumulator registers
2861         around if TARGET_LITTLE_ENDIAN.
2862         (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS.
2863         * config/mips/constraints.md (h, l): Use the endianness to choose
2864         between MD0_REG and MD1_REG.
2865         * config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string,
2866         alternative-dependent template.
2867
2868 2007-07-20  Richard Sandiford  <richard@codesourcery.com>
2869
2870         * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
2871         no_new_pseudos.
2872
2873 2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
2874
2875         * function.c (thread_prologue_and_epilogue_insns): Fix exit
2876         predecessor fallthru flags.
2877
2878 2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
2879
2880         * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands
2881         of compare to the same type.
2882         * cfgloopmanip.c (add_loop): Update information about loop exits.
2883         (loop_version): Remove the innermost loop requirement.
2884         * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds
2885         to sizetype for pointers.
2886
2887 2007-07-18  H.J. Lu  <hongjiu.lu@intel.com>
2888
2889         * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
2890         (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd.
2891         (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td.
2892
2893         * config/dfp-bit.c: Empty for TFmode conversions.
2894
2895 2007-07-18  Caroline Tice  <ctice@apple.com>
2896         
2897         * var-tracking.c (find_src_status):  Check for  COND_EXEC insns
2898         and handle them correctly; check that src is not NULL before
2899         trying to use it.
2900         (find_src_set_src): Likewise.
2901         
2902 2007-07-18  Bob Wilson  <bob.wilson@acm.org>
2903         
2904         * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
2905         (struct alignment_context, init_alignment_context): New.
2906         (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
2907         * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
2908         (XCHAL_HAVE_S32C1I): Likewise.
2909         (TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
2910         * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
2911         (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
2912         (ATOMIC, HQI): New macros.
2913         (memory_barrier, *memory_barrier): New.
2914         (sync_lock_releasesi): New.
2915         (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
2916         (sync_lock_test_and_set<mode>): New.
2917         (sync_<atomic><mode>): New.
2918         (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
2919         * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
2920         (xtensa_expand_atomic): New.
2921         
2922 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2923
2924         PR target/30652
2925
2926         * builtins.c (expand_builtin_interclass_mathfn): Provide a generic
2927         transformation for builtin ISNORMAL.
2928         (expand_builtin): Handle BUILT_IN_ISNORMAL.
2929         * builtins.def (BUILT_IN_ISNORMAL): New.
2930         * doc/extend.texi: Document isnormal.
2931
2932 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2933
2934         PR target/30652
2935
2936         * builtins.c (expand_builtin_interclass_mathfn): Allow for missing
2937         optabs infrastructure.  Provide generic implementation for
2938         FINITE/ISFINITE.
2939         (expand_builtin): Handle FINITE/ISFINITE.
2940         (fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
2941         (fold_builtin_1): Likewise.
2942
2943         * builtins.def (BUILT_IN_ISFINITE): New.
2944
2945         * doc/extend.texi: Document isfinite.
2946
2947 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2948
2949         PR target/30652
2950         PR middle-end/20558
2951
2952         * builtins.c (expand_builtin_interclass_mathfn): Provide a
2953         generic fallback for isinf.
2954         * c-cppbuiltin.c (builtin_define_float_constants): Move FP max
2955         calculation code ...
2956         * real.c (get_max_float): ... to here.
2957         * real.h (get_max_float): New.
2958
2959 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2960
2961         PR middle-end/32668
2962
2963         * builtin-attrs.def (ATTR_TYPEGENERIC,
2964         ATTR_CONST_NOTHROW_TYPEGENERIC): New.
2965
2966         * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
2967         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
2968         BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
2969         BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.
2970
2971         * c-common.c (handle_type_generic_attribute): New.
2972         (c_common_attribute_table): Add "type generic".
2973
2974         * c-typeck.c (convert_arguments): Handle "type generic" functions.
2975
2976 2007-07-18  Daniel Berlin  <dberlin@dberlin.org>
2977
2978         * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
2979         * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
2980         properly.
2981
2982 2007-07-18  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2983
2984         PR target/32808
2985         * config/cris/cris.c (cris_print_index): Don't use XEXP before
2986         checking that the operand is an expression.
2987
2988 2007-07-19  Christoph von Wittich  <Christoph_vW@reactos.org>
2989             Danny Smith  <dannysmith@users.sourceforge.net>
2990
2991         PR/other 30335
2992         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
2993         file mapping object in local namespace if Windows version later
2994         than NT4
2995
2996 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
2997
2998         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
2999         * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
3000         arm_cannot_force_const_mem.
3001         (arm_cannot_force_const_mem): New function.
3002         * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
3003         (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
3004         of arm_tls_referenced_p.
3005         * config/arm/arm.md (movsi): Split out-of-section constants when
3006         ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
3007         * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
3008
3009 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
3010
3011         * config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
3012
3013 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
3014
3015         * config/mips/mips.md (*extendqihi2): Convert the destination
3016         to SImode.
3017
3018 2007-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3019
3020         * config/pa/fptr.c: Update license header.
3021         * config/pa/milli64.S: Likewise.
3022
3023 2007-07-17  Nick Clifton  <nickc@redhat.com>
3024
3025         * COPYING_v3: New file.  Contains version 3 of the GNU General
3026         Public License.
3027         * COPYING.LIB_v3: New file.  Contains version 3 of the GNU
3028         Lesser General Public License.
3029         * doc/include/gpl_v3.texi: New file.  Contains version 3 of
3030         the GNU General Public License.
3031
3032 2007-07-17  Zdenek Dvorak  <dvorakz@suse.cz>
3033
3034         PR rtl-optimization/32773
3035         * cfglayout.c (force_one_exit_fallthru): New function.
3036         (cfg_layout_finalize): Use it.
3037
3038 2007-07-16  Richard Guenther  <rguenther@suse.de>
3039             Uros Bizjak  <ubizjak@gmail.com>
3040
3041         * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
3042         before forcing it to gimple operand.
3043
3044 2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
3045             David Ung  <davidu@mips.com>
3046
3047         * config/mips/mips.h (TUNE_24K): Define.
3048         (TUNE_MACC_CHAINS): Add TUNE_24K.
3049         * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
3050         imadd.
3051         * config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
3052         (r74k_int_madd): .. this new reservation.
3053         (define_bypass): Fixed bypasses for r74k_int_madd to use
3054         mips_linked_madd_p.
3055         * config/mips/24k.md (define_bypass): Define new
3056         r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
3057
3058 2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
3059             Nigel Stephens  <nigel@mips.com>
3060
3061         * config/mips/mips.md:  Include 20kc.md.
3062         * config/mips/20kc.md: New file.
3063         * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs.
3064         (mips_adjust_cost): Tweak for 20Kc.
3065         (mips_issue_rate): Likewise.
3066         * config/mips/mips.h (TUNE_20KC): Define.
3067
3068 2007-07-16  David Edelsohn  <edelsohn@gnu.og>
3069
3070         * config/rs6000/rs6000.c (struct processor_cost): Add
3071         cache_line_size, l1_cache_lines, and simultaneous_prefetches
3072         fields.
3073         (*_cost): Add cache information.
3074         (rs6000_override_options): Set cache parameters.
3075
3076 2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3077
3078         PR bootstrap/3456
3079         * config.gcc (mips-sgi-irix[56]*): Enable pthread support.
3080         * doc/install.texi (mips-sgi-irix6): pthread support works now.
3081
3082 2007-07-16  Paul Brook  <paul@codesourcery.com>
3083
3084         PR target/32753
3085         * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
3086         (cirrus_thumb2_movsi_insn): Ditto.
3087
3088 2007-07-15  Geoffrey Keating  <geoffk@apple.com>
3089
3090         * config/rs6000/darwin-fallback.c (interpret_libc): Change
3091         CR2_REGNO to R_CR2.
3092
3093 2007-07-15  Andrew Haley  <aph@redhat.com>
3094
3095         * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL
3096         before looking in the context.
3097
3098 2007-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3099
3100         PR middle-end/32398
3101         PR middle-end/32769
3102         * pa-protos.h (pa_eh_return_handler_rtx): Declare.
3103         * pa.c (pa_extra_live_on_entry, rp_saved): Declare.
3104         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
3105         (pa_output_function_prologue): Use rp_saved and current_function_is_leaf
3106         to generate .CALLINFO statement.
3107         (hppa_expand_prologue): Set rp_saved.
3108         (hppa_expand_epilogue): Use rp_saved.
3109         (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions.
3110         * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx.
3111
3112 2007-07-14  Dirk Mueller  <dmueller@suse.de>
3113
3114         * omega.c (coalesce): Fix memory leak on early exit.
3115         * matrix-reorg.c (check_allocation_function): Likewise.
3116         * tree-vect-transform.c (vect_get_new_vect_var): free result
3117         of concat().
3118         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3119         pass pointer to edge vector
3120         (partition_hot_cold_basic_blocks): Fix memory leak.
3121         * collect2.c (prefix_from_string): Free temporary storage.
3122         * reload1.c (fixup_abnormal_edges): Free sbitmap.
3123
3124 2007-07-14  Kaz Kojima  <kkojima@gcc.gnu.org>
3125
3126         * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype.
3127         (DO_GLOBAL_DTORS_BODY): Likewise.
3128
3129 2007-07-14  Sandra Loosemore  <sandra@codesourcery.com>
3130             Nigel Stephens  <nigel@mips.com>
3131
3132         * config/mips/mips.c (mips_classify_symbol): Don't return
3133         SYMBOL_SMALL_DATA for constant pool addresses if
3134         TARGET_EMBEDDED_DATA is true.
3135
3136 2007-07-14  Uros Bizjak  <ubizjak@gmail.com>
3137
3138         * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins
3139         except __builtin_ia32_emms, __builtin_ia32_ldmxcsr,
3140         __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups,
3141         __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps,
3142         __builtin_ia32_storehps, __builtin_ia32_storelps,
3143         __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence,
3144         __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd,
3145         __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
3146         __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq,
3147         __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence,
3148         __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor,
3149         __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa,
3150         __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins
3151         using def_builtin_const.
3152
3153 2007-07-14  Eric Botcazou  <ebotcazou@adacore.com>
3154
3155         PR tree-optimization/32705
3156         * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
3157         (simplify_binary_expression): Use SSA_VAL consistently.
3158
3159 2007-07-13  David Edelsohn  <edelsohn@gnu.org>
3160
3161         * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
3162         (SPEFSCR_REGNO): Delete definition.
3163         * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO.
3164         COUNT_REGISTER_REGNUM -> CTR_REGNO.
3165         * config/rs6000/rs6000.h: Do not define *_REGNO.
3166         LINK_REGISTER_REGNUM -> LR_REGNO.
3167         COUNT_REGISTER_REGNUM -> CTR_REGNO.
3168         * config/rs6000/predicates.md: LINK_REGISTER_REGNUM ->  LR_REGNO.
3169         COUNT_REGISTER_REGNUM -> CTR_REGNO.
3170         * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0,
3171         R_VRSAVE, R_VSCR. Use them.
3172         * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2,
3173         R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR.  Use them.
3174         * config/rs6000/rs6000.md: Define REGNO constants.  Use them.
3175         * config/rs6000/aix.h: Define R_LR.  Use it.
3176         
3177 2007-07-13  Caroline Tice  <ctice@apple.com>
3178         
3179         * toplev.c (process_options): Turn flag_var_tracking_uninit off when
3180         flag_var_tracking is explicitly turned off (i.e. when variable
3181         tracking is not feasible); otherwise, turn flag_var_tracking on when
3182         flag_var_tracking_uninit is on.
3183         * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION
3184         note definitions, to allow recording of initialization status in the
3185         notes.
3186         * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit.
3187         (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to
3188         determine if two note locations are equal.
3189         (output_loc_list): Don't output list entries whose start & end labels
3190         are the same.
3191         (reg_loc_descriptor): Add parameter for initialization status; pass it
3192         to other loc descriptor functions.
3193         (one_reg_loc_descriptor): Add parameter for initialization status;
3194         check its value and add DW_OP_GNU_uninit to returned loc descr if
3195         appropriate.
3196         (multiple_reg_loc_descriptor): Add parameter for initialization
3197         status;
3198         pass init status argument to other loc descriptor functions; check
3199         value of intialization parameter and add DW_OP_GNU_uninit to returned
3200         loc descr if appropriate.
3201         (based_loc_descr): Add parameter for initialization status; add new
3202         variable for return value; check value of initialization parameter and
3203         add DW_OP_GNU_uninit to returned loc descr if appropriate.
3204         (concatn_mem_loc_descriptor): Add parameter for initialization status;
3205         pass init status argument to other loc descriptor functions; check
3206         value of intialization parameter and add DW_OP_GNU_uninit to returned
3207         loc descr if appropriate.
3208         (mem_loc_descriptor): Likewise.
3209         (concat_loc_descriptor): Likewise.
3210         (concatn_loc_descriptor): Likewise.
3211         (loc_descriptor): Add parameter for initialization status; pass it as
3212         argument to other loc descriptor function calls.
3213         (loc_descriptor_from_tree_1): Add appropriate initialization status
3214         to loc descriptor function calls.
3215         (add_location_or_const_value_attribute): Get initialization status
3216         from VAR_LOCATION note; add initialization status to loc descriptor
3217         function calls.
3218         * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit.
3219         * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if
3220         status is uninitialized, add "[uninint]" to output.
3221         * common.opt (fvar-tracking-uninit): New option, similar to
3222         fvar-tracking, to turn on tracking of uninitialized variables; creates
3223         a new global flag, flag_var_tracking_uninit.
3224         * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field.
3225         (enum var_init_status): New type, for var initialization status field.
3226         * var-tracking.c (struct location_chain_def): Two new fields, init,
3227         for initialization status, and set_src for the assignment value expr.
3228         (unshare_variable): New parameter for initialization status;
3229         initialize new init and set_src fields.
3230         (var_reg_set): New parameters for initialization status and value;
3231         pass them to set_variable_part.
3232         (var_mem_set): Likewise.
3233         (get_init_value): New function.
3234         (var_reg_delete_and_set): New initialization status & value
3235         parameters; add call to get_init_value if status is unknown; pass new
3236         parameters to clobber_variable_part and var_reg_set.
3237         (var_mem_delete_and_set): Likewise.
3238         (var_reg_delete): Pass null set_src value to clobber_variable_part.
3239         (var_mem_delete): Likewise.
3240         (variable_union): Pass status to unshare_variable; initialize new init
3241         and set_src fields. If flag_var_tracking_uninit is not set, force
3242         status to initialized.
3243         (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be
3244         used later to get the set_src value.
3245         (find_src_status): New function.
3246         (find_src_set_src): New function.
3247         (compute_bb_dataflow): Pass init status to calls to var_reg_set,
3248         var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for
3249         MO_SET, get set_src value and pass it to var_reg_delete_and_set
3250         and var_mem_delete_and_set.
3251         (dump_variable): Print out "[uninit]" if appropriate.
3252         (set_variable_part): Add new initialization and set_src parameters;
3253         pass status to unshare_variable; set node->init and node- >set_src
3254         fields and modify slot in hash table appropriately; save the init and
3255         set_src values if appropriate and assign to the new node.
3256         (clobber_variable_part): New set_src parameter; if two nodes have
3257         same variable and same location but different set_src (assignment)
3258         values, clobber old node.
3259         (delete_variable_part): Pass init status to unshare_variable.
3260         (emit_note_insn_var_location): Add initialized var; assign var's init
3261         status to new 'initialized'; pass new init status field to calls to
3262         gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force
3263         status to initialized.
3264         (emit_notes_in_bb): Pass initialization status to calls to
3265         var_reg_set, var_mem_set, var_reg_delete_and_set and
3266         var_mem_delete_and_set; for MO_SET, get set_src value and pass it to
3267         var_reg_delete_and_set and var_mem_delete_and_set; call
3268         emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to
3269         make up for change in add_stores.
3270         (vt_add_function_parameters): Add status to calls to
3271         set_variable_part.
3272         * config/darwin.c (darwin_override_options): Turn on uninitialized
3273         tracking automatically, if var_tracking is on and the system is
3274         10.5 or higher.
3275         
3276 2007-07-13  Sa Liu  <saliu@de.ibm.com>
3277
3278         * config.gcc: Add options for arch and tune on SPU.
3279         * config/spu/predicates.md: Add constant operands 0 and 1.
3280         * config/spu/spu-builtins.def: Add builtins for double precision 
3281         floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, 
3282         si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1,
3283         spu_testsv.
3284         * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with 
3285         a CELLEDP target.
3286         * config/spu/spu-protos.h: Add new function prototypes. 
3287         * config/spu/spu.c (spu_override_options): Check options -march and
3288         -mtune.
3289         (spu_comp_icode): Add comparison code for DFmode and vector mode.
3290         (spu_emit_branch_or_set): Use the new code for DFmode and vector 
3291         mode comparison.
3292         (spu_const_from_int): New.  Create a vector constant from 4 ints.
3293         (get_vec_cmp_insn): New.  Get insn index of vector compare instruction.
3294         (spu_emit_vector_compare): New.  Emit vector compare.
3295         (spu_emit_vector_cond_expr): New.  Emit vector conditional expression.
3296         * config/spu/spu.h: Add options -march and -mtune.  Define processor
3297         types PROCESSOR_CELL and PROCESSOR_CELLEDP.  Define macro
3298         CANONICALIZE_COMPARISON.
3299         * config/spu/spu.md: Add new insns for double precision compare
3300         and double precision vector compare.  Add vcond and smax/smin patterns
3301         to enable DFmode vector conditional expression.
3302         * config/spu/spu.opt: Add options -march and -mtune.
3303         * config/spu/spu_internals.h: Add builtins for CELLEDP target:
3304         si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv.  Add builtin for
3305         both CELL and CELLEDP targets: spu_testsv.
3306         * config/spu/spu_intrinsics.h: Add flag mnemonics for test special 
3307         values.
3308
3309 2007-07-13  Richard Guenther  <rguenther@suse.de>
3310
3311         PR tree-optimization/32721
3312         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve
3313         TREE_THIS_VOLATILE on the folded reference.
3314         * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops
3315         if the array reference has TREE_THIS_VOLATILE set.
3316
3317 2007-07-13  H.J. Lu  <hongjiu.lu@intel.com>
3318
3319         PR other/32188
3320         * doc/libgcc.texi: Update DFP intrinsics for DPD and BID.
3321
3322 2007-07-13  Andreas Schwab  <schwab@suse.de>
3323
3324         * gengtype-lex.l: Allow declarations to be indented.
3325
3326 2007-07-12  Geoffrey Keating  <geoffk@apple.com>
3327
3328         * ginclude/tgmath.h: New.
3329         * config.gcc: Use GCC's tgmath.h on non-glibc systems.
3330         * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath.
3331         * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath.
3332         * configure: Regenerate.
3333
3334 2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
3335
3336         * config/sh/linux-unwind.h (sh_fallback_frame_state): Use
3337         correct index when setting register save state for xd
3338         registers.
3339
3340 2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
3341
3342         * config/sh/sh.c (mark_use): Remove.
3343
3344 2007-07-12  Paul Brook  <paul@codesourcery.com>
3345
3346         * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
3347         reg does not overlap return value.
3348
3349 2007-07-12  Daniel Berlin  <dberlin@dberlin.org>
3350
3351         * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
3352         (set_expression_vuses): Ditto.
3353         (init_pre): Initialize expression_vuses.
3354
3355 2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
3356
3357         * config/i386/sse.md (storentdf, storentsf): New.
3358
3359 2007-07-12  Geoffrey Keating  <geoffk@apple.com>
3360
3361         * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
3362         FUNCTION_DECL.
3363         * tree.c (build_decl_stat): Move code from here...
3364         (make_node_stat): ... to here.  Don't uselessly clear DECL_USER_ALIGN.
3365         (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL.  Add comment
3366         about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
3367         * tree.h (DECL_USER_ALIGN): Fix misplaced comment.
3368         * varasm.c (assemble_start_function): Use DECL_ALIGN instead of
3369         FUNCTION_BOUNDARY.
3370
3371 2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
3372             Devang Patel  <dpatel@apple.com>
3373
3374         PR tree-optimization/25413
3375         * targhooks.c (default_builtin_vector_alignment_reachable): New.
3376         * targhooks.h (default_builtin_vector_alignment_reachable): New.
3377         * tree.h (contains_packed_reference): New.
3378         * expr.c (contains_packed_reference): New.
3379         * tree-vect-analyze.c (vector_alignment_reachable_p): New.
3380         (vect_enhance_data_refs_alignment): Call
3381         vector_alignment_reachable_p.
3382         * target.h (vector_alignment_reachable): New builtin.
3383         * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
3384         * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
3385         (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
3386
3387 2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
3388
3389         * target.h (builtin_vectorization_cost): Add new target builtin.
3390         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
3391         * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
3392         (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
3393         * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
3394         uninitialized variables.
3395         * tree-vect-transform.c (cost_for_stmt): New function.
3396         (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
3397         using cost 1 for all scalar stmts. Be less conservative when
3398         estimating the number of prologue/epulogue iterations. Call
3399         targetm.vectorize.builtin_vectorization_cost. Return
3400         min_profitable_iters-1.
3401         (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
3402         initialization cost instead of TARG_VEC_STMT_COST. Use
3403         TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
3404         epilogue code. Fix epilogue cost computation.
3405         * config/spu/spu.c (spu_builtin_vectorization_cost): New.
3406         (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
3407         * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
3408         (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
3409         (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
3410         (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.
3411
3412 2007-07-12  Richard Guenther  <rguenther@suse.de>
3413
3414         * gimplify.c (gimplify_conversion): Make sure that the result
3415         from maybe_fold_offset_to_reference is trivially convertible
3416         to the desired type before doing the simplification.
3417         (gimplify_expr): Likewise.
3418         * fold-const.c (fold_binary): Use the correct types for
3419         building the simplified expression.
3420
3421 2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
3422
3423         PR rtl-optimization/32729
3424         * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
3425         that fallthru to exit.
3426
3427 2007-07-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3428
3429         * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
3430         (symDTPOFF2reg): Likewise.
3431
3432 2007-07-11  Daniel Berlin  <dberlin@dberlin.org>
3433
3434         PR tree-optimization/32663
3435         
3436         * tree.h (VALUE_HANDLE_VUSES): Remove.
3437         (struct tree_value_handle): Remove vuses.
3438
3439         * tree-vn.c (create_value_handle_for_expr): Don't set
3440         VALUE_HANDLE_VUSES. 
3441
3442         * tree-ssa-pre.c (expression_vuses): New.
3443         (alloc_expression_id): Set up expression_vuses.
3444         (get_expression_vuses): New.
3445         (set_expression_vuses): Ditto.
3446         (clear_expression_ids): Modify for expression_vuses.
3447         (phi_translate_1): Ditto.
3448         (phi_translate_set): Ditto.
3449         (value_dies_in_block_x): Ditto
3450         (valid_in_sets): Ditto.
3451         (add_to_sets): Ditto.
3452         (find_existing_value_expr): Ditto.
3453         (create_value_handle_for_expr): Ditto.
3454         (make_values_for_stmt): Ditto.
3455         (vuse_equiv): Remove.
3456
3457 2007-07-11  Alexandre Oliva  <aoliva@redhat.com>
3458
3459         * Makefile.in (mostlyclean): Remove object files.
3460
3461 2007-07-11  Kenneth Zadeck <zadeck@naturalbridge.com>
3462
3463         * toplev.c (no_new_pseudos): Deleted.
3464         * rtl.h (no_new_pseudos): Deleted.
3465         * tree-pass.h (pass_no_new_pseudos): Deleted. 
3466         * passes.c (pass_no_new_pseudos): Deleted.
3467         * final.c (rest_of_clean_state): Removed no_new_pseudos.
3468         (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
3469         * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with 
3470         reload_completed.
3471         * cfgcleanup.c (try_crossjump_to_edge): Ditto. 
3472         * rtlhooks.c (gen_lowpart_general): Ditto.
3473         * optabs.c (prepare_operand): Ditto.
3474         * mode-switching.c (rest_of_handle_mode_switching): Deleted set of
3475         no_new_pseudos.
3476         * modulo-sched.c (rest_of_handle_sms): Ditto.
3477         * see.c (rest_of_handle_see): Ditto.
3478         * ifcvt.c (if_convert): Ditto.
3479         (gate_handle_if_after_combine): Replaced no_new_pseudos with 
3480         reload_completed.
3481         * init-regs.c (gate_initialize_regs): Deleted set of
3482         no_new_pseudos.
3483         * lower-subreg.c (decompose_multiword_subregs): Ditto. 
3484         * bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
3485         * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
3486         
3487 2007-07-11  Uros Bizjak  <ubizjak@gmail.com>
3488
3489         PR target/32661
3490         * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
3491         (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
3492         (*vec_extractv2di_1_rex64): New insn pattern.
3493
3494 2007-07-11  David Daney  <ddaney@avtrex.com>
3495
3496         * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
3497         return address calculation.  Substitute DWARF_ALT_FRAME_RETURN_COLUMN
3498         for SIGNAL_UNWIND_RETURN_COLUMN.
3499         * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
3500         (DWARF_FRAME_REGNUM): Rewrite.
3501         (DWARF_ALT_FRAME_RETURN_COLUMN) Define.
3502
3503 2007-07-11  Nick Clifton  <nickc@redhat.com>
3504
3505         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
3506         delta and use gen_int_mode in place of GET_INT instead.
3507
3508 2007-07-11  Uros Bizjak  <ubizjak@gmail.com>
3509
3510         * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
3511         and letter field.
3512
3513 2007-07-11  Douglas Gregor  <doug.gregor@gmail.com>
3514
3515         * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
3516         (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical 
3517         types or not.
3518         * params.h (VERIFY_CANONICAL_TYPES): Remove.
3519         (USE_CANONICAL_TYPES): New.
3520         * doc/invoke.texi (verify-canonical-types): Remove.
3521         (use-canonical-types): Add.
3522
3523 2007-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
3524
3525         * config/spu/spu.c (spu_optimization_options): Remove setting of
3526         parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
3527         (spu_override_options): Move it here.
3528
3529 2007-07-11  Richard Sandiford  <richard@codesourcery.com>
3530
3531         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
3532         * config/mips/mips.c (mips_cpu_info_table): Mention
3533         MIPS_ISA_LEVEL_SPEC in the comment.
3534
3535 2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>
3536
3537         PR tree-optimization/32713
3538         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
3539
3540 2007-07-11  Paolo Carlini  <pcarlini@suse.de>
3541
3542         PR middle-end/30482
3543         * c-opts.c (c_common_post_options): Do not change flag_complex_method
3544         conditional to flag_isoc99.
3545         (c_common_init_options): Do it here, unconditionally.
3546
3547 2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>
3548
3549         PR tree-optimization/32589
3550         * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
3551         * tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
3552         * tree-ssa-propagate.c (valid_gimple_expression_p): New
3553         predicate, extracted from...
3554         (set_rhs): ...here.  Call it for the expression on entry.
3555         * tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
3556         * tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
3557         (simplify_binary_expression): Use valid_gimple_expression_p
3558         to validate the simplification.
3559         * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
3560
3561 2007-07-11  Danny Smith  <dannysmith@users.sourceforge.net>
3562
3563         * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
3564         DWARF2_DEBUG on 32 bit target too.
3565         (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition. 
3566
3567 2007-07-11  Nick Clifton  <nickc@redhat.com>
3568
3569         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
3570         version for 64-bit hosts.
3571
3572 2007-07-10  David Daney  <ddaney@avtrex.com>
3573
3574         * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
3575         predicate.
3576         (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of  library
3577         call.
3578         * config/mips/mips.c (mips_expand_synci_loop): New function.
3579         * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
3580         (UNSPEC_RDHWR): Same.
3581         (UNSPEC_SYNCI): Same.
3582         (UNSPEC_SYNC): Same.
3583         (clear_cache): New expand.
3584         (sync): New insn.
3585         (synci): Same.
3586         (rdhwr): Same.
3587         (clear_hazard): Same.
3588         * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
3589         function.
3590         * testsuite/gcc.target/mips/clear-cache-1.c: New test.
3591         * testsuite/gcc.target/mips/clear-cache-2.c: New test.
3592
3593 2007-07-10  Ian Lance Taylor  <iant@google.com>
3594
3595         * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
3596         no_new_pseudos.
3597
3598 2007-07-10  David Daney  <ddaney@avtrex.com>
3599
3600         * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
3601         * builtins.c (expand_builtin___clear_cache): New function.
3602         (expand_builtin): Call expand_builtin___clear_cache for
3603         BUILT_IN_CLEAR_CACHE case.
3604         * doc/extend.texi (__builtin___clear_cache): Document new builtin.
3605         * doc/md.texi (clear_cache): Document new instruction pattern.
3606         * testsuite/gcc.dg/builtins-64.c: New test.
3607
3608 2007-07-11  Hans-Peter Nilsson  <hp@axis.com>
3609
3610         * config/cris/cris.md ("movsi"): Fix typo in last change.
3611
3612 2007-07-09  Geoffrey Keating  <geoffk@apple.com>
3613
3614         PR 32617
3615         * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
3616         FUNCTION_DECLs.
3617         (handle_aligned_attribute): Allow use on FUNCTION_DECLs.
3618         * varasm.c (assemble_start_function): Honor DECL_ALIGN
3619         for FUNCTION_DECLs.  Don't use align_functions_log if
3620         DECL_USER_ALIGN.
3621         * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
3622         even for FUNCTION_DECLs.
3623         * c-decl.c (merge_decls): Propagate DECL_ALIGN even for
3624         FUNCTION_DECLs.
3625         * tree.h (DECL_ALIGN): Update for new location of 'align'.
3626         (DECL_FUNCTION_CODE): Update for new location and name of
3627         'function_code'.
3628         (DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
3629         (struct tree_decl_common): Move 'align' and 'off_align' out
3630         of union, ensure they're still on a 32-bit boundary.  Remove
3631         other fields in union 'u1'.
3632         (struct tree_function_decl): Add field 'function_code' replacing
3633         'u1.f' in tree_decl_common.
3634         * tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
3635         * doc/extend.texi (Function Attributes): Add 'aligned' attribute.
3636         (Variable Attributes): Cross-reference 'aligned' attribute
3637         to Function Attributes.
3638         * flags.h (force_align_functions_log): Delete.
3639         * toplev.c (force_align_functions_log): Delete.
3640
3641 2007-07-10  Uros Bizjak  <ubizjak@gmail.com>
3642
3643         PR target/32708
3644         * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
3645         (*vec_concatv2di_rex): New insn pattern.
3646
3647 2007-07-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3648
3649         PR target/32538
3650         * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
3651
3652 2007-07-10  Ian Lance Taylor  <iant@google.com>
3653
3654         Replace no_new_pseudos in backends.
3655         * rtl.h (can_create_pseudo_p): Define.
3656         * config/darwin.c (machopic_indirect_data_reference): Use
3657         can_create_pseudo_p () instead of no_new_pseudos.
3658         (machopic_indirect_data_reference): Likewise.
3659         (machopic_legitimize_pic_address): Likewise.
3660         * config/alpha/alpha.c (alpha_legitimize_address): Likewise.
3661         (alpha_emit_set_const_1): Likewise.
3662         (alpha_emit_set_const): Likewise.
3663         (alpha_emit_conditional_move): Likewise.
3664         (alpha_split_conditional_move): Likewise.
3665         * config/alpha/alpha.md (various splitters): Likewise.
3666         (movti): Likewise.
3667         * config/arm/arm.c (legitimize_pic_address): Likewise.
3668         (arm_load_pic_register): Likewise.
3669         * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
3670         (movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
3671         * config/bfin/bfin.c (legitimize_pic_address): Likewise.
3672         * config/cris/cris.c (cris_expand_pic_call_address): Likewise.
3673         * config/cris/cris.md (movsi): Likewise.
3674         * config/frv/frv.md (symGOT2reg_hilo): Likewise.
3675         (symGOTOFF2reg_hilo): Likewise.
3676         (symGPREL2reg, symGPREL2reg_hilo): Likewise.
3677         * config/h8300/h8300.md (insv, extzv): Likewise.
3678         * config/i386/i386.c (ix86_expand_move): Likewise.
3679         (ix86_expand_vector_move): Likewise.
3680         (ix86_prepare_fp_compare_args): Likewise.
3681         (ix86_expand_carry_flag_compare): Likewise.
3682         * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
3683         (tls_dynamic_gnu2_combine_32): Likewise.
3684         (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
3685         * config/ia64/ia64.c (ia64_expand_move): Likewise.
3686         (ia64_expand_movxf_movrf): Likewise.
3687         * config/m32c/m32c.c (m32c_prepare_move): Likewise.
3688         (m32c_split_move): Likewise.
3689         (m32c_expand_insv): Likewise.
3690         * config/m68k/m68k.md (movsi): Likewise.
3691         * config/mips/mips.c (mips_force_temporary): Likewise.
3692         (mips_split_symbol): Likewise.
3693         (mips_move_integer): Likewise.
3694         (mips_legitimize_const_move): Likewise.
3695         * config/mn10300/mn10300.md (movsi): Likewise.
3696         * config/pa/pa.c (emit_move_sequence): Likewise.
3697         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
3698         (rs6000_got_register): Likewise.
3699         (create_TOC_reference): Likewise.
3700         (rs6000_machopic_legitimize_pic_address): Likewise.
3701         * config/rs6000/rs6000.md (add<mode>3): Likewise.
3702         (various splitters): Likewise.
3703         (iorsi3, xorsi3, iordi3, xordi3): Likewise.
3704         (movsi_got): Likewise.
3705         * config/s390/s390.c (emit_symbolic_move): Likewise.
3706         * config/s390/s390.md (movhi, movqi): Likewise.
3707         (load_multiple, store_multiple): Likewise.
3708         * config/score/score.c (score_force_temporary): Likewise.
3709         * config/sh/sh.c (prepare_move_operands): Likewise.
3710         (prepare_cbranch_operands): Likewise.
3711         (emit_fpu_switch): Likewise.
3712         (fpscr_set_from_mem): Likewise.
3713         * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
3714         (adddi3, subsi3): Likewise.
3715         (various splitters): Likewise.
3716         (divsi_inv_fp_combine): Likewise.
3717         (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
3718         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
3719         (sne): Likewise.
3720         * config/sh/predicates.md (xor_operand): Likewise.
3721         * config/sparc/sparc.c (legitimize_tls_address): Likewise.
3722         * config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
3723         (movdi_pic_label_ref): Likewise.
3724         * config/spu/spu.c (spu_split_immediate): Likewise.
3725         * config/alpha/alpha.md (various splitters): Remove test
3726         !no_new_pseudos || reload_completed.
3727         * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
3728         no_new_pseudos.
3729         * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
3730         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
3731         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
3732         * config/score/score.c (th_output_mi_thunk): Likewise.
3733         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3734         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3735
3736 2007-07-10  Kaz Kojima  <kkojima@gcc.gnu.org>
3737
3738         PR rtl-optimization/32664
3739         * mode-switching.c (create_pre_exit): Skip barrier insns.
3740
3741 2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>
3742
3743         * tree-scalar-evolution.c (scev_const_prop): Add arguments to
3744         force_gimple_operand_bsi.
3745         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
3746         rewrite_use_compare): Ditto.
3747         * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
3748         Ditto.
3749         * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
3750         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
3751         * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
3752         * tree-profile.c (prepare_instrumented_value,
3753         tree_gen_interval_profiler, tree_gen_pow2_profiler,
3754         tree_gen_one_value_profiler, tree_gen_ic_profiler,
3755         tree_gen_ic_func_profiler, tree_gen_average_profiler,
3756         tree_gen_ior_profiler): Ditto.
3757         * tree-ssa-reassoc.c (negate_value): Ditto.
3758         * matrix-reorg.c (transform_access_sites, transform_allocation_sites):
3759         Use force_gimple_operand_bsi.
3760         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
3761         * tree-if-conv.c (add_to_dst_predicate_list,
3762         find_phi_replacement_condition): Ditto.
3763         * gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
3764         Call mark_symbols_for_renaming for new statements.
3765         * tree-flow.h (force_gimple_operand_bsi): Declaration changed.
3766
3767 2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>
3768
3769         * cfghooks.c (remove_edge): New function.
3770         (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
3771         loop exit rescans.
3772         * cfghooks.h (remove_edge): Declare.
3773         * cfg.c (remove_edge): Renamed to remove_edge_raw.
3774         * basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
3775
3776 2007-07-09  Wolfgang Gellerich  <gellerich@de.ibm.com>
3777
3778         * optabs.h: Added declaration for signbit_optab.  
3779         * optabs.c: (init_optabs): Added initialization for signbit_optab.
3780         * genoptinit.c (optabs): Added entry for signbit insns.  
3781         * builtins.c (expand_builtin_signbit): Added code to use a signbit
3782         insn, if available.  
3783         * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.  
3784         * config/s390/s390.md (signbit<mode>2): New expander.  
3785
3786 2007-07-09  Richard Guenther  <rguenther@suse.de>
3787
3788         PR middle-end/32698
3789         * fold-const.c (fold_plusminus_mult_expr): Move constant
3790         arguments second to allow decomposing.
3791
3792 2007-07-09  Alexandre Oliva  <aoliva@oliva.athome.lsd.ic.unicamp.br>
3793
3794         Revert:
3795         2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
3796         PR debug/23551
3797         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
3798         Disregard DECL_FROM_INLINE.
3799
3800 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
3801
3802         PR target/27855
3803         * doc/invoke.texi: Add ftree-reassoc flag.
3804         * common.opt (ftree-reassoc): New flag.
3805         * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
3806         (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
3807
3808 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
3809
3810         PR tree-optimization/32681
3811         * tree-if-conv.c (find_phi_replacement_condition): Use the condition
3812         saved in second_edge->aux when first_bb is a loop header.
3813
3814 2007-07-09  Jan HUbicka  <jh@suse.cz>
3815
3816         * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
3817
3818 2007-07-09  Richard Guenther  <rguenther@suse.de>
3819
3820         * c-decl.c (start_function): Do not promote return type.
3821
3822 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
3823
3824         * function.c (do_warn_unused_parameter): Do not warn if
3825         TREE_NO_WARNING is set.
3826
3827 2007-07-08  Andreas Schwab  <schwab@suse.de>
3828
3829         * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
3830
3831 2007-07-08  Sandra Loosemore  <sandra@codesourcery.com>
3832
3833         Revert this patch:
3834         2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
3835
3836         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
3837         apply to assembly language, too.
3838         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
3839
3840 2007-07-07  Daniel Berlin  <dberlin@dberlin.org>
3841
3842         Revert (note the sccvn portions are *not* reverted)
3843         2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
3844
3845         Fix PR tree-optimization/23488
3846
3847         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
3848         handles.
3849         * tree-flow-inline.h (get_value_handle): Ditto.
3850         * tree-ssa-pre.c (decl_vh_map): New.
3851         (decl_node_pool): New.
3852         (can_value_number_operation): Support DECL_P.
3853         (can_PRE_operation): Ditto.
3854         (create_expression_by_pieces): Ditto.
3855         (find_existing_value_expr): Modify to differnetiate between
3856         addressing and top level.
3857         (create_value_handle_for_expr): Handle DECL's.
3858         (poolify_tree): Ditto.
3859         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
3860         (make_values_for_stmt): Handle DECL's properly.
3861         (init_pre): Reorg to not init useless things during FRE.
3862         (fini_pre): Ditto.
3863         * tree-flow.h: Include pointer-set.h.
3864         (decl_vh_map): Declare.
3865         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
3866
3867 2007-07-07 Eric Weddington  <eweddington@cso.atmel.com>
3868
3869         * config/avr/constraints.md (define_memory_constraint "Q"): Fix
3870         the constraint description.
3871         * doc/md.texi: Update documentation of AVR constraints.
3872
3873 2007-07-07  Kazu Hirata  <kazu@codesourcery.com>
3874
3875         * auto-inc-dec.c, config/arm/arm.c,
3876         config/m32r/constraints.md, config/mips/mips.md,
3877         config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
3878         df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
3879         tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
3880         typos.  Follow spelling conventions.
3881         * doc/invoke.texi, doc/rtl.texi: Fix typos.
3882
3883         * cfgrtl.c (delete_insn_