OSDN Git Service

* tree-pass.h (pass_into_cfg_layout_mode,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-03-12  Steven Bosscher  <steven@gcc.gnu.org>
2
3         * tree-pass.h (pass_into_cfg_layout_mode,
4         pass_outof_cfg_layout_mode): Declare.
5         * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
6         pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
7         * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
8         (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
9
10 2007-03-12  Seongbae Park <seongbae.park@gmail.com>
11
12         * c-decl.c (warn_variable_length_array): New function.
13         Refactored from grokdeclarator to handle warn_vla
14         and handle unnamed array case.
15         (grokdeclarator): Refactored VLA warning case.
16         * c.opt (Wvla): New flag.
17         * doc/invoke.texi (Wvla): New warning.
18
19 2007-03-12  Richard Henderson  <rth@redhat.com>
20
21         * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
22         (TARGET_SECTION_TYPE_FLAGS): New.
23
24 2007-03-12  Richard Henderson  <rth@redhat.com>
25
26         * config/darwin.c (machopic_reloc_rw_mask): New.
27         * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
28         * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
29
30 2007-03-12  Mark Mitchell  <mark@codesourcery.com>
31
32         * cppdefault.c (cpp_EXEC_PREFIX): New variable.
33         * cppdefault.h (cpp_PREFIX): Document.
34         (cpp_PREFIX_len): Likewise.
35         (cpp_EXEC_PREFIX): New variable.
36         * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
37         * c-incpath.c (add_standard_paths): Correct logic for relocating
38         paths within prefix.
39
40 2007-03-12  Uros Bizjak  <ubizjak@gmail.com>
41
42         * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
43         fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
44         mode macro.
45         (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
46         fix_truncdfdi_sse using SSEMODEF mode macro.
47         (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
48         fix_truncdfsi_sse using SSEMODEF mode macro.
49         (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
50         (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
51
52 2007-03-12  Richard Sandiford  <richard@codesourcery.com>
53
54         * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
55         elfos.h to tm_file.
56
57 2007-03-12  Olga Golovanevsky  <olga@il.ibm.com>
58   
59         * tree.h : Add multiple_of_p declaration.
60         * fold-const.c (multiple_of_p): Make multiple_of_p public. 
61         * ipa-type-escape.c (results_of_malloc): Redundant.
62         (visited_stmts): New. Visited stmt for walk_use_def_chains.
63         (cast_type): Extended with new members.
64         (check_cast): Returns cast_type.
65         (cast): New structure for data of walk_use_def_chains.
66         (is_malloc_result, is_cast_from_non_pointer_1,
67         is_cast_from_non_pointer, 
68         is_array_access_through_pointer_and_index): New functions.
69         (look_for_casts): Returns cast types.
70         (check_call): Returns void.
71         (okay_pointer_operation): Use support of pointer plus index,
72         pointer plus constant and allow all multiplications.
73         
74 2007-03-11  Richard Guenther  <rguenther@suse.de>
75
76         PR tree-optimization/31115
77         * tree-vrp.c (extract_range_from_binary_expr): Make sure
78         the shift count is positive and non-anti-range for RSHIFT_EXPR.
79         A shift count of zero is not special as with *_DIV_EXPR.
80         (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
81         direction.
82
83 2007-03-11  Ian Lance Taylor  <iant@google.com>
84
85         * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
86         the *_DIV_EXPR codes correctly with overflow infinities.
87
88 2007-03-11  Ira Rosen  <irar@il.ibm.com>
89
90         * tree-data-ref.c (analyze_offset): Add a return value (bool) to 
91         indicate success/failure of the analysis. Add negation to subtrahend
92         in case of subtraction. Fail if both operands contain constants.
93         (create_data_ref): Fail if analyze_offset fails.
94
95 2007-03-11  Uros Bizjak  <ubizjak@gmail.com>
96
97         * config/i386/i386.md (frndintxf2): Rename to ...
98         (rintxf2): ... this. Remove expander having same name.
99         (rintsf2, rintdf2): Implement using SSEMODEF macro.
100         (roundsf2, rounddf2): Ditto.
101         (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
102         (lround<mode>di2, lround<mode>si2): Ditto.
103
104 2007-03-11  Steven Bosscher  <steven@gcc.gnu.org>
105
106         * lower-subreg.c: Include except.h.
107         (decompose_multiword_subregs): Verify that the only control flow
108         insns we can split are loads to multi-words pseudos.
109         Handle breaking such blocks after splitting, instead of calling
110         find_many_sub_basic_blocks.
111
112         * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
113         on the new basic block.  Add a lengthy comment explaining why we
114         thought this was necessary.
115         * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
116
117 2007-03-10  Mark Mitchell  <mark@codesourcery.com>
118
119         PR c++/30924
120         * tree.c (walk_type_fields): Recurse into the element type of
121         ARRAY_TYPEs if there is a pointer set.
122
123 2007-03-10  Dirk Mueller  <dmueller@suse.de>
124
125         * c-common.c (warn_logical_operator): Fix condition.
126
127 2007-03-10  Tobias Schl├╝ter  <tobi@gcc.gnu.org>
128
129         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
130         quotation mark.
131         * config/darwin.c (machopic_select_section): Remove superfluous
132         argument in call to categorize_decl_for_section.  Remove unused
133         variable shlib.
134
135 2007-03-10  Joseph Myers  <joseph@codesourcery.com>
136
137         * configure.ac (glibc_header_dir): Set using with_build_sysroot if
138         defined.
139         * configure: Regenerate.
140
141 2007-03-10  Uros Bizjak  <ubizjak@gmail.com>
142
143         PR target/31101
144         * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
145         (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
146         (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
147         Add LABEL_NUSES to emitted label.
148         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
149         branch probability value to emitted jump insn.
150         * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
151         Do not check life information and do not re-arrange input operands
152         for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
153
154 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
155
156         * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
157         the change of decode_asm_operands.
158
159 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
160
161         * mode-switching.c (create_pre_exit): Skip blockage insn.
162
163 2007-03-09  Diego Novillo  <dnovillo@redhat.com>
164
165         * tree-pass.h (TODO_update_smt_usage): Remove.
166         Update all users.
167         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
168         argument SOME.
169         Update all users.
170
171 2007-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
172
173         * pa.c (attr_length_call): Revise condition for long pc-relative branch.
174         (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local
175         calls on the SOM target.  Don't use "LONG_PIC_PCREL" call sequence on
176         SOM target.
177
178 2007-03-09  Geoffrey Keating  <geoffk@apple.com>
179
180         * gcc.c: Document %{, in big comment at top.
181         (input_suffix_matches): Remove special handling for .s and
182         .S.
183         (input_spec_matches): New.
184         (handle_braces): Handle %{,.
185         (validate_switches): ',' indicates a value which is not a switch.
186         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
187         to detect assembler input.
188         * config/i386/sol2.h (CPP_SPEC): Likewise.
189         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
190         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
191         * config/rs6000/lynx.h (ASM_SPEC): Likewise.
192         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
193         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
194         -m64 causes deployment target to default to 10.5.
195         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
196
197 2007-03-09  Richard Henderson  <rth@redhat.com>
198
199         PR target/26090
200         * target.h (targetm.asm.out.reloc_rw_mask): New.
201         * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
202         (TARGET_ASM_OUT): Use it.
203         * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
204         * varasm.c (categorize_decl_for_section): Remove shlib argument;
205         use the new reloc_rw_mask target hook instead.
206         (default_section_type_flags_1): Merge into...
207         (default_section_type_flags): ... here.
208         (decl_readonly_section_1): Merge into...
209         (decl_readonly_section): ... here.
210         (default_elf_select_section_1): Merge into...
211         (default_elf_select_section): ... here.
212         (default_unique_section_1): Merge into...
213         (default_unique_section): ... here.
214         (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
215         (default_select_rtx_section): Use it.
216         (default_elf_select_rtx_section): Likewise.
217         * output.h: Update to match.
218         * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
219         * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
220         (TARGET_ASM_RELOC_RW_MASK): New.
221         * config/i386/i386.c (x86_64_elf_select_section): Adjust call
222         to categorize_decl_for_section.
223         (x86_64_elf_unique_section): Likewise.
224         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
225         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
226         (TARGET_ASM_RELOC_RW_MASK): New.
227         * config/ia64/ia64.c (ia64_rwreloc_select_section,
228         ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
229         (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
230         (TARGET_RWRELOC): Remove.
231         (ia64_section_type_flags): Adjust call to default_section_type_flags.
232         * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
233         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
234         (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
235         (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
236         (rs6000_xcoff_select_section): Use decl_readonly_section.
237         (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
238         * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
239         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
240         (TARGET_SECTION_TYPE_FLAGS): Remove.
241         * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
242
243 2007-03-09  Roger Sayle  <roger@eyesopen.com>
244
245         * fold-const.c (fold_comparison): Remove compile-time evaluation of
246         complex constant equality/inequality comparisons for here.
247         (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
248         known at compile-time or can be simplified to a scalar comparison.
249         (fold_relational_const): Move compile-time evaluation of complex
250         constant equality/inequality comparisons to here.
251
252 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
253
254         PR rtl-optimization/30643
255         * cse.c (cse_insn): Recompute dest_hash after insert_regs for
256         dest_addr_elt.
257         (fold_rtx): Recurse, like before 2006-11-03.
258
259 2007-03-09  DJ Delorie  <dj@redhat.com>
260
261         * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
262         m32c-pragma.o.
263
264 2007-03-09  Aldy Hernandez  <aldyh@redhat.com>
265
266         PR tree-optimization/30375
267         * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
268         LHS of statements is not the same.
269         * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
270
271 2007-03-09  Chao-ying Fu  <fu@mips.com>
272
273         * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
274         REV 2.
275         * doc/invoke.texi (-mdspr2): Document new option.
276         * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
277         New unspec for DSP REV 2.
278         (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
279         these instructions are extended in DSP REV 2.
280         (mips-dspr2.md): Include.
281         * config/mips/mips.opt (mdspr2): New option.
282         * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
283         MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
284         MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
285         (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
286         (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
287         (dsp_bdesc): Add DSP REV 2 builtins.  Remove 32-bit only DSP builtins.
288         (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
289         and 2 builtins.
290         (bdesc_map): Add one field of unsupported_target_flags.
291         (bdesc_arrays):  Update entries to have extra fields.  Add
292         dsp_32only_bdesc.
293         (mips_init_builtins): Initialize new function types.
294         Check unsupported_target_fileds to filter out builtins.
295         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
296         TARGET_DSPR2.
297         (ASM_SPEC): Pass mdspr2 to the assembler.
298         * config/mips/mips-dspr2.md: New file.
299
300 2007-03-09  Sa Liu  <saliu@de.ibm.com>
301
302         * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
303
304 2007-03-09  Ian Lance Taylor  <iant@google.com>
305
306         * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
307         argument) like -Wstrict-overflow=2.
308         * doc/invoke.texi (Warning Options): Update documentation.
309
310 2007-03-09  Dirk Mueller  <dmueller@suse.de>
311
312         PR c++/17946
313         * doc/invoke.texi (-Wlogical-op): Document.
314         * common.opt (-Wlogical-op): New.
315         * c-common.h (warn_logical_operator): Declare.
316         * c-common.c (warn_logical_operator): Define.
317         * c-typeck.c (parser_build_binary_op): Call
318         warn_logical_operator.
319
320 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
321
322         * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
323         * final.c (final_scan_insn): Test for non-"" file name.
324
325 2007-03-09  Sebastian Pop  <sebastian.pop@inria.fr>
326
327         * doc/loop.texi: Document the Omega linear constraints solver.
328         * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
329         omega-max-geqs, omega-max-eqs, omega-max-wild-cards, 
330         omega-hash-table-size, omega-max-keys, and 
331         omega-eliminate-redundant-constraints.
332         * tree-pass.h (pass_check_data_deps): Declared.
333         * omega.c: New.
334         * omega.h: New.
335         * timevar.def (TV_CHECK_DATA_DEPS): Declared.
336         * tree-ssa-loop.c (check_data_deps, gate_check_data_deps, 
337         pass_check_data_deps): New.
338         * tree-data-ref.c (init_data_ref): Remove declaration.
339         (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
340         (analyze_array): Renamed init_array_ref, move up initializations.
341         (init_data_ref): Renamed init_pointer_ref.  Moved before its call.
342         Removed arguments that are set to NULL.
343         (analyze_indirect_ref): Correct indentation, correct call to 
344         init_pointer_ref.
345         (object_analysis): Call init_array_ref instead of analyze_array.
346         (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
347         (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
348         of DR_ACCESS_FNS_ADDR.
349         (init_omega_eq_with_af, omega_extract_distance_vectors, 
350         omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
351         ddr_consistent_p): New.
352         (compute_affine_dependence): Check consistency of ddrs when 
353         flag_check_data_deps is passed.
354         (analyze_all_data_dependences): Uncomment.
355         (tree_check_data_deps): New.
356         * tree-data-ref.h: Include omega.h.
357         (DR_ACCESS_FNS_ADDR): Removed.
358         (data_dependence_relation): Add inner_loop.
359         (DDR_INNER_LOOP): New.
360         * common.opt (fcheck-data-deps): New.
361         * tree-flow.h (tree_check_data_deps): Declare.
362         * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
363         (OBJS-common): Depend on omega.o.
364         (omega.o): Define.
365         * passes.c (pass_check_data_deps): Scheduled.
366         * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS, 
367         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
368         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
369         PARAM_VECT_MAX_VERSION_CHECKS,
370         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
371
372 2007-03-09  Richard Guenther  <rguenther@suse.de>
373
374         PR tree-optimization/30904
375         PR middle-end/31058
376         * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
377         the same way as *_DIV_EXPR.
378
379 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
380
381         * recog.c (decode_asm_operands): No mixed declarations and code.
382
383 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
384
385         * rtl.def (ASM_INPUT): Add location.
386         * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
387         (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
388         (decode_asm_operands): Add loc operand.
389         (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
390         * stmt.c (expand_asm): Rename to...
391         (expand_asm_loc): ... this.  Add locus argument.  Pass it on to
392         gen_rtx_ASM_INPUT_loc.
393         (expand_asm_expr): Adjust.
394         * recog.c (decode_asm_operands): Add loc operand.
395         (check_asm_operands, extract_insn): Adjust.
396         * reload1.c (maybe_fix_stack_asms): Likewise.
397         * final.c (asm_insn_count): Likewise.
398         (final_scan_insn): Output # line before and after asm.
399
400 2007-03-09  Daniel Berlin  <dberlin@dberlin.org>
401
402         * tree-ssa-structalias.c (variable_info): Remove
403         finished_solution.
404         (new_var_info): Ditto.
405         (shared_bitmap_info_t): New structure.
406         (shared_bitmap_table): New variable.
407         (shared_bitmap_hash): New function.
408         (shared_bitmap_eq): Ditto
409         (shared_bitmap_lookup): Ditto.
410         (shared_bitmap_add): Ditto.
411         (merge_smts_into): Change to take bitmap directly.
412         (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
413         (init_alias_vars): Init shared bitmap hashtable.
414         (delete_points_to_sets): Delete shared bitmap hashtable.
415         * tree-ssa-operands.c (add_virtual_operand): Partially revert the
416         is_aliased removal as a change that was still necessary was
417         deleted.
418
419 2007-03-09  Uros Bizjak  <ubizjak@gmail.com>
420
421         * config/i386/i386.h (override_options): Conditionally disable
422         x86_sahf for 64bit targets only.
423
424 2007-03-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
425
426         PR C/31072
427         * c-decl.c (merge_decls): Don't call make_var_volatile.
428         * varasm.c (make_var_volatile): Remove.
429         * output.h (make_var_volatile): Remove.
430
431 2007-03-08  Zdenek Dvorak  <dvorakz@suse.cz>
432
433         PR tree-optimization/31085
434         * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
435
436 2007-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
437
438         * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
439         llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
440         ATTR_CONST_NOTHROW_LIST.
441         
442         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
443         FIX_TRUNC_EXPR.
444
445 2007-03-08  Diego Novillo  <dnovillo@redhat.com>
446
447         * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
448
449 2007-03-08  Geoffrey Keating  <geoffk@apple.com>
450
451         PR 31013
452         * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
453         is declared.
454         * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
455         passed, use shared libgcc.
456
457 2007-03-08  Roger Sayle  <roger@eyesopen.com>
458
459         * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
460         instead of calling build2 with a GIMPLE_MODIFY_STMT.
461         (honor_protect_cleanup_actions, lower_try_finally_switch):
462         Likewise.
463         * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
464         ifc_temp_var): Likewise.
465         * tree-inline.c (setup_one_parameter): Likewise.
466         * tree-mudflap.c (mf_decl_cache_locals,
467         mf_build_check_statement_for): Likewise.
468         * tree-nested.c (init_tmp_var, save_tmp_var,
469         finalize_nesting_tree_1): Likewise.
470         * tree-outof-ssa.c (insert_copy_on_edge,
471         insert_backedge_copies): Likewise.
472         * tree-profile.c (tree_gen_edge_profiler,
473         tree_gen_ic_profiler): Likewise.
474         * tree-scalar-evolution.c (scev_const_prop): Likewise.
475         * tree-sra.c (sra_build_assignment): Likewise.
476         * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
477         * tree-ssa-math-opts.c (insert_reciprocals,
478         execute_cse_sincos_1): Likewise.
479         * tree-tailcall.c (adjust_accumulator_values,
480         adjust_return_value): Likewise.
481         * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
482         * tree-vect-transform.c (vect_create_data_ref_ptr,
483         bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
484         vect_create_epilog_for_reduction, vectorizable_reduction,
485         vectorizable_call, vectorizable_conversion,
486         vectorizable_assignment, vectorizable_operation,
487         vectorizable_type_demotion, vect_gen_widened_results_half,
488         vect_permute_store_chain, vectorizable_store,
489         vect_setup_realignment, vect_permute_load_chain,
490         vectorizable_load, vectorizable_condition,
491         vect_create_cond_for_align_checks): Likewise.
492         * tree-vrp.c (build_assert_expr_for): Likewise.
493
494 2007-03-08  Ian Lance Taylor  <iant@google.com>
495
496         * tree-vrp.c: Include "intl.h".
497         (usable_range_p): New static function.
498         (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
499         overflowed values, juts set *strict_overflow_p.
500         (compare_values): Only return -2 if one of the operands is not a
501         constant.
502         (compare_ranges): Call usable_range_p.
503         (compare_range_with_value): Likewise.
504         (vrp_evaluate_conditional_warnv): Rename from
505         vrp_evaluate_conditional.  Make static.  Change all callers.
506         (vrp_evaluate_conditional): New function.
507         (simplify_div_or_mod_using_ranges): Issue warning about reliance
508         on signed overflow.
509         (simplify_abs_using_ranges): Likewise.
510         (simplify_stmt_for_jump_threading): Add within_stmt parameter.
511         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
512         within_stmt parameter.
513         * tree-ssa-propagate.c (fold_predicate_in): Update call to
514         vrp_evaluate_conditional.
515         * tree-ssa-threadedge.c
516         (record_temporary_equivalences_from_stmts_at_dest): Change
517         simplify parameter to take a second tree parameter.
518         (simplify_control_stmt_condition): Likewise.
519         (thread_across_edge): Likewise.
520         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
521         (thread_across_edge): Likewise.
522         * gcc/Makefile.in (tree-vrp.o): Depend upon intl.h.
523
524 2007-03-08  Uros Bizjak  <ubizjak@gmail.com>
525
526         * config/i386/i386.h (TARGET_SAHF): New define.
527         * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
528         Also enable for m_K8, m_AMDFAM10 and m_CORE2.
529         (x86_sahf): New global variable.
530         (override_options): Add PTA_NO_SAHF to pta_flags enum.  Recode
531         pta_flags masks using shifts.  Add PTA_NO_SAHF to x86_64 and
532         nocona processor flags.  Set x86_sahf when PTA_NO_SAHF is not set
533         in processor flags.  Do not unconditionally disable TARGET_USE_SAHF
534         for 64-bit.
535         (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
536         (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
537         when expanding fcomi/sahf based tests.
538         (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
539         expanding sahf based alternative. Emit sahf based sequence when
540         optimizing for code size.
541         * config/i386/i386.md (x86_sahf_1): Do not disable for
542         TARGET_64BIT, enable for TARGET_SAHF. 
543
544 2007-03-08  Martin Michlmayr  <tbm@cyrius.com>
545
546         * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
547         spurious whitespace from error message.
548
549 2007-03-08  Volker Reichelt  <reichelt@netcologne.de>
550
551         PR c++/30852
552         * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
553
554 2007-03-08  Alexandre Oliva  <aoliva@redhat.com>
555
556         * c-decl.c (grokdeclarator): Disable warnings for anonymous
557         bitfields.
558         * tree-sra.c (instantiate_element): Propagate disabled warnings
559         from the element itself to the created variable.
560
561 2007-03-07  Richard Henderson  <rth@redhat.com>
562
563         PR target/30848
564         * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
565         silently fix up the stack in the case of a missing register.
566
567 2007-03-07  Paul Brook  <paul@codesourcery.com>
568
569         * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
570
571 2007-03-07  Joseph Myers  <joseph@codesourcery.com>
572
573         * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
574         New.
575         (phase1_vrs): Use them.
576         (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
577         (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
578         __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
579         (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
580         __gnu_Unwind_Restore_WMMXC if required.
581         (_Unwind_VRS_Pop): Implement iWMMXt support.
582         * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
583         gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
584         gnu_Unwind_Save_WMMXC): Define.
585
586 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
587
588         * config/vxworks.h (vxworks_override_options): Declare.
589         (VXWORKS_OVERRIDE_OPTIONS): Use it.
590         * config/vxworks.c: Include target.h and toplev.h.
591         (vxworks_override_options): New function.
592         * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
593
594 2007-03-07  Andreas Krebbel  <krebbel1@de.ibm.com>
595
596         * config/s390/s390.c (override_options): Don't emit an error when
597         -mstack-size is used without providing -mstack-guard.
598         (s390_emit_prologue): Choose stack_guard value automatically if not
599         provided via command line.
600         * doc/invoke.texi: Adjust description of -mstack-guard and -mstack-size.
601
602 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
603
604         * config/i386/i386.c (output_set_got): Add a GOT initialization
605         sequence for VxWorks PIC.
606         (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
607         around labels as well as symbols.  Use gotoff_operand instead
608         of local_symbolic_operand.
609         (legitimize_pic_address): Use gotoff_operand instead of
610         local_symbolic_operand.  Use @GOT accesses for labels as
611         well as symbols.
612         (ix86_output_addr_diff_elt): Use PC-relative rather than
613         GP-relative offsets for VxWorks PIC.
614         (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
615         no_new_pseudos.  Check whether the returned register is op0.
616         * config/i386/i386.md (tablejump): Use PC-relative rather than
617         GP-relative offsets for VxWorks PIC.
618         * config/i386/predicates.md (gotoff_operand): New predicate.
619
620 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
621
622         * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
623         before defining.
624         * config/vxworks-dummy.h: New file.
625         * config/i386/i386.h: Include it.
626
627 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
628
629         * dwarf2out.c (is_inlined_entry_point): New
630         (add_high_low_attributes): Emit DW_AT_entry_pc along with
631         DW_AT_ranges if the first subblock is the entry point.
632
633 2007-03-06  David Daney  <ddaney@avtrex.com>
634
635         * doc/install.texi (mips-*-*): Change recommended binutils
636         version.
637
638 2007-03-06  Anatoly Sokolov <aesok@post.ru>
639
640         * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
641         ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162 
642         devices.
643         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
644         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
645
646 2007-03-06  Jan Hubicka  <jh@suse.cz>
647
648         * errors.h (warning, error, fatal, internal_error): Mark as cold.
649         * predict.c (maybe_hot_bb): Cold functions are never hot; hot functions
650         are hot.
651         (probably_cold_bb_p): Cold functions are cold.
652         (probably_never_executed_bb_p): Cold functions are cold.
653         (tree_bb_level_predictions): Predict calls to cold functions as not
654         taken.
655         (compute_function_frequency): Check hot/cold attributes.
656         * function.h (function_frequency): Update comments.
657         * predict.def (PRED_COLD_FUNCTION): Predict cold function.
658         * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
659         (c_common_att): Add cold and hot.
660
661         * doc/extend.texi (hot,cold attributes): Document.
662
663 2007-03-06  Andrew Haley  <aph@redhat.com>
664
665         * function.c (expand_function_end): Move blockage to just after we
666         emit the label for the naked return from the function.
667
668 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
669
670         * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
671         before redefining.
672
673 2007-03-06  Jan Hubicka  <jh@suse.cz>
674
675         * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
676         loaded for constant large models.  Non-large 64bit PIC can do.
677         * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
678         * cmodel.h: Add LARGE PIC.
679         * i386.md (UNSPEC_PLTOFF): New.
680         (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other unspecs as
681         needed.
682         (*call_1_rex64): Disable for large models.
683         (*call_1_rex64_large): New.
684         (*call_value_1_rex64): Disable for large models.
685         (*call_value_1_rex64_large): New.
686         (set_rip_rex4): New.
687         (set_got_offset_rex64): New.
688         * predicates.md (constant_call_address_operand): For large model
689         constant calls are not possible.
690         * i386-protos.h (construct_plt_address): Declare.
691         * i386.c (override_options): Accept large models.
692         (ix86_expand_prologue): Expand large PIC GOT pointer load.
693         (legitimate_constant_p): Add new UNSPECs.
694         (legitimate_pic_operand_p): Likewise.
695         (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
696         (legitimize_pic_address): Do easy RIP relative way for TLS only for
697         non-large model.
698         (output_pic_addr_const): Add PLTOFF.
699         (ix86_output_addr_diff_elt): Output 64bit tables when needed.
700         (ix86_expand_move): Legitimize pic address when in PIC mode.
701         (construct_plt_address): New function.
702         (ix86_expand_call): Offload the address to register and use GOT pointer
703         for large model.
704         * invoke.texi (mcmodel=large): Update documentation.
705
706 2007-03-06  Richard Henderson  <rth@redhat.com>
707
708         * config/i386/i386.c (x86_use_leave, x86_push_memory,
709         x86_zero_extend_with_and, x86_movx, x86_double_with_add,
710         x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
711         x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
712         x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
713         x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
714         x86_split_long_moves, x86_promote_QImode, x86_fast_prefix, 
715         x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
716         x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
717         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves, 
718         x86_partial_reg_dependency, x86_memory_mismatch_stall, 
719         x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
720         x86_sse_partial_reg_dependency, x86_sse_split_regs, 
721         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
722         x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
723         x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
724         x86_schedule, x86_use_bt, x86_pad_returns,
725         x86_use_xchgb): Merge into ...
726         (ix86_tune_features): ... here.  New array.
727         (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
728         x86_bswap): Merge into ...
729         (ix86_arch_features): ... here.  New array.
730         (x86_3dnow_a): Remove.
731         (x86_accumulate_outgoing_args): Make static.
732         (x86_arch_always_fancy_math_387): Make static.
733         (ix86_tune_mask, ix86_arch_mask): Move ...
734         (override_options): ... to local variables here.  Apply the
735         appropriate mask to each element of ix86_arch_features and
736         ix86_tune_features.  Adjust TARGET_CMOVE and TARGET_USE_SAHF
737         as were done in the old macros.
738         (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
739         * config/i386/i386.h (x86_use_leave, x86_push_memory,
740         x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
741         x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
742         x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
743         x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
744         x86_read_modify_write, x86_read_modify, x86_split_long_moves,
745         x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
746         x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
747         x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
748         x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
749         x86_partial_reg_dependency, x86_memory_mismatch_stall,
750         x86_accumulate_outgoing_args, x86_prologue_using_move,
751         x86_epilogue_using_move, x86_decompose_lea,
752         x86_arch_always_fancy_math_387, x86_shift1,
753         x86_sse_partial_reg_dependency, x86_sse_split_regs,
754         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,        
755         x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
756         x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
757         x86_use_incdec, x86_pad_returns, x86_bswap,
758         x86_partial_flag_reg_stall): Remove.
759         (enum ix86_tune_indices): New.
760         (ix86_tune_features): New.
761         (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
762         TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
763         TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
764         TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
765         TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
766         TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
767         TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
768         TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
769         TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
770         TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
771         TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
772         TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
773         TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
774         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
775         TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
776         TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
777         TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
778         TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
779         TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
780         TARGET_EXT_80387_CONSTANTS): Use it.
781         (enum ix86_arch_indices): New.
782         (ix86_arch_features): New.
783         (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
784         TARGET_BSWAP): Use it.
785         (ix86_tune_mask, ix86_arch_mask): Remove.
786
787 2007-03-06  Joseph Myers  <joseph@codesourcery.com>
788
789         PR bootstrap/31020
790         * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
791         Define using $${sysroot_headers_suffix}.
792         * configure: Regenerate.
793         * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
794         multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
795         defined.
796         * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
797         * gcc.c (print_sysroot_headers_suffix): New.
798         (option_map): Include --print-sysroot-headers-suffix.
799         (display_help): Mention -print-sysroot-headers-suffix.
800         (process_command): Handle -print-sysroot-headers-suffix.
801         (do_spec_1): Append multilib directory to include-fixed path if
802         sysroot suffixes in use.
803         (main): Handle -print-sysroot-headers-suffix.
804         * Makefile.in (start.encap): Don't depend on xlimits.h
805         (xlimits.h): Remove.
806         (stmp-int-hdrs): Don't depend on xlimits.h.  Inline generation of
807         limits.h for each multilib in fixinc_list.
808         (fixinc_list, s-fixinc_list): New.
809         (stmp-fixinc): Depend on fixinc_list.  If not copying headers,
810         generate them for each multilib in fixinc_list.
811         (stmp-fixproto): Use include-fixed.  Run fixproto for each
812         multilib in fixinc_list.
813         (mostlyclean): Don't remove xlimits.h.
814         (clean): Remove include-fixed.
815         (real-install-headers-tar, real-install-headers-cpio,
816         real-install-headers-cp): Don't copy include, only include-fixed.
817         (install-mkheaders): Depend on fixinc_list.  Don't depend on
818         xlimits.h.  Save limits.h files for each multilib in fixinc_list.
819         Always save mkinstalldirs.  Preserve ${sysroot_headers_suffix} in
820         SYSTEM_HEADER_DIR setting in mkheaders.conf.
821
822 2007-03-06  Jan Hubicka  <jh@suse.cz>
823
824         * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
825         NANs easilly.
826
827 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
828
829         * configure.ac: Allow tm_file to contain build-directory files.
830         * configure: Regenerate.
831         * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
832         * config/m68k/t-uclinux (sysroot-suffix.h): New target.
833         * config/m68k/print-sysroot-suffix.sh: New file.
834
835 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
836
837         * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
838         of pic_offset_table_rtx if reload_completed.
839         (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
840         PIC_OFFSET_TABLE_REGNUM.
841         * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
842         return true.
843         (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
844         (m68k_output_mi_thunk): Rewrite to use RTL.  Honor vcall_offset.
845
846 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
847
848         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
849         functions that call eh_return.
850
851 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
852
853         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
854         functions that need a constant pool.
855
856 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
857
858         PR target/28181
859         * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
860         (m68k_preferred_reload_class): Likewise.
861         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
862         (SECONDARY_RELOAD_CLASS): Define.
863         (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
864         (LIMIT_RELOAD_CLASS): Delete.
865         * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
866         registers from storing bytes.
867         (m68k_secondary_reload_class): New function.
868         (m68k_preferred_reload_class): Likewise.
869
870 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
871
872         * config/m68k/m68k.c (m68k_save_reg): Remove special case for
873         leaf functions.
874         (m68k_expand_prologue): Likewise.
875
876 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
877
878         * config/m68k/m68k-protos.h (output_sibcall): Declare.
879         (mips_expand_epilogue): Add a bool parameter.
880         (m68k_legitimize_sibcall_address): Declare.
881         * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
882         (m68k_expand_epilogue): Add a parameter to select between sibling
883         and normal epilogues.  Only generate a return for the latter.
884         (m68k_ok_for_sibcall_p): New function.
885         (m68k_legitimize_sibcall_address, output_sibcall): New functions.
886         * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
887         (sibcall_value, *sibcall_value): Likewise.
888         (*call, *call_value): Require !SIBLING_CALL_P.
889         (epilogue): Update call to m68k_expand_epilogue.
890         (sibcall_epilogue): New pattern.
891         * config/m68k/predicates.md (const_call_operand): Say that this
892         predicate applies to sibling calls too.
893         (sibcall_operand): New predicate.
894
895 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
896
897         * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
898         alternatives as movsi_cf.
899         (movsf_cf_hard): Add commentary.
900
901 2007-03-06  Kazu Hirata  <kazu@codesourcery.com>
902             Richard Sandiford  <richard@codesourcery.com>
903
904         * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
905         (m68k_movem_pattern_p, m68k_output_movem): Likewise.
906         (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
907         * config/m68k/m68k.h (EPILOGUE_USES): Define.  Treat all registers
908         as being live on exit from an interrupt function.
909         (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
910         * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
911         (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
912         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
913         (m68k_interrupt_function_p): Globalize.
914         (m68k_compute_frame_layout): Remove reverse mask code.
915         (m68k_emit_movem, m68k_set_frame_related): New functions.
916         (m68k_output_function_prologue): Delete in favor of...
917         (m68k_expand_prologue): ...this new function.
918         (m68k_output_function_epilogue): Delete in favor of...
919         (m68k_expand_epilogue): ...this new function.
920         (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
921         functions.
922         (print_operand): Handle %?.
923         * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
924         (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
925         (prologue, epilogue): New patterns.
926         (return): Turn into a define_expand.
927         (*return): New pattern, derived from old "return" pattern.  Use rte
928         rather than rts for interrupt functions.  Only use rtd if the pop
929         count is nonzero.
930         (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
931         (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
932         (link, *link, unlink, *unlink, load_got): Likewise.
933
934 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
935
936         PR target/23482
937         PR target/17114
938         * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
939         (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
940         (m68k_matches_q_p, m68k_matches_u_p): Likewise.
941         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
942         and m68k_matches_u_p.
943         (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
944         (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
945         (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
946         (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
947         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
948         (REG_STRICT_P): New macro.
949         (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
950         PCREL_GENERAL_OPERAND_OK.
951         (REG_OK_FOR_BASE_P): Merge definitions.  Use REG_STRICT_P and
952         m68k_legitimate_base_reg_p.
953         (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
954         (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
955         (PIC_CASE_VECTOR_ADDRESS): Update comment.
956         * config/m68k/m68k.c (m68k_address): New structure.
957         (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
958         (m68k_decompose_index, m68k_legitimate_constant_address_p)
959         (m68k_jump_table_ref_p, m68k_decompose_address)
960         (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
961         (m68k_matches_u_p): New functions.
962         (print_operand_address): Rewrite to use m68k_decompose_index.
963
964 2007-03-05  David Taylor  <dtaylor@emc.com>
965
966         * gcc.c: Correct copyright date in --version output.
967
968 2007-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
969
970         * pa.md: In unamed move patterns, disparge copies between general
971         and floating point registers using '?' modifier.  Don't include 'f'
972         constraint for register preferences in DImode, SImode, HImode and
973         QImode patterns.  Likewise for 'r' in DFmode and SFmode patterns.
974         Remove constraints for copies between general and floating registers
975         in soft-float DFmode pattern.
976         (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
977         floating register.
978         (movsf): Likewise. 
979
980 2007-03-05  Mike Stump  <mrs@apple.com>
981
982         * c-common.c (targetcm): Add.
983         * c-opts.c (c_common_handle_option): Handle language specific
984         target options.
985         * opts.c (handle_option): Verify language for target options, if
986         any are given.
987         * opth-gen.awk: Add CL_LANG_ALL.
988         * target-def.h (TARGET_HANDLE_C_OPTION): Add.
989         (TARGETCM_INITIALIZER): Add.
990         * target.h (struct gcc_targetcm): Add.
991         (targetcm): Add.
992         * targhooks.c (default_handle_c_option): Add.
993         * targhooks.h (default_handle_c_option): Add.
994         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
995
996         * config/darwin.opt (iframework): Add.
997         * config/darwin.h (TARGET_HAS_TARGETCM): Add.
998         * config/darwin-c.c (handle_c_option): Add.
999         (TARGET_HANDLE_C_OPTION): Add.
1000         (targetcm): Add.
1001         * doc/invoke.texi (Darwin Options): Add -iframework.
1002
1003 2007-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1004
1005         * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
1006         conversion.
1007
1008 2007-03-05  Ian Lance Taylor  <iant@google.com>
1009
1010         * c.opt (fgnu89-inline): New option.
1011         * c-opts.c (c_common_post_options): Set default value for
1012         flag_gnu89_inline.
1013         * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
1014         (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
1015         inline functions.
1016         (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
1017         (grokdeclarator, start_function): Likewise.
1018         * c-cppbuiltin.c (c_cpp_builtins): Define either
1019         __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
1020         * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
1021         (C Dialect Options): Document -fgnu89-inline.
1022         * doc/extend.texi (Function Attributes): Explain what the
1023         gnu_inline attribute does.
1024         * doc/cpp.texi (Common Predefined Macros): Document
1025         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
1026
1027 2007-03-05  Ian Lance Taylor  <iant@google.com>
1028
1029         PR tree-optimization/31034
1030         * tree-vrp.c (extract_range_from_assert): Don't try to handle a
1031         half-range if the other side is an overflow infinity.
1032
1033 2007-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1034
1035         * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
1036         (bfin*-linux-uclibc*): New configuration.
1037         * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
1038         defining.
1039         * config/bfin/linux.h: New file.
1040         * config/bfin/libgcc-bfin.ver: New file.
1041         * config/bfin/t-bfin-uclinux: New file.
1042         * config/bfin/t-bfin-linux: New file.
1043         * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
1044         (TARGET_OS_CPP_BUILTINS): New macro.
1045
1046 2007-03-05  Richard Guenther  <rguenther@suse.de>
1047
1048         * fold-const.c (fold_binary): Remove duplicate folding
1049         of comparison of non-null ADDR_EXPR against null.
1050
1051 2007-03-05  Richard Guenther  <rguenther@suse.de>
1052             Dorit Nuzman  <dorit@il.ibm.com>
1053
1054         PR tree-optimization/26420
1055         * tree-vectorizer.c (vectorize_loops): Bail out early if there
1056         are no loops in the function.  Only print the number of
1057         vectorized loops if it is greater than zero or we are supposed
1058         to print information about unvectorized loops.
1059
1060 2007-03-05  Revital Eres  <eres@il.ibm.com>
1061
1062         * gcc.dg/var-expand1.c: New test.
1063         * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
1064         when an accumulator is expanded.
1065
1066 2007-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1067
1068         PR other/30465
1069         * c-common.c (convert_and_check): Don't give warnings for
1070         conversion if 'expr' already overflowed.
1071         
1072 2007-03-04  Roger Sayle  <roger@eyesopen.com>
1073
1074         PR middle-end/30744
1075         * fold-const.c (fold_comparison): Enforce type consistency when
1076         transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.
1077
1078 2007-03-04  Zdenek Dvorak  <dvorakz@suse.cz>
1079
1080         * tree-ssa-address.c (create_mem_ref): Do not put an expression
1081         containing a cast to the base of TARGET_MEM_REF.
1082
1083 2007-03-04  Martin Michlmayr  <tbm@cyrius.com>
1084
1085         * tree.c (tree_contains_struct_check_failed): Remove spurious
1086         whitespace from error message.
1087
1088 2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
1089
1090         PR target/30406
1091         * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
1092         instead of precision.
1093
1094 2007-03-04  Roman Zippel <zippel@linux-m68k.org>
1095             Nathan Sidwell  <nathan@codesourcery.com>
1096
1097         * emit-rtl.c (find_auto_inc): New.
1098         (try_split): recreate REG_INC notes,
1099         Use regular for loops rather than whiles.
1100
1101 2007-03-03  Andreas Schwab  <schwab@suse.de>
1102
1103         * configure.ac (HAVE_AS_REL16): Move test back to correct place.
1104         * configure: Regenerate.
1105
1106 2007-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1107
1108         * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
1109         flag_rounding_math, not flag_unsafe_math_optimizations.
1110
1111         * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
1112         fold_build2.
1113         * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
1114         alpha_fold_vector_minmax): Likewise.
1115         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
1116         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
1117
1118 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
1119
1120         * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
1121         (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
1122         if the lhs has side-effects.
1123         <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
1124
1125 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
1126
1127         * config/i386/i386.h (TUNEMASK): Remove define.
1128         (ARCHMASK): Remove define.
1129         (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
1130          Use ix86_arch_mask variable instead of ARCHMASK.
1131         * config/i386/i386.c (override_options): Ditto.
1132         (standard_80387_constant_p): Ditto.
1133
1134 2007-03-02  Ian Lance Taylor  <iant@google.com>
1135
1136         Used signed infinities in VRP.
1137         * tree-vrp.c (uses_overflow_infinity): New static function.
1138         (supports_overflow_infinity): New static function.
1139         (make_overflow_infinity): New static function.
1140         (negative_overflow_infinity): New static function.
1141         (positive_overflow_infinity): New static function.
1142         (is_negative_overflow_infinity): New static function.
1143         (is_positive_overflow_infinity): New static function.
1144         (is_overflow_infinity): New static function.
1145         (overflow_infinity_range_p): New static function.
1146         (compare_values_warnv): New function split out of compare_values.
1147         (compare_value): Call it.
1148         (set_value_range_to_nonnegative): Add overflow_infinity
1149         parameter.  Change caller.
1150         (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
1151         Change callers.
1152         (vrp_expr_computes_nonzero): Likewise.
1153         (compare_ranges, compare_range_with_value): Likewise.
1154         (compare_name_with_value, compare_names): Likewise.
1155         (vrp_evaluate_conditional): Likewise.
1156         (set_value_range): Handle infinity
1157         (vrp_operand_equal_p, operand_less_p): Likewise.
1158         (extract_range_from_assert): Likewise.
1159         (vrp_int_const_binop): Likewise.
1160         (extract_range_from_binary_expr): Likewise.
1161         (extract_range_from_unary_expr): Likewise.
1162         (extract_range_from_comparison): Likewise.
1163         (extract_range_from_expr): Likewise.
1164         (dump_value_range): Likewise.
1165         (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
1166         (test_for_singularity): Likewise.
1167         (vrp_int_const_binop): Remove inline qualifier.
1168         (adjust_range_with_scev): Add comment.
1169         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
1170
1171 2007-03-02  Diego Novillo  <dnovillo@redhat.com>
1172
1173         * tree-ssa-structalias.c (could_have_pointers): Tidy.
1174         (get_constraint_for): Likewise.
1175         (do_structure_copy): Likewise.
1176         (find_func_aliases): Fix references to MODIFY_EXPR.
1177         (intra_create_variable_infos): Tidy.
1178         * tree-ssa-operands.c (add_virtual_operand): Add argument
1179         IS_CALL_SITE.
1180         When adding members of alias sets, if IS_CALL_SITE is true and
1181         the symbol is not call-clobbered, skip it.
1182         Adjust all callers.
1183
1184 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
1185
1186         * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
1187         entry by means of emit_insn_at_entry.
1188
1189 2007-03-02  Richard Henderson  <rth@redhat.com>
1190
1191         * expr.h (promoted_input_arg): Remove decl.
1192         * function.c (promoted_input_arg): Merge into ...
1193         * combine.c (setup_incoming_promotions): ... only caller.
1194         Rearrange to avoid double loop.
1195
1196 2007-03-02  Ben Elliston  <bje@au.ibm.com>
1197             Peter Bergner  <bergner@vnet.ibm.com>
1198             Janis Johnson  <janis187@us.ibm.com>
1199
1200         * config/rs6000/dfp.md: New file.
1201         * config/rs6000/rs6000.md: Include dfp.md.
1202         (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
1203         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
1204         and TDmode decimal float modes in FP registers.
1205         (num_insns_constant): Likewise.
1206         (rs6000_legitimate_offset_address_p): Likewise.
1207         (rs6000_legitimize_address): Likewise.
1208         (rs6000_legitimize_reload_address): Likewise.
1209         (rs6000_legitimate_address): Likewise.
1210         (rs6000_emit_move): Likewise.
1211         (function_arg_boundary): Likewise.
1212         (function_arg_advance): Likewise.
1213         (rs6000_darwin64_record_arg_recurse): Likewise.
1214         (function_arg): Likewise.
1215         (rs6000_gimplify_va_arg): Likewise.
1216         (rs6000_split_multireg_move): Likewise.
1217         (rs6000_output_function_epilogue): Likewise.
1218         (rs6000_output_function_epilogue): Likewise.
1219         (rs6000_register_move_cost): Likewise.
1220         (rs6000_function_value): Likewise.
1221         (rs6000_libcall_value): Likewise.
1222
1223 2007-03-02  Richard Sandiford  <richard@codesourcery.com>
1224
1225         * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
1226
1227 2007-03-02  Richard Sandiford  <richard@codesourcery.com>
1228
1229         * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
1230         Use $MULTIDIR to choose between the kernel and RTP headers,
1231         and use $WIND_BASE and $WIND_USR to locate them.
1232
1233 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
1234
1235         * config/i386/i386.c (override_options): Put initialization of
1236         ix86_tune_mask and ix86_arch_mask to the correct place.
1237
1238 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
1239             Michael Meissner  <michael.meissner@amd.com>
1240
1241         PR target/31019
1242         * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
1243         (ARCHMASK): Define.
1244         (TARGET_CMOVE): Use ARCHMASK.
1245         (TARGET_CMPXCHG): Ditto.
1246         (TARGET_CMPXCHG8B): Ditto.
1247         (TARGET_XADD): Ditto.
1248         (TARGET_BSWAP): Ditto.
1249         * config/i386/i386.c (ix86_tune_mask): New global variable.
1250         (ix86_arch_mask): Ditto.
1251         (override_options): Initialize ix86_tune_mask and
1252         ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
1253         target_flags.
1254
1255 2007-03-02  Ben Elliston  <bje@au.ibm.com>
1256
1257         PR 30992
1258         * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
1259
1260 2007-03-02  Joseph Myers  <joseph@codesourcery.com>
1261
1262         * target.h (init_dwarf_reg_sizes_extra): New target hook.
1263         * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
1264         * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
1265         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
1266         hook.
1267         * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
1268         rs6000_init_dwarf_reg_sizes_extra): New.
1269         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
1270         SPE register high parts.
1271
1272 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
1273
1274         * Makefile.in: Add install-pdf target as
1275         copied from automake v1.10 rules.
1276         * configure.ac: Add install-pdf to target list.
1277         * configure: Regenerate.
1278
1279 2007-03-01  Paul Brook  <paul@codesourcery.com>
1280
1281         * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
1282         modes to LDRD for DImode.
1283         (output_move_double): Fixup out of range ldrd/strd.
1284         (vfp_secondary_reload_class): Rename...
1285         (coproc_secondary_reload_class): ... to this.  Add wb argument.
1286         * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
1287         coproc_secondary_reload_class for CLASS_IWMMXT.
1288         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
1289         * arm-protos.h (coproc_secondary_reload_class): Update prototype.
1290
1291 2007-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
1292
1293         * tree-ssa-loop-prefetch.c (determine_unroll_factor):  Bound the unroll
1294         factor by the estimated number of iterations.
1295         (loop_prefetch_arrays): Do not prefetch in loops that iterate less than
1296         prefetch latency.
1297
1298         * config/i386/driver-i386.c (describe_cache, detect_caches_amd,
1299         decode_caches_intel, detect_caches_intel): New functions.
1300         (host_detect_local_cpu): Use detect_caches_amd and
1301         detect_caches_intel.
1302
1303 2007-03-01  Richard Henderson  <rth@redhat.com>
1304
1305         * expr.c (emit_move_complex_push): Export.
1306         (emit_move_complex_parts): Split out from ...
1307         (emit_move_complex): ... here.
1308         * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
1309         * config/i386/i386.md (movcdi): New.
1310
1311 2007-03-01  Uros Bizjak  <ubizjak@gmail.com>
1312
1313         * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
1314         size of mode1 to check for tieable modes in MMX case.
1315
1316 2007-03-01  Richard Sandiford  <richard@codesourcery.com>
1317
1318         * Makefile.in (rtlanal.o): Depend on tree.h.
1319         * rtl.h (offset_within_section_p, split_const): Declare.
1320         * rtlanal.c: Include tree.h.
1321         (offset_within_block_p): New function, taken from
1322         mips_offset_within_object_p.
1323         (split_const): New function, taken from mips_split_const.
1324         * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
1325         Declare.
1326         * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
1327         (CONSTANT_ADDRESS_P): Only accept legitimate constants.
1328         (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
1329         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
1330         (m68k_illegitimate_symbolic_constant_p): New function.
1331         * config/m68k/m68k.md (movsi): Remove misleading predicates.
1332         If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
1333         symbolic constant that might be outside the symbol's section,
1334         move the symbol first and then add the offset.
1335         * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
1336         Override.
1337         * config/mips/mips.c (mips_split_const): Delete.
1338         (mips_offset_within_object_p): Delete.
1339         (mips_symbolic_constant_p): Use offset_within_section_p and
1340         split_const instead of mips_offset_within_object_p and
1341         mips_split_const.
1342         (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
1343         (mips_legitimize_const_move, print_operand_reloc)
1344         (mips_dangerous_for_la25_p): Use split_const instead of
1345         mips_split_const.
1346
1347 2007-02-28  Eric Christopher  <echristo@apple.com>
1348
1349         * Makefile.in (install-include-dir): Don't rm -rf include.
1350
1351 2007-02-28  Richard Guenther  <rguenther@suse.de>
1352
1353         PR middle-end/30364
1354         * fold-const.c (fold_binary): Do not associate expressions
1355         with more than one variable for integer types that do not wrap.
1356
1357 2007-02-28  Sandra Loosemore  <sandra@codesourcery.com>
1358
1359         * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
1360         Delete, and replace with...
1361         (fold_builtin_call_array): This.  Update callers to use it.
1362         * fold-const.c (fold_build_call_list): Delete, and replace with...
1363         (fold_build_call_array): This.
1364         (fold_build_call_list_initializer): Delete, and replace with...
1365         (fold_build_call_array_initializer): This.
1366         * tree.h: Update declarations to reflect above changes.
1367
1368         * c-typeck.c (build_function_call): Store converted arguments
1369         in a stack-allocated array instead of building a list.
1370         (convert_arguments): Store arguments in the array passed in as an
1371         argument, and return the actual number of arguments.
1372         * c-format.c: (check_function_format): Pass arguments in an
1373         array instead of a list.
1374         * c-common.c (check_function_nonnull): Likewise.
1375         (check_function_sentinel): Likewise.
1376         (check_function_arguments): Likewise.
1377         * c-common.h: Update declarations to reflect above changes.
1378
1379 2007-02-28  Jan Hubicka  <jh@suse.cz>
1380
1381         * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
1382         PRED_NEGATIVE_RETURN): Update outcomes.
1383
1384 2007-02-28  Bernd Schmidt  <bernd.schmidt@analog.com>
1385
1386         * calls.c (emit_library_call_value_1): Handle partial registers
1387         correctly when building up CALL_INSN_FUNCTION_USAGE.
1388
1389 2007-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1390
1391         * pa/predicates.md (move_src_operand): Allow zero for mode.
1392         * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
1393         move pattern.
1394
1395 2007-02-27  Uros Bizjak  <ubizjak@gmail.com>
1396
1397         PR target/30970
1398         * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
1399         *movv2df_internal): Enable pattern only for valid operand
1400         combinations.
1401         * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
1402         tie only 128bit modes. For MMX registers, tie only 64bit modes.
1403
1404 2007-02-27  Mike Stump  <mrs@apple.com>
1405
1406         * config/darwin-crt3.c: Avoid compilation when compiling for a
1407         kext multilib.
1408
1409 2007-02-27  Joseph Myers  <joseph@codesourcery.com>
1410
1411         * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
1412         FIXED_INCLUDE_DIR.
1413         (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
1414         for fixed headers and limits.h.
1415         (install-include-dir, install-headers-tar, install-headers-cpio,
1416         install-headers-cp, real-install-headers-tar,
1417         real-install-headers-cpio, real-install-headers-cp): Handle
1418         include-fixed as well as include.
1419         (install-mkheaders): Don't install files that go only in include
1420         not include-fixed.
1421         * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
1422         from GCC_INCLUDE_DIR.
1423         * gcc.c (process_command): Remove special -BstageN/ handling.
1424         (do_spec_1): Add include-fixed directories.
1425
1426 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
1427
1428         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
1429         _smulsi3_highpart.
1430         * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
1431         New functions.
1432         * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
1433         patterns.
1434
1435 2007-02-27  Mark Mitchell  <mark@codesourcery.com>
1436
1437         * c-common.c (get_priority): Add check for
1438         SUPPORTS_INIT_PRIORITY.
1439
1440 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
1441
1442         * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
1443
1444         * config/bfin/bfin.c: Include "cfglayout.h".
1445         (MAX_LSETUP_DISTANCE): New macro.
1446         (struct loop_info): New members incoming, incoming_src and
1447         incoming_dest.  Delete member predecessor.
1448         (length_for_loop): New function.
1449         (bfin_optimize_loop): Handle more different loop structures.
1450         (bfin_discover_loop): Rework detection of predecessor blocks by
1451         examining incoming edges.
1452         (bfin_discover_loops, bfin_free_loops): New functions, broken out of
1453         bfin_reorg_loops.
1454         (bfin_reorder_loops): New function.
1455         (bfin_reorg_loops): Use these three new functions.
1456
1457         * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
1458         REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
1459         (CONSTRAINT_LEN): Add entry for 'q'.
1460         (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
1461         Add 'q' constraints.
1462         (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
1463         (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
1464
1465         * config/bfin/bfin.md (add_with_carry): New pattern.
1466         (s_or_u, su_optab, su_modifier): New code macros/attrs.
1467         (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
1468         <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
1469         support unsigned multiplies too.  Removed incorrect commutativity from
1470         operand 1 constraint where appropriate.
1471         (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
1472         patterns.
1473         (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
1474         <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
1475         New patterns.
1476         (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
1477         usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
1478         usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
1479         usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
1480         usmulhisi_hh_huh): New patterns.
1481
1482         * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
1483         lshifthi3): Fix output template to use half reg for operand 2.
1484
1485         * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
1486         instead of R2.
1487
1488         * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
1489
1490 2007-02-27  Andreas Schwab  <schwab@suse.de>
1491
1492         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
1493
1494 2007-02-27  Jan Hubicka  <jh@suse.cz>
1495
1496         * predict.c (last_basic_block_p): Remove.
1497         (tree_estimate_probability): Update return heuristic for commonized
1498         return blocks.
1499
1500 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
1501
1502         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
1503
1504 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
1505
1506         * doc/include/gcc-common.texi (versionsubtitle): New macro.
1507         * doc/cpp.texi: Standardize title page.
1508         * doc/cppinternals.texi: Likewise.
1509         * doc/gcc.texi: Standardize title page, remove version number
1510         from copyright page.
1511         * doc/gccint.texi: Likewise.
1512         * doc/install.texi: Standardize title page, add table of
1513         contents.
1514
1515 2007-02-26  Jan Hubicka  <jh@suse.cz>
1516
1517         * predict.def: Set outcomes according to more recent results.
1518         (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
1519         Remove dead predictors.
1520         * predict.c (return_prediction): Fix pasto.
1521
1522 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
1523
1524         * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
1525         change; avoid a memory leak when returning early.
1526
1527 2007-02-26  Mark Mitchell  <mark@codesourcery.com>
1528
1529         * c-decl.c (static_ctors): Move to c-common.c.
1530         (static_dtors): Likewise.
1531         (finish_function): Use c_record_cdtor_fn.
1532         (build_cdtor): Move to c-common.c.
1533         (c_write_global_declarations): Use c_build_cdtor_fns.
1534         * c-common.h (static_ctors): Declare.
1535         (static_dtors): Likewise.
1536         (c_record_cdtor_fn): Likewise.
1537         (c_build_cdtor_fns): Likewise.
1538         * c-common.c (static_ctors): New variable.
1539         (static_dtors): Likewise.
1540         (c_record_cdtor_fn): New function.
1541         (build_cdtor): Move from c-decl.c
1542         (c_build_cdtor_fns): New function.
1543
1544         * output.h (assemble_addr_to_section): Declare.
1545         (get_cdtor_priority_section): Likewise.
1546         * varasm.c (assemble_addr_to_section): New function.
1547         (get_cdtor_priority_section): Likewise.
1548         (default_named_section_asm_out_destructor): Use them.
1549         (destor_dtor_section_asm_out_destructor): Likewise.
1550         (default_named_section_asm_out_constructor): Likewise.
1551         (default_ctor_section_asm_out_constructor): Likewise.
1552         * config.gcc (*-*-vxworks*): Include vxworks.o.
1553         * config/t-vxworks (vxworks.o): New target.
1554         * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
1555         (TARGET_ASM_CONSTRUCTOR): Define.
1556         (TARGET_ASM_DESTRUCTOR): Likewise.
1557         (vxworks_asm_out_constructor): Declare.
1558         (vxworks_asm_out_destructor): Likewise.
1559
1560         * c-common.c (get_priority): Check that we have not just an
1561         INTEGER_CST, but an integer constant with integeral type.
1562
1563 2007-02-25  Uros Bizjak  <ubizjak@gmail.com>
1564
1565         PR tree-optimization/30938
1566         * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
1567         use &dt[nargs-1] instead of &dt[nargs] in the call to
1568         vect_is_simple_use().
1569
1570 2007-02-25  Ulrich Weigand  <uweigand@de.ibm.com>
1571
1572         * reload.c (find_reloads_address_1): Handle PLUS expressions resulting
1573         from register elimination as PRE_MODIFY / POST_MODIFY increments.
1574         Do not attempt to handle MEM inside auto-inc expressions.
1575         * reload1.c (eliminate_regs_1): Do not attempt to handle elimination
1576         of a register modified by an auto-inc expression.  However, do handle
1577         elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
1578         (elimination_effects): Prohibit elimination of a register modified
1579         by an auto-inc expression.  Disable register elimination rules whose
1580         target register is modified by an auto-inc expression with variable
1581         increment.
1582
1583 2007-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
1584
1585         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
1586         off-by-one error.
1587         (array_at_struct_end_p): New function.
1588         (idx_infer_loop_bounds): Use it.
1589         (estimate_numbers_of_iterations_loop): Export.
1590         * predict.c (predict_loops): Use estimated_loop_iterations_int.
1591         Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
1592         (tree_estimate_probability): Call record_loop_exits.
1593         * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
1594         (estimated_loop_iterations, estimated_loop_iterations_int,
1595         estimated_loop_iterations_tree): New functions.
1596         (analyze_siv_subscript_cst_affine,
1597         compute_overlap_steps_for_affine_1_2,
1598         analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
1599         (analyze_miv_subscript): Use estimated_loop_iterations_tree.
1600         * predict.def (PRED_LOOP_ITERATIONS): Update comment.
1601         (PRED_LOOP_ITERATIONS_GUESSED): New.
1602         * cfgloop.c (record_loop_exits): Do nothing if there are no loops.
1603         * cfgloop.h (estimate_numbers_of_iterations_loop,
1604         estimated_loop_iterations_int): Declare.
1605
1606 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
1607
1608         * doc/extend.texi: Document optional priority argument to
1609         constructors and destructors.
1610         * tree.c (init_priority_for_decl): Adjust GTY markers.
1611         (init_ttree): Use priority-info hash functions for
1612         init_priority_for_decl.
1613         (tree_map_eq): Rename to ...
1614         (tree_map_base_eq): ... this.
1615         (tree_map_marked_p): Rename to ...
1616         (tree_map_base_marked_p): ... this.
1617         (tree_map_base_hash): New function.
1618         (decl_init_priority_lookup): Rework.
1619         (decl_fini_priority_lookup): New function.
1620         (decl_priority_info): New function.
1621         (decl_init_priority_insert): Use it.
1622         (decl_fini_priority_insert): Likewise.
1623         (decl_restrict_base_lookup): Adjust for refactoring of tree_map
1624         hierarchy.
1625         (decl_restrict_base_insert): Likewise.
1626         (decl_debug_expr_insert): Likewise.
1627         (decl_value_expr_lookup): Likewise.
1628         (decl_value_expr_insert): Likewise.
1629         * tree.h (priority_type): New type.
1630         (decl_init_priority_lookup): Use priority_type.
1631         (decl_fini_priority_lookup): New function.
1632         (decl_init_priority_insert): Use priority_type.
1633         (decl_fini_priority_insert): New function.
1634         (DECL_HAS_INIT_PRIORITY): Tweak comments.
1635         (DECL_INIT_PRIORITY): Likewise.
1636         (SET_DECL_INIT_PRIORITY): Add comment.
1637         (DECL_FINI_PRIORITY): New macro.
1638         (SET_DECL_FINI_PRIORITY): Likewise.
1639         (DEFAULT_INIT_PRIORITY): Document.
1640         (MAX_INIT_PRIORITY): Likewise.
1641         (MAX_RESERVED_INIT_PRIORITY): Likewise.
1642         (tree_map_base): New type.
1643         (tree_map_base_eq): New function.
1644         (tree_map_base_hash): Likewise.
1645         (tree_map_base_marked_p): Likewise.
1646         (tree_map): Inherit from tree_map_base.
1647         (tree_map_eq): Make it a macro.
1648         (tree_map_marked_p): Likewise.
1649         (tree_int_map): Inherit from tree_map_base.
1650         (tree_int_map_eq): Make it a macro.
1651         (tree_int_map_hash): Likewise.
1652         (tree_int_map_marked_p): Likewise.
1653         (tree_priority_map): New type.
1654         (tree_priority_map_eq): New macro.
1655         (tree_priority_map_hash): Likewise.
1656         (tree_priority_map_marked_p): Likewise.
1657         * varasm.c (emults_decl): Adjust for refactoring of tree_map
1658         hierarchy.
1659         (emutls_common_1): Likewise.
1660         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
1661         * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
1662         of tree_map hierarchy.
1663         * tree-cfg.c (move_stmt_r): Likewise.
1664         (new_label_mapper): Likewise.
1665         * c-tree.h (c_expand_body): Move to ...
1666         * c-common.h (c_expand_body): ... here.
1667         * c-decl.c (c_expand_body): Move to ...
1668         * c-common.c (c_expand_body): ... here.
1669         (c_common_attribute_table): Allow 1 argument for the constructor
1670         and destructor attributes.
1671         (get_priority): New function.
1672         (handle_constructor_attribute): Set DECL_INIT_PRIORITY.
1673         (handle_destructor_attribute): Set DECL_FINI_PRIORITY.
1674
1675 2007-02-24  Jan Hubicka  <jh@suse.cz>
1676
1677         PR middle-end/30509
1678         * tree-inline.c (copy_bb): Produce exact copy of EH info when copying for inlining.
1679
1680 2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
1681             Jan Hubicka  <jh@suse.cz>
1682
1683         PR target/30778
1684         * i386.c (counter_mode): New function.
1685         (expand_set_or_movmem_via_loop): Use it.
1686         (expand_movmem_epilogue): Likewise; fix pasto.
1687         (ix86_expand_movmem): Do emit guard even for constant counts.
1688         (ix86_expand_setmem): Likewise.
1689
1690 2007-02-25  Nick Clifton  <nickc@redhat.com>
1691
1692         * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
1693         (JUMP_TABLES_IN_TEXT_SECTION): Define.
1694
1695 2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
1696
1697         PR target/30770
1698         * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
1699         count argument with 0x10, not with 0x16.
1700         (expand_setmem_epilogue): Ditto.
1701
1702 2007-02-24  Mike Stump  <mrs@apple.com>
1703
1704         * config/i386/i386.c (output_pic_addr_const): Stubify optimized
1705         symbols.
1706
1707 2007-02-24  Richard Guenther  <rguenther@suse.de>
1708
1709         PR middle-end/30951
1710         * fold-const.c (fold_binary): Fold x +- CST op x for
1711         EQ_EXPR and NE_EXPR.
1712
1713 2007-02-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1714
1715         * pa.md (muldi3): Force subregs to registers in 64-bit expander.
1716
1717 2007-02-24  Jan Hubicka  <jh@suse.cz>
1718
1719         * cgraphunit.c (decide_is_function_needed): Honor
1720         -fkeep-inline-functions.
1721
1722 2007-02-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1723
1724         * builtins.c (fold_builtin_modf): New.
1725         (fold_builtin_2): Use it.
1726
1727 2007-02-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1728
1729         * loop-iv.c (implies_p): Detect additional cases where A implies B.
1730         (determine_max_iter): Take additional LOOP arg; all callers changed.
1731         Lose broken logic dealing with PLUS.  Try to limit the upper bound by
1732         one using simplifications.
1733         (simplify_using_initial_values): Return if the expression becomes
1734         invalid due to altered regs.
1735
1736 2007-02-23  DJ Delorie  <dj@redhat.com>
1737
1738         * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
1739
1740 2007-02-23  Mike Stump  <mrs@apple.com>
1741
1742         * tlink.c (scan_linker_output): Parse linker messages from
1743         darwin9's linker better.
1744
1745 2007-02-23  Steve Ellcey  <sje@cup.hp.com>
1746
1747         PR debug/29614
1748         * varpool.c (varpool_assemble_pending_decls):  Set
1749         varpool_last_needed_node to null.
1750
1751 2007-02-23  DJ Delorie  <dj@redhat.com>
1752
1753         * config/i386/i386.c (ix86_data_alignment): Don't specify an
1754         alignment bigger than the object file can handle.
1755
1756 2007-02-23  Uros Bizjak  <ubizjak@gmail.com>
1757
1758         PR target/30825
1759         * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
1760         zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
1761         (*movsf_1): Penalize MMX moves.
1762
1763 2007-02-23  Bernd Schmidt  <bernd.schmidt@analog.com>
1764
1765         * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
1766         2^32-1 or more times unless flag_unsafe_loop_optimizations.
1767
1768         * loop-iv.c (determine_max_iter): Moved in front of its sole user.
1769
1770 2007-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1771
1772         * builtins.c (fold_builtin_logb, fold_builtin_significand): New.
1773         (fold_builtin_1): Use them.
1774         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
1775         BUILT_IN_SIGNIFICAND.
1776
1777 2007-02-23  H.J. Lu  <hongjiu.lu@intel.com>
1778
1779         * config/i386/i386.c (bdesc_1arg): Initialize
1780         IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
1781         "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
1782         (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
1783         and IX86_BUILTIN_MOVSLDUP.
1784
1785 2007-02-22  Paolo Bonzini  <bonzini@gnu.org>
1786
1787         PR rtl-optimization/30841
1788         * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.
1789
1790 2007-02-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1791
1792         * builtins.c (fold_builtin_frexp): New.
1793         (fold_builtin_2): Use it.
1794
1795 2007-02-22  Mark Mitchell  <mark@codesourcery.com>
1796
1797         * doc/invoke.texi (Spec Files): Document getenv spec function.
1798
1799         * gcc.c (getenv_spec_function): New function.
1800         (static_spec_functions): Add it.
1801         * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
1802         (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
1803         header files.
1804
1805 2007-02-22  Michael Matz  <matz@suse.de
1806
1807         PR c++/29433
1808         * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
1809         (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
1810
1811 2007-02-22  Ian Lance Taylor  <iant@google.com>
1812
1813         PR debug/30898
1814         * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
1815         (mem_loc_descriptor): Call it.
1816
1817 2007-02-22  Zdenek Dvorak  <dvorakz@suse.cz>
1818             Ira Rosen  <irar@il.ibm.com>
1819
1820         * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
1821
1822 2007-02-22  Ira Rosen  <irar@il.ibm.com>
1823
1824         PR tree-optimization/30843
1825         * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
1826         stores only after all the group is vectorized.
1827
1828 2007-02-22  Dorit Nuzman  <dorit@il.ibm.com>
1829
1830         PR tree-optimization/30858
1831         * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
1832         in the reduction cycle have a single use in the loop.
1833         * tree-vectorizer.h (relevant): Add documentation.
1834
1835 2007-02-20  Mike Stump  <mrs@apple.com>
1836
1837         * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
1838         * configure: Regenerate.
1839
1840 2007-02-21  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1841
1842         Change the defaults of some parameters and options.
1843         * config/spu/spu-protos.h (spu_optimization_options): Declare.
1844         * config/spu/spu.c (spu_optimization_options): Add.
1845         (spu_override_options): Change params in spu_optimization_options.
1846         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
1847
1848         Register 127 is only 16 byte aligned when used as a frame pointer.
1849         * config/spu/spu-protos.h (spu_init_expanders): Declare.
1850         * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
1851         HARD_FRAME_POINTER_REGNUM.
1852         (spu_legitimate_address):  Use regno_aligned_for_reload.
1853         (regno_aligned_for_load):  HARD_FRAME_POINTER_REGNUM is only 16 byte
1854         aligned when frame_pointer_needed is true.
1855         (spu_init_expanders): New.  Set alignment of HARD_FRAME_POINTER_REGNUM
1856         to 8 bits.
1857         * config/spu/spu.h (INIT_EXPANDERS): Define.
1858
1859         Make sure shift and rotate instructions have valid immediate operands.
1860         * config/spu/predicates.md (spu_shift_operand): Remove.
1861         * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
1862         * config/spu/constraints.md (W, O): Extend range.
1863         * config/spu/spu.md (umask, nmask): Define.
1864         (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
1865         lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
1866         rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
1867         rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
1868         spu_nonmem_operand instead of spu_shift_operands.  Use new modifiers.
1869         (lshr<mode>3_reg):  Fix rtl description.
1870
1871         Make sure mulhisi immediate operands are valid.
1872         * config/spu/predicates.md (imm_K_operand): Add.
1873         * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
1874
1875         Generate constants using fsmbi and andi.
1876         * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
1877         (print_operand, spu_split_immediate, classify_immediate,
1878         fsmbi_const_p): Handle IC_FSMBI2.
1879
1880         Correctly handle a CONST_VECTOR containing symbols.
1881         * config/spu/spu.c (print_operand): Handle HIGH correctly.
1882         (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
1883         (immediate_load_p): Allow symbols that use 2 instructions to create.
1884         (classify_immediate, spu_builtin_splats):  Don't accept a CONST_VECTOR
1885         with symbols when flag_pic is set.
1886         (const_vector_immediate_p): New.
1887         (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
1888         accept a CONST_VECTOR with symbols.
1889         (spu_legitimate_constant_p): Use const_vector_immediate_p.  Don't
1890         accept a CONST_VECTOR with symbols when flag_pic is set.  Handle HIGH
1891         correctly.
1892         * config/spu/spu.md (high, low): Delete.
1893         (low_<mode>): Define.
1894
1895         Remove INTRmode and INTR_REGNUM, which didn't work.
1896         * config/spu/spu.c (spu_conditional_register_usage): Remove reference
1897         of INTR_REGNUM.
1898         * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
1899         set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
1900         peephole2 pattern): Don't use INTR or 131.
1901         (movintrcc): Delete.
1902         * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
1903         CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
1904         * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
1905         (UNSPEC_SET_INTR): Add.
1906         * config/spu/spu-modes.def (INTR): Remove.
1907
1908         More accurate warnings about run-time relocations.
1909         * config/spu/spu.c (reloc_diagnostic): Test in_section.
1910
1911         Correctly warn about immediate arguments to specific intrinsics.
1912         * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
1913         (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
1914         the instruction predicate.
1915
1916         Fix tree check errors with latest update.
1917         * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
1918         CALL_EXPR_ARG.
1919         (spu_expand_builtin): Use CALL_EXPR_FN.
1920
1921         Add missing specific intrinsics.
1922         * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
1923         si_bislede.
1924         * config/spu/spu_internals.h: Ditto.
1925
1926         Fix incorrect operand modifiers.
1927         * config/spu/spu-builtins.md (spu_mpy, spu_mpyu):  Remove use of %H.
1928         * config/spu/spu.md (xor<mode>3):  Change %S to %J.
1929
1930         Optimize one case of zero_extend of a vec_select.
1931         * config/spu/spu.md (_vec_extractv8hi_ze):  Add.
1932
1933         Accept any immediate for hbr.
1934         * config/spu/spu.md (hbr):  Change s constraints to i.
1935
1936 2007-02-21  Paul Brook  <paul@codesourcery.com>
1937
1938         * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
1939         condexec_count when skipping USE and CLOBBER.
1940
1941 2007-02-21  Nick Clifton  <nickc@redhat.com>
1942
1943         * common.opt (Warray-bounds): Add Warning attribute.
1944         (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
1945         Likewise.
1946         (fsized-zeroes): Add Optimization attribute.
1947         (fsplit-wide-types, ftree-scev-cprop): Likewise.
1948         * c.opt (Wc++0x-compat): Add Warning attribute.
1949
1950 2007-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
1951
1952         PR middle-end/30761
1953         * reload1.c (eliminate_regs_in_insn): In the single_set special
1954         case, attempt to re-recognize the insn before falling back to
1955         having reload fix it up.
1956
1957 2007-02-20  Eric Christopher  <echristo@gmail.com>
1958
1959         * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
1960         Rewrite accordingly.
1961         (frv_read_iacc_argument): Ditto.
1962         (frv_expand_set_builtin): Take a call instead of arglist, update for
1963         above changes.
1964         (frv_expand_unop_builtin): Ditto.
1965         (frv_expand_binop_builtin): Ditto.
1966         (frv_expand_cut_builtin): Ditto.
1967         (frv_expand_binopimm_builtin): Ditto.
1968         (frv_expand_voidbinop_builtin): Ditto.
1969         (frv_expand_int_void2arg): Ditto.
1970         (frv_expand_prefetches): Ditto.
1971         (frv_expand_voidtriop_builtin): Ditto.
1972         (frv_expand_voidaccop_builtin): Ditto.
1973         (frv_expand_load_builtin): Ditto.
1974         (frv_expand_store_builtin): Ditto.
1975         (frv_expand_mdpackh_builtin): Ditto.
1976         (frv_expand_mclracc_builtin): Ditto.
1977         (frv_expand_mrdacc_builtin): Ditto.
1978         (frv_expand_mwtacc_builtin): Ditto.
1979         (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
1980         calls for above.
1981
1982 2007-02-20  Janis Johnson  <janis187@us.ibm.com>
1983
1984         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
1985         * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
1986         cmpb instruction.
1987         (HAVE_GAS_DFP): Check for assembler support of decimal floating
1988         point instructions.
1989         * configure: Regenerate.
1990         * config.in: Regenerate.
1991         * config/rs6000/rs6000.opt (mcmpb, mdfp): New.
1992         * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
1993         masks to power6 and power6x and to POWERPC_MASKS.
1994         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1995         _ARCH_PWR6.
1996         * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
1997         * config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
1998         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
1999         Access PROTOTYPE as variable, not mask.
2000
2001 2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>
2002
2003         * rtl.h (remove_reg_equal_equiv_notes): New prototype.
2004         * rtlanal.c (remove_reg_equal_equiv_notes): New function.
2005         * combine.c (adjust_for_new_dest): Use it.
2006         * postreload.c (reload_combine): Likewise.
2007
2008 2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>
2009
2010         * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
2011         notes on an insn with multiple sets, even if single_set returns
2012         non-NULL for that insn.
2013
2014 2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2015
2016         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
2017         scalbn and scalbln.
2018
2019 2007-02-20  Geoffrey Keating  <geoffk@apple.com>
2020
2021         * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
2022         if user didn't pass it.
2023         * config/i386/darwin.h (CC1_SPEC): Likewise.
2024         * config/rs6000/darwin.h (CC1_SPEC): Likewise.
2025         (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
2026         -mmacosx-version-min.
2027
2028 2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2029             Uros Bizjak  <ubizjak@gmail.com>
2030
2031         * optabs.h (enum optab_index): Add new OTI_scalb.
2032         (scalb_optab): Define corresponding macro.
2033         * optabs.c (init_optabs): Initialize scalb_optab.
2034         * genopinit.c (optabs): Implement scalb_optab using scalb?f3
2035         patterns.
2036         * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
2037         BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
2038         (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
2039         and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
2040         flag_unsafe_math_optimizations is set.
2041
2042         * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
2043         to implement scalbf, scalb and scalbl built-ins as inline x87
2044         intrinsics.
2045
2046 2007-02-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2047             DJ Delorie <dj@redhat.com>
2048
2049         PR other/30824
2050         * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
2051         (diagnostic_report_diagnostic): ... here, and turn them into real
2052         errors. If warnings are inhibited, no need to do anything.
2053
2054 2007-02-20  Uros Bizjak  <ubizjak@gmail.com>
2055
2056         * config/i386/i386.md (expm1xf2): Reorder insn sequence for
2057         better code generation.
2058
2059 2007-02-20  Ben Elliston  <bje@au.ibm.com>
2060
2061         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
2062
2063 2007-02-20  Kazu Hirata  <kazu@codesourcery.com>
2064
2065         * config/alpha/alpha.c, config/alpha/alpha.md,
2066         config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
2067         config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
2068         config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
2069         config/arm/lib1funcs.asm: Follow spelling conventions.
2070
2071         * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
2072         config/fr30/fr30.md, config/i386/i386.h,
2073         config/iq2000/iq2000.h, config/iq2000/predicates.md,
2074         config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
2075         config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
2076         config/pdp11/pdp11.c, config/pdp11/pdp11.h,
2077         config/rs6000/altivec.md, config/rs6000/rs6000.c,
2078         config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
2079         config/sparc/sparc.c, config/sparc/sparc.h,
2080         config/sparc/sparc.md, config/spu/constraints.md,
2081         config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
2082         conventions.
2083
2084 2007-02-20  Alan Modra  <amodra@bigpond.net.au>
2085
2086         PR target/29943
2087         * varasm.c (use_blocks_for_decl_p): Return false for decls with
2088         alias attribute.
2089
2090 2007-02-19  Kazu Hirata  <kazu@codesourcery.com>
2091
2092         * doc/invoke.texi (-ftree-lrs): Remove.
2093
2094 2007-02-19  Diego Novillo  <dnovillo@redhat.com>
2095
2096         * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
2097         NULL.
2098
2099 2007-02-19  Lee Millward  <lee.millward@codesourcery.com>
2100
2101         * config/ia64/ia64.c (ia64_expand_builtin): Use the
2102         new CALL_EXPR_FN macro for retrieving the function
2103         declaration of the input expression.
2104
2105 2007-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2106
2107         * c.opt (Waddress): New.
2108         * common.opt (Walways-true): Delete.
2109         (Wstring-literal-comparison): Delete.
2110         * doc/invoke.texi (Warning Options): Delete -Walways-true and
2111         -Wstring-literal-comparison. Add -Waddress.
2112         (Waddress): New.
2113         (Walways-true): Delete.
2114         (Wstring-literal-comparison): Delete.
2115         * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
2116         consistently instead of -Walways-true in example.
2117         * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
2118         * c-typeck.c (parser_build_binary_op): Replace
2119         -Wstring-literal-comparison and -Walways-true with -Waddress.
2120         * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
2121         with -Waddress.
2122
2123 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
2124
2125         * tree-cfg.c (dump_function_to_file): Be prepared for functions
2126         without DECL_STRUCT_FUNCTION initialized.
2127
2128 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
2129
2130         * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
2131         due to calls to functions taking pointers as parameters.
2132
2133 2007-02-19  Richard Henderson  <rth@redhat.com>
2134
2135         PR debug/29558
2136         * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
2137         in memory.
2138
2139 2007-02-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2140
2141         * config/s390/s390.c (s390_call_saved_register_used,
2142         s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
2143         accessed to the new scheme.
2144
2145 2007-02-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2146
2147         * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
2148         (cris_print_index, cris_print_operand, cris_print_operand_address)
2149         (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
2150         (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
2151         (cris_expand_pic_call_address): Use xxx_P predicate macros instead of
2152         GET_CODE () == xxx.
2153         * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
2154         EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
2155         GO_IF_LEGITIMATE_ADDRESS): Ditto.
2156         * config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
2157         (*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
2158         (*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
2159         (*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
2160         (*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
2161         (*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
2162         (uminsi3, call, call_value): Ditto.
2163         (define_split: indir_to_reg_split, unnamed): Ditto.
2164
2165 2007-02-19  Dorit Nuzman  <dorit@il.ibm.com>
2166
2167         PR tree-optimization/30975
2168         * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
2169         wrong assert.
2170
2171 2007-02-18  Eric Christopher  <echristo@gmail.com>
2172
2173         * mips.c (mips_prepare_builtin_arg): Add argnum parameter.
2174         Remove use of arglist.
2175         (mips_expand_builtin): Remove use of arglist, pass in expr.
2176         (mips_expand_builtin_direct): Rewrite handling for arglist removal.
2177         (mips_expand_builtin_movtf): Ditto.
2178         (mips_expand_builtin_compare): Ditto.
2179
2180 2007-02-19  Alexandre Oliva  <aoliva@redhat.com>
2181
2182         * tree-sra.c (sra_build_assignment): Replace assertion
2183         checking with a comment explaining why it can't be done.
2184
2185 2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>
2186
2187         PR middle-end/30833
2188         * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
2189         during CALL_EXPR representation conversion.
2190         * tree-ssa-propagate.c (set_rhs): Likewise.
2191
2192 2007-02-19  Alexandre Oliva  <aoliva@redhat.com>
2193
2194         * tree-sra.c (sra_build_assignment): Disable assertion checking
2195         for now.
2196
2197 2007-02-18  Roger Sayle  <roger@eyesopen.com>
2198
2199         * function.c (gimplify_parameters): Call build_gimple_modify_stmt
2200         instead of calling build2 with a GIMPLE_MODIFY_STMT.
2201         * gimple-low.c (lower_function_body, lower_builtin_setjmp):
2202         Likewise.
2203         * gimplify.c (build_stack_save_restore, gimplify_return_expr,
2204         gimplify_decl_expr,  gimplify_self_mod_expr, gimplify_cond_expr,
2205         gimplify_init_ctor_eval_range, gimple_push_cleanup,
2206         gimplify_omp_for, gimplify_omp_atomic_pipeline,
2207         gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
2208         force_gimple_operand): Likewise.
2209         * ipa-cp.c (constant_val_insert): Likewise.
2210         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
2211         lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
2212         perfect_nestify): Likewise.
2213         * langhooks.c (lhd_omp_assignment): Likewise.
2214         * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
2215         lower_copyprivate_clauses, lower_send_clauses,
2216         lower_send_shared_vars, expand_parallel_call,
2217         expand_omp_for_generic, expand_omp_for_static_nochunk,
2218         expand_omp_for_static_chunk, expand_omp_sections,
2219         lower_omp_single_copy, lower_omp_for_lastprivate,
2220         lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
2221         * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
2222         tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
2223         Likewise.
2224
2225 2007-02-19  Kazu Hirata  <kazu@codesourcery.com>
2226
2227         * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
2228         config/sh/sh.md: Follow spelling conventions.
2229
2230         * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
2231         config/frv/predicates.md: Follow spelling conventions.
2232
2233         * config/m68k/linux-unwind.h: Fix a comment typo.
2234         * target.h: Follow spelling conventions.
2235
2236 2007-02-18  Roger Sayle  <roger@eyesopen.com>
2237
2238         PR rtl-optimization/28173
2239         * simplify-rtx.c (simplify_binary_operation_1) <IOR>:  Optimize
2240         (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
2241         Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
2242         Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
2243         <AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).
2244
2245 2007-02-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2246
2247         * builtins.c (fold_builtin_load_exponent): New.
2248         (fold_builtin_2): Use it.
2249
2250 2007-02-18  Steven Bosscher  <steven@gcc.gnu.org>
2251
2252         PR rtl-optimization/30773
2253         * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
2254         if we fail to attach a REG_EQUIV note.
2255
2256 2007-02-18  David Edelsohn  <edelsohn@gnu.org>
2257             Roger Sayle  <roger@eyesopen.com>
2258
2259         * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.
2260
2261 2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>
2262
2263         * calls.c (initialize_argument_information): Pass original EXP
2264         and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments.  Move
2265         code to split complex arguments here, as part of initializing the
2266         ARGS array.
2267         (expand_call): Remove code that builds a list of arguments and
2268         inserts implicit arguments into it.  Instead, just count how many
2269         implicit arguments there will be so we can determine the size of
2270         the ARGS array, and let initialize_argument_information do the work.
2271         (split_complex_values): Delete unused function.
2272
2273 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
2274
2275         * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
2276
2277 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
2278
2279         * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
2280         for arg pointer based indexed addressing.
2281
2282 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
2283
2284         * config/ia64/ia64.h, config/ia64/ia64.md,
2285         config/ia64/predicates.md, config/ia64/sysv4.h: Follow
2286         spelling conventions.
2287
2288 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
2289
2290         * config/m68k/m68k.c (split_di): New.
2291         * config/m68k/m68k-protos.h: Declare split_di.
2292         * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
2293           Improve predicate handling and split constant shifts.
2294
2295 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
2296
2297         * config/m68k/m68k.md (extv,extzv,insv): disable dynamic
2298         parameter for register bitfield operations, general predicates
2299         cleanup
2300
2301 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
2302
2303         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
2304         * config/m68k/linux-unwind.h: New file.
2305
2306 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
2307
2308         * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
2309         config/i386/athlon.md, config/ia64/ia64.md,
2310         config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
2311         df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
2312         ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
2313         tree-ssa-loop-niter.c, tree-vect-analyze.c,
2314         tree-vect-transform.c: Fix comment typos.
2315
2316 2007-02-17  Kazu Hirata  <kazu@codesourcery.com>
2317
2318         * sched-deps.c (find_insn_list): Remove.
2319         * sched-int.h: Remove the prototype for find_insn_list.
2320
2321 2007-02-16  Geoffrey Keating  <geoffk@apple.com>
2322
2323         * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
2324         to linker.
2325         (DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
2326         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
2327         darwin_rs6000_override_options.
2328         (C_COMMON_OVERRIDE_OPTIONS): Expect
2329         darwin_macosx_version_min to be non-NULL always.
2330         (TARGET_C99_FUNCTIONS): Likewise.
2331         (CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
2332         (DARWIN_MINVERSION_SPEC): New.
2333         * config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
2334         * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
2335         to cc1*.
2336         (DARWIN_MINVERSION_SPEC): New.
2337         * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
2338         value.
2339         * config/darwin-c.c (darwin_cpp_builtins): Expect
2340         darwin_macosx_version_min to be non-NULL always.
2341
2342         * config/rs6000/rs6000.c: Clean up trailing whitespace.
2343
2344 2007-02-16  Uros Bizjak  <ubizjak@gmail.com>
2345
2346         * config/i386/i386.h (x86_use_xchgb): New.
2347         (TARGET_USE_XCHGB): New macro.
2348         * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
2349         * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
2350         Split after reload into bswaphi for shifts of 8.
2351         (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
2352         (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
2353         or when optimizing for size.
2354
2355 2007-02-16  Richard Guenther  <rguenther@suse.de>
2356             Christian Bruel  <christian.bruel@st.com>
2357
2358         * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
2359         DECLs but prefer SSA_NAMEs over DECLs.
2360
2361 2007-02-16  Richard Guenther  <rguenther@suse.de>
2362
2363         * tree-flow-inline.h (single_imm_use_p): Remove.
2364         (zero_imm_uses_p): Likewise.
2365         * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
2366         instead of single_imm_use_p.
2367         * tree-cfg.c (replace_uses_by): Use has_zero_use instead of
2368         zero_imm_uses_p.
2369
2370 2007-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2371
2372         PR other/27843
2373         * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
2374         nested double- and backquotes.
2375
2376 2007-02-15  Roger Sayle  <roger@eyesopen.com>
2377
2378         PR middle-end/30391
2379         * tree.c (expr_align): Handle MODIFY_EXPR.  GIMPLE_MODIFY_STMT
2380         should be unreachable.
2381         (build2_stat): Allow construction of MODIFY_EXPR at any time.
2382         For the time being redirect GIMPLE_MODIFY_STMT to the new
2383         (renamed) build_gimple_modify_stmt_stat.
2384         (build2_gimple_stat): Rename to...
2385         (build_gimple_modify_stmt_stat): Now longer take a CODE argument.
2386         Always build a GIMPLE_MODIFY_STMT node.
2387         * tree.h (build2_gimple, build2_gimple_stat): Delete.
2388         (build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
2389         declarations.
2390
2391         * tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
2392         gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
2393         * tree-complex.c (set_component_ssa_name, expand_complex_move,
2394         expand_complex_div_wide): Likewise.
2395         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
2396         * tree-ssa-loop-im.c (schedule_sm): Likewise.
2397         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
2398         * tree-ssa-loop-manip.c (create_iv): Likewise.
2399         * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
2400         abs_replacement): Likewise.
2401         * tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
2402         realify_fake_stores): Likewise.
2403
2404         * builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
2405         node rather than a GIMPLE_MODIFY_STMT node.
2406         (std_gimpify_va_arg_expr, expand_builtin_va_copy,
2407         fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
2408         Likewise.
2409         (integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
2410         * expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
2411         GIMPLE_MODIFY_STMT.
2412
2413 2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2414
2415         PR middle-end/30433
2416         * fold-const.c (fold_comparison): Add back the
2417         folding of constant complex comparisions.
2418
2419 2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2420
2421         PR middle-end/30729
2422         * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
2423         effects unknown to this function, return early.
2424
2425 2007-02-15  Ian Lance Taylor  <iant@google.com>
2426
2427         * lower-subreg.c (move_eh_region_note): New static function.
2428         (resolve_simple_move): Call it.
2429         (decompose_multiword_subregs): Track blocks for which we resolve a
2430         simple move which is also a control flow insn.  Pass them to
2431         find_many_sub_basic_blocks.
2432         (pass_lower_subreg): Add TODO_verify_flow.
2433         (pass_lower_subreg2): Likewise.
2434
2435 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
2436             Brooks Moses  <brooks.moses@codesourcery.com>
2437             Lee Millward  <lee.millward@codesourcery.com>
2438
2439         * tree.h (enum tree_code_class): Add tcc_vl_exp.
2440         (VL_EXP_CLASS_P): New.
2441         (TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
2442         TREE_CODE_LENGTH.
2443         (TREE_OPERAND_CHECK_CODE): Likewise.
2444         (GIMPLE_STMT_OPERAND_CHECK): Likewise.
2445         (TREE_RTL_OPERAND_CHECK): Likewise.
2446         (tree_operand_check_failed): Make second parameter the whole tree
2447         instead of its code.  Fixed callers.
2448         (VL_EXP_CHECK): New.
2449         (TREE_OPERAND_LENGTH): New.
2450         (VL_EXP_OPERAND_LENGTH): New.
2451         (CALL_EXPR_FN): New.
2452         (CALL_EXPR_STATIC_CHAIN): New.
2453         (CALL_EXPR_ARGS): New.
2454         (CALL_EXPR_ARG): New.
2455         (call_expr_nargs): New.
2456         (CALL_EXPR_ARGP): New.
2457         (build_nt_call_list): Declare.
2458         (build_vl_exp_stat): Declare.
2459         (build_vl_exp): New.
2460         (build_call_list): Declare.
2461         (build_call_nary): Declare.
2462         (build_call_valist): Declare.
2463         (build_call_array): Declare.
2464         (call_expr_arg): Declare.
2465         (call_expr_argp): Declare.
2466         (call_expr_arglist): Declare.
2467         (fold_build_call_list): Declare.
2468         (fold_build_call_list_initializer): Declare.
2469         (fold_call_expr): Declare to replace fold_builtin.
2470         (fold_builtin_fputs): Update to agree with modified definition.
2471         (fold_builtin_strcpy): Likewise.
2472         (fold_builtin_strncpy): Likewise.
2473         (fold_builtin_memory_chk): Likewise.
2474         (fold_builtin_stxcpy_chk): Likewise.
2475         (fold_builtin_strncpy_chk): Likewise.
2476         (fold_builtin_next_arg): Likewise.
2477         (fold_build_call_expr): Declare.
2478         (fold_builtin_call_list): Declare.
2479         (fold_builtin_call_valist): Declare.
2480         (build_call_expr): Declare.
2481         (validate_arglist): Update to agree with modified definition.
2482         (tree_operand_length): New.
2483         (call_expr_arg_iterator): New.
2484         (init_call_expr_arg_iterator): New.
2485         (next_call_expr_arg): New.
2486         (first_call_expr_arg): New.
2487         (more_call_expr_args_p): New.
2488         (FOR_EACH_CALL_EXPR_ARG): New.
2489
2490         * tree.c (tree_code_class_string): Add entries for tcc_vl_exp
2491         and tcc_gimple_stmt.
2492         (tree_code_size): Update documentation.  Use sizeof (tree) rather
2493         than sizeof (char *).
2494         (tree_size): Likewise.  Add case for tcc_vl_exp.
2495         (tree_node_structure): Add case for tcc_vl_exp.
2496         (contains_placeholder_p): Likewise.
2497         (substitute_in_expr): Likewise.
2498         (substitute_placeholder_in_expr): Likewise.
2499         (stabilize_reference_1): Likewise.
2500         (build3_stat): Remove logic for CALL_EXPRs.  Replace with assertion
2501         to diagnose breakage of this interface for constructing CALL_EXPRs.
2502         (build_nt): Add similar assertion here.
2503         (build_nt_call_list): New.
2504         (simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
2505         (iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
2506         TREE_CODE_LENGTH.
2507         (get_callee_fndecl): Use new CALL_EXPR accessors.
2508         (tree_operand_check_failed): Change parameters to pass entire node
2509         instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
2510         (process_call_operands): New.
2511         (build_vl_exp_stat): New.
2512         (build_call_list): New.
2513         (build_call_nary): New.
2514         (build_call_valist): New.
2515         (build_call_array): New.
2516         (walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
2517         (call_expr_arglist): New.
2518
2519         * tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
2520         tcc_vl_exp instead of a fixed-size tcc_expression.
2521
2522         * doc/c-tree.texi (CALL_EXPR): Document new representation and
2523         accessors for CALL_EXPRs.
2524         (AGGR_INIT_EXPR): Likewise.
2525
2526 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
2527             Brooks Moses  <brooks.moses@codesourcery.com>
2528             Lee Millward  <lee.millward@codesourcery.com>
2529
2530         * builtins.c (c_strlen): Return NULL_TREE instead of 0.
2531         (expand_builtin_nonlocal_goto): Change parameter to be entire
2532         CALL_EXPR instead of an arglist.  Use new CALL_EXPR accessors.
2533         (expand_builtin_prefetch): Likewise.
2534         (expand_builtin_classify_type): Likewise.
2535         (mathfn_built_in): Return NULL_TREE instead of 0.
2536         (expand_errno_check): Use new CALL_EXPR accessors.
2537         (expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
2538         Return NULL_RTX instead of 0.
2539         (expand_builtin_mathfn_2): Likewise.
2540         (expand_builtin_mathfn_3): Likewise.
2541         (expand_builtin_interclass_mathfn): Likewise.
2542         (expand_builtin_sincos): Likewise.
2543         (expand_builtin_cexpi): Likewise.
2544         (expand_builtin_int_roundingfn): Likewise.
2545         (expand_builtin_int_roundingfn_2): Likewise.
2546         (expand_builtin_pow): Likewise.
2547         (expand_builtin_powi): Likewise.
2548         (expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
2549         of arglist, fixing callers appropriately.  Use new CALL_EXPR
2550         accessors and constructors.  Return NULL_RTX instead of 0.
2551         (expand_builtin_strstr): Likewise.
2552         (expand_builtin_strchr): Likewise.
2553         (expand_builtin_strrchr): Likewise.
2554         (expand_builtin_strpbrk): Likewise.
2555         (expand_builtin_memcpy): Likewise.
2556         (expand_builtin_mempcpy): Likewise.
2557         (expand_builtin_mempcpy_args): New.
2558         (expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
2559         (expand_builtin_memmove_args): New.
2560         (expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
2561         (expand_movstr): Likewise.
2562         (expand_builtin_strcpy): Likewise.
2563         (expand_builtin_strcpy_args): New.
2564         (expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
2565         (expand_builtin_strncpy): Likewise.
2566         (expand_builtin_memset): Likewise.
2567         (expand_builtin_memset_args): New.
2568         (expand_builtin_bzero): Similarly to expand_builtin_memset.
2569         (expand_builtin_memcmp): Likewise.
2570         (expand_builtin_strcmp): Likewise.
2571         (expand_builtin_strncmp): Likewise.
2572         (expand_builtin_strcat): Likewise.
2573         (expand_builtin_strncat): Likewise.
2574         (expand_builtin_strspn): Likewise.
2575         (expand_builtin_strcspn): Likewise.
2576         (expand_builtin_args_info): Likewise.
2577         (expand_builtin_va_start): Likewise.
2578         (gimplify_va_arg_expr): Likewise.
2579         (expand_builtin_va_end): Likewise.
2580         (expand_builtin_va_copy): Likewise.
2581         (expand_builtin_frame_address): Likewise.
2582         (expand_builtin_alloca): Likewise.
2583         (expand_builtin_bswap): Likewise.
2584         (expand_builtin_unop): Likewise.
2585         (expand_builtin_fputs): Likewise.
2586         (expand_builtin_expect): Likewise.
2587         (expand_builtin_fabs): Likewise.
2588         (expand_builtin_copysign): Likewise.
2589         (expand_builtin_printf): Likewise.
2590         (expand_builtin_fprintf): Likewise.
2591         (expand_builtin_sprintf): Likewise.
2592         (expand_builtin_init_trampoline): Likewise.
2593         (expand_builtin_signbit): Likewise.
2594         (expand_builtin_fork_or_exec): Likewise.
2595         (expand_builtin_sync_operation): Likewise.
2596         (expand_builtin_compare_and_swap): Likewise.
2597         (expand_builtin_lock_test_and_set): Likewise.
2598         (expand_builtin_lock_release): Likewise.
2599         (expand_builtin): Likewise.
2600         (builtin_mathfn_code): Likewise.
2601
2602         (fold_builtin_constant_p): Pass call arguments individually instead
2603         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
2604         accessors and constructors.  Return NULL_TREE instead of 0.
2605         (fold_builtin_expect): Likewise.
2606         (fold_builtin_classify_type): Likewise.
2607         (fold_builtin_strlen): Likewise.
2608         (fold_builtin_nan): Likewise.
2609         (integer_valued_real_p): Likewise.
2610         (fold_trunc_transparent_mathfn): Likewise.
2611         (fold_fixed_mathfn): Likewise.
2612         (fold_builtin_cabs): Likewise.
2613         (fold_builtin_sqrt): Likewise.
2614         (fold_builtin_cbrt): Likewise.
2615         (fold_builtin_cos): Likewise.
2616         (fold_builtin_cosh): Likewise.
2617         (fold_builtin_tan): Likewise.
2618         (fold_builtin_sincos): Likewise.
2619         (fold_builtin_cexp): Likewise.
2620         (fold_builtin_trunc): Likewise.
2621         (fold_builtin_floor): Likewise.
2622         (fold_builtin_ceil): Likewise.
2623         (fold_builtin_round): Likewise.
2624         (fold_builtin_int_roundingfn): Likewise.
2625         (fold_builtin_bitop): Likewise.
2626         (fold_builtin_bswap): Likewise.
2627         (fold_builtin_logarithm): Likewise.
2628         (fold_builtin_hypot): Likewise.
2629         (fold_builtin_pow): Likewise.
2630         (fold_builtin_powi): Likewise.
2631         (fold_builtin_exponent): Likewise.
2632         (fold_builtin_memset): Likewise.
2633         (fold_builtin_bzero): Likewise.
2634         (fold_builtin_memory_op): Likewise.
2635         (fold_builtin_bcopy): Deleted; call site changed to invoke
2636         fold_builtin_memory_op directly.
2637         (fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
2638         (fold_builtin_strncpy): Likewise.
2639         (fold_builtin_memcmp): Likewise.
2640         (fold_builtin_strcmp): Likewise.
2641         (fold_builtin_strncmp): Likewise.
2642         (fold_builtin_signbit): Likewise.
2643         (fold_builtin_copysign): Likewise.
2644         (fold_builtin_isascii): Likewise.
2645         (fold_builtin_toascii): Likewise.
2646         (fold_builtin_isdigit): Likewise.
2647         (fold_builtin_fabs): Likewise.
2648         (fold_builtin_abs): Likewise.
2649         (fold_builtin_fmin_fmax): Likewise.
2650         (fold_builtin_carg): Likewise.
2651         (fold_builtin_classify): Likewise.
2652         (fold_builtin_unordered_cmp): Likewise.
2653
2654         (fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
2655         New functions split out from fold_builtin_1.
2656         (fold_builtin_n): New.
2657         (fold_builtin_varargs): New.
2658         (fold_builtin): Deleted.  Most callers changed to use fold_call_expr
2659         instead.
2660         (fold_call_expr): New.
2661         (build_function_call_expr): Rewrite to use new helper function.
2662         (fold_builtin_call_list): New.
2663         (build_call_expr): New.
2664         (fold_builtin_call_valist): New.
2665         (rewrite_call_expr): New.
2666         (validate_arg): New.
2667         (validate_arglist): Change parameter to be entire CALL_EXPR instead
2668         of an arglist.  Change return type to bool.  Use new CALL_EXPR
2669         accessors.
2670
2671         (fold_builtin_strstr):  Pass call arguments individually instead
2672         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
2673         accessors and constructors.  Return NULL_TREE instead of 0.
2674         (fold_builtin_strchr): Likewise.
2675         (fold_builtin_strrchr): Likewise.
2676         (fold_builtin_strpbrk): Likewise.
2677         (fold_builtin_strcat): Likewise.
2678         (fold_builtin_strncat): Likewise.
2679         (fold_builtin_strspn): Likewise.
2680         (fold_builtin_strcspn): Likewise.
2681         (fold_builtin_fputs): Likewise.
2682         (fold_builtin_next_arg): Likewise.
2683         (fold_builtin_sprintf): Likewise.
2684
2685         (expand_builtin_object_size): Use new CALL_EXPR accessors.  Use
2686         NULL_RTX instead of 0.
2687         (expand_builtin_memory_chk): Likewise.
2688         (maybe_emit_chk_warning): Likewise.
2689         (maybe_emit_sprintf_chk_warning): Likewise.
2690
2691         (fold_builtin_object_size): Pass call arguments individually instead
2692         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
2693         accessors and constructors.  Return NULL_TREE instead of 0.
2694         (fold_builtin_memory_chk): Likewise.
2695         (fold_builtin_stxcpy_chk): Likewise.
2696         (fold_builtin_strncpy_chk): Likewise.
2697         (fold_builtin_strcat_chk): Likewise.
2698         (fold_builtin_strcat_chk): Likewise.
2699         (fold_builtin_strncat_chk): Likewise.
2700         (fold_builtin_sprintf_chk): Likewise.
2701         (fold_builtin_snprintf_chk): Likewise.
2702         (fold_builtin_printf): Likewise.
2703         (fold_builtin_vprintf): Likewise.
2704
2705         * fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
2706         constructors.
2707         (operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
2708         (make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
2709         (extract_muldiv_1): Add VL_EXP_CLASS_P case.
2710         (fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
2711         (fold_unary): Likewise.
2712         (fold_binary): Likewise.
2713         (fold_ternary): Remove CALL_EXPR case, since they are no longer
2714         ternary expressions.
2715         (fold): Add logic for tcc_vl_exp.
2716         (fold_checksum_tree):  Make it know about tcc_vl_exp.  Use
2717         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
2718         (fold_build3_stat): Add assertion to flag broken interface for
2719         constructing CALL_EXPRs.
2720         (fold_build_call_list): New.
2721         (fold_build_call_list_initializer): New.
2722         (tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
2723         constructors.
2724         (fold_strip_sign_ops): Likewise.
2725
2726 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
2727             Brooks Moses  <brooks.moses@codesourcery.com>
2728             Lee Millward  <lee.millward@codesourcery.com>
2729
2730         * tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
2731         accessors and dump arguments explicitly.
2732
2733         * tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
2734         TREE_CODE_LENGTH.
2735         (dump_generic_node): Use new CALL_EXPR accessors and walk arguments
2736         explicitly.
2737         (print_call_name): Use new CALL_EXPR accessors.
2738
2739         * print-tree.c (print_node): Add case tcc_vl_exp.  Print
2740         CALL_EXPR arguments explicitly instead of as a list.  Use
2741         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
2742
2743         * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
2744         (vrp_visit_stmt): Likewise.
2745
2746         * tree-ssa-loop-im.c (outermost_invariant_loop_expr):  Make it
2747         know about tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of
2748         TREE_CODE_LENGTH.
2749         (force_move_till_expr): Likewise.
2750
2751         * targhooks.c (default_external_stack_protect_fail): Use
2752         build_call_expr instead of build_function_call_expr.
2753         (default_hidden_stack_protect_fail): Likewise.
2754
2755         * tree-complex.c (expand_complex_libcall): Use build_call_expr to
2756         build the call.
2757
2758         * cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
2759         and walk arguments explicitly.
2760
2761         * tree-ssa-loop-niter.c (simplify_replace_tree): Use
2762         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
2763         (expand_simple_operations): Likewise.
2764         (infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
2765
2766         * gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
2767         of TREE_CODE_LENGTH.
2768         (walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
2769
2770         * optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
2771         instead of TREE_CODE_LENGTH.
2772
2773         * value_prof.c (tree_ic): Use new CALL_EXPR accessors.
2774         (tree_ic_transform): Likewise.
2775         (interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
2776         parameter instead of arglist.  Fix callers.
2777         (tree_stringop_fixed_value): Use new CALL_EXPR accessors.
2778         (tree_stringops_transform): Likewise.
2779         (tree_indirect_call_to_profile): Likewise.
2780         (tree_stringops_values_to_profile): Likewise.
2781
2782         * tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
2783         (eliminate_tail_call): Likewise.
2784
2785         * ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
2786
2787         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
2788         Use TREE_OPERAND_LENGTH and generalize to handle any number of
2789         operands.
2790         (instantiate_parameters_1): Can't handle tcc_vl_exp here.
2791
2792         * omp-low.c (build_omp_barrier): Use build_call_expr.
2793         (lower_rec_input_clauses): Likewise.
2794         (lower_reduction_clauses): Likewise.
2795         (expand_parallel_call): Likewise.
2796         (maybe_catch_exception): Likewise.
2797         (expand_omp_for_generic): Likewise.
2798         (expand_omp_for_static_nochunk): Likewise.
2799         (expand_omp_sections): Likewise.
2800         (lower_omp_single_simple): Likewise.
2801         (lower_omp_single_copy): Likewise.
2802         (lower_omp_master): Likewise.
2803         (lower_omp_ordered): Likewise.
2804         (lower_omp_critical): Likewise.
2805
2806         * ipa-reference.c (check-call): Use new CALL_EXPR iterator.
2807         (scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
2808
2809         * tree-gimple.c (is_gimple_call_addr): Fix doc.
2810         (recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
2811         TREE_CODE_LENGTH.  Add tcc_vl_exp case.
2812
2813         * tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
2814         and generalize to handle any number of operands.
2815         (chrec_contains_undetermined): Likewise.
2816         (tree_contains_chrecs): Likewise.
2817         (evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
2818
2819         * cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
2820
2821         * tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors.  Use
2822         fold_call_expr instead of fold_builtin.
2823         (ccp_fold_builtin): Likewise.  Update calls into builtins.c to
2824         match declarations there.
2825         (fold_stmt): Use new CALL_EXPR constructor and accessors.  Doc
2826         updates.
2827
2828         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
2829         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
2830
2831         * ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
2832         (scan_function): Add case tcc_vl_exp for CALL_EXPR.
2833
2834         * tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
2835         accessors.
2836
2837         * tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
2838         (execute_cse_sincos): Use new CALL_EXPR accessors.
2839
2840         * tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
2841
2842         * gimple-low.c (lower_function_body): Use build_call_expr.
2843         (lower_builtin_setjmp): Likewise.
2844
2845         * expr.c (emit_block_move_via_libcall): Use build_call_expr.
2846         (set_storage_via_libcall): Likewise.
2847         (safe_from_p): Add tcc_vl_exp case.  Use TREE_OPERAND_LENGTH
2848         instead of TREE_CODE_LENGTH.
2849         (expand_expr_real_1): Use new CALL_EXPR accessors.
2850
2851         * tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
2852         generalize to handle any number of operands.
2853         (TB_parent_eq): Likewise.
2854
2855         * predict.c (expr_expected_value): Use new CALL_EXPR accessors.
2856         (strip_builtin_expect): Likewise.
2857
2858         * function.c (gimplify_parameters): Use build_call_expr.
2859
2860         * tree-vectorizer.c (vect_is_simple_reduction): Use TREE_OPERAND_LENGTH
2861         instead of TREE_CODE_LENGTH.
2862
2863         * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
2864         (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
2865
2866         * tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
2867         iterators.
2868
2869         * gimplify.c (build_stack_save_restore): Use build_call_expr.
2870         (gimplify_decl_expr): Likewise.
2871         (gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
2872         Use new CALL_EXPR iterators.
2873         (gimplify_modify_expr_to_memcpy): Use build_call_expr.
2874         (gimplify_modify_expr_to_memset): Likewise.
2875         (gimplify_variable_sized_compare): Likewise.
2876         (gimplify_omp_atomic_fetch_op): Likewise.
2877         (gimplify_omp_atomic_pipeline): Likewise.
2878         (gimplify_omp_atomic_mutex): Likewise.
2879         (gimplify_function_tree): Likewise.
2880
2881         * calls.c (alloca_call_p): Use new CALL_EXPR accessors.
2882         (call_expr_flags): Likewise.
2883         (expand_call): Likewise.
2884
2885         * except.c (expand_builtin_eh_return_data_regno): Pass entire
2886         CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
2887         accessors.
2888
2889         * coverage.c (create_coverage): Use build_call_expr.
2890
2891         * tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
2892         (temp_call_expr_obstack): New.
2893         (pool_copy_list): Delete.
2894         (temp_copy_call_expr): New.
2895         (phi_translate): Add case tcc_vl_exp for CALL_EXPR.  Use new
2896         CALL_EXPR accessors.  Get rid of special goo for copying argument
2897         lists and use temp_copy_call_expr instead.
2898         (valid_in_sets): Add case tcc_vl_exp for CALL_EXPR.  Use new
2899         CALL_EXPR accessors.
2900         (create_expression_by_pieces): Likewise.  Use build_call_array
2901         to construct the result instead of fold_build3.
2902         (create_value_expr_from): Add tcc_vl_exp.  Delete special goo for
2903         dealing with argument lists.
2904         (init_pre): Remove references to expression_node_pool and
2905         list_node_pool.  Init temp_call_expr_obstack instead.
2906         (fini_pre): Remove references to expression_node_pool and
2907         list_node_pool.
2908
2909         * tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
2910         and walk arguments explicitly instead of as a list.
2911
2912         * tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
2913         (mx_register_decls): Likewise.
2914         (mudflap_register_call): Likewise.
2915         (mudflap_finish_file): Likewise.
2916
2917         * ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
2918         (ipa_callsite_compute_param): Likewise.
2919
2920         * tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
2921         accessors and constructor.
2922
2923         * tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
2924         accessors and constructor.
2925         (convert_tramp_reference): Likewise.
2926         (convert_call_expr): Likewise.
2927         (finalize_nesting_tree_1): Likewise.
2928
2929         * tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
2930         accessors.
2931
2932         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
2933
2934         * tree-inline.c (initialize_inlined_parameters): Pass entire
2935         CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
2936         accessors.
2937         (estimate_num_insns_1): Use new CALL_EXPR accessors.
2938         (expand_call_inline): Tidy up call to initialize_inlined_parameters.
2939
2940         * tree-vect-transform.c (vect_create_epilog_for_reduction):  Use
2941         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
2942         (vectorizable_reduction): Likewise.
2943         (vectorizable_call): Use new CALL_EXPR iterators.
2944         (vectorizable_conversion): Use build_call_expr.
2945         (vectorizable_operation): Use TREE_OPERAND_LENGTH.
2946         (vect_gen_widened_results_half): Use build_call_expr.
2947         (vect_setup_realignment): Likewise.
2948         (vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
2949
2950         * tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
2951         (pass_through_call): Likewise.
2952         (compute_object_sizes): Likewise.  Use fold_call_expr instead of
2953         fold_builtin.
2954
2955         * tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
2956         (tree_gen_pow2_profiler): Likewise.
2957         (tree_gen_one_value_profiler): Likewise.
2958         (tree_gen_ic_func_profiler): Likewise.
2959         (tree_gen_average_profiler): Likewise.
2960         (tree_gen_ior_profiler): Likewise.
2961
2962         * tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
2963         (find_func_aliases): Use new CALL_EXPR accessors.  Add case
2964         tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
2965
2966         * tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
2967         of TREE_CODE_LENGTH.
2968
2969         * stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
2970         of TREE_CODE_LENGTH.
2971
2972         * convert.c (convert_to_real): Use new CALL_EXPR accessors and
2973         constructor.
2974         (convert_to_integer): Likewise.
2975
2976         * tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
2977         accessors.
2978
2979 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
2980             Brooks Moses  <brooks.moses@codesourcery.com>
2981             Lee Millward  <lee.millward@codesourcery.com>
2982
2983         * config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
2984         accessors.
2985         * config/frv/frv.c (frv_expand_builtin): Likewise.
2986         * config/s390/s390.c (s390_expand_builtin): Likewise.
2987
2988         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
2989         (sparc_expand_builtin): Use new CALL_EXPR accessors.
2990
2991         * config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
2992         (ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
2993         instead of arglist.  Use new CALL_EXPR accessors on it.  Fix callers.
2994         (ix86_expand_store_builtin): Likewise.
2995         (ix86_expand_unop_builtin): Likewise.
2996         (ix86_expand_unop1_builtin): Likewise.
2997         (ix86_expand_sse_compare): Likewise.
2998         (ix86_expand_sse_comi): Likewise.
2999         (ix86_expand_vec_init_builtin): Likewise.
3000         (ix86_expand_vec_ext_builtin): Likewise.
3001         (ix86_expand_vec_set_builtin): Likewise.
3002         (ix86_expand_builtin): Use new CALL_EXPR accessors.
3003
3004         * config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
3005         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
3006
3007         * config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
3008         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
3009         (iq2000_expand_builtin): Use new CALL_EXPR accessors.
3010
3011         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
3012         build_call_expr.
3013         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
3014         (rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
3015         arglist.  Use new CALL_EXPR accessors.  Fix callers.
3016         (altivec_expand_abs_builtin): Likewise.
3017         (rs6000_expand_binop_builtin): Likewise.
3018         (altivec_expand_predicate_builtin): Likewise.
3019         (altivec_expand_lv_builtin): Likewise.
3020         (spe_expand_stv_builtin): Likewise.
3021         (altivec_expand_stv_builtin): Likewise.
3022         (rs6000_expand_ternop_builtin): Likewise.
3023         (altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
3024         (altivec_expand_st_builtin): Likewise.
3025         (altivec_expand_dst_builtin): Likewise.
3026         (altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
3027         arglist.  Use new CALL_EXPR accessors.  Fix callers.
3028         (altivec_expand_vec_set_builtin): Likewise.
3029         (altivec_expand_vec_ext_builtin): Likewise.
3030         (altivec_expand_builtin): Use new CALL_EXPR accessors.
3031         (spe_expand_builtin): Likewise.
3032         (spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
3033         arglist.  Use new CALL_EXPR accessors.  Fix callers.
3034         (spe_expand_evsel_builtin): Likewise.
3035         (rs6000_expand_builtin): Use new CALL_EXPR accessors.  VCFUX and
3036         FCFSX cases must construct whole new CALL_EXPR, not just arglist.
3037
3038         * config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
3039         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
3040         (arm_expand_unop_builtin): Likewise.
3041         (arm_expand_builtin): Use new CALL_EXPR accessors.
3042
3043         * config/mips/mips.c (mips_expand_builtin):  Use new CALL_EXPR
3044         accessors.
3045
3046         * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire CALL_EXPR
3047         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
3048         (bfin_expand_unop_builtin): Likewise.
3049         (bfin_expand_builtin): Use new CALL_EXPR accessors.
3050
3051 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
3052             Brooks Moses  <brooks.moses@codesourcery.com>
3053             Lee Millward  <lee.millward@codesourcery.com>
3054
3055         * c-semantics.c (build_stmt): Add internal diagnostic check.
3056
3057         * c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
3058         accessors.  Print arguments explicitly instead of as a list.
3059
3060         * c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
3061
3062         * c-omp.c (c_finish_omp_barrier): Use build_call_expr.
3063         (c_finish_omp_flish): Likewise.
3064
3065         * c-common.c (verify_tree): Use new CALL_EXPR accessors.  Traverse
3066         arguments explicitly instead of as a list.  Use TREE_OPERAND_LENGTH
3067         instead of TREE_CODE_LENGTH.
3068         (check_function_arguments_recurse): Use new CALL_EXPR accessors.
3069         (c_warn_unused_result): Likewise.
3070
3071 2007-02-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3072
3073         PR c/26494
3074         * doc/invoke.texi (Warning Options): Remove
3075         -Werror-implicit-function-declaration.
3076         (Wimplicit-function-declaration): Update description.
3077         * opts.c (common_handle_option): Move handling of -Werror=* to...
3078         (enable_warning_as_error): ...here.
3079         * opts.h (enable_warning_as_error): Declare.
3080         * c-decl.c (implicit_decl_warning): Unless
3081         -Wno-implicit-function-declaration is given, emit a pedwarn if
3082         -std=c99 or emit a warning if -Wimplicit-function-declaration.
3083         * c.opt (Wimplicit-function-declaration): Replace
3084         mesg_implicit_function_declaration with
3085         warn_implicit_function_declaration.
3086         * c-opts.c (c_common_handle_option):
3087         -Werror-implicit-function-declaration is exactly equal as
3088         -Werror=implicit-function-declaration.
3089         (set_Wimplicit): Replace mesg_implicit_function_declaration with
3090         warn_implicit_function_declaration.
3091         (c_common_post_options): -Wimplict-function-declaration is enabled
3092         by default by -std=c99, otherwise is disabled by default.
3093         * c-objc-common.c (c_objc_common_init): Remove flawed logic.
3094
3095 2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>
3096
3097         * gimplify.c (gimplify_modify_expr): During gimplification, attach a
3098         DECL on the rhs to a DECL on the lhs for debug info purposes if the
3099         former is ignored but not the latter.
3100
3101 2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>
3102
3103         * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
3104         is made and the reference doesn't use the alias set of its type,
3105         do not create the temporary using that type.
3106
3107 2007-02-15  Aldy Hernandez  <aldyh@redhat.com>
3108
3109         * jump.c: Remove prototypes for delete_computation and
3110         delete_prior_computation.
3111
3112 2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
3113
3114         * jump.c (get_label_after): Delete.
3115         (get_label_before, delete_computation, delete_jump,
3116         delete_prior_computation, follow_jumps): Move...
3117         * reorg.c (delete_computation, delete_prior_computation): ... here...
3118         (get_label_before, delete_jump): ... making these static ...
3119         (follow_jumps): ... and simplifying this since it only runs after
3120         reload.
3121         * rtl.h (get_label_after, get_label_before, delete_jump,
3122         follow_jumps): Delete prototypes.
3123
3124 2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
3125
3126         * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
3127
3128 2007-02-15  Nick Clifton  <nickc@redhat.com>
3129
3130         * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
3131         order to prevent it from being munged by the target.
3132
3133 2007-02-15  Uros Bizjak  <ubizjak@gmail.com>
3134
3135         * config/i386/i386.md: Remove misleading comment.
3136
3137 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
3138
3139         * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
3140         reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
3141         invalid patterns.
3142
3143 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
3144
3145         * tree-sra.c (instantiate_missing_elements): Canonicalize
3146         bit-field types.
3147         (sra_build_assignment): New.
3148         (generate_copy_inout, generate_element_copy,
3149         generate_element_zero, generate_one_element_init): Use it.
3150
3151 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
3152
3153         * tree-sra.c (instantiate_missing_elements): Canonicalize
3154         bit-field types.
3155         (sra_build_assignment): New.
3156         (generate_copy_inout, generate_element_copy,
3157         generate_element_zero, generate_one_element_init): Use it.
3158
3159 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
3160
3161         * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
3162         limbo die nodes.
3163
3164 2007-02-14  Joseph Myers  <joseph@codesourcery.com>
3165
3166         * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
3167         types as aggregates not scalars.
3168         * function.c (assign_stack_temp_for_type): Likewise.
3169
3170 2007-02-14  Roger Sayle  <roger@eyesopen.com>
3171             Zdenek Dvorak  <dvorakz@suse.cz>
3172
3173         * tree-dump.c (dump_switch_p_1): Require exact match of the option
3174         name.
3175
3176 2007-02-14  Zdenek Dvorak  <dvorakz@suse.cz>
3177
3178         * passes.c (next_pass_1): Clear the next field of the copied
3179         pass structure.
3180
3181 2007-02-14  Richard Henderson  <rth@redhat.com>
3182
3183         * tree-sra.c (early_sra): New.
3184         (decl_can_be_decomposed_p): Deny va_list if early_sra.
3185         (tree_sra_early, pass_sra_early): New.
3186         * tree-pass.h (pass_sra_early): Declare.
3187         * passes.c (init_optimization_passes): Use it.
3188
3189 2007-02-14  Richard Guenther  <rguenther@suse.de>
3190
3191         * flags.h (issue_strict_overflow_warning): Convert to a macro.
3192
3193 2007-02-14  Dorit Nuzman  <dorit@il.ibm.com>
3194
3195          PR tree-optimization/30771
3196         * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
3197         also phi nodes.
3198         (vect_analyze_operations): Induction phis can now be marked as
3199         used_in_loop.
3200         (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
3201         Update documentation accordingly.
3202
3203 2007-02-14  Nick Clifton  <nickc@redhat.com>
3204
3205         * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
3206         most 3 arguments are supported.
3207         (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
3208
3209 2007-02-13  Seongbae Park <seongbae.park@gmail.com>
3210
3211         * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
3212         Ensure dst->current is valid.
3213
3214 2007-02-13  Paul Brook  <paul@codesourcery.com>
3215
3216         * config.gcc: Add arm*-*-uclinux-*eabi.
3217         * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
3218         (SUBTARGET_EXTRA_LINK_SPEC): Define.
3219         (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
3220         (LINK_GCC_C_SEQUENCE_SPEC): Undef.
3221         (LINK_SPEC): Define.
3222         (LIB_SPEC): Define.
3223         * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
3224         register.
3225         * config/arm/uclinux-eabi.h: New file.
3226         * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
3227         * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
3228         based targets.
3229
3230 2007-02-13  Ian Lance Taylor  <iant@google.com>
3231
3232         * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
3233         * flags.h (warn_strict_overflow): Declare.
3234         (enum warn_strict_overflow_code): Define.
3235         (issue_strict_overflow_warning): New static inline function.
3236         * opts.c (warn_strict_overflow): New variable.
3237         (common_handle_option): Handle OPT_Wstrict_overflow and
3238         OPT_Wstrict_overflow_.
3239         * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
3240         OPT_Wall.
3241         * fold-const.c: Include intl.h.
3242         (fold_deferring_overflow_warnings): New static variable.
3243         (fold_deferred_overflow_warning): New static variable.
3244         (fold_deferred_overflow_code): New static variable.
3245         (fold_defer_overflow_warnings): New function.
3246         (fold_undefer_overflow_warnings): New function.
3247         (fold_undefer_and_ignore_overflow_warnings): New function.
3248         (fold_deferring_overflow_warnings_p): New function.
3249         (fold_overflow_warning): New static function.
3250         (make_range): Add strict_overflow_p parameter.  Change all
3251         callers.
3252         (extract_muldiv, extract_muldiv_1): Likewise.
3253         (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
3254         tree_expr_nonnegative_p.
3255         (fold_negate_expr): Call fold_overflow_warning.
3256         (fold_range_test): Likewise.
3257         (fold_comparison): Likewise.
3258         (fold_binary): Likewise.  Call tree_expr_nonnegative_warnv_p
3259         instead of tree_expr_nonnegative_p.
3260         (tree_expr_nonnegative_warnv_p): Rename from
3261         tree_expr_nonnegative_p, add strict_overflow_p parameter.
3262         (tree_expr_nonnegative_p): New function.
3263         (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
3264         strict_overflow_p parameter.
3265         (tree_expr_nonzero_p): New function.
3266         * passes.c (verify_interpass_invariants): New static function.
3267         (execute_one_pass): Call it.
3268         * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
3269         warnings.
3270         (number_of_iterations_exit, loop_niter_by_eval): Likewise.
3271         (estimate_numbers_of_iterations): Likewise.
3272         (scev_probably_wraps_p): Likewise.
3273         * tree-ssa-ccp.c: Include "toplev.h".
3274         (evaluate_stmt): Defer fold overflow warnings until we know we are
3275         going to optimize.
3276         (struct fold_stmt_r_data): Add stmt field.
3277         (fold_stmt_r): Defer fold overflow warnings until we know we
3278         optimized.
3279         (fold_stmt): Initialize stmt field of fold_stmt_r_data.
3280         (fold_stmt_inplace): Likewise.
3281         * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
3282         (cleanup_control_expr_graph): Defer fold overflow warnings until
3283         we know we are going to optimize.
3284         * tree-cfg.c (fold_cond_expr_cond): Likewise.
3285         * tree-ssa-threadedge.c (simplify_control_stmt_condition):
3286         Likewise.
3287         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
3288         tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
3289         * tree-ssa-loop-manip.c (create_iv): Likewise.
3290         * c-typeck.c (build_conditional_expr): Likewise.
3291         (build_binary_op): Likewise.
3292         * tree-vrp.c (vrp_expr_computes_nonzero): Call
3293         tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
3294         (extract_range_from_unary_expr): Likewise.
3295         * simplify-rtx.c (simplify_const_relational_operation): Warn when
3296         assuming that signed overflow does not occur.
3297         * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
3298         * tree.h (tree_expr_nonnegative_warnv_p): Declare.
3299         (fold_defer_overflow_warnings): Declare.
3300         (fold_undefer_overflow_warnings): Declare.
3301         (fold_undefer_and_ignore_overflow_warnings): Declare.
3302         (fold_deferring_overflow_warnings_p): Declare.
3303         (tree_expr_nonzero_warnv_p): Declare.
3304         * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
3305         of warning options.
3306         (Warning Options): Document -Wstrict-overflow.
3307         * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
3308         (tree-ssa-ccp.o): Likewise.
3309         (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
3310         (fold-const.o): Depend on intl.h.
3311
3312 2007-02-13  Ian Lance Taylor  <iant@google.com>
3313
3314         PR middle-end/30751
3315         * lower-subreg.c (resolve_simple_move): Decompose subregs in
3316         addresses.
3317
3318 2007-02-13  Stuart Hastings  <stuart@apple.com>
3319
3320         * gcc/config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
3321
3322 2007-02-13  Richard Henderson  <rth@redhat.com>
3323
3324         * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
3325         handled_component_p before looking for the indirect_ref.
3326
3327 2007-02-13  Richard Henderson  <rth@redhat.com>
3328
3329         * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
3330         remove flags clobber.
3331         (bswapsi2): New expander, emit code for !TARGET_BSWAP.
3332         (bswaphi_lowpart): New.
3333         (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
3334         remove TARGET_BSWAP test.  Delete expander of the same name.
3335
3336         * optabs.c (widen_bswap, expand_doubleword_bswap): New.
3337         (expand_unop): Use them.
3338
3339 2007-02-13  Uros Bizjak  <ubizjak@gmail.com>
3340
3341         * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
3342         *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
3343         *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
3344         *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
3345         *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
3346         *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
3347         *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
3348         assembler dialect choice from asm templates.
3349
3350 2007-02-12  Richard Henderson  <rth@redhat.com>
3351
3352         * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
3353         (fixuns_trunc<SSEMODEF>si2): Use it.
3354         * config/i386/sse.md (vec_setv4sf_0): Export.
3355         * config/i386/i386.c (ix86_build_const_vector): Export.
3356         (ix86_split_convert_uns_si_sse): Rename from
3357         ix86_expand_convert_uns_si_sse and rewrite as a splitter.
3358         * config/i386/i386-protos.h: Update.
3359
3360 2007-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3361
3362         PR c/29521
3363         * c-typeck.c (c_finish_return): Improve warning message.
3364
3365 2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3366
3367         * alias.c (find_symbolic_term): Delete unused function.
3368
3369 2007-02-12  Uros Bizjak  <ubizjak@gmail.com>
3370
3371         * config/i386/i386.md (paritydi2, paritysi2): New expanders.
3372         (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
3373         (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
3374
3375 2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
3376
3377         * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
3378         * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
3379         the function, temporarily point the debug interface to the null one.
3380
3381 2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
3382
3383         * dwarf2out.c (round_up_to_align): New static function.
3384         (field_byte_offset): Use it to round the offset.
3385
3386 2007-02-12  Richard Henderson  <rth@redhat.com>
3387
3388         * config/alpha/alpha.md (bswapsi2, bswapdi2): New.
3389         (inswl_const): Export.
3390
3391 2007-02-12  Richard Henderson  <rth@redhat.com>
3392
3393         * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
3394         result mode of the libcall, convert back to outmode.
3395
3396 2007-02-12  Roger Sayle  <roger@eyesopen.com>
3397
3398         * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
3399         (bswapdi2): New define_expand to implement 32-bit implementation.
3400
3401 2007-02-12  Nick Clifton  <nickc@redhat.com>
3402
3403         * doc/invoke.texi (Overall Options): Document --help=.
3404         * gcc.c (target_help_flag): Rename to print_subprocess_flag.
3405         (cc1_options): Pass --help= on to cc1.
3406         (display_help): Add description of --help=.
3407         (process_command): Add code to handle --help=.  Allow translated
3408         --help and --target-help switches to be passed on to compiler
3409         sub-process.
3410         (main): Remove unused if statement.