OSDN Git Service

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