OSDN Git Service

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