OSDN Git Service

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