OSDN Git Service

cc2019ac6a981b8e6d96f59fc30f4e59c1a505a2
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
2
3         * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
4         (gcd_of_steps_may_divide_p): New function.
5         (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
6
7 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
8
9         * reload.c (find_reloads_toplev, find_reloads_address,
10         find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
11         not a pointer equality test, to decide if we need to call
12         push_reg_equiv_alt_mem.
13
14 2007-04-11  Sebastian Pop  <sebastian.pop@inria.fr>
15
16         * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
17         insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): New.
18         (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
19
20 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
21
22         * tree-data-ref.c (add_multivariate_self_dist): Force the distance
23         vector to be positive.
24
25 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
26
27         PR 30735
28         PR 31090
29         * doc/invoke.texi: Document --params max-aliased-vops and
30         avg-aliased-vops.
31         * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
32         debug_memory_partitions): Move to tree-flow.h
33         * params.h (AVG_ALIASED_VOPS): Define.
34         * tree-ssa-alias.c (struct mp_info_def): Remove.  Update all
35         users.
36         (mp_info_t): Likewise.
37         (get_mem_sym_stats_for): New.
38         (set_memory_partition): Move from tree-flow-inline.h.
39         (mark_non_addressable): Only clear the set of symbols for the
40         partition if it exists.
41         (dump_memory_partitions): Move from tree-ssa-operands.c
42         (debug_memory_partitions): Likewise.
43         (need_to_partition_p): New.
44         (dump_mem_ref_stats): New.
45         (debug_mem_ref_stats): New.
46         (dump_mem_sym_stats): New.
47         (debug_mem_sym_stats): New.
48         (update_mem_sym_stats_from_stmt): New.
49         (compare_mp_info_entries): New.
50         (mp_info_cmp): Call it.
51         (sort_mp_info): Change argument to a list of mem_sym_stats_t
52         objects.
53         (get_mpt_for): Move from tree-ssa-operands.c.
54         (find_partition_for): New.
55         (create_partition_for): Remove.
56         (estimate_vop_reduction): New.
57         (update_reference_counts): New.
58         (build_mp_info): New.
59         (compute_memory_partitions): Refactor.
60         Document new heuristic.
61         Call build_mp_info, update_reference_counts,
62         find_partition_for and estimate_vop_reduction.
63         (compute_may_aliases): Populate virtual operands before
64         calling debugging dumps.
65         (delete_mem_sym_stats): New.
66         (delete_mem_ref_stats): New.
67         (init_mem_ref_stats): New.
68         (init_alias_info): Call it.
69         (maybe_create_global_var): Remove alias_info argument.
70         Get number of call sites and number of pure/const call sites
71         from gimple_mem_ref_stats().
72         (dump_alias_info): Call dump_memory_partitions first.
73         (dump_points_to_info_for): Show how many times a pointer has
74         been dereferenced.
75         * opts.c (decode_options): For -O2 set --param
76         max-aliased-vops to 500.
77         For -O3 set --param max-aliased-vops to 1000 and --param
78         avg-aliased-vops to 3.
79         * fortran/options.c (gfc_init_options): Remove assignment to
80         MAX_ALIASED_VOPS.
81         * tree-flow-inline.h (gimple_mem_ref_stats): New.
82         * tree-dfa.c (dump_variable): Dump memory reference
83         statistics.
84         Dump NO_ALIAS* settings.
85         (referenced_var_lookup): Tidy.
86         (mem_sym_stats): New.
87         * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
88         and ORIG are different SSA names for a memory partition.
89         * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
90         * tree-flow.h (struct mem_sym_stats_d): Define.
91         (mem_sym_stats_t): Define.
92         (struct mem_ref_stats_d): Define.
93         (struct gimple_df): Add field mem_ref_stats.
94         (enum noalias_state): Define.
95         (struct var_ann_d): Add bitfield noalias_state.
96         (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
97         debug_mem_ref_stats, debug_memory_partitions,
98         debug_mem_sym_stats): Declare.
99         * tree-ssa-structalias.c (update_alias_info): Update call
100         sites, pure/const call sites and asm sites in structure
101         returned by gimple_mem_ref_stats.
102         Remove local variable IS_POTENTIAL_DEREF.
103         Increase NUM_DEREFS if the memory expression is a potential
104         dereference.
105         Call update_mem_sym_stats_from_stmt.
106         If the memory references memory, call
107         update_mem_sym_stats_from_stmt for all the direct memory
108         symbol references found.
109         (intra_create_variable_infos): Set noalias_state field for
110         pointer arguments according to the value of
111         flag_argument_noalias.
112         * tree-ssa-structalias.h (struct alias_info): Remove fields
113         num_calls_found and num_pure_const_calls_found.
114         (update_mem_sym_stats_from_stmt): Declare.
115         * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
116         Set default value to 100.
117         (PARAM_AVG_ALIASED_VOPS): Define.
118
119 2007-04-11  Richard Guenther  <rguenther@suse.de>
120
121         PR middle-end/31530
122         * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
123         a * -b + c as c - a * b if we honor sign dependent rounding.
124
125 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
126
127         * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
128         bfin_expand_strmov.
129         * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
130         bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
131         variables.
132         (initialize_trampoline): Don't use old-style function definition.
133         (bfin_secondary_reload): Mark IN_P argument as unused.
134
135 2007-04-10  Sebastian Pop  <sebastian.pop@inria.fr>
136
137         PR tree-optimization/31343
138         * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
139         (build_polynomial_chrec): Return a scalar when the evolution is zero.
140         * testsuite/gcc.dg/vect/pr31343.c: New.
141
142 2007-04-10  Eric Christopher  <echristo@apple.com>
143
144         * config/i386/i386.h (X87_FLOAT_MODE_P): New.
145         * config/i386/i386.md (*cmpfp0): Use.
146         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
147         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
148         (fix_trunc<mode>_i386_fisttp): Ditto.
149         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
150         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
151         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
152         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
153         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
154         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
155         (unnamed_splitters): Ditto.
156         * config/i386/i386.c (output_fix_trunc): Assert that
157         we're not being passed a TFmode operand.
158
159 2007-04-10  Zdenek Dvorak  <dvorakz@suse.cz>
160
161         PR tree-optimization/31526
162         * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
163         n_basic_blocks to find newly added blocks.
164
165 2007-04-10  Uros Bizjak  <ubizjak@gmail.com>
166
167         * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
168         alternative.
169         (fix_trunc<mode>si_sse): Ditto.
170         (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
171         (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
172         (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
173         (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
174         (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
175         expander using SSEMODEF mode macro.
176         (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
177         expander using SSEMODEF mode macro.
178         (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
179         *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
180         (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
181         *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
182         (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
183         *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
184         (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
185         Macroize insn using X87MODEF mode macro.
186
187 2007-04-09  H.J. Lu  <hongjiu.lu@intel.com>
188
189         * config/i386/sse.md (sse2_pinsrw): Removed.
190         (sse2_pextrw): Renamed to ...
191         (*sse2_pextrw): This.
192
193 2007-04-09  Jan Hubicka  <jh@suse.cz>
194
195         PR target/27869
196         * config/i386/sse.md
197         (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
198         (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
199         (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
200         (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
201
202 2007-04-09  Jan Hubicka  <jh@suse.cz>
203
204         * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
205         multiple fields of union.
206
207 2007-04-09  Zdenek Dvorak  <dvorakz@suse.cz>
208
209         * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
210         (create_preheaders): Check that loops are available.
211         (fix_loop_structure): Clean up, improve comments.
212         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
213         Check that loops are available.  Set LOOP_CLOSED_SSA to the loops
214         state flags.
215         * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
216         * predict.c (tree_estimate_probability): Do not call
217         calculate_dominance_info.  Call create_preheaders.
218         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
219         rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
220         flags.
221         * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
222         * cfgloop.h (LOOP_CLOSED_SSA): New constant.
223         * tree-cfg.c (tree_split_edge): Make an assert more precise.
224         * tree-ssa-threadedge.c (thread_across_edge): Comment the function
225         arguments.
226
227 2007-04-08  Jan Hubicka  <jh@suse.cz>
228
229         * tree.h (maybe_fold_offset_to_component_ref): Declare.
230         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
231         * fold-const.c (fold_unary): Use it.
232
233 2007-04-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
234
235         * varasm.c (assemble_variable): Remove call to
236         lang_hooks.decls.prepare_assemble_variable.
237         * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
238         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
239         * langhooks.h (lang_hooks_for_decls): Remove
240         prepare_assemble_variable.
241
242 2007-04-08  Mike Stump  <mrs@apple.com>
243
244         * config/i386/i386.c: Use inc/dec on Core2.
245
246 2007-04-08  Steven Bosscher  <steven@gcc.gnu.org>
247
248         * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
249         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
250         lhd_tree_inlining_end_inlining): Remove.
251         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
252         add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
253         end_inlining hooks.
254         * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
255         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
256         lhd_tree_inlining_end_inlining): Remove prototypes.
257         (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
258         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
259         LANG_HOOKS_TREE_INLINING_START_INLINING,
260         LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
261
262         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
263         not set it.
264
265 2007-04-08  Anatoly Sokolov <aesok@post.ru>
266
267         PR target/29932
268         * config/avr/predicates.md (io_address_operand): Delete predicate.
269         (low_io_address_operand): Don't use 'mode' argument.
270         (higth_io_address_operand): Rename ...
271         (high_io_address_operand): ... to this. Don't use 'mode' argument.
272         * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
273         for above change.
274
275 2007-04-07  Daniel Berlin  <dberlin@dberlin.org>
276
277         Revert change removing staticp.
278
279 2007-04-07  Anatoly Sokolov <aesok@post.ru>
280
281         PR target/30289
282         * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
283         earlyclobber.
284
285 2007-04-07  Bruce Korb  <bkorb@gnu.org>
286
287         * c.opt: Add -Wformat-contains-nul.
288         * c-format.c (set_Wformat):  Set warn_format_contains_nul to the
289           -Wformat setting.
290         (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
291         the NUL byte warning.
292
293 2007-04-07  H.J. Lu  <hongjiu.lu@intel.com>
294
295         * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
296
297 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
298
299         * tree.c (staticp): No longer use staticp langhook.
300         * langhooks.c (lhd_staticp): Removed.
301         * langhooks.h (struct lang_hooks): Remove staticp.
302         * c-common.c (c_staticp): Remove.
303         * c-common.h (c_staticp): Ditto.
304         * langhooks-defs.h (lhd_staticp): Ditto.
305         (LHD_HOOKS_STATICP): Ditto
306         * tree.h (gcc_assert_lowered): New macro.
307
308 2007-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
309
310         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
311         argument "reliable".
312         (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
313         Add argument "reliable".  Propagate it through calls.
314         (infer_loop_bounds_from_undefined):  Derive number of iterations
315         estimates from references in blocks that do not dominate loop latch.
316         (gcov_type_to_double_int): New function.
317         (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
318         and expected_loop_iterations_unbounded.
319         * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
320         (expected_loop_iterations): Use expected_loop_iterations_unbounded.
321         * tree-data-ref.c (estimated_loop_iterations): Export.
322         (get_references_in_stmt): Fix -- do not return addresses of local
323         objects.
324         * cfgloop.h (expected_loop_iterations_unbounded,
325         estimated_loop_iterations): Declare.
326
327 2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
328
329         * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
330
331 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
332
333         * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
334         and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
335         (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
336         Use output_387_reg_move().
337         (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
338         expander using X87MODEF12 mode macro.
339         (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
340         choosing register preferences.  Use output_387_reg_move().
341         (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
342         instead of "x".  Use output_387_reg_move().
343         (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
344         *truncxfdf2_i387_noop.  Macroize insn using X87MODEF12 mode macro.
345         (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
346         *truncxfdf2_i387.  Macroize insn using X87MODEF12 mode macro.
347         Use output_387_reg_move().
348         (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
349         mode macro.
350         (*truncxf?f_i387 splitter): Ditto.
351
352 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
353
354         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
355         LANG_HOOKS_SAFE_FROM_P.
356         * expr.c (safe_from_p): Remove langhook call.
357         * langhooks.h (lang_hooks): Remove safe_from_p.
358         (lhd_safe_from_p): Remove prototype.
359         * langhooks.c (lhd_safe_from_p): Remove.
360
361 2007-04-06  Jan Hubicka  <jh@suse.cz>
362
363         * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
364         functions.
365
366 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
367
368         * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
369         * config/i386/i386.md (*movsf_1, *movdf_nointeger,
370         *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
371         *movxf_integer): Use output_387_reg_move() for x87 reg->mem
372         alternative.
373         (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
374         *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
375
376 2007-04-05  Richard Henderson  <rth@redhat.com>
377
378         * config/alpha/alpha.c (print_operand) [+]: Remove.
379         (alpha_end_function): Print nop if call at end of function.
380         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
381         * config/alpha/alpha.md (UNSPEC_LDGP1): New.
382         (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
383         (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
384         (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
385         the call pattern. Update peepholes to match.
386
387 2007-04-05  Janis Johnson  <janis187@us.ibm.com>
388
389         * doc/extend.texi (Other Builtins): Add decimal float variants
390         of signbit.
391         * builtins.def: Ditto.
392         * builtins.c (expand_builtin): Ditto.
393
394 2007-04-05  Uros Bizjak  <ubizjak@gmail.com>
395             H.J. Lu  <hongjiu.lu@intel.com>
396
397         PR target/31478
398         * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
399         of V8HImode when calling ix86_binary_operator_ok.
400         (sse2_pmaddwd): Call ix86_binary_operator_ok.
401         (sdot_prodv8hi): Operands 1 and 2 must be register.
402
403 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
404
405         * tree-sra.c (try_instantiate_multiple_fields): Needlessly
406         initialize align to silence bogus warning.
407
408 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
409
410         PR middle-end/22156
411         * tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
412         all_no_warning.
413         (struct sra_walk_fns): Remove use_all parameter from use.
414         (sra_hash_tree): Handle BIT_FIELD_REFs.
415         (sra_elt_hash): Don't hash bitfld blocks.
416         (sra_elt_eq): Skip them in parent compares as well.  Handle
417         BIT_FIELD_REFs.
418         (sra_walk_expr): Don't maintain or pass down use_all_p.
419         (scan_use): Remove use_all parameter.
420         (scalarize_use): Likewise.  Re-expand assignment to
421         BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
422         output, and re-scalarize after output.  Don't mark anything
423         for no warning.
424         (scalarize_ldst): Adjust.
425         (scalarize_walk_gimple_modify_statement): Likewise.
426         (build_element_name_1): Handle BIT_FIELD_REFs.
427         (instantiate_element): Don't warn for any element whose parent
428         is used as a whole.
429         (instantiate_missing_elements_1): Return the sra_elt.
430         (canon_type_for_field): New.
431         (try_instantiate_multiple_fields): New.
432         (instantiate_missing_elemnts): Use them.
433         (mark_no_warning): Removed.
434         (generate_one_element_ref): Handle BIT_FIELD_REFs.
435         (REPLDUP, sra_build_elt_assignment): New.
436         (generate_copy_inout): Use them.
437         (generate_element_copy): Likewise.  Handle bitfld differences.
438         (generate_element_zero): Don't recurse for blocks.  Use
439         sra_build_elt_assignment.
440         (generate_one_element_int): Take elt instead of var.  Use
441         sra_build_elt_assignment.
442         (generate_element_init_1): Adjust.
443         (scalarize_use, scalarize_copy): Use REPLDUP.
444         (scalarize_ldst): Move assert before dereference.
445         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
446
447 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
448
449         * regmove.c: Fix unused variable warnings due to previous commit.
450
451 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
452
453         * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
454         (regmove_bb_head): Remove.
455         (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
456         (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
457         problems with fixup_match_1.
458         Don't initialize/free regmove_bb_head.
459
460         (reg_is_remote_constant_p): If an insn is in the same basic block
461         but not before INSN, consider it remote, too.
462
463 2007-04-05  Anatoly Sokolov <aesok@post.ru>
464
465         PR target/25448
466         * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
467         DECL_ASSEMBLER_NAME, not the DECL_NAME.
468
469 2007-04-05  H.J. Lu  <hongjiu.lu@intel.com>
470
471         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
472         (CONDITIONAL_REGISTER_USAGE): Likewise.
473
474 2007-04-04  Richard Henderson  <rth@redhat.com>
475
476         * config/alpha/lib1funcs.asm: Remove unused file.
477
478 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
479
480         PR other/31356
481         * opts.c (print_specific_help): Fix --help=<language>
482         header line.
483         (common_handle_option): Support --help=common.
484
485 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
486
487         PR other/31353
488         * gcc.c (main): Do not run the linker if
489         print_subprocess_help indicates that it shouldn't be
490         run.
491
492 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
493
494         PR doc/31355
495         * doc/invoke.texi (--help=): Document <languages> value, fix
496         formatting in tables of values.
497
498 2007-04-04  Danny Smith  <dannysmith.users.sourceforge.net>
499
500         * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
501         dllimport attribute of virtual methods.
502
503 2007-04-04  Chen Liqin  <liqin@sunnorth.com.cn>
504
505         * config/score/crti.asm: Change _bss_start to __bss_start.
506         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
507         (OUTGOING_REG_PARM_STACK_SPACE) update.
508         * config/score/score.opt: add options to make backend support
509         score5, score5u, score7 and score7d.
510         * config/score/score.md: Likewise.
511         * config/score/misc.md: Likewise.
512         * config/score/mac.md: Likewise.
513         * doc/invoke.texi: Likewise.
514         * doc/md.texi: update constraints define.
515
516 2007-04-03  Richard Henderson  <rth@redhat.com>
517
518         * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
519         an appropriate type, use the mode instead.
520
521 2007-04-03  Richard Sandiford  <richard@codesourcery.com>
522
523         * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
524         Set the default --with-arch setting to mips2.
525         * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
526         (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
527         (MULTILIB_OSDIRNAMES): Delete.
528         (MULTILIB_DIRNAMES): Define.
529         * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
530         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
531         (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
532         definitions, except for _WRS_R3K_EXC_SUPPORT.  Call
533         VXWORKS_OS_CPP_BUILTINS.
534         (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
535         (MIPS_DEBUGGING_INFO): Undefine.
536         (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
537
538 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
539
540         PR middle-end/30704
541         * fold-const.c (native_encode_real): Encode real.c provided longs
542         as a series of 32-bit native integers.
543         (native_interpret_real): Interpret buffer as a series of 32-bit
544         native integers.
545
546 2007-04-03  Richard Guenther  <rguenther@suse.de>
547
548         * genpreds.c (write_insn_constraint_len): Write function
549         optimized for CONSTRAINT_LEN implementation.
550         (write_tm_preds_h): Output insn_constraint_len inline and
551         use it for CONSTRAINT_LEN.
552         (write_insn_preds_c): Don't output insn_constraint_len.
553         * doc/md.texi (define_register_constraint): Document multi-letter
554         constraints shall have the same length if they start with the same
555         letter.
556
557 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
558
559         PR target/31175
560         * config/i386/i386.md (isinf<mode>2): Expand only when
561         TARGET_C99_FUNCTIONS is set.
562
563 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
564
565         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
566         (x86_64-*-linux*): Ditto.
567         * config/i386/i386.opt (mpc): New option.
568         * config/i386/i386.c (overrride_options): Handle
569         ix87_precision_string.
570         * config/i386/crtprec.c: New file.
571         * config/i386/t-crtpc: Ditto.
572         * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
573         and -mpc80 options.
574         * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
575         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
576         crtprec32.o, crtprec64.o and crtprec80.o.
577
578         * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
579         and -mpc80 options.
580         (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
581
582 2007-04-02  Eric Christopher  <echristo@apple.com>
583
584         * doc/invoke.texi (i386 and x86-64 Options): Document -m64
585         limitations on darwin.
586
587 2007-04-02  Anatoly Sokolov <aesok@post.ru>
588
589         PR target/31137
590         * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
591
592 2007-04-02  Dave Korn  <dave.korn@artimi.com>
593
594         * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
595
596 2007-04-02  Dave Korn  <dave.korn@artimi.com>
597
598         * libgcc2.h (exception_descriptor): Don't forward-declare.
599         (__get_eh_table_language, __get_eh_table_version): Delete
600         prototypes of long-dead functions.
601
602 2007-04-01  Daniel Berlin  <dberlin@dberlin.org>
603
604         * ebitmap.h: New file
605         * ebitmap.c: New file
606         * Makefile.in (ebitmap.o): New target.
607
608 2007-04-01  Jan Hubicka  <jh@suse.cz>
609
610         * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
611         before very first instruction.
612
613 2007-04-01  Jan Hubicka  <jh@suse.cz>
614
615         * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
616         waring on 64bit hosts.
617         * bitmap.h: Fix typo in bitmap_head_def.
618
619 2007-04-01  Steven Bosscher  <steven@gcc.gnu.org>
620
621         PR rtl-optimization/31391
622         * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
623         into a DELETED_LABEL note, and the label is in an empty basic
624         block, update BB_END as well as BB_HEAD.
625
626 2007-04-01  Richard Henderson  <rth@redhat.com>
627
628         PR tree-optimization/31169
629         * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
630         to varying if the range is outside [0,  prec-1].
631
632 2007-04-01  Richard Sandiford  <richard@codesourcery.com>
633
634         PR target/31388
635         * config/mips/mips.md (load_const_gp): New insn.
636         * config/mips/mips.c (mips_split_symbol): Avoid using or creating
637         the MIPS16 GP pseudo register if no_new_pseudos.
638         (mips16_gp_pseudo_reg): Use gen_load_const_gp.
639
640 2007-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
641
642         PR target/31364
643         * config/rs6000/rs6000.md (call): Convert to LR hard reg for
644         secureplt.
645         (call_value): Likewise.
646
647 2007-03-31  Wolfgang Bangerth  <bangerth@dealii.org>
648             Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
649
650         PR 14737
651         * doc/invoke.texi: (optimization options): Reword description
652         of -ffast-math. Document its primary purpose.
653
654 2007-03-31  Richard Guenther  <rguenther@suse.de>
655
656         * omp-low.c (splay-tree.h): Include.
657         (lookup_decl): Replace splay-tree usage by pointer-map.
658         (maybe_lookup_decl): Likewise.
659         (new_omp_context): Likewise.
660         (delete_omp_context): Likewise.
661         * gimplify.c (splay-tree.h): Include.
662         * tree-inline.c (insert_decl_map): Replace splay-tree usage by
663         pointer-map.
664         (remap_ssa_name): Likewise.
665         (remap_decl): Likewise.
666         (remap_type_1): Likewise.
667         (remap_type): Likewise.
668         (copy_body_r): Likewise.
669         (expand_call_inline): Likewise.
670         (clone_body): Likewise.
671         (copy_tree_r): Likewise.
672         (remap_save_expr): Likewise.
673         (unsave_r): Likewise.
674         (unsave_expr_now): Likewise.
675         (tree_function_versioning): Likewise.
676         (build_duplicate_type): Likewise.
677         * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
678         (struct copy_body_data): Replace splay-tree by pointer-map.
679         * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
680         not $(SPLAY_TREE_H).
681         (gimplify.o): Depend on $(SPLAY_TREE_H).
682         (omp-low.p): Likewise.
683
684 2007-03-31  Anatoly Sokolov <aesok@post.ru>
685
686         * config/avr/predicates.md (even_register_operand,
687         odd_register_operand): New predicates.
688         * config/avr/avr.md (movw peephole2): New.
689         (movw_r peephole2): New.
690
691 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
692
693         * tree.h (get_signed_or_unsigned_type): New.
694         * fold-const.c (operand_equal_for_comparison_p): Use
695         get_signed_or_unsigned_type instead of
696         lang_hooks.types.signed_or_unsigned_type.
697         * expr.c (store_expr): Ditto.
698         * langhooks.c (get_signed_or_unsigned_type): New.
699         (lhd_signed_or_unsigned_type): New.
700         * langhooks.h (lhd_signed_or_unsigned_type): New.
701         * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
702
703 2007-03-30  Richard Henderson  <rth@redhat.com>
704
705         * tree-ssa-loop-ivopts.c: Include target.h.
706         (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
707         (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
708         (force_expr_to_var_cost): Use produce_memory_decl_rtl.
709         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
710
711 2007-03-30  Richard Henderson  <rth@redhat.com>
712             Kai Tietz  <kai.tietz@onevision.com>
713
714         * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
715         default for 64-bit.
716         (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
717         (TARGET_64BIT_MS_ABI): New.
718         (DBX_REGISTER_NUMBER): Handle 64-bit.
719         (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
720         (LONG_TYPE_SIZE): Force to 32.
721         (REG_PARM_STACK_SPACE): New.
722         (OUTGOING_REG_PARM_STACK_SPACE): New.
723         (REGPARM_MAX, SSE_REGPARM_MAX): New.
724         (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
725         (STACK_BOUNDARY): Use 128 for 64-bit.
726         * config/i386/cygwin.asm: Use push/ret to preserve call stack.
727         Add 64-bit implementation.
728         * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
729         argument unused.
730         * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
731         (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
732         Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
733         for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
734         (ix86_handle_cconv_attribute): Don't warn when ignoring if
735         TARGET_64BIT_MS_ABI.
736         (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
737         (ix86_pass_by_reference): Likewise.
738         (ix86_function_value_regno_p): Likewise.
739         (ix86_build_builtin_va_list): Likewise.
740         (ix86_va_start, ix86_gimplify_va_arg): Likewise.
741         (function_arg_advance_ms_64): New.
742         (function_arg_advance): Call it.
743         (function_arg_ms_64): New.
744         (function_arg): Call it.
745         (function_value_ms_64): New.
746         (ix86_function_value_1): Call it.
747         (return_in_memory_ms_64): New.
748         (ix86_return_in_memory): Call it.
749         (setup_incoming_varargs_ms_64): New.
750         (ix86_setup_incoming_varargs): Call it.
751         (ix86_expand_prologue): Handle 64-bit stack probing.
752         (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
753         (output_pic_addr_const): Likewise.
754         (x86_this_parameter): Likewise.
755         (x86_output_mi_thunk): Likewise.
756         (x86_function_profiler): Likewise.
757         (TARGET_STRICT_ARGUMENT_NAMING): New.
758         * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
759         (TARGET_64BIT_MS_ABI): New.
760         (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
761         * config/i386/i386.md (allocate_stack_worker): Remove.
762         (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
763         describe the clobber of eax without a match_scratch.
764         (allocate_stack_worker_postreload): Remove.
765         (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
766         describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
767         (allocate_stack_worker_rex64_postreload): Remove.
768         (allocate_stack): Handle 64-bit.
769         * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
770         * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
771         (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
772         (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
773         (STANDARD_STARTFILE_PREFIX_1): Likewise.
774         * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
775         * config.build (x86_64-*-mingw*): New host.
776         * config.host (x86_64-*-mingw*): New host.
777         * config.gcc (x86_64-*-mingw*): New target.
778         * gthr-win32.h (__gthread_key_create): Mark dtor unused.
779
780 2007-03-30  Richard Henderson  <rth@redhat.com>
781             Kai Tietz  <kai.tietz@onevision.com>
782
783         * c-pragma.c (struct def_pragma_macro_value): New.
784         (struct def_pragma_macro): New.
785         (pushed_macro_table): New.
786         (dpm_hash, dpm_eq): New.
787         (handle_pragma_push_macro, handle_pragma_pop_macro): New.
788         (init_pragma): Install them.
789         * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
790
791 2007-03-30  Anatoly Sokolov <aesok@post.ru>
792
793         * config/avr/avr.c (avr_override_options): Clear
794         'flag_delete_null_pointer_checks'.
795
796 2007-03-30  Paolo Carlini  <pcarlini@suse.de>
797
798         PR c++/26099
799         * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
800         RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
801         RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
802         RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
803         RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
804         RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
805         RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
806         C++ extensions.
807         * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
808
809 2007-03-30  Steven Bosscher  <steven@gcc.gnu.org>
810
811         * regmove.c: Move all of pass_stack_adjustments from here...
812         * combine-stack-adj.c: ...to this new file.
813         * Makefile.in: Add rules for combine-stack-adj.o.
814
815 2007-03-30  Zdenek Dvorak  <dvorakz@suse.cz>
816
817         PR tree-optimization/31383
818         * tree-data-ref.c (affine_function_equal_p): Do not require the vectors
819         to have the same length.
820
821 2007-03-30  Jan Hubicka  <jh@suse.cz>
822
823         PR middle-end/30700
824         * dwarf2out.c (reference_to_unused): Ask cgraph for functions
825         availablility; add more sanity checking; ask varpool only about
826         VAR_DECL.
827
828 2007-03-29  Richard Henderson  <rth@redhat.com>
829
830         * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
831         to decide, but __SIZEOF_LONG_LONG__.
832
833 2007-03-29  Richard Henderson  <rth@redhat.com>
834
835         * emutls.c (struct __emutls_array): New.
836         (emutls_destroy): Use it instead of casting element 0 from void*.
837         (__emutls_get_address): Likewise.
838
839 2007-03-29  Richard Henderson  <rth@redhat.com>
840
841         * varasm.c (initializer_constant_valid_p): Don't deny
842         DECL_DLLIMPORT_P on functions.
843
844         * config/i386/cygming.h: Remove function declarations.
845         (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
846         (ASM_OUTPUT_LABELREF): Remove.
847         (COMMON_ASM_OP): Remove.
848         (ASM_OUTPUT_COMMON): Remove.
849         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
850         (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
851         (ASM_DECLARE_FUNCTION_NAME): Likewise.
852         * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
853         Rename from TARGET_ENCODE_SECTION_INFO.
854         * config/i386/netware.h: Likewise.
855         * config/i386/i386-protos.h: Update.
856         * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
857         of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
858         (legitimate_constant_p): Reject dllimports.
859         (dllimport_map, get_dllimport_decl): New.
860         (legitimize_dllimport_symbol): New.
861         (legitimize_address, ix86_expand_move): Use it.
862         (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
863         * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
864         (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
865         (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
866         * config/i386/predicates.md (constant_call_address_operand): Only
867         accept symbols; reject dllimport_p symbols.
868         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
869         i386_pe_maybe_record_exported_symbol.
870         * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
871         (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
872         (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
873         trust the setting of DECL_DLLIMPORT_P.
874         (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
875         (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
876         (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
877         tidy the argument scanning loop.
878         (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
879         SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
880         (i386_pe_strip_name_encoding): Remove.
881         (i386_pe_binds_local_p): New.
882         (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
883         (i386_pe_output_labelref): Remove.
884         (i386_pe_asm_output_aligned_decl_common): New.
885         (i386_pe_maybe_record_exported_symbol): Rename from
886         i386_pe_record_exported_symbol; check for dllexported symbols.
887
888 2007-03-29  Zack Weinberg  <zack@mrtock.ucsd.edu>
889
890         * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
891         add comment explaining why vsnprintf cannot be used.
892
893 2007-03-29  Douglas Gregor  <doug.gregor@gmail.com>
894
895         PR tree-optimization/30666
896         * tree.c (build_complex_type): When creating type names for DWARF2
897         debug info, create TYPE_DECLs for TYPE_NAME instead of
898         IDENTIFIER_NODEs.
899         (build_common_tree_nodes_2): Use build_complex_type when building
900         predefined complex types, to preserve canonical types.
901
902 2007-03-29  Steven Bosscher  <steven@gcc.gnu.org>
903
904         * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
905         (noce_get_alt_condition): Look at it to determine whether to
906         reverse the condition or not.
907         (noce_get_condition): Substitute the truth for lies.
908         (noce_find_if_block): Set the then_else_reversed field.
909
910 2007-03-29  Lars Poeschel <larsi@wh2.tu-dresden.de>
911
912         * config/fr30/fr30.md (movdi): Do not accept immediates as the
913         destination of this insn.
914         * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
915         than calling gen_rtx_SET directly.  Use r0 to hold the value of
916         'address + 4' rather than a stack based temporary which can be
917         mis-optimized away.
918
919 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
920
921         * config/s390/s390.c (s390_secondary_input_reload_class,
922         s390_secondary_output_reload_class): Functions removed.
923         (s390_secondary_reload): New function.
924         (TARGET_SECONDARY_RELOAD): Target macro defined.
925         * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
926         SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
927         * config/s390/s390.md ("reload_outti", "reload_outdi",
928         "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
929         "reload_out<mode>"): Expanders removed.
930         ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
931         "reload<mode>_nonoffmem_out"): Expanders added.
932
933 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
934
935         * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if
936         SRC->DEST replacement failed anyway.
937
938 2007-03-28  Mike Stump  <mrs@apple.com>
939
940         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
941         * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
942         * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
943
944 2007-03-28  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
945
946         * config.gcc: Accept barcelona as a variant of amdfam10.
947         * config/i386/i386.c (override_options): Likewise.
948         * doc/invoke.texi: Likewise.
949
950 2007-03-28  Eric Botcazou  <ebotcazou@adacore.com>
951
952         * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
953         offsets for BIT_FIELD_REF and COMPONENT_REF.
954
955 2007-03-28  Richard Guenther  <rguenther@suse.de>
956
957         * tree.c (is_global_var): Move ...
958         * tree-flow-inline.h (is_global_var): ... here.
959         * tree.h (is_global_var): Remove declaration.
960
961 2007-03-28  Uros Bizjak  <ubizjak@gmail.com>
962
963         * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
964         option.
965         (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
966         * config/i386/i386.c (ix86_tune_features): Initialize new
967         tuning option.
968         * config/i386/predicates.md (promotable_binary_operator): Use
969         TARGET_TUNE_PROMOTE_HIMODE_IMUL.
970
971 2007-03-28  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
972
973         PR target/31380
974         * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
975
976 2007-03-28  Lars Poeschel <larsi@wh2.tu-dresden.de>
977
978         * config/fr30/fr30.md (movsi_internal): Change destination
979         constraint from m to V and add m to the end.
980
981 2007-03-28  Christian Bruel  <christian.bruel@st.com>
982
983         * config/sh/sh.md (movsi_i): Fix type attribute.
984
985 2007-03-28  Christian Bruel  <christian.bruel@st.com>
986
987         * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
988         (movsf_ie): Likewise.
989
990 2007-03-28  Christian Bruel  <christian.bruel@st.com>
991
992         * config.gcc: Add sh4-300 to multilib.
993         * config/sh/t-mlib-sh4-300: New file.
994
995 2007-03-28  Andreas Krebbel  <krebbel1@de.ibm.com>
996
997         * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
998         ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
999         fix_trunc<mode>di2.
1000         ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
1001         fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
1002         ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
1003         "fixuns_trunctddi2"): Whitespace fix.
1004
1005 2007-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1006
1007         * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
1008         the definition of struct sh_args.
1009         (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
1010         CALL_COOKIE_INT_REG_GET): Likewise.
1011
1012 2007-03-28  Steven Bosscher  <steven@gcc.gnu.org>
1013
1014         * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
1015         transformations are applied successfully.
1016
1017 2007-03-27  Douglas Gregor  <doug.gregor@gmail.com>
1018
1019         * tree.c (tree_contains_struct): Permit 512 tree codes.
1020         * tree.h (tree_contains_struct): Ditto.
1021         (MAX_TREE_CODES): Ditto.
1022         (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
1023         SPARE member to store remaining padding bits.
1024
1025 2007-03-27  Anatoly Sokolov <aesok@post.ru>
1026
1027         * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
1028         architecture.
1029
1030 2007-03-27  Janis Johnson  <janis187@us.ibm.com>
1031
1032         * configure.ac: Fix assembler test for powerpc*-linux decimal float.
1033         * configure: Regenerate.
1034
1035         * configure: Regenerate using the correct version of autoconf.
1036
1037 2007-03-27  Anatoly Sokolov  <aesok@post.ru>
1038
1039         * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
1040         pointer regs.
1041         * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
1042         regs to "__SP_L__" and "__SP_H__".
1043
1044 2007-03-27  Richard Guenther  <rguenther@suse.de>
1045
1046         * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
1047         computations with it with a HOST_WIDE_INT variable.
1048
1049 2007-03-26  Mike Stump  <mrs@apple.com>
1050
1051         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
1052         objective-c-header, objective-c++-header and objc++-cpp-output
1053         support.
1054         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
1055
1056 2007-03-26  Richard Henderson  <rth@redhat.com>
1057
1058         PR target/31361
1059         * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
1060         IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
1061         IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
1062         IX86_BUILTIN_PSRLQ128): New.
1063         (ix86_init_mmx_sse_builtins): Add them.
1064         (ix86_expand_builtin): Expand them.
1065         * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
1066         operand 2 be TImode.
1067         * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
1068         _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
1069         _mm_srli_epi64): Mark __B const.
1070         (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
1071         (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
1072         _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
1073         new two-vector shift builtins.
1074
1075 2007-03-26  Ian Lance Taylor  <iant@google.com>
1076
1077         PR tree-optimization/31345
1078         * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
1079         [+INF, +INF(OVF)] into VARYING.
1080
1081 2007-03-26  Zack Weinberg  <zackw@panix.com>
1082
1083         * gengtype-parse.c: New file.
1084         * gengtype-yacc.y: Delete.
1085         * gengtype-lex.l: Don't include gengtype-yacc.h.
1086         Define YY_DECL and yyterminate appropriately for recursive
1087         descent parser.  yylval is now a string out-parameter to yylex.
1088         (HWS, EOID): New shorthand.
1089         (IWORD): Add a couple more types.
1090         (yylex): Add a setup stanza.  Remove the complex rules for
1091         detecting GTY'ed types and typedefs; replace with simple
1092         keyword detectors.  Adjust everything for the changed
1093         definition of yylval.  Ignore all pp-directives, not just #define.
1094         (yyerror): Delete.
1095         (parse_file): Rename yybegin; do not call yyparse.
1096         (yyend): New.
1097         * gengtype.c (xasprintf): Export again.
1098         (this_file): New.  Use everywhere __FILE__ was being used.
1099         (get_lang_bitmap): Special case types defined in gengtype.c.
1100         (do_typedef, new_structure): Suppress definition of certain types.
1101         (new_structure): Improve diagnostics of duplicate definitions.
1102         Make sure location_s is associated with input.h.
1103         (nreverse_pairs, define_location_structures): New functions.
1104         (main): Improve tagging of kludge types.  Remove old kludges
1105         for input.h types; use define_location_structures.
1106         * gengtype.h: Update prototypes.  Define token codes here.
1107         * Makefile.in: Remove all references to gengtype-yacc.
1108         Add rules for gengtype-parse.o.  Adjust rules for gengtype-lex.o
1109         and gengtype.
1110         * bitmap.h (struct bitmap_head_def): Coalesce definitions,
1111         add GTY((skip)) to the field that's only conditionally there.
1112         * doc/install.texi: Document that Bison is no longer required
1113         unless building treelang.
1114
1115         * gengtype.c: Don't include gtyp-gen.h.
1116         (srcdir): Declare here.
1117         (base_files, lang_dir_names): Allocate dynamically.
1118         (gt_files, num_gt_files, num_lang_dirs): New globals.
1119         (measure_input_list, read_input_line, read_input_list)
1120         (set_lang_bitmap): New functions.
1121         (get_base_file_bitmap): Rename get_lang_bitmap and drastically
1122         simplify, relying on read_input_list to set up the bitmaps.
1123         (main): Arguments are no longer unused.  Check for correct number
1124         of command line arguments, set srcdir and srcdir_len, then call
1125         read_input_list, before doing anything else.  No need to worry
1126         about duplicates in main loop.
1127         * configure.ac: Simplify the calculation of all_gtfiles.
1128         Put language tags in there.  Don't set or substitute
1129         all_gtfiles_files_langs or all_gtfiles_files_frags.
1130         * Makefile.in: Revamp the way gengtype is invoked, now that it
1131         takes a file on its command line with a much simpler format.
1132         Remove or replace with gtyp-input.list all references to gtyp-gen.h.
1133         (GTFILES): Remove duplicates and C source files.
1134         * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
1135         * objcp/config-lang.in: Add c-pragma.h to gtfiles.
1136         * configure: Regenerate.
1137
1138         * gengtype.h: Remove all type definitions to gengtype.c; leave
1139         only definitions of options_p, type_p, and pair_p as opaque
1140         pointers.  Update prototypes.
1141         * gengtype.c: Many type definitions moved here from gengtype.h.
1142         Consolidate type definitions at the top of the file.
1143         (xvasprintf): Delete.
1144         (xasprintf): Make static.
1145         (create_nested_pointer_option): Add 'next' parameter.
1146         (create_field_all, create_field_at): New functions.
1147         (create_field): Now a thin wrapper around create_field_all.
1148         (create_optional_field): Rename create_optional_field_ and add
1149         line argument.  Original name is now a macro which supplies
1150         __LINE__.
1151         (oprintf): Use vsnprintf directly.
1152         (close_output_files): Use fatal rather than perror/exit.
1153         (note_def_vec, note_def_vec_alloc): Use create_field_at.
1154         (main): Set progname.  Don't use exit.
1155         * gengtype-yacc.y (struct_fields): Use create_field_at.
1156         (option, optionseqopt): Delete.
1157         (optionseq): Consolidate productions from option here so we
1158         can use the first argument to create_option.
1159
1160         * gengtype-lex.l: Distinguish unions from structures in the
1161         token type.  Don't call find_structure; return the tag as a string.
1162         * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and ENT_UNION.
1163         Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is string.
1164         Reorganize typedef_struct production accordingly.
1165         Use create_nested_ptr_option.
1166         * gengtype.c (create_nested_ptr_option): New function.
1167         * gengtype.h: Declare it.
1168
1169         * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
1170         (string_type): Don't declare.
1171         (do_scalar_typedef): Declare.
1172         (create_scalar_type): Update prototype.
1173         * gengtype.c (string_type): Make static.
1174         (scalar_nonchar, scalar_char): New.
1175         (do_scalar_typedef): Export.  Always use scalar_nonchar for the type.
1176         (resolve_typedef): Use scalar_nonchar for error recovery.
1177         (create_scalar_type): Remove name_len field.  Return scalar_char
1178         or scalar_nonchar as appropriate.
1179         (adjust_field_type): Look at scalar_is_char boolean to decide whether
1180         to use string_type.
1181         (throughout): Use scalar_nonchar instead of calling create_scalar_type,
1182         whenever possible.
1183         (main): Initialize scalar_char and scalar_nonchar before calling
1184         gen_rtx_next.
1185         * gengtype-lex.l: Adjust for removal of second argument to
1186         create_scalar_type.  Use yylval.s instead of yylval.t when
1187         returning SCALAR.
1188         * gengtype-yacc.y: Type of SCALAR is string.  Call
1189         create_scalar_type from type:SCALAR rule.  Adjust for removal of
1190         second argument to create_scalar_type.
1191
1192         * vec.h: Remove all #if IN_GENGTYPE blocks.
1193         Add comment saying that changes may require adjustments to gengtype.
1194         * gengtype.c: Don't include coretypes.h or tm.h.
1195         Add comment to inclusion of errors.h.
1196         (note_def_vec, note_def_vec_alloc): New functions.
1197         * gengtype.h: Declare new functions.
1198         * gengtype-lex.l: Don't include coretypes.h.
1199         (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
1200         Delete.
1201         (update_lineno): Remove unnecessary prototype.
1202         (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
1203         (VEC rule): Just return VEC_TOKEN.
1204         * gengtype-yacc.y (VEC_TOKEN): New token type.
1205         (type): Add a production for VEC(a,b).
1206         * Makefile.in: Update dependencies.
1207
1208         * gengtype-lex.l: Remove rules for parsing pointer-to-function
1209         typedefs that use the old PARAMS macro.
1210
1211         * gengtype-lex.l: Remove all rules and states relating to yacc
1212         input files.
1213         * gengtype-yacc.y: Similarly.
1214         * gengtype.c (note_yacc_type): Delete function.
1215         * gengtype.h: Update prototypes.
1216
1217 2007-03-26  Joseph Myers  <joseph@codesourcery.com>
1218
1219         * tree-pretty-print.c (dump_generic_node): Report precision of
1220         unnamed integer types.
1221
1222 2007-03-26  Steven Bosscher  <steven@gcc.gnu.org>
1223
1224         * ifcvt.c (noce_try_store_flag_constants): Don't check
1225         no_new_pseudos here.
1226         (noce_try_store_flag_constants): Don't check no_new_pseudos.
1227         (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
1228         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
1229         noce_try_sign_mask): Likewise.
1230         (if_convert): Check no_new_pseudos here.
1231
1232         (cond_exec_process_if_block, noce_process_if_block, find_if_block):
1233         Remove prototypes.
1234         (struct noce_if_info): Add then_bb, else_bb, join_bb members.
1235         (noce_get_condition): Handle new then_else_reversed argument.
1236         (noce_init_if_info): Remove, fold into noce_find_if_block.
1237         (noce_process_if_block): Take a struct noce_if_info as the
1238         argument.  Don't set up one based on ce_if_info.  Update pointer
1239         references accordingly.
1240         (cond_move_process_if_block): Likewise.
1241         (process_if_block): Removed.
1242         (find_if_block): Removed.  Move functionality two new functions,
1243         noce_find_if_block and cond_exec_find_if_block.
1244         (noce_find_if_block): New function.  Be aware of IF-THEN-JOIN
1245         blocks and the symmetric IF-ELSE-JOIN case.
1246         (cond_exec_find_if_block): Also new function mostly based on old
1247         find_if_block and process_if_block.
1248         (find_if_header): Replace find_if_block call with separately
1249         guarded calls to noce_find_if_block and cond_exec_find_if_block.
1250         (find_cond_trap): Update noce_get_condition call.
1251         (dead_or_predicable): Likewise.
1252
1253 2007-03-26  Jakub Jelinek  <jakub@redhat.com>
1254
1255         * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
1256         Remove.
1257         (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
1258         IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
1259         IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
1260         (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
1261         v4si_ftype_v4si_v2di.  Remove __builtin_ia32_psllw128,
1262         __builtin_ia32_pslld128, __builtin_ia32_psllq128,
1263         __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
1264         __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
1265         __builtin_ia32_psrad128 builtins.
1266
1267 2007-03-26  Uros Bizjak  <ubizjak@gmail.com>
1268
1269         * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
1270         * config/i386/constraints.md
1271         (define_constraint "I"): Use IN_RANGE macro.
1272         (define_constraint "J"): Ditto.
1273         (define_constraint "K"): Ditto.
1274         (define_constraint "M"): Ditto.
1275         (define_constraint "N"): Ditto.
1276         (define_constraint "O"): Ditto.
1277         * config/i386/predicates.md
1278         (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
1279         (define_predicate "const_0_to_3_operand"): Ditto.
1280         (define_predicate "const_0_to_7_operand"): Ditto.
1281         (define_predicate "const_0_to_15_operand"): Ditto.
1282         (define_predicate "const_0_to_63_operand"): Ditto.
1283         (define_predicate "const_0_to_255_operand"): Ditto.
1284         (define_predicate "const_1_to_31_operand"): Ditto.
1285         (define_predicate "const_2_to_3_operand"): Ditto.
1286         (define_predicate "const_4_to_7_operand"): Ditto.
1287
1288 2007-03-25  David Edelsohn  <edelsohn@gnu.org>
1289
1290         * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
1291         in SImode for save_world.
1292         * config/rs6000/altivec.md (save_world, restore_world): Convert to
1293         LR hard reg.
1294
1295 2007-03-25  Dorit Nuzman  <dorit@il.ibm.com>
1296
1297         PR tree-optimization/30784
1298         * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
1299         BIT_FIELD_REF.
1300
1301 2007-03-25  Revital Eres  <eres@il.ibm.com>
1302
1303         * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
1304           Fold movement_possibility function into it.
1305
1306 2007-03-25  David Edelsohn  <edelsohn@gnu.org>
1307
1308         * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
1309         (load_macho_picbase_{si,di}): Convert to LR hard reg.
1310         (call_indirect_nonlocal_darwin64): Same.
1311         (call_nonlocal_darwin64): Same.
1312         (call_value_indirect_nonlocal_darwin64): Same.
1313         (call_value_nonlocal_darwin64): Same.
1314         (sibcall_nonlocal_darwin64): Same.
1315         (sibcall_value_nonlocal_darwin64): Same.
1316         (sibcall_symbolic_64): Same.
1317         (sibcall_value_symbolic_64): Same.
1318         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
1319         LR pseudo.
1320         (rs6000_emit_load_toc_table): Same.
1321         * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
1322         * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
1323         (mull_call): Same.
1324         (divss_call): Same.
1325         (divus_call): Same.
1326         (quoss_call): Same.
1327         (quous_call): Same.
1328         (load_toc_v4_pic_si): Same
1329         (load_toc_v4_PIC_1): Same.
1330         (load_toc_v4_PIC_1b): Same.
1331         (call_indirect_aix{32,64}): Same.
1332         (call_value_indirect_aix{32,64}): Same.
1333         (call): Same.
1334         (call_value): Same.
1335         (call_local{32,64}): Same.
1336         (call_value_local{32,64}): Same.
1337         (call_indirect_nonlocal_aix{32,64}): Same.
1338         (call_nonlocal_aix{32,64}): Same.
1339         (call_value_indirect_nonlocal_aix{32,64}): Same.
1340         (call_value_nonlocal_aix{32,64}): Same.
1341         (call_indirect_nonlocal_sysv<mode>): Same.
1342         (call_nonlocal_sysv<mode>): Same.
1343         (call_value_indirect_nonlocal_sysv<mode>): Same.
1344         (call_value_nonlocal_sysv<mode>): Same.
1345         (sibcall): Same.
1346         (sibcall_local{32,64}): Same.
1347         (sibcall_value_local{32,64}): Same.
1348         (sibcall_nonlocal_aix{32,64}): Same.
1349         (sibcall_value_nonlocal_aix{32,64}): Same.
1350         (sibcall_nonlocal_sysv<mode>): Same.
1351         (sibcall_value): Same.
1352         (sibcall_value_nonlocal_sysv<mode>): Same.
1353
1354 2007-03-24  Paul Brook  <paul@codesourcery.com>
1355
1356         * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
1357         * config/arm/linux-eabi.h: Remove legacy syscall hack.
1358
1359 2007-03-24  Richard Henderson  <rth@redhat.com>
1360
1361         * config/ia64/constraints.md: New file.
1362         * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
1363         satisfies_constraint_?.
1364         * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
1365         ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
1366         ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
1367         ia64_output_mi_thunk): Likewise.
1368         (ia64_const_ok_for_letter_p): Remove.
1369         (ia64_const_double_ok_for_letter_p): Remove.
1370         (ia64_extra_constraint): Remove.
1371         * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
1372         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
1373         CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
1374         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
1375         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
1376         EXTRA_MEMORY_CONSTRAINT): Remove.
1377         * config/ia64/ia64.md: Include constriants.md.  Replace
1378         CONST_OK_FOR_? with satisfies_constraint_?.
1379
1380 2007-03-23  Michael Meissner  <michael.meissner@amd.com>
1381             H.J. Lu  <hongjiu.lu@intel.com>
1382
1383         * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
1384         DPD or BID name.
1385         (name macros): Use DPD_BID_NAME to convert names properly.
1386
1387         * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
1388         decimal floating point format.
1389         (init_floating_libfuncs): Change decimal functions so that they
1390         have a "bid_" prefix if the decimal system uses the BID format,
1391         and "dpd_" prefix if the decimal system uses the DPD format.
1392         (init_interclass_conv_libfuncs): Ditto.
1393         (init_intraclass_conv_libfuncs): Ditto.
1394
1395         * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
1396         using the BID format.
1397
1398         * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
1399         whether we are using the BID decimal format.
1400         * configure: Regenerate.
1401
1402         * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
1403         the compiler has decimal floating point enabled.  Define
1404         __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
1405         instead of DPD.
1406
1407         * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
1408         using the BID format.
1409
1410         * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
1411         whether we are using the BID decimal format.
1412         * configure: Regenerate.
1413
1414         * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
1415         the compiler has decimal floating point enabled.  Define
1416         __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
1417         instead of DPD.
1418
1419         * doc/install.texi (--enable-decimal-float): Document BID and DPD
1420         options, and that it is enabled for i386/x86_64 systems.
1421
1422         * Makefile.in (enable_decimal_float): New.
1423         (DECNUMFMT): New.
1424         (DECNUMINC): Add  -I$(DECNUMFMT).
1425         (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
1426         to $(DECNUMFMT) from $(DECNUM).
1427
1428         * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
1429         Substitute enable_decimal_float.
1430         * configure: Regenerated.
1431
1432         PR other/30529
1433         * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
1434         unsigned long.
1435
1436         * configure.ac: Enable decimal float for x86_64-*-linux*.
1437         * configure: Regenerated.
1438
1439         PR other/30530
1440         * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
1441         decimal128ClearSign to flip and clear the sign bit in decimal128.
1442         (decimal_real_maxval): Set decimal128SetSign to set the sign
1443         bit in decimal128.
1444
1445 2007-03-23  Ian Lance Taylor  <iant@google.com>
1446
1447         * fold-const.c (fold_binary): Correct warning for X - c >= X.
1448
1449 2007-03-23  Ian Lance Taylor  <iant@google.com>
1450
1451         * tree-dump.c (dump_files): Correct comment.
1452
1453 2007-03-23  Ian Lance Taylor  <iant@google.com>
1454
1455         * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
1456
1457 2007-03-23  Steven Bosscher  <steven@gcc.gnu.org>
1458
1459         * tracer.c (tracer): Don't take FLAGS argument.  Assert we are
1460         in cfglayout mode.  Don't go into and out of cfglayout mode.
1461         Link the blocks in the order of the constructed traces.
1462         (rest_of_handle_tracer): Adjust call to tracer.
1463         * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
1464         Don't go into cfglayout mode.
1465         (rtl_loop_done): Don't go out of cfglayout mode.
1466         * cfglayout.c (relink_block_chain): New function, split out from...
1467         (fixup_reorder_chain): ...here.  Remove redundant checking.
1468         (cfg_layout_finalize): Don't clear the header, footer, and aux
1469         fields here, move the code to do so to relink_block_chain.  Likewise
1470         for free_original_copy_tables.
1471         * rtl.h (tracer): Update prototype.
1472         * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
1473         Assert we are in cfglayout mode.  Don't go into and out of cfglayout
1474         mode.  Use relink_block_chain to serialize the CFG according to the
1475         new basic block order.  Move targetm.cannot_modify_jumps_p check from
1476         here...
1477         (gate_handle_reorder_blocks): ...to here.
1478         (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
1479         from here...
1480         (gate_duplicate_computed_gotos): ...to here.
1481         (rest_of_handle_reorder_blocks): Don't see if anything has changed,
1482         something always changes when going into and out of cfglayout mode.
1483         Perform an expensive cfg cleanup while going into cfglayout mode.
1484         Always update liveness information on HAVE_conditional_execution
1485         targets.  Reserialize the basic blocks and go out of cfglayout mode.
1486         * reg-stack.c: Include cfglayout.h.
1487         (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
1488         the call to reorder_basic_blocks.
1489         * basic-block.h (reorder_basic_blocks): Update prototype.
1490         (relink_block_chain): New prototype.
1491         * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
1492
1493 2007-03-23  Joseph Myers  <joseph@codesourcery.com>
1494
1495         * config/mips/mips.md (type, hazard, *movdi_32bit,
1496         *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
1497         *movhi_internal, *movqi_internal, *movsf_hardfloat,
1498         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
1499         movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
1500         mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
1501         applicable.
1502         (movcc): Change first xfer to multi.
1503         * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
1504         config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
1505         config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
1506         config/mips/generic.md: Change reservations using "xfer" to use
1507         "mfc,mtc".
1508         * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
1509         using match_operand.
1510         (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
1511         * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
1512         examining mode.
1513         (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
1514
1515 2007-03-22  Richard Henderson  <rth@redhat.com>
1516
1517         * config/i386/i386.c: Remove unnecessary function declarations.
1518         Move targetm definition, and all related macros, to the end of
1519         the file.  Resort some functions to put definitions before uses.
1520         (ix86_attribute_table): Make static.  Move to end of file.
1521         (ix86_gimplify_va_arg): Make static.
1522
1523 2007-03-22  Richard Henderson  <rth@redhat.com>
1524
1525         * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
1526         don't increase local_regparm with force_align_arg_pointer check.
1527         (ix86_function_sseregparm): Assert 32-bit.
1528         (type_has_variadic_args_p): New.
1529         (ix86_return_pops_args): Early exit for 64-bit.  Reindent; use
1530         type_has_variadic_args_p.
1531         (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
1532         (init_cumulative_args): Remove TARGET_DEBUG_ARG.  Remove zero_cum;
1533         use memset instead.  Do maybe_vaarg check first; skip attribute
1534         tests if true; skip attribute tests for 64-bit.
1535         (construct_container): Remove TARGET_DEBUG_ARG.
1536         (function_arg_advance_32, function_arg_advance_64): Split out ...
1537         (function_arg_advance): ... from here.
1538         (function_arg_32, function_arg_64): Split out ...
1539         (function_arg): ... from here.
1540         (ix86_pass_by_reference): Tidy.
1541         (ix86_function_value_regno_p): Rearrange w/ switch on regno.
1542         (function_value_32): New, from parts of ix86_function_value
1543         and ix86_value_regno.
1544         (function_value_64): New, from parts of ix86_function_value
1545         and ix86_libcall_value.
1546         (ix86_function_value_1): New.
1547         (ix86_function_value, ix86_libcall_value): Use it.
1548         (return_in_memory_32, return_in_memory_64): Split out ...
1549         (ix86_return_in_memory): ... from here.
1550         (ix86_struct_value_rtx): Skip for 64-bit.
1551         (ix86_libcall_value, ix86_value_regno): Remove.
1552         (setup_incoming_varargs_64): Split out ...
1553         (ix86_setup_incoming_varargs): ... from here.
1554         (ix86_va_start): Remove TARGET_DEBUG_ARG.
1555         (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
1556         * config/i386/i386-protos.h (ix86_function_value): Remove.
1557         * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
1558
1559 2007-03-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1560
1561         PR other/23572
1562         * c-lex.c (interpret_float): On overflow, emit pedantic warning if
1563         infinities not supported, otherwise emit warning if -Woverflow. On
1564         underflow, emit warning if -Woverflow.
1565         * real.c (real_from_string): Return -1 if underflow, +1 if overflow
1566         and 0 otherwise.
1567         * real.h (real_from_string): Update declaration
1568
1569 2007-03-22  Kai Tietz  <kai.tietz@onevision.com>
1570             Richard Henderson  <rth@redhat.com>
1571
1572         * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
1573         * calls.c (compute_argument_block_size, expand_call,
1574         emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
1575         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
1576         * function.c (STACK_DYNAMIC_OFFSET): Likewise.
1577         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
1578         * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
1579         config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
1580         config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
1581         config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
1582         Set to 1.
1583
1584 2007-03-22  Joseph Myers  <joseph@codesourcery.com>
1585
1586         * c-incpath.c (add_sysroot_to_chain): New.
1587         (merge_include_chains): Add sysroot argument.  Call
1588         add_sysroot_to_chain if sysrooted.
1589         (register_include_chains): Update call to merge_include_chains.
1590         * doc/cppopts.texi: Document use of '=' in include directory
1591         arguments.
1592
1593 2007-03-22  Uros Bizjak  <ubizjak@gmail.com>
1594
1595         * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
1596         Macroize expander using SSEMODEF mode macro.  Use SSE_FLOAT_MODE_P.
1597         (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
1598         insn pattern using X87MODEF12 mode macro.
1599
1600 2007-03-21  Seongbae Park <seongbae.park@gmail.com>
1601
1602         * regmove.c (regmove_optimize): Use reg_mentioned_p
1603         instead of reg_overlap_mentioned_p for DST.
1604
1605 2007-03-21  Mike Stump  <mrs@apple.com>
1606
1607         * c.opt: Fixup for Objective-C/C++.
1608
1609 2007-03-21  Steve Ellcey  <sje@cup.hp.com>
1610
1611         * explow.c (convert_memory_address): Fold memory reference when
1612         POINTERS_EXTEND_UNSIGNED < 0
1613
1614 2007-03-21  Richard Henderson  <rth@redhat.com>
1615
1616         PR target/31245
1617         * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
1618         * config/i386/mmintrin.h (__m64): Likewise.
1619         * config/i386/xmmintrin.h (__m128): Likewise.
1620
1621 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
1622
1623         * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
1624         (VXWORKS_OS_CPP_BUILTINS): Define.
1625         * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
1626         (TARGET_OS_CPP_BUILTINS): ...here.  Use VXWORKS_OS_CPP_BUILTINS.
1627
1628 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
1629
1630         * rtl.h (constant_pool_reference_p): Delete.
1631         (find_constant_src): Declare.
1632         * rtlanal.c (find_constant_src): New function.
1633         * simplify-rtx.c (constant_pool_reference_p): Delete.
1634         * config/i386/i386.md: Use find_constant_src instead of
1635         constant_pool_reference_p/avoid_constant_pool_reference pairs.
1636
1637 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
1638
1639         * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
1640         * c-cppbuiltin.c (c_cpp_builtins): Define them.
1641
1642 2007-03-20  Mark Mitchell  <mark@codesourcery.com>
1643
1644         * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
1645         * config/arm/arm.c (arm_elf_asm_cdtor): New function.
1646         (arm_elf_asm_constructor): Use it.
1647         (arm_elf_asm_destructor): New function.
1648
1649 2007-03-20  Bernd Schmidt  <bernd.schmidt@analog.com>
1650
1651         * jump.c (mark_jump_label): Treat SEQUENCE specially.
1652
1653 2007-03-20  Nathan Sidwell  <nathan@codesourcery.com>
1654
1655         * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
1656
1657 2007-03-19  Andrew Haley  <aph@redhat.com>
1658
1659         PR tree-optimization/31264
1660         * tree-vrp.c (register_edge_assert_for_1): Don't look though
1661         VIEW_CONVERT_EXPRs.
1662
1663 2007-03-19  Paolo Bonzini  <bonzini@gnu.org>
1664
1665         PR rtl-optimization/30907
1666         * fwprop.c (forward_propagate_into): Never propagate inside a loop.
1667         (fwprop_init): Always call loop_optimizer_initialize.
1668         (fwprop_done): Always call loop_optimizer_finalize.
1669         (fwprop): We always have loop info now.
1670         (gate_fwprop_addr): Remove.
1671         (pass_fwprop_addr): Use gate_fwprop as gate.
1672
1673         PR rtl-optimization/30841
1674         * df-problems.c (df_ru_local_compute, df_rd_local_compute,
1675         df_chain_alloc): Call df_reorganize_refs unconditionally.
1676         * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
1677         refs_organized to refs_organized_size.
1678         (df_ref_create_structure): Use refs_organized_size instead of
1679         bitmap_size if refs had been organized, and keep refs_organized_size
1680         up-to-date.
1681         * df.h (struct df_ref_info): Change refs_organized to
1682         refs_organized_size.
1683         (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
1684         bitmap_size.
1685
1686 2007-03-19  Mark Mitchell  <mark@codesourcery.com>
1687
1688         * except.c (output_function_exception_table): Do not reference the
1689         EH personality routine for functions that do not require an
1690         exception table.
1691
1692 2007-03-20  Jakub Jelinek  <jakub@redhat.com>
1693
1694         PR c/30762
1695         * c-typeck.c (convert_for_assignment): Call comptypes for
1696         RECORD_TYPE or UNION_TYPE.
1697
1698         PR inline-asm/30505
1699         * reload1.c (reload): Do invalid ASM checking after
1700         cleanup_subreg_operands.
1701
1702 2007-03-19  Jeff Law  <law@redhat.com>
1703
1704         * tree-cfg.c (find_taken_edge): Tighten conditions for
1705         optimizing computed gotos.
1706
1707 2007-03-19  Michael Matz  <matz@suse.de>
1708
1709         * builtins.c (expand_builtin_sync_operation,
1710         expand_builtin_compare_and_swap,
1711         expand_builtin_lock_test_and_set): Care for extending CONST_INTs
1712         correctly.
1713
1714         * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
1715         sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
1716         for operand 3.
1717
1718 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1719
1720         * doc/tm.texi: Add brackets around the return type of
1721         TARGET_SECONDARY_RELOAD.
1722
1723 2007-03-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1724         Richard Guenther  <rguenther@suse.de>
1725
1726         PR tree-optimization/31254
1727         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
1728         Use handled_component_p () where appropriate.  Continue
1729         propagating into the rhs if we propagated into an INDIRECT_REF
1730         on the lhs.
1731
1732 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1733
1734         * config/s390/s390.md (op_type attribute): RRR instruction type added.
1735         (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
1736         (xde, xdee): Mode attributes adjusted to support DFP modes.
1737         (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
1738         ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
1739         DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
1740         "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
1741         "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
1742         "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
1743         "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
1744         numbers.
1745         ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
1746         "movsf"): Insn definitions removed.
1747         ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
1748         "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
1749         "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
1750         definitions added.
1751         ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
1752         "reload_in<mode>", "reload_out<mode>"): Expander added.
1753         ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
1754         Expander removed.
1755
1756 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1757
1758         * config/s390/s390.md: Only non-functional changes.  Renamed
1759         FPR mode macro to BFP all over the file.
1760
1761 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1762
1763         * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
1764         (op_type attribute): RRF instruction type added.
1765         (fT0): New mode attribute.
1766         ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
1767         "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
1768         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new instruction
1769         no secondary memory is needed when moving DFmode values between GPRs
1770         and FPRs.
1771
1772 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1773
1774         * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
1775         inverted and documentation adjusted.
1776         ("mhard-dfp", "msoft-dfp"): New options.
1777         * config/s390/s390.c (s390_handle_arch_option): New architecture
1778         switch: z9-ec.
1779         (override_options): Sanity checks for the new options added.
1780         * config.gcc: New architecture switch: z9-ec.
1781         * config/s390/s390.h (processor_flags): PF_DFP added.
1782         (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
1783         (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
1784         when the bit is NOT set so remove it from the defaults.
1785
1786 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1787
1788         * genemit.c (main): Print include statement for dfp.h.
1789         * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
1790         is not available.
1791
1792 2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
1793
1794         * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
1795
1796 2007-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
1797
1798         PR target/31022
1799         * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
1800         instead of PATTERN.
1801
1802 2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1803
1804         * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
1805         attr_length_call, output_call, output_indirect_call): Cleanup
1806         formatting of targetm calls.
1807
1808 2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
1809
1810         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
1811
1812 2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1813
1814         * pa.md: Add fpstore_load and store_fpload instruction types.  Provide
1815         reservation, bypass and anti-bypass descriptions for these instructions.
1816         Update move patterns.
1817         * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
1818         TYPE_FPSTORE.
1819
1820 2007-03-18  Dorit Nuzman  <dorit@il.ibm.com>
1821
1822         * tree-vect-transform.c (get_initial_def_for_induction): Replace
1823         GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
1824         (get_initial_def_for_reduction): Likewise.
1825
1826 2007-03-16  Daniel Berlin  <dberlin@dberlin.org>
1827
1828         Fix PR tree-optimization/29922
1829         * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
1830         (get_representative): Removed.
1831         (value_dies_in_block_x): Update for rvuse removal.
1832         (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
1833         (compute_antic_aux): Handle when PHI nodes appear in
1834         non-single-successors.
1835         (dump_bitmap_of_names): Removed.
1836         (compute_antic_safe): Renamed and removed rvuse calculation.
1837         Calculate only antic safe.
1838         (insert_into_preds_of_block): Remove assert.
1839         (execute_pre): Update for renamed functions.
1840         (defer_or_phi_translate_block): New function.
1841
1842 2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
1843
1844         * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
1845         config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
1846         typos.
1847         * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
1848         Follow spelling conventions.
1849
1850         * tree-data-ref.h: Remove the prototype for analyze_array.
1851
1852 2007-03-17  Dorit Nuzman  <dorit@il.ibm.com>
1853
1854         PR tree-optimization/31041
1855         * tree-vect-transform.c (get_initial_def_for_induction): Call
1856         force_gimple_operand.
1857
1858 2007-03-17  Olga Golovanevsky  <olga@il.ibm.com>
1859
1860         * ipa-type-escape.c (look_for_casts) : Revert code to use
1861         handled_component_p due to ada test a-numaux.adb.
1862
1863 2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
1864
1865         * final.c (final_scan_insn): Alter the condition of a
1866         conditional trap if we have nonstandard CC.
1867
1868 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
1869
1870         * configure.ac: Remove excess quoting from asm line 0 test.
1871         * configure: Rebuilt.
1872
1873 2007-03-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1874
1875         * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
1876         * c-common.c (convert_and_check): Move warning logic to...
1877         (warnings_for_convert_and_check): ...here. Define.
1878         * c-common.h (warnings_for_convert_and_check): Declare.
1879
1880 2007-03-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1881
1882         * pa.c (attr_length_call): Partially revert change of 2007-03-09.
1883         (output_call): Likewise.
1884
1885 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
1886
1887         * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
1888
1889 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
1890
1891         * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
1892
1893 2007-03-16  Uros Bizjak  <ubizjak@gmail.com>
1894
1895         * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
1896         opteron, athlon-64 and athlon-fx processor_alias_table entries.
1897
1898 2007-03-16  Sebastian Pop  <sebastian.pop@inria.fr>
1899
1900         PR tree-optimization/31183
1901         * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
1902         Use double_int instead of unsigned int for representing access_strides.
1903         * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
1904
1905 2007-03-16  Richard Guenther  <rguenther@suse.de>
1906
1907         PR tree-optimization/31146
1908         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
1909         to allow recursion of forward_propagate_addr_expr.
1910         (forward_propagate_addr_into_variable_array_index): Likewise.
1911         (forward_propagate_addr_expr): Likewise.
1912         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1913         (forward_propagate_addr_expr_1): Recurse on simple copies
1914         instead of propagating into them.  Do so for useless conversions
1915         as well.
1916         (forward_propagate_addr_expr): Clean up unused statements after
1917         recursion.
1918
1919 2007-03-16  Richard Guenther  <rguenther@suse.de>
1920
1921         * builtins.c (expand_builtin_cexpi): Use the right argument
1922         for the expansion via cexp.
1923
1924 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
1925
1926         * configure.ac: Don't require ELF binutils to tolerate # 0 "".
1927         * configure: Rebuilt.
1928
1929 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
1930
1931         PR debug/29906
1932         * dwarf2out.c (force_type_die): Adjust comment.
1933         (dwarf2out_imported_module_or_decl): Handle base AT_import types.
1934
1935 2007-03-15  DJ Delorie  <dj@redhat.com>
1936
1937         * config/frv/predicates.md (minmax_operator): Don't check operands
1938         here.
1939
1940 2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>
1941
1942         * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
1943         Update constant estimates of number of iterations.
1944         (record_nonwrapping_iv): Add "upper" argument.  "data_size_bounds_p"
1945         argument renamed to "realistic".
1946         (compute_estimated_nb_iterations): Removed.
1947         (record_niter_bound): New function.
1948         (idx_infer_loop_bounds): For possible but unlikely tail arrays,
1949         call record_nonwrapping_iv with upper = false.
1950         (infer_loop_bounds_from_signedness): Pass upper argument to
1951         record_nonwrapping_iv.
1952         (estimate_numbers_of_iterations_loop): Do not call
1953         compute_estimated_nb_iterations.  Record estimate based on profile
1954         information.  Initialize the constant estimates of number of
1955         iterations.
1956         * tree-data-ref.c (estimated_loop_iterations): Return the recorded
1957         estimates.
1958         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
1959         number of iterations is too small.
1960         * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
1961         (EST_NOT_AVAILABLE): Removed.
1962         (struct loop): Replace estimated_nb_iterations by any_upper_bound,
1963         nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
1964         fields.
1965
1966 2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>
1967
1968         * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
1969         Handle NE_EXPR guards.
1970
1971 2007-03-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1972
1973         PR c++/24924
1974         * c-opts.c (c_common_post_options): Handle C++ post-processing here.
1975         Set also -pedantic-errors by default for the  preprocessor unless
1976         -fpermissive is given.
1977
1978 2007-03-15  Richard Guenther  <rguenther@suse.de>
1979
1980         PR middle-end/29719
1981         PR middle-end/31161
1982         * builtins.c (expand_builtin_cexpi): As a fallback if we
1983         don't have builtins for sincos or cexp create a function
1984         declaration for cexp and expand to a call to that.
1985         (expand_builtin_int_roundingfn): Always fall
1986         back to floor/ceil and its variants even if they may be
1987         not available.
1988
1989 2007-03-15  Steven Bosscher  <steven@gcc.gnu.org>
1990
1991         PR middle-end/31159
1992         * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
1993         jump tables, move the call to delete_dead_jumptables from here...
1994         (cfg_layout_finalize): ...to here.  But rebuild jump labels first.
1995         * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
1996         don't allow merging of blocks that try_redirect_by_replacing_jump
1997         also does not handle when not optimizing.
1998
1999 2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
2000             Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2001
2002         * config/i386/i386.md (x86_sahf_1): Correctly handle
2003         HAVE_AS_IX86_SAHF.
2004
2005 2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
2006
2007         PR target/31167
2008         * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
2009         x86_64_general_operand as operand[2] predicate.  Remove "iF"
2010         from operand constraints and use "e" constraint instead.
2011         (*subti3_1, *subti3_1 splitter): Ditto.
2012         (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
2013         operand[1] predicate.
2014
2015 2007-03-14  Sebastian Pop  <sebastian.pop@inria.fr>
2016
2017         * tree-loop-linear.c (gather_interchange_stats): For multidimensional
2018         arrays, multiply the access strides by the size of the sub-array.
2019         * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
2020
2021 2007-03-14  Uros Bizjak  <ubizjak@gmail.com>
2022
2023         * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
2024         the configured assembler supports the sahf mnemonic.
2025         * configure: Regenerate.
2026         * config.in: Regenerate.
2027
2028         * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
2029         emit "sahf" or ".byte\t0x9e" as asm template.
2030
2031 2007-03-14  Michael Meissner  <michael.meissner@amd.com>
2032
2033         PR 31018
2034         * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
2035         option to replace hard coded TARGET_xxx in md file.
2036         (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
2037         (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
2038         (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
2039         (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
2040         (X86_TUNE_NOT_UNPAIRABLE): Ditto.
2041         (X86_TUNE_NOT_VECTORMODE): Ditto.
2042         (TUNE_SHORTEN_X87_SSE): Use new tuning option.
2043         (TUNE_AVOID_VECTOR_DECODE): Ditto.
2044         (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
2045         (TUNE_SLOW_IMUL_IMM8): Ditto.
2046         (TUNE_MOVE_M1_VIA_OR): Ditto.
2047         (TUNE_NOT_UNPAIRABLE): Ditto.
2048         (TUNE_NOT_VECTORMODE): Ditto.
2049
2050         * config/i386/i386.c (ix86_tune_features): Fill in new tuning
2051         options.
2052
2053         * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
2054         tuning options instead of hard coded TARGET_xxx.
2055         (fix ssemode peephole2's): Ditto.
2056         (imul peephole2's): Ditto.
2057         (movsi_or): Ditto.
2058         (movdi_or_rex64): Ditto.
2059         (move peephole2): Ditto.
2060         (not peephole2's): Ditto.
2061
2062 2007-03-14  Dirk Mueller  <dmueller@suse.de>
2063
2064         * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
2065         * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
2066         * c-parser.c (c_parser_if_body): Always add an empty statement in case
2067         of empty body.
2068         * c-parser.c (c_parser_do_statement): Warn about empty body in
2069         do/while statement.
2070         * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
2071         * doc/invoke.texi (-Wempty-body): Update documentation.
2072
2073 2007-03-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2074
2075         PR c/21438
2076         * c-common.h (warn_for_div_by_zero): Declare.
2077         * c-common.c (warn_for_div_by_zero): Define.
2078         * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
2079         warning.
2080
2081 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
2082
2083         * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
2084         to PREFIX and STANDARD_PREFIX.
2085
2086 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
2087             Phil Edwards  <phil@codesourcery.com>
2088
2089         * gthr-vxworks.h: Add an extern "C" wrapper for C++.
2090         (__gthread_once_t): Remove busy field for RTPs.
2091         (__GTHREAD_ONCE_INIT): Update accordingly.
2092
2093 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
2094
2095         * doc/invoke.texi: Document VxWorks options.
2096
2097 2007-03-14  Uros Bizjak  <ubizjak@gmail.com>
2098
2099         * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
2100
2101 2007-03-13  Seongbae Park <seongbae.park@gmail.com>
2102
2103         PR tree-optimization/30590
2104         * tree-nrv.c (tree_nrv): Check for the partial update of the
2105         return value.
2106
2107 2007-03-13  Alexandre Oliva  <aoliva@redhat.com>
2108
2109         * flags.h (flag_random_seed): Remove declaration, in favor of...
2110         * toplev.h (get_random_seed, set_random_seed): ... these.
2111         * tree.c (get_file_function_name): Use the former.
2112         * opts.c (common_handle_option): Use the latter.
2113         * toplev.c
2114
2115 2007-03-13  Steven Bosscher  <steven@gcc.gnu.org>
2116
2117         PR middle-end/31127
2118         * cse.c (cse_find_path): Do not bail out if a basic block that
2119         we already visited now becomes part of a path that starts at a
2120         different basic block.  Just disallow this, to make sure we
2121         visit each basic block at most once.
2122
2123 2007-03-13  Jan Hubicka  <jh@suse.cz>
2124
2125         * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold attributes,
2126         when profile esitmate is present, calls with very low frequency are
2127         cold.
2128
2129 2007-03-13  Zdenek Dvorak  <dvorakz@suse.cz>
2130
2131         PR tree-optimization/30730
2132         PR tree-optimization/26900
2133         * tree-ssa-loop-niter.c: Include gmp.h.
2134         (bounds): New type.
2135         (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
2136         split_to_var_and_offset, determine_value_range,
2137         bound_difference_of_offsetted_base, refine_bounds_using_guard,
2138         bound_difference, bounds_add, bounds_negate,
2139         number_of_iterations_ne_max, dump_affine_iv): New functions.
2140         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
2141         assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
2142         difference of initial and final value of control iv to validate
2143         results.
2144         (number_of_iterations_cond): Add loop parameter.  Determine bounds
2145         on the difference of the extremes of the control iv.  Add dumps.
2146         (expand_simple_operations): Handle phi nodes.
2147         (simplify_using_initial_conditions): Do not record used conditions.
2148         (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
2149         Do not set additional_info.
2150         (implies_nonnegative_p, implies_ge_p): Removed.
2151         (derive_constant_upper_bound): Do not use parameter `additional'.
2152         (record_estimate): Parameter `additional' removed.  Parameter
2153         `i_bound' added.  Do not call derive_constant_upper_bound.
2154         (record_nonwrapping_iv): Use derive_constant_upper_bound to
2155         bound the number of iterations estimate.
2156         (estimate_numbers_of_iterations_loop): Pass the estimate from
2157         the number of iterations analysis to record_estimate.
2158         * tree.h (multiple_of_p): Declare.
2159         * tree-scalar-evolution.c (expression_expensive_p): Removed.
2160         (scev_const_prop): Do not check expression_expensive_p.
2161         * fold-const.c (multiple_of_p): Exported.
2162         * double-int.c (double_int_mask): Exported.
2163         * double-int.h (double_int_mask): Declare.
2164         * tree-flow.h (struct tree_niter_desc): Removed additional_info
2165         field.  Added max field.
2166
2167 2007-03-13  David Taylor  <taylor@candd.org>
2168
2169         PR driver/12448:
2170         * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
2171         default -MQ.
2172
2173 2007-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2174
2175         PR target/31123
2176         * pa.md (vdepi_ior): Don't allow zero length deposit.  Likewise for
2177         two unamed patterns.
2178
2179 2007-03-13  Uros Bizjak  <ubizjak@gmail.com>
2180
2181         * config/i386/i386.opt (mcx16, msahf): New options.
2182         * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
2183         (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
2184
2185         * config/i386/driver-i386.c (bit_LAHF_LM): New define.
2186         (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
2187         Output -mcx16 and -msahf options when corresponding bit is set.
2188
2189         * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
2190         and -msahf options.
2191
2192 2007-03-13  Alexandre Oliva  <aoliva@redhat.com>
2193
2194         * configure.ac: Test for assembler tolerance to # 0 "".
2195         * configure, config.in: Rebuilt.
2196         * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
2197
2198 2007-03-13  Geoffrey Keating  <geoffk@apple.com>
2199
2200         * doc/invoke.texi (Spec Files): Update for '%{,' spec.
2201
2202         * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
2203         (handle_syscall): Handle direct system calls.
2204         * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
2205
2206 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
2207
2208         * doc/invoke.texi: Fix cpp.info cross-reference.
2209         * doc/passes.texi: Fix gcc.info cross-reference.
2210
2211 2007-03-12  Zdenek Dvorak  <dvorakz@suse.cz>
2212
2213         PR tree-optimization/30835
2214         * lambda-code.c (can_convert_to_perfect_nest): Check whether
2215         bb_for_stmt is not NULL before accessing it.
2216
2217 2007-03-12  Joseph Myers  <joseph@codesourcery.com>
2218
2219         * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
2220         some multilibs.
2221
2222 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
2223
2224         PR 30635
2225         * doc/install.texi: Document --enable-stage1-languages
2226
2227 2007-03-12  Steven Bosscher  <steven@gcc.gnu.org>
2228
2229         * tree-pass.h (pass_into_cfg_layout_mode,
2230         pass_outof_cfg_layout_mode): Declare.
2231         * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
2232         pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
2233         * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
2234         (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
2235
2236 2007-03-12  Seongbae Park <seongbae.park@gmail.com>
2237
2238         * c-decl.c (warn_variable_length_array): New function.
2239         Refactored from grokdeclarator to handle warn_vla
2240         and handle unnamed array case.
2241         (grokdeclarator): Refactored VLA warning case.
2242         * c.opt (Wvla): New flag.
2243         * doc/invoke.texi (Wvla): New warning.
2244
2245 2007-03-12  Richard Henderson  <rth@redhat.com>
2246
2247         * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
2248         (TARGET_SECTION_TYPE_FLAGS): New.
2249
2250 2007-03-12  Richard Henderson  <rth@redhat.com>
2251
2252         * config/darwin.c (machopic_reloc_rw_mask): New.
2253         * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
2254         * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
2255
2256 2007-03-12  Mark Mitchell  <mark@codesourcery.com>
2257
2258         * cppdefault.c (cpp_EXEC_PREFIX): New variable.
2259         * cppdefault.h (cpp_PREFIX): Document.
2260         (cpp_PREFIX_len): Likewise.
2261         (cpp_EXEC_PREFIX): New variable.
2262         * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
2263         * c-incpath.c (add_standard_paths): Correct logic for relocating
2264         paths within prefix.
2265
2266 2007-03-12  Uros Bizjak  <ubizjak@gmail.com>
2267
2268         * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
2269         fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
2270         mode macro.
2271         (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
2272         fix_truncdfdi_sse using SSEMODEF mode macro.
2273         (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
2274         fix_truncdfsi_sse using SSEMODEF mode macro.
2275         (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
2276         (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
2277
2278 2007-03-12  Richard Sandiford  <richard@codesourcery.com>
2279
2280         * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
2281         elfos.h to tm_file.
2282
2283 2007-03-12  Olga Golovanevsky  <olga@il.ibm.com>
2284
2285         * tree.h : Add multiple_of_p declaration.
2286         * fold-const.c (multiple_of_p): Make multiple_of_p public.
2287         * ipa-type-escape.c (results_of_malloc): Redundant.
2288         (visited_stmts): New. Visited stmt for walk_use_def_chains.
2289         (cast_type): Extended with new members.
2290         (check_cast): Returns cast_type.
2291         (cast): New structure for data of walk_use_def_chains.
2292         (is_malloc_result, is_cast_from_non_pointer_1,
2293         is_cast_from_non_pointer,
2294         is_array_access_through_pointer_and_index): New functions.
2295         (look_for_casts): Returns cast types.
2296         (check_call): Returns void.
2297         (okay_pointer_operation): Use support of pointer plus index,
2298         pointer plus constant and allow all multiplications.
2299
2300 2007-03-11  Richard Guenther  <rguenther@suse.de>
2301
2302         PR tree-optimization/31115
2303         * tree-vrp.c (extract_range_from_binary_expr): Make sure
2304         the shift count is positive and non-anti-range for RSHIFT_EXPR.
2305         A shift count of zero is not special as with *_DIV_EXPR.
2306         (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
2307         direction.
2308
2309 2007-03-11  Ian Lance Taylor  <iant@google.com>
2310
2311         * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
2312         the *_DIV_EXPR codes correctly with overflow infinities.
2313
2314 2007-03-11  Ira Rosen  <irar@il.ibm.com>
2315
2316         * tree-data-ref.c (analyze_offset): Add a return value (bool) to
2317         indicate success/failure of the analysis. Add negation to subtrahend
2318         in case of subtraction. Fail if both operands contain constants.
2319         (create_data_ref): Fail if analyze_offset fails.
2320
2321 2007-03-11  Uros Bizjak  <ubizjak@gmail.com>
2322
2323         * config/i386/i386.md (frndintxf2): Rename to ...
2324         (rintxf2): ... this. Remove expander having same name.
2325         (rintsf2, rintdf2): Implement using SSEMODEF macro.
2326         (roundsf2, rounddf2): Ditto.
2327         (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
2328         (lround<mode>di2, lround<mode>si2): Ditto.
2329
2330 2007-03-11  Steven Bosscher  <steven@gcc.gnu.org>
2331
2332         * lower-subreg.c: Include except.h.
2333         (decompose_multiword_subregs): Verify that the only control flow
2334         insns we can split are loads to multi-words pseudos.
2335         Handle breaking such blocks after splitting, instead of calling
2336         find_many_sub_basic_blocks.
2337
2338         * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
2339         on the new basic block.  Add a lengthy comment explaining why we
2340         thought this was necessary.
2341         * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
2342
2343 2007-03-10  Mark Mitchell  <mark@codesourcery.com>
2344
2345         PR c++/30924
2346         * tree.c (walk_type_fields): Recurse into the element type of
2347         ARRAY_TYPEs if there is a pointer set.
2348
2349 2007-03-10  Dirk Mueller  <dmueller@suse.de>
2350
2351         * c-common.c (warn_logical_operator): Fix condition.
2352
2353 2007-03-10  Tobias Schl├╝ter  <tobi@gcc.gnu.org>
2354
2355         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
2356         quotation mark.
2357         * config/darwin.c (machopic_select_section): Remove superfluous
2358         argument in call to categorize_decl_for_section.  Remove unused
2359         variable shlib.
2360
2361 2007-03-10  Joseph Myers  <joseph@codesourcery.com>
2362
2363         * configure.ac (glibc_header_dir): Set using with_build_sysroot if
2364         defined.
2365         * configure: Regenerate.
2366
2367 2007-03-10  Uros Bizjak  <ubizjak@gmail.com>
2368
2369         PR target/31101
2370         * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
2371         (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
2372         (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
2373         Add LABEL_NUSES to emitted label.
2374         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
2375         branch probability value to emitted jump insn.
2376         * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
2377         Do not check life information and do not re-arrange input operands
2378         for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
2379
2380 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2381
2382         * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
2383         the change of decode_asm_operands.
2384
2385 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2386
2387         * mode-switching.c (create_pre_exit): Skip blockage insn.
2388
2389 2007-03-09  Diego Novillo  <dnovillo@redhat.com>
2390
2391         * tree-pass.h (TODO_update_smt_usage): Remove.
2392         Update all users.
2393         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
2394         argument SOME.
2395         Update all users.
2396
2397 2007-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2398
2399         * pa.c (attr_length_call): Revise condition for long pc-relative branch.
2400         (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local
2401         calls on the SOM target.  Don't use "LONG_PIC_PCREL" call sequence on
2402         SOM target.
2403
2404 2007-03-09  Geoffrey Keating  <geoffk@apple.com>
2405
2406         * gcc.c: Document %{, in big comment at top.
2407         (input_suffix_matches): Remove special handling for .s and
2408         .S.
2409         (input_spec_matches): New.
2410         (handle_braces): Handle %{,.
2411         (validate_switches): ',' indicates a value which is not a switch.
2412         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
2413         to detect assembler input.
2414         * config/i386/sol2.h (CPP_SPEC): Likewise.
2415         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
2416         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
2417         * config/rs6000/lynx.h (ASM_SPEC): Likewise.
2418         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
2419         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
2420         -m64 causes deployment target to default to 10.5.
2421         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
2422
2423 2007-03-09  Richard Henderson  <rth@redhat.com>
2424
2425         PR target/26090
2426         * target.h (targetm.asm.out.reloc_rw_mask): New.
2427         * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
2428         (TARGET_ASM_OUT): Use it.
2429         * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
2430         * varasm.c (categorize_decl_for_section): Remove shlib argument;
2431         use the new reloc_rw_mask target hook instead.
2432         (default_section_type_flags_1): Merge into...
2433         (default_section_type_flags): ... here.
2434         (decl_readonly_section_1): Merge into...
2435         (decl_readonly_section): ... here.
2436         (default_elf_select_section_1): Merge into...
2437         (default_elf_select_section): ... here.
2438         (default_unique_section_1): Merge into...
2439         (default_unique_section): ... here.
2440         (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
2441         (default_select_rtx_section): Use it.
2442         (default_elf_select_rtx_section): Likewise.
2443         * output.h: Update to match.
2444         * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
2445         * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
2446         (TARGET_ASM_RELOC_RW_MASK): New.
2447         * config/i386/i386.c (x86_64_elf_select_section): Adjust call
2448         to categorize_decl_for_section.
2449         (x86_64_elf_unique_section): Likewise.
2450         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
2451         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
2452         (TARGET_ASM_RELOC_RW_MASK): New.
2453         * config/ia64/ia64.c (ia64_rwreloc_select_section,
2454         ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
2455         (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
2456         (TARGET_RWRELOC): Remove.
2457         (ia64_section_type_flags): Adjust call to default_section_type_flags.
2458         * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
2459         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
2460         (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
2461         (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
2462         (rs6000_xcoff_select_section): Use decl_readonly_section.
2463         (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
2464         * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
2465         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
2466         (TARGET_SECTION_TYPE_FLAGS): Remove.
2467         * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
2468
2469 2007-03-09  Roger Sayle  <roger@eyesopen.com>
2470
2471         * fold-const.c (fold_comparison): Remove compile-time evaluation of
2472         complex constant equality/inequality comparisons for here.
2473         (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
2474         known at compile-time or can be simplified to a scalar comparison.
2475         (fold_relational_const): Move compile-time evaluation of complex
2476         constant equality/inequality comparisons to here.
2477
2478 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
2479
2480         PR rtl-optimization/30643
2481         * cse.c (cse_insn): Recompute dest_hash after insert_regs for
2482         dest_addr_elt.
2483         (fold_rtx): Recurse, like before 2006-11-03.
2484
2485 2007-03-09  DJ Delorie  <dj@redhat.com>
2486
2487         * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
2488         m32c-pragma.o.
2489
2490 2007-03-09  Aldy Hernandez  <aldyh@redhat.com>
2491
2492         PR tree-optimization/30375
2493         * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
2494         LHS of statements is not the same.
2495         * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
2496
2497 2007-03-09  Chao-ying Fu  <fu@mips.com>
2498
2499         * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
2500         REV 2.
2501         * doc/invoke.texi (-mdspr2): Document new option.
2502         * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
2503         New unspec for DSP REV 2.
2504         (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
2505         these instructions are extended in DSP REV 2.
2506         (mips-dspr2.md): Include.
2507         * config/mips/mips.opt (mdspr2): New option.
2508         * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
2509         MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
2510         MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
2511         (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
2512         (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
2513         (dsp_bdesc): Add DSP REV 2 builtins.  Remove 32-bit only DSP builtins.
2514         (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
2515         and 2 builtins.
2516         (bdesc_map): Add one field of unsupported_target_flags.
2517         (bdesc_arrays):  Update entries to have extra fields.  Add
2518         dsp_32only_bdesc.
2519         (mips_init_builtins): Initialize new function types.
2520         Check unsupported_target_fileds to filter out builtins.
2521         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
2522         TARGET_DSPR2.
2523         (ASM_SPEC): Pass mdspr2 to the assembler.
2524         * config/mips/mips-dspr2.md: New file.
2525
2526 2007-03-09  Sa Liu  <saliu@de.ibm.com>
2527
2528         * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
2529
2530 2007-03-09  Ian Lance Taylor  <iant@google.com>
2531
2532         * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
2533         argument) like -Wstrict-overflow=2.
2534         * doc/invoke.texi (Warning Options): Update documentation.
2535
2536 2007-03-09  Dirk Mueller  <dmueller@suse.de>
2537
2538         PR c++/17946
2539         * doc/invoke.texi (-Wlogical-op): Document.
2540         * common.opt (-Wlogical-op): New.
2541         * c-common.h (warn_logical_operator): Declare.
2542         * c-common.c (warn_logical_operator): Define.
2543         * c-typeck.c (parser_build_binary_op): Call
2544         warn_logical_operator.
2545
2546 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
2547
2548         * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
2549         * final.c (final_scan_insn): Test for non-"" file name.
2550
2551 2007-03-09  Sebastian Pop  <sebastian.pop@inria.fr>
2552
2553         * doc/loop.texi: Document the Omega linear constraints solver.
2554         * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
2555         omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
2556         omega-hash-table-size, omega-max-keys, and
2557         omega-eliminate-redundant-constraints.
2558         * tree-pass.h (pass_check_data_deps): Declared.
2559         * omega.c: New.
2560         * omega.h: New.
2561         * timevar.def (TV_CHECK_DATA_DEPS): Declared.
2562         * tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
2563         pass_check_data_deps): New.
2564         * tree-data-ref.c (init_data_ref): Remove declaration.
2565         (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
2566         (analyze_array): Renamed init_array_ref, move up initializations.
2567         (init_data_ref): Renamed init_pointer_ref.  Moved before its call.
2568         Removed arguments that are set to NULL.
2569         (analyze_indirect_ref): Correct indentation, correct call to
2570         init_pointer_ref.
2571         (object_analysis): Call init_array_ref instead of analyze_array.
2572         (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
2573         (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
2574         of DR_ACCESS_FNS_ADDR.
2575         (init_omega_eq_with_af, omega_extract_distance_vectors,
2576         omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
2577         ddr_consistent_p): New.
2578         (compute_affine_dependence): Check consistency of ddrs when
2579         flag_check_data_deps is passed.
2580         (analyze_all_data_dependences): Uncomment.
2581         (tree_check_data_deps): New.
2582         * tree-data-ref.h: Include omega.h.
2583         (DR_ACCESS_FNS_ADDR): Removed.
2584         (data_dependence_relation): Add inner_loop.
2585         (DDR_INNER_LOOP): New.
2586         * common.opt (fcheck-data-deps): New.
2587         * tree-flow.h (tree_check_data_deps): Declare.
2588         * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
2589         (OBJS-common): Depend on omega.o.
2590         (omega.o): Define.
2591         * passes.c (pass_check_data_deps): Scheduled.
2592         * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
2593         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
2594         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
2595         PARAM_VECT_MAX_VERSION_CHECKS,
2596         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
2597
2598 2007-03-09  Richard Guenther  <rguenther@suse.de>
2599
2600         PR tree-optimization/30904
2601         PR middle-end/31058
2602         * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
2603         the same way as *_DIV_EXPR.
2604
2605 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
2606
2607         * recog.c (decode_asm_operands): No mixed declarations and code.
2608
2609 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
2610
2611         * rtl.def (ASM_INPUT): Add location.
2612         * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
2613         (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
2614         (decode_asm_operands): Add loc operand.
2615         (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
2616         * stmt.c (expand_asm): Rename to...
2617         (expand_asm_loc): ... this.  Add locus argument.  Pass it on to
2618         gen_rtx_ASM_INPUT_loc.
2619         (expand_asm_expr): Adjust.
2620         * recog.c (decode_asm_operands): Add loc operand.
2621         (check_asm_operands, extract_insn): Adjust.
2622         * reload1.c (maybe_fix_stack_asms): Likewise.
2623         * final.c (asm_insn_count): Likewise.
2624         (final_scan_insn): Output # line before and after asm.
2625
2626 2007-03-09  Daniel Berlin  <dberlin@dberlin.org>
2627
2628         * tree-ssa-structalias.c (variable_info): Remove
2629         finished_solution.
2630         (new_var_info): Ditto.
2631         (shared_bitmap_info_t): New structure.
2632         (shared_bitmap_table): New variable.
2633         (shared_bitmap_hash): New function.
2634         (shared_bitmap_eq): Ditto
2635         (shared_bitmap_lookup): Ditto.
2636         (shared_bitmap_add): Ditto.
2637         (merge_smts_into): Change to take bitmap directly.
2638         (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
2639         (init_alias_vars): Init shared bitmap hashtable.
2640         (delete_points_to_sets): Delete shared bitmap hashtable.
2641         * tree-ssa-operands.c (add_virtual_operand): Partially revert the
2642         is_aliased removal as a change that was still necessary was
2643         deleted.
2644
2645 2007-03-09  Uros Bizjak  <ubizjak@gmail.com>
2646
2647         * config/i386/i386.h (override_options): Conditionally disable
2648         x86_sahf for 64bit targets only.
2649
2650 2007-03-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2651
2652         PR C/31072
2653         * c-decl.c (merge_decls): Don't call make_var_volatile.
2654         * varasm.c (make_var_volatile): Remove.
2655         * output.h (make_var_volatile): Remove.
2656
2657 2007-03-08  Zdenek Dvorak  <dvorakz@suse.cz>
2658
2659         PR tree-optimization/31085
2660         * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
2661
2662 2007-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2663
2664         * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
2665         llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
2666         ATTR_CONST_NOTHROW_LIST.
2667
2668         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
2669         FIX_TRUNC_EXPR.
2670
2671 2007-03-08  Diego Novillo  <dnovillo@redhat.com>
2672
2673         * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
2674
2675 2007-03-08  Geoffrey Keating  <geoffk@apple.com>
2676
2677         PR 31013
2678         * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
2679         is declared.
2680         * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
2681         passed, use shared libgcc.
2682
2683 2007-03-08  Roger Sayle  <roger@eyesopen.com>
2684
2685         * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
2686         instead of calling build2 with a GIMPLE_MODIFY_STMT.
2687         (honor_protect_cleanup_actions, lower_try_finally_switch):
2688         Likewise.
2689         * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
2690         ifc_temp_var): Likewise.
2691         * tree-inline.c (setup_one_parameter): Likewise.
2692         * tree-mudflap.c (mf_decl_cache_locals,
2693         mf_build_check_statement_for): Likewise.
2694         * tree-nested.c (init_tmp_var, save_tmp_var,
2695         finalize_nesting_tree_1): Likewise.
2696         * tree-outof-ssa.c (insert_copy_on_edge,
2697         insert_backedge_copies): Likewise.
2698         * tree-profile.c (tree_gen_edge_profiler,
2699         tree_gen_ic_profiler): Likewise.
2700         * tree-scalar-evolution.c (scev_const_prop): Likewise.
2701         * tree-sra.c (sra_build_assignment): Likewise.
2702         * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
2703         * tree-ssa-math-opts.c (insert_reciprocals,
2704         execute_cse_sincos_1): Likewise.
2705         * tree-tailcall.c (adjust_accumulator_values,
2706         adjust_return_value): Likewise.
2707         * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
2708         * tree-vect-transform.c (vect_create_data_ref_ptr,
2709         bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
2710         vect_create_epilog_for_reduction, vectorizable_reduction,
2711         vectorizable_call, vectorizable_conversion,
2712         vectorizable_assignment, vectorizable_operation,
2713         vectorizable_type_demotion, vect_gen_widened_results_half,
2714         vect_permute_store_chain, vectorizable_store,
2715         vect_setup_realignment, vect_permute_load_chain,
2716         vectorizable_load, vectorizable_condition,
2717         vect_create_cond_for_align_checks): Likewise.
2718         * tree-vrp.c (build_assert_expr_for): Likewise.
2719
2720 2007-03-08  Ian Lance Taylor  <iant@google.com>
2721
2722         * tree-vrp.c: Include "intl.h".
2723         (usable_range_p): New static function.
2724         (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
2725         overflowed values, juts set *strict_overflow_p.
2726         (compare_values): Only return -2 if one of the operands is not a
2727         constant.
2728         (compare_ranges): Call usable_range_p.
2729         (compare_range_with_value): Likewise.
2730         (vrp_evaluate_conditional_warnv): Rename from
2731         vrp_evaluate_conditional.  Make static.  Change all callers.
2732         (vrp_evaluate_conditional): New function.
2733         (simplify_div_or_mod_using_ranges): Issue warning about reliance
2734         on signed overflow.
2735         (simplify_abs_using_ranges): Likewise.
2736         (simplify_stmt_for_jump_threading): Add within_stmt parameter.
2737         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
2738         within_stmt parameter.
2739         * tree-ssa-propagate.c (fold_predicate_in): Update call to
2740         vrp_evaluate_conditional.
2741         * tree-ssa-threadedge.c
2742         (record_temporary_equivalences_from_stmts_at_dest): Change
2743         simplify parameter to take a second tree parameter.
2744         (simplify_control_stmt_condition): Likewise.
2745         (thread_across_edge): Likewise.
2746         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
2747         (thread_across_edge): Likewise.
2748         * gcc/Makefile.in (tree-vrp.o): Depend upon intl.h.
2749
2750 2007-03-08  Uros Bizjak  <ubizjak@gmail.com>
2751
2752         * config/i386/i386.h (TARGET_SAHF): New define.
2753         * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
2754         Also enable for m_K8, m_AMDFAM10 and m_CORE2.
2755         (x86_sahf): New global variable.
2756         (override_options): Add PTA_NO_SAHF to pta_flags enum.  Recode
2757         pta_flags masks using shifts.  Add PTA_NO_SAHF to x86_64 and
2758         nocona processor flags.  Set x86_sahf when PTA_NO_SAHF is not set
2759         in processor flags.  Do not unconditionally disable TARGET_USE_SAHF
2760         for 64-bit.
2761         (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
2762         (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
2763         when expanding fcomi/sahf based tests.
2764         (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
2765         expanding sahf based alternative. Emit sahf based sequence when
2766         optimizing for code size.
2767         * config/i386/i386.md (x86_sahf_1): Do not disable for
2768         TARGET_64BIT, enable for TARGET_SAHF.
2769
2770 2007-03-08  Martin Michlmayr  <tbm@cyrius.com>
2771
2772         * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
2773         spurious whitespace from error message.
2774
2775 2007-03-08  Volker Reichelt  <reichelt@netcologne.de>
2776
2777         PR c++/30852
2778         * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
2779
2780 2007-03-08  Alexandre Oliva  <aoliva@redhat.com>
2781
2782         * c-decl.c (grokdeclarator): Disable warnings for anonymous
2783         bitfields.
2784         * tree-sra.c (instantiate_element): Propagate disabled warnings
2785         from the element itself to the created variable.
2786
2787 2007-03-07  Richard Henderson  <rth@redhat.com>
2788
2789         PR target/30848
2790         * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
2791         silently fix up the stack in the case of a missing register.
2792
2793 2007-03-07  Paul Brook  <paul@codesourcery.com>
2794
2795         * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
2796
2797 2007-03-07  Joseph Myers  <joseph@codesourcery.com>
2798
2799         * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
2800         New.
2801         (phase1_vrs): Use them.
2802         (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
2803         (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
2804         __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
2805         (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
2806         __gnu_Unwind_Restore_WMMXC if required.
2807         (_Unwind_VRS_Pop): Implement iWMMXt support.
2808         * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
2809         gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
2810         gnu_Unwind_Save_WMMXC): Define.
2811
2812 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
2813
2814         * config/vxworks.h (vxworks_override_options): Declare.
2815         (VXWORKS_OVERRIDE_OPTIONS): Use it.
2816         * config/vxworks.c: Include target.h and toplev.h.
2817         (vxworks_override_options): New function.
2818         * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
2819
2820 2007-03-07  Andreas Krebbel  <krebbel1@de.ibm.com>
2821
2822         * config/s390/s390.c (override_options): Don't emit an error when
2823         -mstack-size is used without providing -mstack-guard.
2824         (s390_emit_prologue): Choose stack_guard value automatically if not
2825         provided via command line.
2826         * doc/invoke.texi: Adjust description of -mstack-guard and -mstack-size.
2827
2828 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
2829
2830         * config/i386/i386.c (output_set_got): Add a GOT initialization
2831         sequence for VxWorks PIC.
2832         (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
2833         around labels as well as symbols.  Use gotoff_operand instead
2834         of local_symbolic_operand.
2835         (legitimize_pic_address): Use gotoff_operand instead of
2836         local_symbolic_operand.  Use @GOT accesses for labels as
2837         well as symbols.
2838         (ix86_output_addr_diff_elt): Use PC-relative rather than
2839         GP-relative offsets for VxWorks PIC.
2840         (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
2841         no_new_pseudos.  Check whether the returned register is op0.
2842         * config/i386/i386.md (tablejump): Use PC-relative rather than
2843         GP-relative offsets for VxWorks PIC.
2844         * config/i386/predicates.md (gotoff_operand): New predicate.
2845
2846 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
2847
2848         * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
2849         before defining.
2850         * config/vxworks-dummy.h: New file.
2851         * config/i386/i386.h: Include it.
2852
2853 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
2854
2855         * dwarf2out.c (is_inlined_entry_point): New
2856         (add_high_low_attributes): Emit DW_AT_entry_pc along with
2857         DW_AT_ranges if the first subblock is the entry point.
2858
2859 2007-03-06  David Daney  <ddaney@avtrex.com>
2860
2861         * doc/install.texi (mips-*-*): Change recommended binutils
2862         version.
2863
2864 2007-03-06  Anatoly Sokolov <aesok@post.ru>
2865
2866         * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
2867         ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
2868         devices.
2869         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2870         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2871
2872 2007-03-06  Jan Hubicka  <jh@suse.cz>
2873
2874         * errors.h (warning, error, fatal, internal_error): Mark as cold.
2875         * predict.c (maybe_hot_bb): Cold functions are never hot; hot functions
2876         are hot.
2877         (probably_cold_bb_p): Cold functions are cold.
2878         (probably_never_executed_bb_p): Cold functions are cold.
2879         (tree_bb_level_predictions): Predict calls to cold functions as not
2880         taken.
2881         (compute_function_frequency): Check hot/cold attributes.
2882         * function.h (function_frequency): Update comments.
2883         * predict.def (PRED_COLD_FUNCTION): Predict cold function.
2884         * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
2885         (c_common_att): Add cold and hot.
2886
2887         * doc/extend.texi (hot,cold attributes): Document.
2888
2889 2007-03-06  Andrew Haley  <aph@redhat.com>
2890
2891         * function.c (expand_function_end): Move blockage to just after we
2892         emit the label for the naked return from the function.
2893
2894 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
2895
2896         * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
2897         before redefining.
2898
2899 2007-03-06  Jan Hubicka  <jh@suse.cz>
2900
2901         * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
2902         loaded for constant large models.  Non-large 64bit PIC can do.
2903         * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
2904         * cmodel.h: Add LARGE PIC.
2905         * i386.md (UNSPEC_PLTOFF): New.
2906         (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other unspecs as
2907         needed.
2908         (*call_1_rex64): Disable for large models.
2909         (*call_1_rex64_large): New.
2910         (*call_value_1_rex64): Disable for large models.
2911         (*call_value_1_rex64_large): New.
2912         (set_rip_rex4): New.
2913         (set_got_offset_rex64): New.
2914         * predicates.md (constant_call_address_operand): For large model
2915         constant calls are not possible.
2916         * i386-protos.h (construct_plt_address): Declare.
2917         * i386.c (override_options): Accept large models.
2918         (ix86_expand_prologue): Expand large PIC GOT pointer load.
2919         (legitimate_constant_p): Add new UNSPECs.
2920         (legitimate_pic_operand_p): Likewise.
2921         (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
2922         (legitimize_pic_address): Do easy RIP relative way for TLS only for
2923         non-large model.
2924         (output_pic_addr_const): Add PLTOFF.
2925         (ix86_output_addr_diff_elt): Output 64bit tables when needed.
2926         (ix86_expand_move): Legitimize pic address when in PIC mode.
2927         (construct_plt_address): New function.
2928         (ix86_expand_call): Offload the address to register and use GOT pointer
2929         for large model.
2930         * invoke.texi (mcmodel=large): Update documentation.
2931
2932 2007-03-06  Richard Henderson  <rth@redhat.com>
2933
2934         * config/i386/i386.c (x86_use_leave, x86_push_memory,
2935         x86_zero_extend_with_and, x86_movx, x86_double_with_add,
2936         x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
2937         x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
2938         x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
2939         x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
2940         x86_split_long_moves, x86_promote_QImode, x86_fast_prefix,
2941         x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
2942         x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
2943         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
2944         x86_partial_reg_dependency, x86_memory_mismatch_stall,
2945         x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
2946         x86_sse_partial_reg_dependency, x86_sse_split_regs,
2947         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
2948         x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
2949         x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
2950         x86_schedule, x86_use_bt, x86_pad_returns,
2951         x86_use_xchgb): Merge into ...
2952         (ix86_tune_features): ... here.  New array.
2953         (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
2954         x86_bswap): Merge into ...
2955         (ix86_arch_features): ... here.  New array.
2956         (x86_3dnow_a): Remove.
2957         (x86_accumulate_outgoing_args): Make static.
2958         (x86_arch_always_fancy_math_387): Make static.
2959         (ix86_tune_mask, ix86_arch_mask): Move ...
2960         (override_options): ... to local variables here.  Apply the
2961         appropriate mask to each element of ix86_arch_features and
2962         ix86_tune_features.  Adjust TARGET_CMOVE and TARGET_USE_SAHF
2963         as were done in the old macros.
2964         (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
2965         * config/i386/i386.h (x86_use_leave, x86_push_memory,
2966         x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
2967         x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
2968         x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
2969         x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
2970         x86_read_modify_write, x86_read_modify, x86_split_long_moves,
2971         x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
2972         x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
2973         x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
2974         x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
2975         x86_partial_reg_dependency, x86_memory_mismatch_stall,
2976         x86_accumulate_outgoing_args, x86_prologue_using_move,
2977         x86_epilogue_using_move, x86_decompose_lea,
2978         x86_arch_always_fancy_math_387, x86_shift1,
2979         x86_sse_partial_reg_dependency, x86_sse_split_regs,
2980         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
2981         x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
2982         x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
2983         x86_use_incdec, x86_pad_returns, x86_bswap,
2984         x86_partial_flag_reg_stall): Remove.
2985         (enum ix86_tune_indices): New.
2986         (ix86_tune_features): New.
2987         (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
2988         TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
2989         TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
2990         TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
2991         TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
2992         TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
2993         TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
2994         TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
2995         TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
2996         TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
2997         TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
2998         TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
2999         TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
3000         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
3001         TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
3002         TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
3003         TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
3004         TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
3005         TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
3006         TARGET_EXT_80387_CONSTANTS): Use it.
3007         (enum ix86_arch_indices): New.
3008         (ix86_arch_features): New.
3009         (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
3010         TARGET_BSWAP): Use it.
3011         (ix86_tune_mask, ix86_arch_mask): Remove.
3012
3013 2007-03-06  Joseph Myers  <joseph@codesourcery.com>
3014
3015         PR bootstrap/31020
3016         * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
3017         Define using $${sysroot_headers_suffix}.
3018         * configure: Regenerate.
3019         * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
3020         multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
3021         defined.
3022         * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
3023         * gcc.c (print_sysroot_headers_suffix): New.
3024         (option_map): Include --print-sysroot-headers-suffix.
3025         (display_help): Mention -print-sysroot-headers-suffix.
3026         (process_command): Handle -print-sysroot-headers-suffix.
3027         (do_spec_1): Append multilib directory to include-fixed path if
3028         sysroot suffixes in use.
3029         (main): Handle -print-sysroot-headers-suffix.
3030         * Makefile.in (start.encap): Don't depend on xlimits.h
3031         (xlimits.h): Remove.
3032         (stmp-int-hdrs): Don't depend on xlimits.h.  Inline generation of
3033         limits.h for each multilib in fixinc_list.
3034         (fixinc_list, s-fixinc_list): New.
3035         (stmp-fixinc): Depend on fixinc_list.  If not copying headers,
3036         generate them for each multilib in fixinc_list.
3037         (stmp-fixproto): Use include-fixed.  Run fixproto for each
3038         multilib in fixinc_list.
3039         (mostlyclean): Don't remove xlimits.h.
3040         (clean): Remove include-fixed.
3041         (real-install-headers-tar, real-install-headers-cpio,
3042         real-install-headers-cp): Don't copy include, only include-fixed.
3043         (install-mkheaders): Depend on fixinc_list.  Don't depend on
3044         xlimits.h.  Save limits.h files for each multilib in fixinc_list.
3045         Always save mkinstalldirs.  Preserve ${sysroot_headers_suffix} in
3046         SYSTEM_HEADER_DIR setting in mkheaders.conf.
3047
3048 2007-03-06  Jan Hubicka  <jh@suse.cz>
3049
3050         * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
3051         NANs easilly.
3052
3053 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3054
3055         * configure.ac: Allow tm_file to contain build-directory files.
3056         * configure: Regenerate.
3057         * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
3058         * config/m68k/t-uclinux (sysroot-suffix.h): New target.
3059         * config/m68k/print-sysroot-suffix.sh: New file.
3060
3061 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3062
3063         * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
3064         of pic_offset_table_rtx if reload_completed.
3065         (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
3066         PIC_OFFSET_TABLE_REGNUM.
3067         * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
3068         return true.
3069         (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
3070         (m68k_output_mi_thunk): Rewrite to use RTL.  Honor vcall_offset.
3071
3072 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3073
3074         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
3075         functions that call eh_return.
3076
3077 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3078
3079         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
3080         functions that need a constant pool.
3081
3082 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3083
3084         PR target/28181
3085         * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
3086         (m68k_preferred_reload_class): Likewise.
3087         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
3088         (SECONDARY_RELOAD_CLASS): Define.
3089         (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
3090         (LIMIT_RELOAD_CLASS): Delete.
3091         * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
3092         registers from storing bytes.
3093         (m68k_secondary_reload_class): New function.
3094         (m68k_preferred_reload_class): Likewise.
3095
3096 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3097
3098         * config/m68k/m68k.c (m68k_save_reg): Remove special case for
3099         leaf functions.
3100         (m68k_expand_prologue): Likewise.
3101
3102 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3103
3104         * config/m68k/m68k-protos.h (output_sibcall): Declare.
3105         (mips_expand_epilogue): Add a bool parameter.
3106         (m68k_legitimize_sibcall_address): Declare.
3107         * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
3108         (m68k_expand_epilogue): Add a parameter to select between sibling
3109         and normal epilogues.  Only generate a return for the latter.
3110         (m68k_ok_for_sibcall_p): New function.
3111         (m68k_legitimize_sibcall_address, output_sibcall): New functions.
3112         * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
3113         (sibcall_value, *sibcall_value): Likewise.
3114         (*call, *call_value): Require !SIBLING_CALL_P.
3115         (epilogue): Update call to m68k_expand_epilogue.
3116         (sibcall_epilogue): New pattern.
3117         * config/m68k/predicates.md (const_call_operand): Say that this
3118         predicate applies to sibling calls too.
3119         (sibcall_operand): New predicate.
3120
3121 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3122
3123         * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
3124         alternatives as movsi_cf.
3125         (movsf_cf_hard): Add commentary.
3126
3127 2007-03-06  Kazu Hirata  <kazu@codesourcery.com>
3128             Richard Sandiford  <richard@codesourcery.com>
3129
3130         * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
3131         (m68k_movem_pattern_p, m68k_output_movem): Likewise.
3132         (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
3133         * config/m68k/m68k.h (EPILOGUE_USES): Define.  Treat all registers
3134         as being live on exit from an interrupt function.
3135         (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
3136         * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
3137         (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
3138         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
3139         (m68k_interrupt_function_p): Globalize.
3140         (m68k_compute_frame_layout): Remove reverse mask code.
3141         (m68k_emit_movem, m68k_set_frame_related): New functions.
3142         (m68k_output_function_prologue): Delete in favor of...
3143         (m68k_expand_prologue): ...this new function.
3144         (m68k_output_function_epilogue): Delete in favor of...
3145         (m68k_expand_epilogue): ...this new function.
3146         (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
3147         functions.
3148         (print_operand): Handle %?.
3149         * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
3150         (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
3151         (prologue, epilogue): New patterns.
3152         (return): Turn into a define_expand.
3153         (*return): New pattern, derived from old "return" pattern.  Use rte
3154         rather than rts for interrupt functions.  Only use rtd if the pop
3155         count is nonzero.
3156         (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
3157         (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
3158         (link, *link, unlink, *unlink, load_got): Likewise.
3159
3160 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
3161
3162         PR target/23482
3163         PR target/17114
3164         * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
3165         (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
3166         (m68k_matches_q_p, m68k_matches_u_p): Likewise.
3167         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
3168         and m68k_matches_u_p.
3169         (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
3170         (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
3171         (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
3172         (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
3173         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
3174         (REG_STRICT_P): New macro.
3175         (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
3176         PCREL_GENERAL_OPERAND_OK.
3177         (REG_OK_FOR_BASE_P): Merge definitions.  Use REG_STRICT_P and
3178         m68k_legitimate_base_reg_p.
3179         (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
3180         (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
3181         (PIC_CASE_VECTOR_ADDRESS): Update comment.
3182         * config/m68k/m68k.c (m68k_address): New structure.
3183         (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
3184         (m68k_decompose_index, m68k_legitimate_constant_address_p)
3185         (m68k_jump_table_ref_p, m68k_decompose_address)
3186         (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
3187         (m68k_matches_u_p): New functions.
3188         (print_operand_address): Rewrite to use m68k_decompose_index.
3189
3190 2007-03-05  David Taylor  <dtaylor@emc.com>
3191
3192         * gcc.c: Correct copyright date in --version output.
3193
3194 2007-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3195
3196         * pa.md: In unamed move patterns, disparge copies between general
3197         and floating point registers using '?' modifier.  Don't include 'f'
3198         constraint for register preferences in DImode, SImode, HImode and
3199         QImode patterns.  Likewise for 'r' in DFmode and SFmode patterns.
3200         Remove constraints for copies between general and floating registers
3201         in soft-float DFmode pattern.
3202         (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
3203         floating register.
3204         (movsf): Likewise.
3205
3206 2007-03-05  Mike Stump  <mrs@apple.com>
3207
3208         * c-common.c (targetcm): Add.
3209         * c-opts.c (c_common_handle_option): Handle language specific
3210         target options.
3211         * opts.c (handle_option): Verify language for target options, if
3212         any are given.
3213         * opth-gen.awk: Add CL_LANG_ALL.
3214         * target-def.h (TARGET_HANDLE_C_OPTION): Add.
3215         (TARGETCM_INITIALIZER): Add.
3216         * target.h (struct gcc_targetcm): Add.
3217         (targetcm): Add.
3218         * targhooks.c (default_handle_c_option): Add.
3219         * targhooks.h (default_handle_c_option): Add.
3220         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
3221
3222         * config/darwin.opt (iframework): Add.
3223         * config/darwin.h (TARGET_HAS_TARGETCM): Add.
3224         * config/darwin-c.c (handle_c_option): Add.
3225         (TARGET_HANDLE_C_OPTION): Add.
3226         (targetcm): Add.
3227         * doc/invoke.texi (Darwin Options): Add -iframework.
3228
3229 2007-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3230
3231         * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
3232         conversion.
3233
3234 2007-03-05  Ian Lance Taylor  <iant@google.com>
3235
3236         * c.opt (fgnu89-inline): New option.
3237         * c-opts.c (c_common_post_options): Set default value for
3238         flag_gnu89_inline.
3239         * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
3240         (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
3241         inline functions.
3242         (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
3243         (grokdeclarator, start_function): Likewise.
3244         * c-cppbuiltin.c (c_cpp_builtins): Define either
3245         __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
3246         * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
3247         (C Dialect Options): Document -fgnu89-inline.
3248         * doc/extend.texi (Function Attributes): Explain what the
3249         gnu_inline attribute does.
3250         * doc/cpp.texi (Common Predefined Macros): Document
3251         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
3252
3253 2007-03-05  Ian Lance Taylor  <iant@google.com>
3254
3255         PR tree-optimization/31034
3256         * tree-vrp.c (extract_range_from_assert): Don't try to handle a
3257         half-range if the other side is an overflow infinity.
3258
3259 2007-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
3260
3261         * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
3262         (bfin*-linux-uclibc*): New configuration.
3263         * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
3264         defining.
3265         * config/bfin/linux.h: New file.
3266         * config/bfin/libgcc-bfin.ver: New file.
3267         * config/bfin/t-bfin-uclinux: New file.
3268         * config/bfin/t-bfin-linux: New file.
3269         * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
3270         (TARGET_OS_CPP_BUILTINS): New macro.
3271
3272 2007-03-05  Richard Guenther  <rguenther@suse.de>
3273
3274         * fold-const.c (fold_binary): Remove duplicate folding
3275         of comparison of non-null ADDR_EXPR against null.
3276
3277 2007-03-05  Richard Guenther  <rguenther@suse.de>
3278             Dorit Nuzman  <dorit@il.ibm.com>
3279
3280         PR tree-optimization/26420
3281         * tree-vectorizer.c (vectorize_loops): Bail out early if there
3282         are no loops in the function.  Only print the number of
3283         vectorized loops if it is greater than zero or we are supposed
3284         to print information about unvectorized loops.
3285
3286 2007-03-05  Revital Eres  <eres@il.ibm.com>
3287
3288         * gcc.dg/var-expand1.c: New test.
3289         * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
3290         when an accumulator is expanded.
3291
3292 2007-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3293
3294         PR other/30465
3295         * c-common.c (convert_and_check): Don't give warnings for
3296         conversion if 'expr' already overflowed.
3297
3298 2007-03-04  Roger Sayle  <roger@eyesopen.com>
3299
3300         PR middle-end/30744
3301         * fold-const.c (fold_comparison): Enforce type consistency when
3302         transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.
3303
3304 2007-03-04  Zdenek Dvorak  <dvorakz@suse.cz>
3305
3306         * tree-ssa-address.c (create_mem_ref): Do not put an expression
3307         containing a cast to the base of TARGET_MEM_REF.
3308
3309 2007-03-04  Martin Michlmayr  <tbm@cyrius.com>
3310
3311         * tree.c (tree_contains_struct_check_failed): Remove spurious
3312         whitespace from error message.
3313
3314 2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
3315
3316         PR target/30406
3317         * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
3318         instead of precision.
3319
3320 2007-03-04  Roman Zippel <zippel@linux-m68k.org>
3321             Nathan Sidwell  <nathan@codesourcery.com>
3322
3323         * emit-rtl.c (find_auto_inc): New.
3324         (try_split): recreate REG_INC notes,
3325         Use regular for loops rather than whiles.
3326
3327 2007-03-03  Andreas Schwab  <schwab@suse.de>
3328
3329         * configure.ac (HAVE_AS_REL16): Move test back to correct place.
3330         * configure: Regenerate.
3331
3332 2007-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3333
3334         * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
3335         flag_rounding_math, not flag_unsafe_math_optimizations.
3336
3337         * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
3338         fold_build2.
3339         * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
3340         alpha_fold_vector_minmax): Likewise.
3341         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
3342         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
3343
3344 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
3345
3346         * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
3347         (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
3348         if the lhs has side-effects.
3349         <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
3350
3351 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
3352
3353         * config/i386/i386.h (TUNEMASK): Remove define.
3354         (ARCHMASK): Remove define.
3355         (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
3356          Use ix86_arch_mask variable instead of ARCHMASK.
3357         * config/i386/i386.c (override_options): Ditto.
3358         (standard_80387_constant_p): Ditto.
3359
3360 2007-03-02  Ian Lance Taylor  <iant@google.com>
3361
3362         Used signed infinities in VRP.
3363         * tree-vrp.c (uses_overflow_infinity): New static function.
3364         (supports_overflow_infinity): New static function.
3365         (make_overflow_infinity): New static function.
3366         (negative_overflow_infinity): New static function.
3367         (positive_overflow_infinity): New static function.
3368         (is_negative_overflow_infinity): New static function.
3369         (is_positive_overflow_infinity): New static function.
3370         (is_overflow_infinity): New static function.
3371         (overflow_infinity_range_p): New static function.
3372         (compare_values_warnv): New function split out of compare_values.
3373         (compare_value): Call it.
3374         (set_value_range_to_nonnegative): Add overflow_infinity
3375         parameter.  Change caller.
3376         (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
3377         Change callers.
3378         (vrp_expr_computes_nonzero): Likewise.
3379         (compare_ranges, compare_range_with_value): Likewise.
3380         (compare_name_with_value, compare_names): Likewise.
3381         (vrp_evaluate_conditional): Likewise.
3382         (set_value_range): Handle infinity
3383         (vrp_operand_equal_p, operand_less_p): Likewise.
3384         (extract_range_from_assert): Likewise.
3385         (vrp_int_const_binop): Likewise.
3386         (extract_range_from_binary_expr): Likewise.
3387         (extract_range_from_unary_expr): Likewise.
3388         (extract_range_from_comparison): Likewise.
3389         (extract_range_from_expr): Likewise.
3390         (dump_value_range): Likewise.
3391         (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
3392         (test_for_singularity): Likewise.
3393         (vrp_int_const_binop): Remove inline qualifier.
3394         (adjust_range_with_scev): Add comment.
3395         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
3396
3397 2007-03-02  Diego Novillo  <dnovillo@redhat.com>
3398
3399         * tree-ssa-structalias.c (could_have_pointers): Tidy.
3400         (get_constraint_for): Likewise.
3401         (do_structure_copy): Likewise.
3402         (find_func_aliases): Fix references to MODIFY_EXPR.
3403         (intra_create_variable_infos): Tidy.
3404         * tree-ssa-operands.c (add_virtual_operand): Add argument
3405         IS_CALL_SITE.
3406         When adding members of alias sets, if IS_CALL_SITE is true and
3407         the symbol is not call-clobbered, skip it.
3408         Adjust all callers.
3409
3410 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
3411
3412         * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
3413         entry by means of emit_insn_at_entry.
3414
3415 2007-03-02  Richard Henderson  <rth@redhat.com>
3416
3417         * expr.h (promoted_input_arg): Remove decl.
3418         * function.c (promoted_input_arg): Merge into ...
3419         * combine.c (setup_incoming_promotions): ... only caller.
3420         Rearrange to avoid double loop.
3421
3422 2007-03-02  Ben Elliston  <bje@au.ibm.com>
3423             Peter Bergner  <bergner@vnet.ibm.com>
3424             Janis Johnson  <janis187@us.ibm.com>
3425
3426         * config/rs6000/dfp.md: New file.
3427         * config/rs6000/rs6000.md: Include dfp.md.
3428         (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
3429         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
3430         and TDmode decimal float modes in FP registers.
3431         (num_insns_constant): Likewise.
3432         (rs6000_legitimate_offset_address_p): Likewise.
3433         (rs6000_legitimize_address): Likewise.
3434         (rs6000_legitimize_reload_address): Likewise.
3435         (rs6000_legitimate_address): Likewise.
3436         (rs6000_emit_move): Likewise.
3437         (function_arg_boundary): Likewise.
3438         (function_arg_advance): Likewise.
3439         (rs6000_darwin64_record_arg_recurse): Likewise.
3440         (function_arg): Likewise.
3441         (rs6000_gimplify_va_arg): Likewise.
3442         (rs6000_split_multireg_move): Likewise.
3443         (rs6000_output_function_epilogue): Likewise.
3444         (rs6000_output_function_epilogue): Likewise.
3445         (rs6000_register_move_cost): Likewise.
3446         (rs6000_function_value): Likewise.
3447         (rs6000_libcall_value): Likewise.
3448
3449 2007-03-02  Richard Sandiford  <richard@codesourcery.com>
3450
3451         * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
3452
3453 2007-03-02  Richard Sandiford  <richard@codesourcery.com>
3454
3455         * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
3456         Use $MULTIDIR to choose between the kernel and RTP headers,
3457         and use $WIND_BASE and $WIND_USR to locate them.
3458
3459 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
3460
3461         * config/i386/i386.c (override_options): Put initialization of
3462         ix86_tune_mask and ix86_arch_mask to the correct place.
3463
3464 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
3465             Michael Meissner  <michael.meissner@amd.com>
3466
3467         PR target/31019
3468         * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
3469         (ARCHMASK): Define.
3470         (TARGET_CMOVE): Use ARCHMASK.
3471         (TARGET_CMPXCHG): Ditto.
3472         (TARGET_CMPXCHG8B): Ditto.
3473         (TARGET_XADD): Ditto.
3474         (TARGET_BSWAP): Ditto.
3475         * config/i386/i386.c (ix86_tune_mask): New global variable.
3476         (ix86_arch_mask): Ditto.
3477         (override_options): Initialize ix86_tune_mask and
3478         ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
3479         target_flags.
3480
3481 2007-03-02  Ben Elliston  <bje@au.ibm.com>
3482
3483         PR 30992
3484         * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
3485
3486 2007-03-02  Joseph Myers  <joseph@codesourcery.com>
3487
3488         * target.h (init_dwarf_reg_sizes_extra): New target hook.
3489         * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
3490         * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
3491         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
3492         hook.
3493         * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
3494         rs6000_init_dwarf_reg_sizes_extra): New.
3495         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
3496         SPE register high parts.
3497
3498 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
3499
3500         * Makefile.in: Add install-pdf target as
3501         copied from automake v1.10 rules.
3502         * configure.ac: Add install-pdf to target list.
3503         * configure: Regenerate.
3504
3505 2007-03-01  Paul Brook  <paul@codesourcery.com>
3506
3507         * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
3508         modes to LDRD for DImode.
3509         (output_move_double): Fixup out of range ldrd/strd.
3510         (vfp_secondary_reload_class): Rename...
3511         (coproc_secondary_reload_class): ... to this.  Add wb argument.
3512         * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
3513         coproc_secondary_reload_class for CLASS_IWMMXT.
3514         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
3515         * arm-protos.h (coproc_secondary_reload_class): Update prototype.
3516
3517 2007-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
3518
3519         * tree-ssa-loop-prefetch.c (determine_unroll_factor):  Bound the unroll
3520         factor by the estimated number of iterations.
3521         (loop_prefetch_arrays): Do not prefetch in loops that iterate less than
3522         prefetch latency.
3523
3524         * config/i386/driver-i386.c (describe_cache, detect_caches_amd,
3525         decode_caches_intel, detect_caches_intel): New functions.
3526         (host_detect_local_cpu): Use detect_caches_amd and
3527         detect_caches_intel.
3528
3529 2007-03-01  Richard Henderson  <rth@redhat.com>
3530
3531         * expr.c (emit_move_complex_push): Export.
3532         (emit_move_complex_parts): Split out from ...
3533         (emit_move_complex): ... here.
3534         * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
3535         * config/i386/i386.md (movcdi): New.
3536
3537 2007-03-01  Uros Bizjak  <ubizjak@gmail.com>
3538
3539         * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
3540         size of mode1 to check for tieable modes in MMX case.
3541
3542 2007-03-01  Richard Sandiford  <richard@codesourcery.com>
3543
3544         * Makefile.in (rtlanal.o): Depend on tree.h.
3545         * rtl.h (offset_within_section_p, split_const): Declare.
3546         * rtlanal.c: Include tree.h.
3547         (offset_within_block_p): New function, taken from
3548         mips_offset_within_object_p.
3549         (split_const): New function, taken from mips_split_const.
3550         * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
3551         Declare.
3552         * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
3553         (CONSTANT_ADDRESS_P): Only accept legitimate constants.
3554         (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
3555         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
3556         (m68k_illegitimate_symbolic_constant_p): New function.
3557         * config/m68k/m68k.md (movsi): Remove misleading predicates.
3558         If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
3559         symbolic constant that might be outside the symbol's section,
3560         move the symbol first and then add the offset.
3561         * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
3562         Override.
3563         * config/mips/mips.c (mips_split_const): Delete.
3564         (mips_offset_within_object_p): Delete.
3565         (mips_symbolic_constant_p): Use offset_within_section_p and
3566         split_const instead of mips_offset_within_object_p and
3567         mips_split_const.
3568         (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
3569         (mips_legitimize_const_move, print_operand_reloc)
3570         (mips_dangerous_for_la25_p): Use split_const instead of
3571         mips_split_const.
3572
3573 2007-02-28  Eric Christopher  <echristo@apple.com>
3574
3575         * Makefile.in (install-include-dir): Don't rm -rf include.
3576
3577 2007-02-28  Richard Guenther  <rguenther@suse.de>
3578
3579         PR middle-end/30364
3580         * fold-const.c (fold_binary): Do not associate expressions
3581         with more than one variable for integer types that do not wrap.
3582
3583 2007-02-28  Sandra Loosemore  <sandra@codesourcery.com>
3584
3585         * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
3586         Delete, and replace with...
3587         (fold_builtin_call_array): This.  Update callers to use it.
3588         * fold-const.c (fold_build_call_list): Delete, and replace with...
3589         (fold_build_call_array): This.
3590         (fold_build_call_list_initializer): Delete, and replace with...
3591         (fold_build_call_array_initializer): This.
3592         * tree.h: Update declarations to reflect above changes.
3593
3594         * c-typeck.c (build_function_call): Store converted arguments
3595         in a stack-allocated array instead of building a list.
3596         (convert_arguments): Store arguments in the array passed in as an
3597         argument, and return the actual number of arguments.
3598         * c-format.c: (check_function_format): Pass arguments in an
3599         array instead of a list.
3600         * c-common.c (check_function_nonnull): Likewise.
3601         (check_function_sentinel): Likewise.
3602         (check_function_arguments): Likewise.
3603         * c-common.h: Update declarations to reflect above changes.
3604
3605 2007-02-28  Jan Hubicka  <jh@suse.cz>
3606
3607         * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
3608         PRED_NEGATIVE_RETURN): Update outcomes.
3609
3610 2007-02-28  Bernd Schmidt  <bernd.schmidt@analog.com>
3611
3612         * calls.c (emit_library_call_value_1): Handle partial registers
3613         correctly when building up CALL_INSN_FUNCTION_USAGE.
3614
3615 2007-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3616
3617         * pa/predicates.md (move_src_operand): Allow zero for mode.
3618         * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
3619         move pattern.
3620
3621 2007-02-27  Uros Bizjak  <ubizjak@gmail.com>
3622
3623         PR target/30970
3624         * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
3625         *movv2df_internal): Enable pattern only for valid operand
3626         combinations.
3627         * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
3628         tie only 128bit modes. For MMX registers, tie only 64bit modes.
3629
3630 2007-02-27  Mike Stump  <mrs@apple.com>
3631
3632         * config/darwin-crt3.c: Avoid compilation when compiling for a
3633         kext multilib.
3634
3635 2007-02-27  Joseph Myers  <joseph@codesourcery.com>
3636
3637         * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
3638         FIXED_INCLUDE_DIR.
3639         (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
3640         for fixed headers and limits.h.
3641         (install-include-dir, install-headers-tar, install-headers-cpio,
3642         install-headers-cp, real-install-headers-tar,
3643         real-install-headers-cpio, real-install-headers-cp): Handle
3644         include-fixed as well as include.
3645         (install-mkheaders): Don't install files that go only in include
3646         not include-fixed.
3647         * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
3648         from GCC_INCLUDE_DIR.
3649         * gcc.c (process_command): Remove special -BstageN/ handling.
3650         (do_spec_1): Add include-fixed directories.
3651
3652 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
3653
3654         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
3655         _smulsi3_highpart.
3656         * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
3657         New functions.
3658         * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
3659         patterns.
3660
3661 2007-02-27  Mark Mitchell  <mark@codesourcery.com>
3662
3663         * c-common.c (get_priority): Add check for
3664         SUPPORTS_INIT_PRIORITY.
3665
3666 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
3667
3668         * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
3669
3670         * config/bfin/bfin.c: Include "cfglayout.h".
3671         (MAX_LSETUP_DISTANCE): New macro.
3672         (struct loop_info): New members incoming, incoming_src and
3673         incoming_dest.  Delete member predecessor.
3674         (length_for_loop): New function.
3675         (bfin_optimize_loop): Handle more different loop structures.
3676         (bfin_discover_loop): Rework detection of predecessor blocks by
3677         examining incoming edges.
3678         (bfin_discover_loops, bfin_free_loops): New functions, broken out of
3679         bfin_reorg_loops.
3680         (bfin_reorder_loops): New function.
3681         (bfin_reorg_loops): Use these three new functions.
3682
3683         * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
3684         REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
3685         (CONSTRAINT_LEN): Add entry for 'q'.
3686         (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
3687         Add 'q' constraints.
3688         (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
3689         (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
3690
3691         * config/bfin/bfin.md (add_with_carry): New pattern.
3692         (s_or_u, su_optab, su_modifier): New code macros/attrs.
3693         (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
3694         <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
3695         support unsigned multiplies too.  Removed incorrect commutativity from
3696         operand 1 constraint where appropriate.
3697         (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
3698         patterns.
3699         (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
3700         <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
3701         New patterns.
3702         (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
3703         usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
3704         usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
3705         usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
3706         usmulhisi_hh_huh): New patterns.
3707
3708         * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
3709         lshifthi3): Fix output template to use half reg for operand 2.
3710
3711         * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
3712         instead of R2.
3713
3714         * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
3715
3716 2007-02-27  Andreas Schwab  <schwab@suse.de>
3717
3718         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
3719
3720 2007-02-27  Jan Hubicka  <jh@suse.cz>
3721
3722         * predict.c (last_basic_block_p): Remove.
3723         (tree_estimate_probability): Update return heuristic for commonized
3724         return blocks.
3725
3726 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
3727
3728         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
3729
3730 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
3731
3732         * doc/include/gcc-common.texi (versionsubtitle): New macro.
3733         * doc/cpp.texi: Standardize title page.
3734         * doc/cppinternals.texi: Likewise.
3735         * doc/gcc.texi: Standardize title page, remove version number
3736         from copyright page.
3737         * doc/gccint.texi: Likewise.
3738         * doc/install.texi: Standardize title page, add table of
3739         contents.
3740
3741 2007-02-26  Jan Hubicka  <jh@suse.cz>
3742
3743         * predict.def: Set outcomes according to more recent results.
3744         (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
3745         Remove dead predictors.
3746         * predict.c (return_prediction): Fix pasto.
3747
3748 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
3749
3750         * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
3751         change; avoid a memory leak when returning early.
3752
3753 2007-02-26  Mark Mitchell  <mark@codesourcery.com>
3754
3755         * c-decl.c (static_ctors): Move to c-common.c.
3756         (static_dtors): Likewise.
3757         (finish_function): Use c_record_cdtor_fn.
3758         (build_cdtor): Move to c-common.c.
3759         (c_write_global_declarations): Use c_build_cdtor_fns.
3760         * c-common.h (static_ctors): Declare.
3761         (static_dtors): Likewise.
3762         (c_record_cdtor_fn): Likewise.
3763         (c_build_cdtor_fns): Likewise.
3764         * c-common.c (static_ctors): New variable.
3765         (static_dtors): Likewise.
3766         (c_record_cdtor_fn): New function.
3767         (build_cdtor): Move from c-decl.c
3768         (c_build_cdtor_fns): New function.
3769
3770         * output.h (assemble_addr_to_section): Declare.
3771         (get_cdtor_priority_section): Likewise.
3772         * varasm.c (assemble_addr_to_section): New function.
3773         (get_cdtor_priority_section): Likewise.
3774         (default_named_section_asm_out_destructor): Use them.
3775         (destor_dtor_section_asm_out_destructor): Likewise.
3776         (default_named_section_asm_out_constructor): Likewise.
3777         (default_ctor_section_asm_out_constructor): Likewise.
3778         * config.gcc (*-*-vxworks*): Include vxworks.o.
3779         * config/t-vxworks (vxworks.o): New target.
3780         * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
3781         (TARGET_ASM_CONSTRUCTOR): Define.
3782         (TARGET_ASM_DESTRUCTOR): Likewise.
3783         (vxworks_asm_out_constructor): Declare.
3784         (vxworks_asm_out_destructor): Likewise.
3785
3786         * c-common.c (get_priority): Check that we have not just an
3787         INTEGER_CST, but an integer constant with integeral type.
3788
3789 2007-02-25  Uros Bizjak  <ubizjak@gmail.com>
3790
3791         PR tree-optimization/30938
3792         * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
3793         use &dt[nargs-1] instead of &dt[nargs] in the call to
3794         vect_is_simple_use().
3795
3796 2007-02-25  Ulrich Weigand  <uweigand@de.ibm.com>
3797
3798         * reload.c (find_reloads_address_1): Handle PLUS expressions resulting
3799         from register elimination as PRE_MODIFY / POST_MODIFY increments.
3800         Do not attempt to handle MEM inside auto-inc expressions.
3801         * reload1.c (eliminate_regs_1): Do not attempt to handle elimination
3802         of a register modified by an auto-inc expression.  However, do handle
3803         elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
3804         (elimination_effects): Prohibit elimination of a register modified
3805         by an auto-inc expression.  Disable register elimination rules whose
3806         target register is modified by an auto-inc expression with variable
3807         increment.
3808
3809 2007-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
3810
3811         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
3812         off-by-one error.
3813         (array_at_struct_end_p): New function.
3814         (idx_infer_loop_bounds): Use it.
3815         (estimate_numbers_of_iterations_loop): Export.
3816         * predict.c (predict_loops): Use estimated_loop_iterations_int.
3817         Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
3818         (tree_estimate_probability): Call record_loop_exits.
3819         * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
3820         (estimated_loop_iterations, estimated_loop_iterations_int,
3821         estimated_loop_iterations_tree): New functions.
3822         (analyze_siv_subscript_cst_affine,
3823         compute_overlap_steps_for_affine_1_2,
3824         analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
3825         (analyze_miv_subscript): Use estimated_loop_iterations_tree.
3826         * predict.def (PRED_LOOP_ITERATIONS): Update comment.
3827         (PRED_LOOP_ITERATIONS_GUESSED): New.
3828         * cfgloop.c (record_loop_exits): Do nothing if there are no loops.
3829         * cfgloop.h (estimate_numbers_of_iterations_loop,
3830         estimated_loop_iterations_int): Declare.
3831
3832 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
3833
3834         * doc/extend.texi: Document optional priority argument to
3835         constructors and destructors.
3836         * tree.c (init_priority_for_decl): Adjust GTY markers.
3837         (init_ttree): Use priority-info hash functions for
3838         init_priority_for_decl.
3839         (tree_map_eq): Rename to ...
3840         (tree_map_base_eq): ... this.
3841         (tree_map_marked_p): Rename to ...
3842         (tree_map_base_marked_p): ... this.
3843         (tree_map_base_hash): New function.
3844         (decl_init_priority_lookup): Rework.
3845         (decl_fini_priority_lookup): New function.
3846         (decl_priority_info): New function.
3847         (decl_init_priority_insert): Use it.
3848         (decl_fini_priority_insert): Likewise.
3849         (decl_restrict_base_lookup): Adjust for refactoring of tree_map
3850         hierarchy.
3851         (decl_restrict_base_insert): Likewise.
3852         (decl_debug_expr_insert): Likewise.
3853         (decl_value_expr_lookup): Likewise.
3854         (decl_value_expr_insert): Likewise.
3855         * tree.h (priority_type): New type.
3856         (decl_init_priority_lookup): Use priority_type.
3857         (decl_fini_priority_lookup): New function.
3858         (decl_init_priority_insert): Use priority_type.
3859         (decl_fini_priority_insert): New function.
3860         (DECL_HAS_INIT_PRIORITY): Tweak comments.
3861         (DECL_INIT_PRIORITY): Likewise.
3862         (SET_DECL_INIT_PRIORITY): Add comment.
3863         (DECL_FINI_PRIORITY): New macro.
3864         (SET_DECL_FINI_PRIORITY): Likewise.
3865         (DEFAULT_INIT_PRIORITY): Document.
3866         (MAX_INIT_PRIORITY): Likewise.
3867         (MAX_RESERVED_INIT_PRIORITY): Likewise.
3868         (tree_map_base): New type.
3869         (tree_map_base_eq): New function.
3870         (tree_map_base_hash): Likewise.
3871         (tree_map_base_marked_p): Likewise.
3872         (tree_map): Inherit from tree_map_base.
3873         (tree_map_eq): Make it a macro.
3874         (tree_map_marked_p): Likewise.
3875         (tree_int_map): Inherit from tree_map_base.
3876         (tree_int_map_eq): Make it a macro.
3877         (tree_int_map_hash): Likewise.
3878         (tree_int_map_marked_p): Likewise.
3879         (tree_priority_map): New type.
3880         (tree_priority_map_eq): New macro.
3881         (tree_priority_map_hash): Likewise.
3882         (tree_priority_map_marked_p): Likewise.
3883         * varasm.c (emults_decl): Adjust for refactoring of tree_map
3884         hierarchy.
3885         (emutls_common_1): Likewise.
3886         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
3887         * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
3888         of tree_map hierarchy.
3889         * tree-cfg.c (move_stmt_r): Likewise.
3890         (new_label_mapper): Likewise.
3891         * c-tree.h (c_expand_body): Move to ...
3892         * c-common.h (c_expand_body): ... here.
3893         * c-decl.c (c_expand_body): Move to ...
3894         * c-common.c (c_expand_body): ... here.
3895         (c_common_attribute_table): Allow 1 argument for the constructor
3896         and destructor attributes.
3897         (get_priority): New function.
3898         (handle_constructor_attribute): Set DECL_INIT_PRIORITY.
3899         (handle_destructor_attribute): Set DECL_FINI_PRIORITY.
3900
3901 2007-02-24  Jan Hubicka  <jh@suse.cz>
3902
3903         PR middle-end/30509
3904         * tree-inline.c (copy_bb): Produce exact copy of EH info when copying for inlining.
3905
3906 2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
3907             Jan Hubicka  <jh@suse.cz>
3908
3909         PR target/30778
3910         * i386.c (counter_mode): New function.
3911         (expand_set_or_movmem_via_loop): Use it.
3912         (expand_movmem_epilogue): Likewise; fix pasto.
3913         (ix86_expand_movmem): Do emit guard even for constant counts.
3914         (ix86_expand_setmem): Likewise.
3915
3916 2007-02-25  Nick Clifton  <nickc@redhat.com>
3917
3918         * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
3919         (JUMP_TABLES_IN_TEXT_SECTION): Define.
3920
3921 2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
3922
3923         PR target/30770
3924         * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
3925         count argument with 0x10, not with 0x16.
3926         (expand_setmem_epilogue): Ditto.
3927
3928 2007-02-24  Mike Stump  <mrs@apple.com>
3929
3930         * config/i386/i386.c (output_pic_addr_const): Stubify optimized
3931         symbols.
3932
3933 2007-02-24  Richard Guenther  <rguenther@suse.de>
3934
3935         PR middle-end/30951
3936         * fold-const.c (fold_binary): Fold x +- CST op x for
3937         EQ_EXPR and NE_EXPR.
3938
3939 2007-02-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3940
3941         * pa.md (muldi3): Force subregs to registers in 64-bit expander.
3942
3943 2007-02-24  Jan Hubicka  <jh@suse.cz>
3944
3945         * cgraphunit.c (decide_is_function_needed): Honor
3946         -fkeep-inline-functions.
3947
3948 2007-02-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3949
3950         * builtins.c (fold_builtin_modf): New.
3951         (fold_builtin_2): Use it.
3952
3953 2007-02-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3954
3955         * loop-iv.c (implies_p): Detect additional cases where A implies B.
3956         (determine_max_iter): Take additional LOOP arg; all callers changed.
3957         Lose broken logic dealing with PLUS.  Try to limit the upper bound by
3958         one using simplifications.
3959         (simplify_using_initial_values): Return if the expression becomes
3960         invalid due to altered regs.
3961
3962 2007-02-23  DJ Delorie  <dj@redhat.com>
3963
3964         * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
3965
3966 2007-02-23  Mike Stump  <mrs@apple.com>
3967
3968         * tlink.c (scan_linker_output): Parse linker messages from
3969         darwin9's linker better.
3970
3971 2007-02-23  Steve Ellcey  <sje@cup.hp.com>
3972
3973         PR debug/29614
3974         * varpool.c (varpool_assemble_pending_decls):  Set
3975         varpool_last_needed_node to null.
3976
3977 2007-02-23  DJ Delorie  <dj@redhat.com>
3978
3979         * config/i386/i386.c (ix86_data_alignment): Don't specify an
3980         alignment bigger than the object file can handle.
3981
3982 2007-02-23  Uros Bizjak  <ubizjak@gmail.com>
3983
3984         PR target/30825
3985         * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
3986         zero_extendsidi2_rex64): Penalize MMX register<-&g