OSDN Git Service

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