OSDN Git Service

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