OSDN Git Service

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