OSDN Git Service

0c706cb408d6f337189b531302bfcb06e048fcac
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-01-12  Julian Brown  <julian@codesourcery.com>
2
3         * config/m68k/m68k.h (TARGET_ISAB): New macro.
4         * config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4.
5         * config/m68k/m68k.md: Likewise.
6
7 2007-01-12  Julian Brown  <julian@codesourcery.com>
8
9         * config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use
10         TARGET_COLDFIRE_FPU instead of TARGET_CFV4E.
11
12 2007-01-12  Julian Brown  <julian@codesourcery.com>
13
14         * config/m68k/m68k.h (TUNE_68040_60): New macro.
15         * config/m68k/m68k.c (standard_68881_constant_p): Use it.
16         * config/m68k/m68k.md: Likewise.
17
18 2007-01-12  Julian Brown  <julian@codesourcery.com>
19             Richard Sandiford  <richard@codesourcery.com>
20
21         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030
22         instead of TARGET_68030, TUNE_68040 instead of TARGET_68040,
23         TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of
24         TARGET_CPU32.
25         (TARGET_CPU32): Rename to...
26         (TUNE_CPU32): ...this.
27         (TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060)
28         (TUNE_CFV2): New macros.
29         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify;
30         remove conditions that are implied by TARGET_68020.
31         * config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040
32         instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32.
33         (m68k_output_function_epilogue): Likewise.
34         (m68k_rtx_costs): Likewise.  Use TUNE_68060 instead of TARGET_68060
35         and TUNE_CFV2 instead of TARGET_5200.  Use TUNE_68000_10 instead of
36         "!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and
37         non-68000 timings.  Refactor multiplication and division costs.
38         (output_addsi3): Use TUNE_68040 instead of TARGET_68040 and
39         TUNE_CPU32 instead of TARGET_CPU32.
40         (standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040
41         and TUNE_68060 instead of TARGET_68060.
42         * config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040,
43         TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of
44         TARGET_CPU32.
45         (movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020
46         && !TARGET_COLDFIRE" to choose between moveq and clr.
47         Likewise in the unnamed movsf pattern.
48         (ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than
49         "!TARGET_68020 && !TARGET_COLDFIRE".  Likewise the unnamed
50         ashiftrt pattern.
51
52 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
53
54         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount
55         of tabbing before backslashes.
56
57 2007-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
58
59         * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
60         * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
61         (ASM_OUTPUT_INTERNAL_LABEL): Define.
62
63 2007-01-11  Zdenek Dvorak <dvorakz@suse.cz>
64
65         * tree-ssa-loop-ivopts.c (extract_cond_operands): Split from
66         find_interesting_uses_cond.
67         (find_interesting_uses_cond): Use extract_cond_operands.
68         (rewrite_use_compare): Use extract_cond_operands and
69         force_gimple_operand_bsi.  Do not call update_stmt.
70         (determine_use_iv_cost_condition): Use extract_cond_operands.
71         Return cheaper of using original bound and changing the exit bound.
72
73 2007-01-11  Zdenek Dvorak <dvorakz@suse.cz>
74
75         PR tree-optimization/29516
76         * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
77         most_expensive_mult_to_index, addr_to_parts,
78         create_mem_ref, maybe_fold_tmr): Make the type of
79         fields of TARGET_MEM_REF sizetype.
80         (move_fixed_address_to_symbol, move_pointer_to_base):
81         New functions.
82         * tree.def (TARGET_MEM_REF): Add comment on types of
83         the operands.
84
85 2007-01-11  Joseph Myers  <joseph@codesourcery.com>
86
87         * c-common.c (vector_types_convertible_p): Treat opaque types as
88         always convertible if they have the same size, but not otherwise.
89
90 2007-01-11  Steven Bosscher  <steven@gcc.gnu.org>
91
92         * ifcvt.c (struct noce_if_info): Add comments to the fields.
93         Remove the b_unconditional field.
94         (noce_try_sign_mask): Do not look at b_unconditional.
95         (noce_process_if_block): Do not use merge_if_blocks.  Update
96         the CFG here.  Do not set b_unconditional.
97         (cond_move_process_if_block): Likewise.
98         (find_cond_trap): Likewise.
99         (check_cond_move_block): Require simple jump insns at the end
100         of the basic block.
101
102 2007-01-11  Jan Hubicka  <jh@suse.cz>
103
104         PR tree-optimization/1046
105         * tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE
106         when alias info is not ready.
107         (pass_tail_recursion): Do not require aliasing.
108         * tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise.
109         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise.
110         * tree-ssa-copy.c (pass_copy_prop): Likewise.
111         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
112         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise.
113         * passes.c (init_optimization_passes): Execute rename_ssa_copies,
114         ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion
115         before inlining.
116         * tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand):
117         When aliasing is not build, mark statement as volatile.
118
119 2007-01-11  Tom Tromey  <tromey@redhat.com>
120
121         PR preprocessor/15185, PR preprocessor/20989:
122         * doc/cppopts.texi <-MT>: Update description of algorithm for
123         computing default target.
124         <-M, -MD>: Reword "basename" text.
125
126 2007-01-11  Roger Sayle  <roger@eyesopen.com>
127
128         * builtins.c (expand_builtin_pow, expand_builtin_powi,
129         fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc,
130         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
131         fold_builtin_int_int_roundingfn, fold_builtin_bitop,
132         fold_builtin_bswap, real_constp, fold_builtin_pow,
133         fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign,
134         do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace
135         uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
136         * convert.c (convert_to_pointer): Likewise.
137         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
138         * fold-const.c (force_fit_type, fold_negate_expr, int_const_binop,
139         const_binop, fold_convert_const_int_from_int,
140         fold_convert_const_int_from_real,
141         fold_convert_const_real_from_real, sign_bit_p,
142         optimize_minmax_comparison, extract_muldiv_1, fold_div_compare,
143         fold_sign_changed_comparison, fold_unary, fold_comparison,
144         fold_binary, multiple_of_p, tree_Expr_non_zero_p,
145         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
146         * print-tree.c (print_node_brief, print_node): Likewise.
147         * stor-layout.c (place_field, layout_type): Likewise.
148         * tree-chrec.c (keep_cast): Likewise.
149         * tree.c (build_vector, build_real, build_real_from_int_cst,
150         build_complex): Likewise.
151
152 2007-01-11  Roger Sayle  <roger@eyesopen.com>
153
154         * tree.h (TREE_CONSTANT_OVERFLOW): Obsolete.  For the time being,
155         treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW.
156
157 2007-01-11  Paolo Bonzini  <bonzini@gnu.org>
158
159         * configure.ac (strict1_warn): Rename to strict_warn.
160         (WERROR, --enable-werror, symlink hacks, stage1_cflags,
161         cc_set_by_configure, quoted_cc_set_by_configure,
162         stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
163         all_boot_languages, all_stagestuff): Remove.
164         (target_list): Remove bootstrap targets.
165         * Makefile.in (quickstrap): Unconditionally make a synonym of all.
166         (BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
167         REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
168         SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
169         VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
170         STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
171         stage1_copy, stage2_build, stage2_copy, stageprofile_build,
172         stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
173         stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
174         bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
175         bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
176         unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
177         restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
178         cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
179         *compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
180         stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
181         stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
182         risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
183         (ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
184         (STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
185         (mostlyclean): Adjust.
186         (clean, distclean): Don't mention bootstrap stuff.
187         * configure: Regenerate.
188         * ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
189         java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
190         treelang/config-lang.in (stagestuff): Remove.
191         * doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
192         stageprofile, stagefeedback, stagestuff): Remove mention.
193
194 2007-01-11  Nick Clifton  <nickc@redhat.com>
195
196         * config/mcore/predicates.md (mcore_general_movesrc_operand):
197         Accept CONSTs.
198         (mcore_general_movdst_operand): Do not accept CONST_INTs.
199         (mcore_arith_K_S_operand): Run the test for the S constraint not
200         the test for the M constraint.
201         (mcore_addsub_operand): Do not accept integer values that are
202         larger than 32 bits.
203         * config/mcore/mcore.md: Remove unused constraints from split.
204         (andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL.
205         (addsi3): Likewise.
206         (allocate_stack): Likewise.
207         * config/mcore/mcore.c (mcore_print_operand): Restrict output of P
208         operands to 32 bits.
209         (mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an
210         INTVAL.
211         (mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore,
212         mcore_const_ok_for_inline, mcore_const_trick_uses_not,
213         try_constant_tricks, mcore_num_ones, mcore_num_zeros,
214         mcore_output_bclri, mcore_output_andn, output_inline_const,
215         mcore_output_move, mcore_output_movedouble): Likewise.
216         (mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N.
217         (output_inline_const): Likewise.
218         (output_inline_const): Fix format strings used in sprintf
219         statements.
220         * config/mcore/mcore-protos.h: Update prototypes for changed
221         functions in mcore.c.
222         * config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to
223         HOST_WIDE_INT and not int.
224         (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M,
225         CONST_OK_FOR_N): Likewise.
226         (LEGITIMATE_CONSTANT_P): Also check CONSTANT_P.
227         (GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold
228         an INTVAL.
229
230 2007-01-10  Jan Hubicka  <jh@suse.cz>
231
232         * tree-vrp.c (remove_range_assertions): Release defs.
233         * tree-ssa-loop-ivopts.c (rmeove_statement): Likewise.
234         * tree-ssa-dom.c (remove_stmt_or_phi): Likewise.
235
236 2007-01-10  Paul Brook  <paul@codesourcery.com>
237
238         * config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract.
239         * config/arm/arm.md (mulsi3subsi): New insn.
240
241 2007-01-10  Zdenek Dvorak <dvorakz@suse.cz>
242
243         * tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ...
244         (tree_transform_and_unroll_loop): New.
245         * tree-flow.h (transform_callback, tree_transform_and_unroll_loop):
246         Declare.
247
248 2007-01-10  Robert Kennedy <jimbob@google.com>
249
250         * fold-const.c (fold_comparison): Fold comparisons like (x *
251         1000 < 0) to (x < 0).
252
253 2007-01-10  Ian Lance Taylor  <iant@google.com>
254
255         * tree-pretty-print.c (dump_generic_node): Print parentheses when
256         operands have the same priority.
257
258 2007-01-10  Tom Tromey  <tromey@redhat.com>
259
260         * fold-const.c (fold_truthop): Don't check can_use_bit_fields_p.
261         (fold_binary): Likewise.
262         * langhooks.c (lhd_can_use_bit_fields_p): Removed.
263         * langhooks-def.h (lhd_can_use_bit_fields_p): Removed.
264         (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
265         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P.
266         * langhooks.h (struct lang_hooks): Removed field
267         'can_use_bit_fields_p'.
268
269 2007-01-10  Ralf Cors├ępius <ralf.corsepius@rtems.org>
270
271         * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
272
273 2007-01-10  Razya Ladelsky  <razya@il.ibm.com>
274
275         * function.c (get_last_funcdef_no): New function.
276         * function.h (get_last_funcdef_no): Declare. 
277         * tree-inline.c (initialize_cfun): Add initialization.
278         (tree_function_versioning): Cleanup.
279         
280 2007-01-10  Jan Hubicka  <jh@suse.cz>
281
282         * tree-inline.c (setup_one_parameter): Do not propagate into abnormal
283         PHIs.
284
285 2007-01-10  Sa Liu  <saliu@de.ibm.com>
286             Ben Elliston  <bje@au.ibm.com>
287
288         * spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode
289         for SAVE_NONLOCAL and Pmode for any other save level.
290         * spu-protos.h (spu_restore_stack_block): Declare.
291         * spu.md (save_stack_block): Remove.
292         (restore_stack_block): Call spu_restore_stack_block.
293         * spu.c (spu_restore_stack_block): New function.
294         (spu_expand_epilogue): Remove old comment.
295
296 2007-01-09  Zdenek Dvorak <dvorakz@suse.cz>
297
298         PR tree-optimization/30322
299         * tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed.
300         (cand_value_at): Return the value as aff_tree.
301         (may_eliminate_iv): Convert the bound from aff_tree to tree.
302         * tree-affine.c (aff_combination_add_cst, aff_combination_add_product,
303         aff_combination_mult): New functions.
304         (aff_combination_add): Use aff_combination_add_cst.
305         (aff_combination_convert): Allow conversions to a wider type.
306         (tree_to_aff_combination): Handle BIT_NOT_EXPR.
307         * tree-affine.h (aff_combination_mult): Declare.
308
309 2007-01-09  Carlos O'Donell  <carlos@codesourcery.com>
310
311         * doc/tm.texi: Update documentation to reflect reality of exec
312         and start file search behaviours. Update copyright year.
313         * doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find
314         header file directories.
315
316 2007-01-09  Uros Bizjak  <ubizjak@gmail.com>
317
318         * config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
319         (*cosxf2): Rename to cosxf2_i387.
320
321         (*sindf2, *sinsf2): Extend operand 1 to XFmode.  Macroize patterns
322         using X87MODEF12 mode macro. Rename patterns to
323         *sin_extend<mode>xf2_i387.  Use SSE_FLOAT_MODE_P to disable patterns
324         for SSE math.
325         (*cosdf2, *cossf2): Ditto.
326         (sincosdf3, sincossf3): Ditto.  Rewrite corresponding splitters
327         to match extended input operands.
328
329         (sincos<mode>3): New expander.
330
331         (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove
332         insn patterns and corresponding splitters.
333
334 2007-01-09  Kaz Kojima  <kkojima@gcc.gnu.org>
335
336         * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
337         (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.
338
339 2007-01-09  Nicolas Pitre  <nico@cam.org>
340
341         PR target/30173
342         * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
343
344 2007-01-08  Geoffrey Keating  <geoffk@apple.com>
345
346         * target.h (struct gcc_target): New field library_rtti_comdat.
347         * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
348         (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
349         * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
350         * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
351
352 2007-01-08  Geoffrey Keating  <geoffk@apple.com>
353
354         * doc/invoke.texi (Optimize Options): Correct description of -O0.
355
356 2007-01-08  Richard Guenther  <rguenther@suse.de>
357
358         * tree.h (force_fit_type_double): Export.
359         (force_fit_type): Remove.
360         * fold-const.c (force_fit_type_double): New function.
361         (force_fit_type): Remove.
362         (int_const_binop): Use it.
363         (fold_convert_const_int_from_int): Likewise.
364         (fold_convert_const_int_from_real): Likewise.
365         (fold_div_compare): Likewise.
366         (fold_sign_changed_comparison): Likewise.
367         (fold_unary): Likewise.
368         (fold_negate_const): Likewise.
369         (fold_abs_const): Likewise. 
370         (fold_not_const): Likewise.
371         * c-common.c (shorten_compare): Use force_fit_type_double.
372         * convert.c (convert_to_pointer): Likewise.
373
374 2007-01-08  Richard Guenther  <rguenther@suse.de>
375
376         * tree.h (build_int_cst_wide_type): Export.
377         * tree.c (build_int_cst_wide_type): New function.
378         (build_int_cst_wide): Fix comment.
379         * builtins.c (fold_builtin_object_size): Use build_int_cst
380         to build -1 or 0 of the correct type.  Use fit_double_type
381         to check for overflow.
382         * fold-const.c (optimize_bit_field_compare): Use build_int_cst_type
383         to build the mask.
384         (decode_field_reference): Likewise.
385         (all_ones_mask_p): Likewise.
386         (native_interpret_int): Use build_int_cst_wide_type.
387         (fold_binary): Use build_int_cst_type to build an all-ones
388         value.
389         * stor-layout.c (set_sizetype): Use build_int_cst_wide_type.
390
391 2007-01-08  Daniel Jacobowitz  <dan@codesourcery.com>
392
393         * config/pa/t-pa64 (libgcc_stub.a): Use $(T).
394
395 2007-01-09  Ben Elliston  <bje@au.ibm.com>
396
397         * genautomata.c (STATS_OPTION): New option.
398         (stats_flag): New flag.
399         (gen_automata_option): Handle it.
400         (initiate_automaton_gen): Ditto.
401         (write_automata): Output statistics only if stats_flag is
402         set. Likewise, output time statistics only if time_flag is set.
403         * doc/md.texi (Processor pipeline description): Document new flag.
404
405 2007-01-08  Richard Guenther  <rguenther@suse.de>
406
407         * builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
408         * tree.c (build_int_cst_type): Likewise.
409         (size_in_bytes): Don't call force_fit_type on the result.
410         (int_fits_type_p): Use fit_double_type.
411         * fold-const.c (fit_double_type): New function.
412         (force_fit_type): Use it.
413         * tree.h (fit_double_type): Export.
414
415 2007-01-08  Jan Hubicka  <jh@suse.cz>
416
417         * tree-vectorizer.c (gate_increase_alignment): Fix return type.
418         * ipa.c (function_and_variable_visibility): Fix return type.
419
420 2007-01-08  Richard Guenther  <rguenther@suse.de>
421
422         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
423         of offset to build the index.
424         * tree-pretty-print.c (dump_generic_node): Don't build negated
425         const just for printing.
426         * c-pretty-print.c (pp_c_integer_constant): Likewise.
427         * builtins.c (fold_builtin_int_roundingfn): Check if result
428         fits the type by using force_fit_type and comparing the result.
429         * predict.c (predict_loops): Use compare_tree_int for comparison.
430         * tree.c (build_int_cst): Fall back to integer_type_node for
431         NULL_TREE type.
432         (build_int_cst_wide): Assert type is non-null.
433
434 2007-01-08  Roberto Costa  <roberto.costa@st.com>
435
436         * tree-vrp.c (extract_range_from_cond_expr): New.
437         (extract_range_from_expr): Handle COND_EXPR nodes used as expressions.
438         * tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used
439         as expressions.
440         (fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs.
441         * tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond,
442         tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes
443         used as expressions.
444         * tree-object-size.c (cond_expr_object_size): New.
445         (collect_object_sizes_for): Handle COND_EXPR nodes used as expressions.
446
447 2007-01-08  Jan Hubicka  <jh@suse.cz>
448
449         * tree-ssa-forwprop.c (forward_propagate_into_cond,
450         tree_ssa_forward_propagate_single_use_va): Release defs of propagated
451         statement.
452
453 2007-01-08  Richard Guenther  <rguenther@suse.de>
454
455         PR tree-optimization/23603
456         * tree-vrp.c (set_value_range_to_truthvalue): New function.
457         (extract_range_from_binary): Fall back to truthvalue instead of
458         varying for TRUTH_*_EXPR.
459         (extract_range_from_comparison): Fall back to truthvalue instead of
460         varying.
461         (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF
462         if all visited PHI values were constant.
463
464 2007-01-08  Jan Hubicka  <jh@suse.cz>
465
466         * cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
467         (cgraph_analyze_function): break out from ...
468         (cgraph_finalize_compilation_unit): ... here.
469         (cgraph_expand_function): Remove forgoten commented out line.
470         (cgraph_optimize): Analyze functions.
471
472 2007-01-08  Jan Hubicka  <jh@suse.cz>
473
474         * tree-pas.h (TODO_remove_function): New flag.
475         (TODO_update*): Renumber.
476         (pass_ipa_increase_alignment,
477         pass_ipa_function_and_variable_visibility): New passes.
478         * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c
479         (cgraph_function_and_variable_visibility): Move to ipa.c
480         (cgraph_optimize): Don't call cgraph_function_and_variable_visibility,
481         cgraph_increase_alignment.
482         * ipa-inline.c (cgraph_decide_inlining): Don't push timevar.
483         (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before
484         calling tree-inline.
485         (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes.
486         (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions
487         * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c
488         (gate_increase_alignment): New function.
489         (pass_ipa_increase_alignment): New pass.
490         * ipa.c: Inline tree-pass.h and timevar.h
491         (function_and_variable_visibility): Move here from cgraphunit.c
492         * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions.
493         * passes.c (init_optimization_passes): Add the two new passes.
494         (execute_todo): Handle cgraph_remove_functions.
495
496 2007-01-08  Nick Clifton  <nickc@redhat.com>
497
498         * config/frv/predicates.md (reg_or_0_operand): Accept
499         CONST_DOUBLEs.
500
501 2007-01-08  Ralf Cors├ępius <ralf.corsepius@rtems.org>
502
503         * config/bfin/rtems.h, config/bfin/t-rtems: New.
504         * config.gcc: Add bfin*-rtems*.
505
506 2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>
507
508         * c.opt: Add -flax-vector-conversions.
509         * c-typeck.c (convert_for_assignment): Pass flag to
510         vector_types_convertible_p to allow emission of note.
511         (digest_init): Likewise.
512         * c-opts.c: Handle -flax-vector-conversions.
513         * c-common.c (flag_lax_vector_conversions): New.
514         (vector_types_convertible_p): Unless -flax-vector conversions
515         has been passed, disallow conversions between vectors with
516         differing numbers of subparts and/or element types.  If such
517         a conversion is disallowed, possibly emit a note on the first
518         occasion only to inform the user of -flax-vector-conversions.
519         The new last argument specifies this.
520         * c-common.h (flag_lax_vector_conversions): New.
521         (vector_types_convertible_p): Add extra argument.
522         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
523         char_type_node for V*QI type vectors.
524         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
525         Update to satisfy new typechecking rules.
526         * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
527         C and C++ variants.
528         * doc/invoke.texi (C Dialect Options): Document
529         -flax-vector-conversions.
530
531 2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>
532
533         PR tree-optimization/29877
534         * tree-ssa-ter.c (is_replaceable_p): Deem assignments with
535         a register variable on the RHS to not be replaceable.
536
537 2007-01-08  Chen Liqin  <liqin@sunnorth.com.cn>
538         * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
539         * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
540         const_simm15, const_pow2, const_npow2): Added.
541         * config/score/misc.md (insv, extv, extzv, movmemsi, 
542         move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
543         * config/score/score.c (score_address_cost, score_select_cc_mode): 
544         Added.
545         Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
546         Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
547         Update score_print_operand.
548         * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
549         Adjust register allocate order and update some macro define.
550         * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
551         mdx_block_move_straight, mdx_block_move_loop_head,
552         mdx_block_move_loop_body, mdx_block_move_loop_foot, mdx_block_move_loop,
553         mdx_block_move): Added.
554         (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
555         mdp_limm): Updated and fix some bug and typo.
556         * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
557         (movsf, movdf, doloop_end): Added.
558
559 2007-01-08  Kazu Hirata  <kazu@codesourcery.com>
560
561         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
562         config/arm/thumb2.md: Fix comment typos.
563         * doc/extend.texi: Fix a typo.
564
565 2007-01-07  Eric Christopher  <echristo@apple.com>
566
567         * configure.ac: Check for __stack_chk_fail for darwin.
568         * configure: Regenerate.
569
570 2007-01-07  Richard Guenther  <rguenther@suse.de>
571
572         * tree-vrp.c (extract_range_from_assert): CSE calls to
573         compare_values where possible.
574         (extract_range_from_unary_expr): Likewise.
575
576 2007-01-07  Anatoly Sokolov <aesok@post.ru>
577
578         * config/avr/avr-protos.h (call_insn_operand): Delete prototype.
579         * config/avr/avr.c (call_insn_operand): Delete function.
580         * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
581         instead of register number. Use predicates.
582         * config/avr/predicates.md (const0_operand, reg_or_0_operand,
583         call_insn_operand): Add.
584
585 2007-01-06  Jan Hubicka  <jh@suse.cz>
586
587         * tree-pass.h (pass_build_cgraph_edges): Declare.
588         * cgraphunit.c (record_refernece): Move to cgraphbuild.c
589         (visited_nodes): Remove.
590         (cgraph_create_edges): Move to cgraphbuild.c; rename to
591         build_cgrpah_edges; make visited_nodes local.
592         (cgraph_process_new_functions): DO not call initialize_inline_failed.
593         (record_references_in_initializer): Move to cgraphbuild.c
594         (initialize_inline_failed, rebuild_cgraph_edges,
595         pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
596         (verify_cgraph_node): Make visited_nodes local.
597         (cgraph_analyze_function): Do not call cgraph_create_edges and
598         initialize_inline_failed.
599         (cgraph_expand_function): Do not call cgraph_lower_function;
600         assert that function is already lowered.
601         * Makefile.in (cgraphbuild.o): New.
602         * passes.c (init_optimization_passes): Add pass_build_cgraph_edges
603         at the end of lowering passes.
604
605 2007-01-06  Steven Bosscher  <steven@gcc.gnu.org>
606
607         * ifcvt.c (cond_move_convert_if_block): New function, code
608         factored out from...
609         (cond_move_process_if_block): ...here.  Call the new function
610         on the THEN and ELSE blocks.
611         (merge_if_block): Do not copy global_live_at_end, merge_blocks
612         already takes care of this.
613
614 2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
615
616         PR c/19978
617         * tree.h (TREE_OVERFLOW_P): New.
618         * c-typeck.c (parser_build_unary_op): Warn only if result
619         overflowed and operands did not.
620         (parser_build_binary_op): Likewise.
621         (convert_for_assignment): Remove redundant overflow_warning.
622         * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.
623
624 2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
625
626         * c-typeck.c (store_init_value): Split over two lines to follow
627         the GNU coding style.
628
629 2007-01-05  Benjamin Kosnik  <bkoz@redhat.com>
630
631         * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
632         __GXX_EXPERIMENTAL_CXX0X__.
633         * doc/cpp.texi: Same.
634
635 2007-01-05  Richard Guenther  <rguenther@suse.de>
636
637         PR middle-end/27826
638         * tree.c (get_narrower): Do not construct COMPONENT_REFs
639         with mismatched types.  Instead explicitly build a
640         conversion NOP_EXPR.
641
642 2007-01-05  Ian Lance Taylor  <iant@google.com>
643
644         * c-common.c (decl_with_nonnull_addr_p): New function.
645         (c_common_truthvalue_conversion): Call it.
646         * c-typeck.c (build_binary_op): Likewise.
647         * c-common.h (decl_with_nonnull_addr_p): Declare.
648
649 2007-01-05  Jakub Jelinek  <jakub@redhat.com>
650
651         PR c/30360
652         * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
653         denom against 0.0.
654
655 2007-01-05  Joel Brobecker  <brobecker@adacore.com>
656
657         * doc/install.texi (Final install): Document the fact that
658         the GNAT runtime should not be stripped.
659
660 2007-01-04  Jan Hubicka  <jh@suse.cz>
661
662         * tree-inline.c (fold_marked_statements): Update operand caches
663         and EH after folding
664
665 2007-01-04  Ian Lance Taylor  <iant@google.com>
666
667         * c-common.c (check_function_nonnull): Whitespace fix.
668
669 2007-01-04  Jan Hubicka  <jh@suse.cz>
670
671         * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
672         comitted older version of patch.
673         (pass_fixup_cfg): Add TODOs to verify flow and statements, dump
674         function, celanup cfg and collect garbage.
675
676 2007-01-04  Mike Stump  <mrs@apple.com>
677
678         * Makefile.in (mostlyclean): Don't remove libgcc anymore.
679         (clean): Likewise.
680
681 2007-01-04  Eric Christopher  <echristo@apple.com>
682
683         * libgcc2.c (__bswapsi2): Use SItype.
684         (__bswapdi2): Use DItype.
685         * libgcc2.h: Update for above.
686
687 2007-01-04  Paul Brook  <paul@codesourcery.com>
688
689         * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
690         mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0,
691         mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3,
692         umulsidi3, umulsidi3adddi, smulsi3_highpart,
693         umulsi3_highpart): Make conditional on !arm_arch6.
694         (arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6,
695         mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6,
696         mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6,
697         umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6,
698         umulsi3_highpart_v6): New insns.
699
700 2007-01-04  Roger Sayle  <roger@eyesopen.com>
701
702         * fold-const.c (fold_convert): When casting an expression to void,
703         fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
704         have a type.  Instead of attempting to build a NOP_EXPR, return
705         these "special" trees directly.
706
707 2007-01-04  Joseph Myers  <joseph@codesourcery.com>
708
709         * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
710         MULT inside MINUS as either argument.  Use rs6000_cost->dmul -
711         rs6000_cost->fp not 0 as adjustment for outer NEG.
712
713 2007-01-04  Jan Hubicka  <jh@suse.cz>
714
715         * cgraph.c (cgraph_release_function_body): New function.
716         (cgraph_remove_node): Use it.
717         * cgraph.h (cgraph_release_function_body): Declare.
718         * cgraphunit.c (cgraph_expand_function): Use it.
719         * ipa.c (cgraph_remove_unreahchable_nodes): Use it.
720         * tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing
721         is initialized and while compilation of other function is running.
722         * tree-optimize.c (execute_free_cfg_annotations): Move code to clear
723         statement CFG annotations from here to ...
724         * tree-cfg.c (delete_tree_cfg_annotations): ... here.
725
726 2007-01-04  Zdenek Dvorak <dvorakz@suse.cz>
727
728         * cfgloop.h (enum li_flags): Make the constants powers of two.
729
730 2007-01-04  Jan Hubicka  <jh@suse.cz>
731
732         * tree-inline.c (copy_bb): Insert new statements to statements_to_fold
733         set.
734         (fold_marked_statements): New function.
735         (optimize_inline_calls, tree_function_versioning): Fold new statements.
736         * tree-inline.h (copy_body_data): Add statements_to_fold.
737
738 2007-01-03  Daniel Jacobowitz  <dan@codesourcery.com>
739
740         * config.gcc: Mention libgcc/config.host.
741         * Makefile.in: Update comments mentioning libgcc.
742         (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
743         (all.cross, start.encap, rest.encap, rest.cross): Update
744         dependencies for libgcc move.
745         (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
746         (clean-target, clean-target-libgcc): Delete.
747         (srcdirify, GCC_EXTRA_PARTS): New macros.
748         (libgcc-support, libgcc.mvars): New rules.
749         (distclean): Remove mention of mklibgcc.
750         (install): Don't reference INSTALL_LIBGCC.
751         (install-common): Don't reference EXTRA_PARTS.
752         (install-libgcc, install-multilib): Delete rules.
753         * mklibgcc.in: Delete file.
754         * doc/configfiles.texi: Don't mention mklibgcc.
755
756         * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
757         * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
758         * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
759         * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
760         (mklibgcc, ldblspecs): Likewise.
761
762         * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
763         (posixpre.def): Use $(T).
764         (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
765         (SHLIB_SRC, SHLIB_INSTALL): Delete.
766         (SHLIB_LINK): Make dummy.
767         * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.
768
769         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.
770
771         * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
772         * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
773         config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
774         config/rs6000/t-newas, config/sparc/t-elf: Likewise.
775
776         * configure.ac (all_outputs): Remove mklibgcc.
777         * configure: Regenerated.
778
779 2007-01-03  Josh Conner  <jconner@apple.com>
780
781         PR middle-end/29683
782         * calls.c (compute_argument_addresses): Set stack and stack_slot
783         for partial args, too.
784         (store_one_arg): Use locate.size.constant for the size when
785         generating a save_area.
786
787 2007-01-03  Robert Kennedy <jimbob@google.com>
788
789         * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
790         whose definitions are deleted due to basic block merging.
791
792 2007-01-03  Paul Brook  <paul@codesourcery.com>
793
794         PR target/16634
795         * config/arm/arm.c (output_return_instruction): Pop PC in interrupt
796         functions.
797         (use_return_insn): Return 0 for Thumb interrupt functions.
798         (print_multi_reg): Add rfe argument for IRQ returns.
799         (arm_output_epilogue): Pop interrupt return address directly into PC.
800         (arm_expand_prologue): Only adjust IRQ return address in Arm mode.
801
802 2007-01-03  Paul Brook  <paul@codesourcery.com>
803
804         Merge from sourcerygxx-4_1.
805         * config/arm/thumb2.md: New file.
806         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
807         Thumb-2.
808         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
809         * config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
810         (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
811         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
812         tables.
813         (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
814         * config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
815         comptibility.
816         * config/arm/ieee754-sf.S: Ditto.
817         * config/arm/arm.c (thumb_base_register_rtx_p): Rename...
818         (thumb1_base_register_rtx_p): ... to this.
819         (thumb_index_register_rtx_p): Rename...
820         (thumb1_index_register_rtx_p): ... to this.
821         (thumb_output_function_prologue): Rename...
822         (thumb1_output_function_prologue): ... to this.
823         (thumb_legitimate_address_p): Rename...
824         (thumb1_legitimate_address_p): ... to this.
825         (thumb_rtx_costs): Rename...
826         (thumb1_rtx_costs): ... to this.
827         (thumb_compute_save_reg_mask): Rename...
828         (thumb1_compute_save_reg_mask): ... to this.
829         (thumb_final_prescan_insn): Rename...
830         (thumb1_final_prescan_insn): ... to this.
831         (thumb_expand_epilogue): Rename...
832         (thumb1_expand_epilogue): ... to this.
833         (arm_unwind_emit_stm): Rename...
834         (arm_unwind_emit_sequence): ... to this.
835         (thumb2_legitimate_index_p, thumb2_legitimate_address_p,
836         thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
837         thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
838         arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
839         thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
840         thumb2_output_casesi): New functions.
841         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
842         (FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
843         FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
844         THUMB2_WORK_REGS): Define.
845         (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
846         arm_condexec_mask, arm_condexec_masklen)): New variables.
847         (all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
848         (arm_override_options): Check new CPU capabilities.
849         Set new architecture flag variables.
850         (arm_isr_value): Handle v7m interrupt functions.
851         (user_return_insn): Return 0 for v7m interrupt functions.  Handle
852         Thumb-2.
853         (const_ok_for_arm): Handle Thumb-2 constants.
854         (arm_gen_constant): Ditto.  Use movw when available.
855         (arm_function_ok_for_sibcall): Return false for v7m interrupt
856         functions.
857         (legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
858         (thumb_find_work_register, arm_load_pic_register,
859         legitimize_tls_address, arm_address_cost, load_multiple_sequence,
860         emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
861         print_multi_reg, output_mov_long_double_fpa_from_arm,
862         output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
863         output_mov_double_fpa_from_arm, output_move_double,
864         arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
865         output_return_instruction, arm_output_function_prologue,
866         arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
867         arm_output_mi_thunk, thumb_set_return_address): Ditto.
868         (arm_expand_prologue): Handle Thumb-2.  Use arm_save_coproc_regs.
869         (arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
870         (arithmetic_instr, shift_op): Use arm_shift_nmem.
871         (arm_print_operand): Use arm_print_condition.  Handle '(', ')', '.',
872         '!' and 'L'.
873         (arm_final_prescan_insn): Use extract_constrain_insn_cached.
874         (thumb_expand_prologue): Use thumb_set_frame_pointer.
875         (arm_file_start): Output directive for unified syntax.
876         (arm_unwind_emit_set): Handle stack alignment instruction.
877         * config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
878         Add v6t2, v7, v7a, v7r and v7m.
879         (RETLDM): Add Thumb-2 code.
880         (do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
881         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
882         (TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
883         TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
884         THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
885         ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
886         THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
887         CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
888         ADJUST_INSN_LENGTH): Define.
889         (TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
890         STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
891         BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
892         PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
893         SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
894         TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
895         HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
896         HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
897         REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
898         REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
899         LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
900         GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
901         ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
902         FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
903         PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
904         (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
905         * config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
906         cortex-m3.
907         * config/arm/arm-tune.md: Regenerate.
908         * config/arm/arm-protos.h: Update prototypes.
909         * config/arm/vfp.md: Enable patterns for Thumb-2.
910         (arm_movsi_vfp): Add movw alternative.  Use output_move_vfp.
911         (arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
912         (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
913         thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
914         * config/arm/libunwind.S: Add Thumb-2 code.
915         * config/arm/constraints.md: Update include Thumb-2.
916         * config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
917         * config/arm/ieee754-df.S: Ditto.
918         * config/arm/bpabi.S: Ditto.
919         * config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
920         * config/arm/predicates.md (low_register_operand,
921         low_reg_or_int_operand, thumb_16bit_operator): New.
922         (thumb_cmp_operand, thumb_cmpneg_operand): Rename...
923         (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
924         * config/arm/t-arm-elf: Add armv7 multilib.
925         * config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
926         Include thumb2.md.
927         (UNSPEC_STACK_ALIGN, ce_count): New.
928         (arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
929         arm_zero_extendsidi2, arm_zero_extendqidi2): New
930         insns/expanders.
931         * config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
932         (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
933         thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
934         * config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
935         (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
936         thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
937         insns.
938         * doc/extend.texi: Document ARMv7-M interrupt functions.
939         * doc/invoke.texi: Document Thumb-2 new cores+architectures.
940
941 2007-01-03  Jakub Jelinek  <jakub@redhat.com>
942
943         * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
944         (struct _Unwind_Context): Rename args_size to flags, remove
945         signal_frame field, add a new args_size field and version field.
946         (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
947         _Unwind_IsExtendedContext): New inline functions.
948         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
949         Assume by_value array is only present if _Unwind_IsExtendedContext.
950         (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
951         _Unwind_IsSignalFrame.
952         (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
953         (uw_update_context_1): Use _Unwind_SetSignalFrame.
954         (uw_init_context_1): Initialize context->flags to
955         EXTENDED_CONTEXT_BIT.
956         * config/rs6000/linux-unwind.h (frob_update_context): Use
957         _Unwind_SetSignalFrame.
958
959 2007-01-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
960
961         PR middle-end/30353
962         * gimplify.c (gimplify_modify_expr_complex_part): Move below
963         tree_to_gimple_tuple.  Call tree_to_gimple_tuple when we need
964         the value.
965
966 2007-01-03  Kazu Hirata  <kazu@codesourcery.com>
967
968         * config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P,
969         REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER,
970         RET, AT_SP): Remove.
971         * config/i386/i386.md (*sse_prologue_save_insn): Use return
972         instead of RET.
973
974         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
975         * cfgbuild.c (find_basic_blocks): Likewise.
976         * cfgrtl.c (rtl_create_basic_block): Likewise.
977         * function.c (temp_slots_at_level): Likewise.
978         * reg-stack.c (stack_regs_mentioned): Likewise.
979         * regclass.c (allocate_reg_info): Likewise.
980         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
981         set_bb_for_stmt, move_block_to_fn): Likewise.
982         * tree-complex.c (tree_lower_complex): Likewise.
983         * vec.h (VEC_safe_grow_cleared): New.
984
985         * cgraphunit.c, tree-ssa-alias.c: Fix comment typos.
986
987 2007-01-03  Zdenek Dvorak <dvorakz@suse.cz>
988
989         * loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
990         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities
991         to loop_version.
992         * cfgloopmanip.c (scale_loop_frequencies): Export.
993         (loopify): Scale the frequencies by prescribed coefficients.
994         (set_zero_probability): New function.
995         (duplicate_loop_to_header_edge): Improve updating of frequencies.
996         (lv_adjust_loop_entry_edge, loop_version): Set probabilities
997         and frequencies according to arguments.
998         * tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities
999         correctly.
1000         * cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up.
1001         * modulo-sched.c (sms_schedule): Set probabilities for entering
1002         versioned loop correctly.
1003         * tree-vect-transform.c (vect_transform_loop): Ditto.
1004         * cfgloop.h (loopify, loop_version): Declaration changed.
1005         (scale_loop_frequencies): Declared.
1006
1007 2007-01-02  Jan Hubicka  <jh@suse.cz>
1008
1009         * cgraph.c: Include tree-flow.h
1010         (cgraph_add_new-function): Handle IPA_SSA mode; execute
1011         early_local_passes.
1012         * cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
1013         * tree-pass.h (pass_all_early_optimizations): Declare.
1014         * cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
1015         early_local_passes.
1016         (cgraph_analyze_function): Do early_local_passes.
1017         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
1018         Do not add referenced vars.
1019         * tree-optimize.c (gate_all_optimizations): Do not execute when not in
1020         SSA form.
1021         (gate_all_early_local_passes): New gate.
1022         (pass_early_local_passes): Use new gate.
1023         (execute_early_local_optimizations): New functions.
1024         (gate_all_early_optimizations): New gate.
1025         (pass_all_early_optimizations): New pass.
1026         (execute_free_datastructures): Free SSA only when initialized.
1027         (gate_init_datastructures): Init only when optimizing.
1028         (tree_lowering_passes): Do early local passes when called late.
1029         * tree-profile.c (do_tree_profiling): Don't profile functions added
1030         late.
1031         (do_early_tree_profiling, pass_early_tree_profile): Kill.
1032         * tree-cfg.c (update_modified_stmts): Do not update when operands are
1033         not active.
1034         * passes.c (init_optimizations_passes): Reorder so we go into SSA
1035         during early_local_passes.
1036         * Makefile.in (cgraph.o): Add dependency on tree-flow.h.
1037
1038
1039 2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>
1040
1041         * Makefile.in: Update copyright year.
1042
1043 2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>
1044
1045         * Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST)
1046         in $(lang_checks) and check-consistency targets.
1047
1048 2007-01-02  Jan Hubicka  <jh@suse.cz>
1049
1050         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
1051         Do not add referenced vars.
1052         * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
1053         are not active.
1054         * passes.c (init_optimization_passes): Put mudflap_2 after
1055         free_datastructures.
1056
1057 2007-01-02  Jan Hubicka  <jh@suse.cz>
1058
1059         * tree-optimize (execute_fixup_cfg): Set after_inlining flag.
1060         Set NOTHROW flag on call statements proved to be nothrow.
1061         Update statement of local calls so new pure/const functions are
1062         updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal
1063         goto receivers.
1064         (tree_rest_of_compilation): Register hooks and initialize bitmap
1065         early. Do not set after_inlining flag.
1066
1067 2007-01-02  Steve Ellcey  <sje@cup.hp.com>
1068
1069         * sbitmap.c (HOST_BITS_PER_LONG_LONG):  Change to
1070         HOST_BITS_PER_LONGLONG
1071
1072 2007-01-02  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1073
1074         PR c/19977
1075         * c-typeck.c (store_init_value): Don't emit pedantic overflow
1076         warning for non-static initializers.
1077
1078 2007-01-02  Steven Bosscher  <steven@gcc.gnu.org>
1079
1080         * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
1081         m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
1082         rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
1083         Always use set_unique_reg_note to add REG_EQUAL notes.
1084
1085 2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
1086
1087         Revert:
1088         2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
1089
1090         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
1091         * cfgbuild.c (find_basic_blocks): Likewise.
1092         * cfgrtl.c (rtl_create_basic_block): Likewise.
1093         * function.c (temp_slots_at_level): Likewise.
1094         * reg-stack.c (stack_regs_mentioned): Likewise.
1095         * regclass.c (allocate_reg_info): Likewise.
1096         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
1097         set_bb_for_stmt, move_block_to_fn): Likewise.
1098         * tree-complex.c (tree_lower_complex): Likewise.
1099         * vec.h (VEC_safe_grow_cleared): New.
1100
1101 2007-01-02  Ian Lance Taylor  <iant@google.com>
1102
1103         * c-common.c (c_common_truthvalue_conversion): When warning about
1104         using an assignment as a truth value, set TREE_NO_WARNING.
1105
1106 2007-01-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1107
1108         PR middle-end/7651
1109         * c.opt (Wold-style-declaration): New.
1110         * doc/invoke.texi (C-only Warning Options): New.
1111         (Wold-style-declaration): Document it.
1112         (Wextra): Enabled by -Wextra.
1113         * c-opts.c (c_common_post_options): Enabled by -Wextra.
1114         * c-decl.c (declspecs_add_scspec): Replace -Wextra with
1115         -Wold-style-declaration.
1116
1117 2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
1118
1119         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
1120         * cfgbuild.c (find_basic_blocks): Likewise.
1121         * cfgrtl.c (rtl_create_basic_block): Likewise.
1122         * function.c (temp_slots_at_level): Likewise.
1123         * reg-stack.c (stack_regs_mentioned): Likewise.
1124         * regclass.c (allocate_reg_info): Likewise.
1125         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
1126         set_bb_for_stmt, move_block_to_fn): Likewise.
1127         * tree-complex.c (tree_lower_complex): Likewise.
1128         * vec.h (VEC_safe_grow_cleared): New.
1129
1130 2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
1131
1132         * c-common.c(c_common_nodes_and_builtins): Since variants of
1133         void_type_node get built before it is given a name, we need to
1134         give those variants the name, too.
1135         (complete_array_type): We need to work with the canonical main
1136         type of the array, from which we will build the qualified version.
1137         * params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
1138         * print-tree.c (print_node): Display canonical type information
1139         for each type.
1140         * stor-layout.c (layout_type): When we don't know the
1141         alignment of a type for which we're building an array, we end up
1142         guessing wrong, so make the type require structural equality.
1143         * tree.c (make_node_stat): When we build a new type, it is its
1144         own canonical type.
1145         (build_type_attribute_qual_variant): When building an attribute
1146         variant, its canonical type is the non-attribute variant. However,
1147         if the attributes are target-dependent and they differ, we need to
1148         use structural equality checks for this type.
1149         (build_qualified_type): A qualified type is not equivalent to its
1150         unqualified variant; set the canonical type appropriately.
1151         (build_distinct_type_copy): When building a distinct type from
1152         another type, the new type is its own canonical type.
1153         (build_variant_type_copy): When building a new type variant, we
1154         assume that it is equivalent to the original type.
1155         (build_pointer_type_for_mode): When building a pointer type, also
1156         build a canonical type pointer.
1157         (build_reference_type_for_mode): When building a reference type,
1158         also build a canonical type reference.
1159         (build_index_type): When we can't hash an index type (e.g.,
1160         because its maximum value is negative), the index type requires
1161         structural equality tests.
1162         (build_array_type): Build the canonical form of an array type.
1163         (build_function_type): Function types require structural equality,
1164         because they contain default arguments, attributes, etc.
1165         (build_method_type_directly): Ditto for method types.
1166         (build_offset_type): Build the canonical offset type.
1167         (build_complex_type): Build the canonical vector type.
1168         (make_vector_type): Build the canonical vector type.
1169         * tree.h (TYPE_CANONICAL): New.
1170         (TYPE_STRUCTURAL_EQUALITY_P): New.
1171         (SET_TYPE_STRUCTURAL_EQUALITY): New.
1172         (struct tree_type): Added "canonical" field.
1173         * params.h (VERIFY_CANONICAL_TYPES): New.
1174         * doc/c-tree.texi (TYPE_CANONICAL): Document.
1175         (TYPE_STRUCTURAL_EQUALITY_P): Document.
1176         (SET_TYPE_STRUCTURAL_EQUALITY): Document.
1177         * doc/invoke.texi (verify-canonical-types): Document --param
1178         parameter for verifying canonical types.
1179
1180 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
1181
1182         * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
1183         powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*,
1184         powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae,
1185         powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to
1186         tm_file.
1187         * config/rs6000/e500.h: New.
1188         * config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500,
1189         TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE):
1190         Remove.
1191         * config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE,
1192         TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE,
1193         TARGET_E500_DOUBLE): Remove.
1194         * config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE,
1195         TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove.
1196         * config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define.
1197         * config/rs6000/rs6000.c (rs6000_override_options): Use
1198         CHECK_E500_OPTIONS.
1199
1200 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
1201
1202         * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
1203         TARGET_E500_DOUBLE), not TARGET_E500, for %y.
1204         (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
1205         rs6000_emit_cmove): Don't check TARGET_E500.
1206         * config/rs6000/rs6000.md (bunordered, bordered, sunordered,
1207         sordered): Don't check TARGET_E500.
1208
1209 2007-01-01  Eric Christopher  <echristo@apple.com>
1210
1211         * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use
1212         HARD_REGISTER_NUM_P.
1213
1214 2007-01-01  Roger Sayle  <roger@eyesopen.com>
1215
1216         * fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
1217         "X eq/ne (C1^C2)".  Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
1218         has no side-effects.  Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
1219         eq/ne Y".
1220
1221 2007-01-01  Mike Stump  <mrs@apple.com>
1222
1223         * configure.ac: Remove support for building with Apple's gcc-3.1.
1224
1225 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
1226
1227         PR middle-end/30311
1228         * caller-save.c (add_stored_regs): Only handle SUBREGs if inner
1229         REG is a hard register.  Do not modify REG before calling
1230         subreg_nregs.
1231         * rtlanal.c (subreg_get_info): Don't assert size of XMODE is a
1232         multiple of the size of YMODE for certain lowpart cases.
1233
1234 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
1235
1236         PR middle-end/30253
1237         * gimplify (voidify_wrapper_expr): Update for
1238         GIMPLE_MODIFY_STMT.
1239
1240 2007-01-01  Andreas Schwab  <schwab@suse.de>
1241
1242         PR target/29166
1243         * config/ia64/ia64.c (ia64_compute_frame_size): Account space for
1244         save of BR0 in extra_spill_size instead of spill_size.
1245         (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
1246         area.
1247         (ia64_expand_epilogue): Restore BR0 from its new location.
1248
1249 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
1250
1251         * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
1252         Use a temporary variable if the left hand side is not a gimple
1253         register.
1254
1255 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
1256
1257         * gimplify.c (gimplify_return_expr): Make the temporary variable
1258         for the return expression, a gimple register variable.
1259
1260 2007-01-01  Jan Hubicka  <jh@suse.cz>
1261
1262         * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
1263         INSN_LIST.
1264
1265 2007-01-01  Mike Stump  <mrs@apple.com>
1266
1267         * configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
1268         .literal16.
1269         * config/darwin.c (machopic_select_rtx_section): Use
1270         HAVE_GAS_LITERAL16.
1271         (darwin_mergeable_constant_section): Likewise.
1272         * configure: Regenerate.
1273         * config.in: Regenerate.
1274
1275 2007-01-01  Jan Hubicka  <jh@suse.cz>
1276             Andrew Pinski  <pinskia@gmail.com>
1277
1278         * cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
1279         before starting IPA passes.