OSDN Git Service

51d1b34e7dc89fd733f25c0be5bc08401f13e717
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2
3         * configure: Regenerate.
4
5 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
6
7         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
8         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
9         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
10
11 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
12
13         * config/avr/avr.c (avr_mcu_t): Add attiny167.
14         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
15         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
16
17 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
18
19         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
20         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
21         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
22
23 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
24
25         * tree-ssa-sccvn.c: Fix format of comments.
26
27 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
28
29         * cgraph.c: Remove unneeded forward declarations of eq_node()
30         and hash_node().
31
32 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
33
34         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
35         REG_RETVAL notes.
36         (see_update_relevancy): Likewise.
37         * fwprop.c (try_fwprop_subst): Likewise.
38         * rtlanal.c (noop_move_p): Likewise.
39         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
40         notes to non-existing libcall blocks.
41         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
42         Remove orig_set.
43         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
44         (dead_libcall_p): Remove.
45         (delete_trivially_dead_insns): Don't use it.
46         * web.c (union_defs): Remove comment about keeping nops.
47         * gcse.c (hash_scan_insn): Don't take libcall pointers.
48         (compute_hash_table_work): Don't track libcall notes.
49         (do_local_cprop): Don't take libcall pointers.  Don't update
50         libcall notes.
51         (adjust_libcall_notes): Deleted.
52         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
53         ever have existed in the first place).
54         (replace_store_insn): Don't try to remove libcall notes.
55         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
56         (resolve_reg_notes): Don't call them.
57         (resolve_simple_move): Likewise.
58         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
59         Don't remove REG_RETVAL notes.
60         * emit-rtl.c (try_split): Don't update libcall notes.
61         (emit_copy_of_insn_after): Dito.
62         * cselib.c (cselib_current_insn_in_libcall): Remove.
63         (cselib_process_insn): Don't set/clear it.
64         (new_elt_loc_list): Don't record it.
65         (cselib_init): Don't initialize it.
66         * cselib.c (struct elt_loc_list): Remove in_libcall field.
67         * loop-invariant.c (find_invariant_insn): Don't look for libcall
68         notes.
69         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
70         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
71         (init_deps): Don't initialize it.
72         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
73         * combine.c (delete_noop_moves): Don't update libcall notes.
74         (can_combine_p): Remove now pointless #if 0 block.
75         (try_combine): Remove another obsolete #if 0 block.
76         (distribute_notes): Don't distribute libcall notes.
77         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
78         * dce.c (libcall_dead_p): Remove.
79         (delete_unmarked_insns): Don't handle libcall blocks.
80         (preserve_libcall_for_dce): Remove.
81         (prescan_insns_for_dce): Don't special-case libcall block insns.
82         * reload1 (reload): Don't handle libcall notes. 
83         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
84         documentation.
85
86 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
87
88         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
89         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
90         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
91
92 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
93
94         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
95         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
96         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
97
98 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
99
100         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
101
102 2008-06-16  Ira Rosen  <irar@il.ibm.com>
103
104         PR tree-optimization/36493
105         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
106         the arguments list. Use VECTYPE to create vector pointer.
107         (vectorizable_store): Fail if accesses through a pointer to vectype
108         do not alias the original memory reference operands.
109         Call vect_create_data_ref_ptr without the removed argument.
110         (vectorizable_load): Likewise.
111         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
112         removed argument.
113
114 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
115
116         PR target/36336
117         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
118         reg_equiv_constant.
119
120 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
121
122         * config/mips/loongson2ef.md: New file.
123         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
124         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
125         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
126         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
127         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
128         and loongson_2f.
129         (loongson2ef.md): New include.
130         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
131         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
132         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
133         (loongson_gt_<mode>, loongson_extract_halfword)
134         (loongson_insert_halfword_0, loongson_insert_halfword_2)
135         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
136         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
137         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
138         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
139         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
140         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
141         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
142         (vec_interleave_low<mode>): Define type attribute.
143         * config/mips/mips.c (mips_ls2): New static variable.
144         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
145         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
146         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
147         Implement target scheduling hooks.
148         (mips_multipass_dfa_lookahead): Update to handle tuning for
149         Loongson 2E/2F.
150         (mips_sched_init): Initialize data for Loongson scheduling.
151         (mips_ls2_variable_issue): New static function.
152         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
153         Add sanity check.
154         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
155         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
156         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
157         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
158         Handle ST Loongson 2E/2F cores.
159         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
160
161 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
162
163         * omp-low.c (extract_omp_for_data): Fix comment typo.
164         * c.opt: Fix typo.
165
166 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
167
168         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
169         FIXME note about gcc/config.guess.
170         * doc/options.texi (Option file format): Remove non-ASCII bytes.
171         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
172         * doc/cppopts.texi: Likewise.
173         * doc/extend.texi: Likewise.
174         * doc/gcc.texi: Likewise.
175         * doc/gccint.texi: Likewise.
176         * doc/gcov.texi: Likewise.
177         * doc/gty.texi: Likewise.
178         * doc/hostconfig.texi: Likewise.
179         * doc/install.texi: Likewise.
180         * doc/invoke.texi: Likewise.
181         * doc/loop.texi: Likewise.
182         * doc/makefile.texi: Likewise.
183         * doc/md.texi: Likewise.
184         * doc/passes.texi: Likewise.
185         * doc/tm.texi: Likewise.
186         * doc/tree-ssa.texi: Likewise.
187         * doc/trouble.texi: Likewise.
188
189 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
190             Nathan Sidwell  <nathan@codesourcery.com>
191             Maxim Kuvyrkov  <maxim@codesourcery.com>
192             Richard Sandiford  <rdsandiford@googlemail.com>
193         
194         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
195         * config/mips/mips-protos.h (mips_expand_vector_init): New.
196         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
197         builtins.
198         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
199         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
200         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
201         V8QImode cases.
202         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
203         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
204         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
205         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
206         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
207         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
208         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
209         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
210         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
211         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
212         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
213         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
214         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
215         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
216         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
217         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
218         (mips_builtins): Add Loongson builtins.
219         (mips_loongson_2ef_bdesc): New.
220         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
221         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
222         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
223         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
224         New.
225         (mips_expand_vector_init): New.
226         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
227         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
228         if appropriate.
229         * config/mips/mips.md: Add unspec numbers for Loongson
230         builtins.  Include loongson.md.
231         (MOVE64): Include Loongson vector modes.
232         (SPLITF): Include Loongson vector modes.
233         (HALFMODE): Handle Loongson vector modes.
234         * config/mips/loongson.md: New.
235         * config/mips/loongson.h: New.
236         * config.gcc: Add loongson.h header for mips*-*-* targets.
237         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
238
239 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
240
241         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
242         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
243         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
244         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
245         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
246         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
247         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
248         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
249         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
250         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
251         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
252         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
253         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
254         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
255         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
256         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
257         Remove use_fixproto=yes.
258         (ia64*-*-hpux*): Remove comment about using fixproto.
259         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
260
261 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
262
263         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
264         library rebuilds.
265         * configure: Regenerate.
266
267 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
268
269         PR middle-end/36520
270         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
271         before evaluating it.
272
273 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
274
275         PR c/36507
276         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
277         nested inline functions.
278         (start_decl, start_function): Don't invert DECL_EXTERNAL
279         for nested inline functions.
280
281 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
282
283         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
284         splits that must be made for correctness.
285
286 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
287
288         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
289         (AVAIL_NON_MIPS16): Likewise.
290         (mips_builtin_description): Replace target_flags with a predicate.
291         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
292         (dspr2_32): New availability predicates.
293         (MIPS_BUILTIN): New macro.
294         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
295         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
296         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
297         Replace the TARGET_FLAGS parameters with AVAIL parameters.
298         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
299         (mips_dsp_32only_bdesc): Merge into...
300         (mips_builtins): ...this new array.
301         (mips_bdesc_map, mips_bdesc_arrays): Delete.
302         (mips_init_builtins): Update after above changes.
303         (mips_expand_builtin_1): Merge into...
304         (mips_expand_builtin): ...here and update after above changes.
305
306 2008-06-12  Paul Brook  <paul@codesourcery.com>
307
308         * longlong.h (__arm__): Define count_leading_zeros.
309         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
310         (clzsi2, clzdi2): New functions.
311         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
312         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
313         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
314         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
315         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
316         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
317         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
318         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
319         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
320         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
321
322 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
323
324         * config/m68k/m68k.c (m68k_tune_flags): New.
325         (override_options): Compute m68k_tune_flags.
326         (MULL_COST, MULW_COST): Update for various variants of CFV2.
327         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
328
329 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
330
331         PR middle-end/36506
332         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus
333         warning.
334
335 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
336
337         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
338         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
339
340 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
341
342         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
343         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
344
345 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
346
347         PR middle-end/36506
348         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
349         reductions.
350
351 2008-06-12  Richard Guenther  <rguenther@suse.de>
352
353         PR tree-optimization/36345
354         * tree-flow.h (struct ptr_info_def): Align escape_mask,
355         add memory_tag_needed flag.
356         (may_alias_p): Declare.
357         * tree-ssa-alias.c (may_alias_p): Export.
358         (set_initial_properties): Use memory_tag_needed flag.
359         (update_reference_counts): Likewise.
360         (reset_alias_info): Reset memory_tag_needed flag.
361         (create_name_tags): Check memory_tag_needed flag.
362         (dump_points_to_info_for): Dump it.
363         * tree-ssa-structalias.c (struct variable_info): Remove
364         directly_dereferenced flag.
365         (new_var_info): Do not initialize it.
366         (process_constraint_1): Do not set it.
367         (update_alias_info): Set is_dereferenced flag.
368         (set_uids_in_ptset): Use may_alias_p.
369         (set_used_smts): Check memory_tag_needed flag.
370         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
371         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
372         memory_tag_needed flag.
373         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
374         from broken design.
375
376 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
377
378         * config/i386/i386.c (ix86_compute_frame_layout): Disable red zone for
379         w64 abi.
380         (ix86_expand_prologue): Likewise.
381         (ix86_force_to_memory): Likewise.
382         (ix86_free_from_memory): Likewise.
383
384 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
385
386         PR target/36425
387         * config/rs6000/rs6000.c (rs6000_override_options): Set
388         rs6000_isel conditionally to the absence of comand line
389         override.
390         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
391         Remove duplicate rs6000_isel setting.
392         * config/rs6000/eabispe.h: Ditto.
393
394 2008-06-11  Richard Guenther  <rguenther@suse.de>
395
396         * alias.c (get_alias_set): Use the element alias-set for arrays.
397         (record_component_aliases): For arrays and vectors do nothing.
398         * c-common.c (strict_aliasing_warning): Handle the cases
399         of alias set zero explicitly.
400         * Makefile.in (dfp.o-warn): Add -Wno-error.
401
402 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
403
404         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
405         tune_32 tune_64.
406         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
407         tune_32 tune_64 to supported_defaults.  Allow values not
408         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
409         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
410         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
411         with_cpu_64 to generic for 64-bit-supporting configurations, not
412         with_cpu.  Remove FIXMEs.
413         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
414         --with-arch-64, --with-tune-32, --with-tune-64): Document.
415         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
416         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
417         arch_32 and arch_64.
418
419 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
420             Olivier Hainque  <hainque@adacore.com>
421
422         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
423         Use DECL_SIZE_UNIT to retrieve the size of the field.
424
425 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
426
427         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
428         with function calls after declarations.  Lay out
429         neon_float_type_node before further use.
430
431 2008-06-11  Richard Guenther  <rguenther@suse.de>
432
433         * tree-flow.h (may_point_to_global_var): Declare.
434         * tree-ssa-alias.c (may_point_to_global_var): New function.
435         * tree-ssa-sink.c (is_hidden_global_store): Use it.
436
437 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
438
439         * configure.ac: Teach that fido supports .debug_line.
440         * configure: Regenerate.
441
442 2008-06-10  Tom Tromey  <tromey@redhat.com>
443
444         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
445         debug hook.
446
447 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
448
449         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
450         (encode_decimal64, decode_decimal64, encode_decimal128,
451         decode_decimal128): Reverse order of 32-bit parts of value if host
452         and target endianness differ.
453
454 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
455         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
456         Avoid division by 0.
457         (tree_mod_pow2_value_transform): Likewise.
458         (tree_ic_transform): Likewise.
459         (tree_stringops_transform): Likewise.
460         (tree_mod_subtract_transform): Likewise.
461         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
462         (copy_edges_for_bb): Likewise.
463         (initialize_cfun): Likewise.
464
465 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
466
467         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
468         nonmemory_operand. Add "N" operand constraint.
469         (*btsi): Ditto.
470         (*jcc_btdi_mask_rex64): New instruction and split pattern.
471         (*jcc_btsi_mask): Ditto.
472         (*jcc_btsi_mask_1): Ditto.
473
474 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
475
476         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
477         TYPE_CANONICAL for copied element type.
478
479 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
480
481         PR target/36473
482         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
483         Add m_CORE2 and m_GENERIC.
484         * config/i386/predicates.md (bt_comparison_operator): New predicate.
485         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
486         (*btsi): Ditto.
487         (*jcc_btdi_rex64): New instruction and split pattern.
488         (*jcc_btsi): Ditto.
489         (*jcc_btsi_1): Ditto.
490         (*btsq): Fix Intel asm dialect operand order.
491         (*btrq): Ditto.
492         (*btcq): Ditto.
493
494 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
495
496         PR middle-end/36447
497         * simplify-rtx.c (simplify_subreg): Add check for shift count 
498         greater than size.
499
500 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
501
502         * doc/md.texi: Synchronize with later constraints.md change.
503         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
504         with a C implementation.
505         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
506         MFLO handling.
507         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
508         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
509         when moving to and from MD_REGNUM.
510         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
511         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
512         Handle byte and halfword moves.
513         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
514         separately.
515         * config/mips/constraints.md (h): Turn into NO_REGS.
516         (l, x): Update documentation.
517         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
518         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
519         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
520         (HILO): New mode iterator.
521         (MOVE128): Add TI.
522         (any_div): New code iterator.
523         (u): Extend code attribute to div and udiv.
524         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
525         d_operand in the splitters.  Remove redundant CONST_INT checks.
526         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
527         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
528         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
529         accordingly, using normal moves instead of unspecs to move LO into
530         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
531         (<u>mulsidi3): Handle expansion in C code.
532         (<u>mulsidi3_32bit_internal): Rename to...
533         (<u>mulsidi3_32bit): ...this.
534         (<u>mulsidi3_32bit_r4000): Fix insn separator.
535         (*<u>mulsidi3_64bit): Rename to...
536         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
537         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
538         to set LO and HI to the multiplication result.  Use a normal move
539         for MFLO and an unspec for MFHI.
540         (*<u>mulsidi3_64bit_parts): Replace with...
541         (<u>mulsidi3_64bit_hilo): ...this new instruction.
542         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
543         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
544         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
545         instead of HI.  Split the instruction into a separate multiplication
546         and MFHI if !TARGET_FIX_R4000.
547         (<su>muldi3_highpart): Likewise.
548         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
549         and the "=h" clobber.
550         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
551         (<u>mulditi3): New expander.
552         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
553         (madsi): Remove "=h" clobber.
554         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
555         Force the modulus result to be a GPR and split the instruction into
556         a division followed by an MFHI after reload.
557         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
558         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
559         the MIPS16 HIGH define_split.
560         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
561         of acc<->gpr moves to "multi".
562         (*movdi_64bit): Replace the single "x" alternative with
563         alternatives for moving into and out of "a".
564         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
565         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
566         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
567         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
568         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
569         (movti): New expander.
570         (*movti, *movti_mips16): New insns.
571         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
572         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
573         (mthi<GPR:mode>_<HILO:mode>): Likewise.
574         * config/mips/predicates.md (fpr_operand): Delete.
575         (d_operand): New predicate.
576
577 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
578
579         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
580         failure on some Bourne shells.
581         (x86_64-*-*): Ditto.
582
583 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
584
585         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
586
587 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
588
589         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
590         (sparc-sun-solaris2*): Likewise.
591
592 2008-06-09  Arnaud Charlet  <charlet@adacore.com
593
594         * doc/install.texi: Update requirements to build the Ada compiler.
595
596 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
597
598         * df-scan.c (struct df_scan_problem_data): Remove the
599         mw_link_pool alloc pool.
600         (df_scan_free_internal): Don't free it.
601         (df_scan_alloc): Don't allocate it.
602         * df.h (struct df_link): Update comment.
603
604 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
605
606         * except.h: Correct checks for when SJLJ exceptions must be used.
607
608 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
609
610         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
611         default.
612         
613 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
614
615         PR tree-optimization/36218
616         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
617         configure for the build system.
618         (BUILD_LDFLAGS): Define.
619         * configure: Regenerate.
620         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
621
622 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
623
624         PR target/36424
625         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
626         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
627         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
628
629 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
630
631         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
632
633 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
634
635         * config.gcc (Obsolete configurations): Remove list of
636         configurations.
637         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
638         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
639         targets matched by those patterns.
640         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
641         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
642         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
643         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
644         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
645         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
646         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
647         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
648         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
649         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
650         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
651         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
652         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
653         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
654         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
655         Make code for Solaris 7 and greater unconditional for Solaris.
656         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
657         Remove --with-* handling.
658         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
659         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
660         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
661         LINK_OS_WINDISS_SPEC): Remove.
662         * config/rs6000/sysv4.opt (mwindiss): Remove.
663         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
664         * configure: Regenerate.
665         * doc/cpp.texi: Don't mention BeOS.
666         * doc/extend.texi (interrupt): Don't mention MS1.
667         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
668         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
669         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
670         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
671         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
672         Remove.
673         * doc/invoke.texi (MT Options): Remove.
674         (-mwindiss): Remove.
675         (CRIS Options): Remove cris-axis-aout references.
676         (HPPA Options): Don't mention hppa1.1-*-pro.
677         * doc/md.texi: (MorphoTech family): Remove.
678         * libgcc2.c: Don't handle UWIN.
679         * config/alpha/t-unicosmk: Remove.
680         * config/alpha/unicosmk.h: Remove.
681         * config/arm/kaos-arm.h: Remove.
682         * config/arm/kaos-strongarm.h: Remove.
683         * config/arm/strongarm-coff.h: Remove.
684         * config/arm/strongarm-elf.h: Remove.
685         * config/arm/strongarm-pe.h: Remove.
686         * config/arm/t-strongarm-pe: Remove.
687         * config/arm/t-xscale-coff: Remove.
688         * config/arm/t-xscale-elf: Remove.
689         * config/arm/xscale-coff.h: Remove.
690         * config/arm/xscale-elf.h: Remove.
691         * config/chorus.h: Remove.
692         * config/cris/aout.h: Remove.
693         * config/cris/aout.opt: Remove.
694         * config/cris/t-aout: Remove.
695         * config/i386/beos-elf.h: Remove.
696         * config/i386/kaos-i386.h: Remove.
697         * config/i386/ptx4-i.h: Remove.
698         * config/i386/sco5.h: Remove.
699         * config/i386/sco5.opt: Remove.
700         * config/i386/sysv4-cpp.h: Remove.
701         * config/i386/sysv5.h: Remove.
702         * config/i386/t-beos: Remove.
703         * config/i386/t-sco5: Remove.
704         * config/i386/t-uwin: Remove.
705         * config/i386/uwin.asm: Remove.
706         * config/i386/uwin.h: Remove.
707         * config/kaos.h: Remove.
708         * config/mips/windiss.h: Remove.
709         * config/mt: Remove directory.
710         * config/pa/pa-osf.h: Remove.
711         * config/pa/pa-pro-end.h: Remove.
712         * config/pa/t-pro: Remove.
713         * config/ptx4.h: Remove.
714         * config/rs6000/beos.h: Remove.
715         * config/rs6000/kaos-ppc.h: Remove.
716         * config/rs6000/t-beos: Remove.
717         * config/rs6000/windiss.h: Remove.
718         * config/sh/kaos-sh.h: Remove.
719         * config/sol2-6.h: Remove.
720         * config/sparc/sol26-sld.h: Remove.
721         * config/sparc/sysv4-only.h: Remove.
722         * config/vax/bsd.h: Remove.
723         * config/vax/t-memfuncs: Remove.
724         * config/vax/ultrix.h: Remove.
725         * config/vax/vaxv.h: Remove.
726         * config/windiss.h: Remove.
727
728 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
729
730         PR rtl-optimization/36438
731         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
732         for vector shifts with constant scalar shift operands.
733
734 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
735
736         * doc/invoke.texi: Document -march=xlr.
737         * config/mips/xlr.md: New file.
738         * config/mips/mips.md: Include it.
739         (cpu): Add "xlr".
740         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
741         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
742         (mips_rtx_cost_data): Likewise.
743
744 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
745
746         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
747         PRE_INC and PRE_DEC cases.
748
749 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
750
751         PR rtl-optimization/36419
752         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
753         the emitting jump insn.
754
755         PR target/36362
756         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
757         is not bool, boolify the whole *expr_p and convert to the desired type.
758
759 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
760
761         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
762         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
763         Add omp_private_outer_ref hook, add another argument to
764         omp_clause_default_ctor hook.
765         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
766         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
767         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
768         hook_tree_tree_tree_tree_null.
769         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
770         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
771         * hooks.c (hook_tree_tree_tree_tree_null): New function.
772         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
773         * tree.def (OMP_TASK): New tree code.
774         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
775         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
776         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
777         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
778         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
779         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
780         OMP_CLAUSE_COLLAPSE_EXPR): Define.
781         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
782         (OMP_DIRECTIVE_P): Add OMP_TASK.
783         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
784         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
785         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
786         and OMP_CLAUSE_UNTIED entries.
787         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
788         num_ops to 2.
789         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
790         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
791         * tree-pretty-print.c (dump_omp_clause): Handle
792         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
793         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
794         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
795         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
796         warning about unsigned iterators.  Change decl/init/cond/incr
797         arguments to TREE_VECs, check arguments for all collapsed loops.
798         (c_finish_omp_taskwait): New function.
799         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
800         ws_clauses.
801         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
802         default_function_array_conversion on init.  Add par_clauses argument.
803         If decl is present in parallel's lastprivate clause, change it to
804         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
805         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
806         collapse count in clauses.
807         (c_parser_omp_for, c_parser_omp_parallel): Adjust
808         c_parser_omp_for_loop callers.
809         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
810         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
811         (c_parser_omp_clause_name): Handle collapse and untied clauses.
812         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
813         functions.
814         (c_parser_omp_clause_schedule): Handle schedule(auto).
815         Include correct location in the error message.
816         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
817         and PRAGMA_OMP_CLAUSE_UNTIED.
818         (OMP_TASK_CLAUSE_MASK): Define.
819         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
820         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
821         * tree-nested.c (convert_nonlocal_omp_clauses,
822         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
823         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
824         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
825         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
826         OMP_CLAUSE_DECL.
827         (conver_nonlocal_reference, convert_local_reference,
828         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
829         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
830         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
831         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
832         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
833         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
834         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
835         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
836         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
837         OMP_CLAUSE_UNTIED.
838         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
839         * c-common.h (c_finish_omp_taskwait): New prototype.
840         * gimple-low.c (lower_stmt): Handle OMP_TASK.
841         * tree-parloops.c (create_parallel_loop): Create 1 entry
842         vectors for OMP_FOR_{INIT,COND,INCR}.
843         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
844         (make_edges): Handle OMP_TASK.
845         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
846         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
847         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
848         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
849         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
850         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
851         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
852         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
853         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
854         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
855         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
856         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
857         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
858         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
859         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
860         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
861         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
862         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
863         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
864         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
865         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
866         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
867         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
868         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
869         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
870         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
871         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
872         original iterator is present in lastprivate clause or if
873         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
874         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
875         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
876         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
877         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
878         if it is set, lookup var in outer contexts too.  Handle
879         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
880         to be implicitly determined firstprivate for task regions.
881         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
882         if it is set, lookup var in outer contexts too.  Set
883         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
884         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
885         OMP_CLAUSE_UNTIED.  Take region_type as last argument
886         instead of in_parallel and in_combined_parallel.
887         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
888         Adjust callers.
889         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
890         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
891         (new_omp_context): Set default_kind to
892         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
893         (omp_region_type): New enum.
894         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
895         fields, add region_type.
896         (new_omp_context): Take region_type as argument instead of is_parallel
897         and is_combined_parallel.
898         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
899         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
900         ctx->is_combined_parallel checks.
901         (gimplify_omp_task): New function.
902         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
903         OMP_CLAUSE_UNTIED.
904         * omp-low.c (extract_omp_for_data): Use schedule(static)
905         for schedule(auto).  Handle pointer and unsigned iterators.
906         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
907         Add loops argument.  Extract data for collapsed OMP_FOR loops.
908         (expand_parallel_call): Assert sched_kind isn't auto,
909         map runtime schedule to index 3.
910         (struct omp_for_data_loop): New type.
911         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
912         Add loop, loops, collapse and iter_type fields.
913         (workshare_safe_to_combine_p): Disallow combined for if
914         iter_type is unsigned long long.  Don't combine collapse > 1 loops
915         unless all bounds and steps are constant.  Adjust extract_omp_for_data
916         caller.
917         (expand_omp_for_generic): Handle pointer, unsigned and long long
918         iterators.  Handle collapsed OMP_FOR loops.  Adjust
919         for struct omp_for_data changes.  If libgomp function doesn't return
920         boolean_type_node, add comparison of the return value with 0.
921         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
922         pointer, unsigned and long long iterators.  Adjust for struct
923         omp_for_data changes.
924         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
925         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
926         unsigned long long.  Allocate loops array, pass it to
927         extract_omp_for_data.  For collapse > 1 loops use always
928         expand_omp_for_generic.
929         (omp_context): Add sfield_map and srecord_type fields.
930         (is_task_ctx, lookup_sfield): New functions.
931         (use_pointer_for_field): Use is_task_ctx helper.  Change first
932         argument's type from const_tree to tree.  Clarify comment.
933         In OMP_TASK disallow copy-in/out sharing.
934         (build_sender_ref): Call lookup_sfield instead of lookup_field.
935         (install_var_field): Add mask argument.  Populate both record_type
936         and srecord_type if needed.
937         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
938         in srecord_type.
939         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
940         and DECL_FIELD_OFFSET.
941         (scan_sharing_clauses): Adjust install_var_field callers.  For
942         firstprivate clauses on explicit tasks allocate the var by value in
943         record_type unconditionally, rather than by reference.
944         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
945         Use is_taskreg_ctx instead of is_parallel_ctx.
946         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
947         (create_omp_child_function_name): Add task_copy argument, use
948         *_omp_cpyfn* names if it is true.
949         (create_omp_child_function): Add task_copy argument, if true create
950         *_omp_cpyfn* helper function.
951         (scan_omp_parallel): Adjust create_omp_child_function callers.
952         Rename parallel_nesting_level to taskreg_nesting_level.
953         (scan_omp_task): New function.
954         (lower_rec_input_clauses): Don't run constructors for firstprivate
955         explicit task vars which are initialized by *_omp_cpyfn*.  
956         Pass outer var ref to omp_clause_default_ctor hook if
957         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
958         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
959         OMP_CLAUSE_REDUCTION_INIT.
960         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
961         avoid duplicate setting of fields.  Handle
962         OMP_CLAUSE_PRIVATE_OUTER_REF.
963         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
964         copy-out if TREE_READONLY, only copy-in.
965         (expand_task_copyfn): New function.
966         (expand_task_call): New function.
967         (struct omp_taskcopy_context): New type.
968         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
969         New functions.
970         (lower_omp_parallel): Rename to...
971         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
972         Call create_task_copyfn if srecord_type is needed.  Adjust
973         sender_decl type.
974         (task_shared_vars): New variable.
975         (check_omp_nesting_restrictions): Warn if work-sharing,
976         barrier, master or ordered region is closely nested inside OMP_TASK.
977         Add warnings for barrier if closely nested inside of work-sharing,
978         ordered, or master region.
979         (scan_omp_1): Call check_omp_nesting_restrictions even for
980         GOMP_barrier calls.  Rename parallel_nesting_level to
981         taskreg_nesting_level.  Handle OMP_TASK.
982         (lower_lastprivate_clauses): Even if some lastprivate is found on a
983         work-sharing construct, continue looking for them on parent parallel
984         construct.
985         (lower_omp_for_lastprivate): Add lastprivate clauses
986         to the beginning of dlist rather than end.  Adjust for struct
987         omp_for_data changes.
988         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
989         not after it.  Handle collapsed OMP_FOR loops, adjust for
990         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
991         (get_ws_args_for): Adjust extract_omp_for_data caller.
992         (scan_omp_for): Handle collapsed OMP_FOR
993         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
994         (lower_omp_single_simple): If libgomp function doesn't return
995         boolean_type_node, add comparison of the return value with 0.
996         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
997         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
998         (parallel_nesting_level): Rename to...
999         (taskreg_nesting_level): ... this.
1000         (is_taskreg_ctx): New function.
1001         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
1002         of is_parallel_ctx.
1003         (execute_lower_omp): Rename parallel_nesting_level to
1004         taskreg_nesting_level.
1005         (expand_omp_parallel): Rename to...
1006         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
1007         Call omp_task_call for OMP_TASK regions.
1008         (expand_omp): Adjust caller, handle OMP_TASK.
1009         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
1010
1011         * bitmap.c (bitmap_default_obstack_depth): New variable.
1012         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
1013         if argument is NULL and bitmap_default_obstack is already initialized.
1014         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
1015         at the end.
1016         * matrix-reorg.c (matrix_reorg): Likewise.
1017
1018 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
1019
1020         * config/i386/i386.md (*indirect_jump): Macroize using P
1021         mode iterator.  Remove !TARGET_64BIT from insn constraints.
1022         (*tablejump_1): Ditto.
1023         (*indirect_jump_rex64): Remove insn pattern.
1024         (*tablejump_1_rex64): Ditto.
1025         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
1026         and eh_return_si insn patterns.
1027
1028 2008-06-06  Richard Guenther  <rguenther@suse.de>
1029
1030         * tree-ssa-structalias.c (merge_smts_into): Remove.
1031         (find_what_p_points_to): Do not bother to compute the
1032         points-to set for pt_anything pointers.
1033         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
1034         for pt_anything pointers is ok.
1035
1036 2008-06-06  Jan Hubicka  <jh@suse.cz>
1037
1038         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
1039
1040 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1041
1042         * cgraph.c: Fix typos in comments.
1043         (cgraph_availability_names): Fix string typo.
1044         * fold-const.c: Fix typos in comments.
1045         (fold_binary): Fix typo in warning.
1046         * genautomata.c: Fix typos in comments.
1047         (check_presence_pattern_sets): Fix typo in local variable.
1048         (output_description): Fix typo in output.
1049         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
1050         * hwint.h: Likewise.
1051         * matrix-reorg.c (check_allocation_function): Likewise.
1052         * omega.c (smooth_weird_equations): Likewise.
1053         * auto-inc-dec.c: Fix typos in comments.
1054         * bb-reorder.c: Likewise.
1055         * builtins.c: Likewise.
1056         * c-common.c: Likewise.
1057         * c-cppbuiltin.c: Likewise.
1058         * c-parser.c: Likewise.
1059         * c-pretty-print.c: Likewise.
1060         * cfgcleanup.c: Likewise.
1061         * cfgexpand.c: Likewise.
1062         * cfghooks.c: Likewise.
1063         * cfglayout.c: Likewise.
1064         * cfgloopmanip.c: Likewise.
1065         * cgraphunit.c: Likewise.
1066         * coverage.c: Likewise.
1067         * dbxout.c: Likewise.
1068         * df-byte-scan.c: Likewise.
1069         * df-core.c: Likewise.
1070         * df-problems.c: Likewise.
1071         * df-scan.c: Likewise.
1072         * dfp.c: Likewise.
1073         * dominance.c: Likewise.
1074         * domwalk.c: Likewise.
1075         * dse.c: Likewise.
1076         * dwarf2out.c: Likewise.
1077         * emit-rtl.c: Likewise.
1078         * et-forest.c: Likewise.
1079         * function.c: Likewise.
1080         * function.h: Likewise.
1081         * gcc.c: Likewise.
1082         * gcov-io.c: Likewise.
1083         * gcov.c: Likewise.
1084         * gcse.c: Likewise.
1085         * genattrtab.c: Likewise.
1086         * ggc-page.c: Likewise.
1087         * gimplify.c: Likewise.
1088         * gthr-lynx.h: Likewise.
1089         * haifa-sched.c: Likewise.
1090         * ipa-cp.c: Likewise.
1091         * ipa-inline.c: Likewise.
1092         * ipa-prop.h: Likewise.
1093         * ipa-pure-const.c: Likewise.
1094         * ipa-struct-reorg.c: Likewise.
1095         * ipa-struct-reorg.h: Likewise.
1096         * ipa-type-escape.c: Likewise.
1097         * ipa.c: Likewise.
1098         * loop-doloop.c: Likewise.
1099         * mips-tfile.c: Likewise.
1100         * mkmap-flat.awk: Likewise.
1101         * mkmap-symver.awk: Likewise.
1102         * modulo-sched.c: Likewise.
1103         * omp-low.c: Likewise.
1104         * optabs.c: Likewise.
1105         * optabs.h: Likewise.
1106         * opts.c: Likewise.
1107         * passes.c: Likewise.
1108         * postreload-gcse.c: Likewise.
1109         * postreload.c: Likewise.
1110         * predict.c: Likewise.
1111         * pretty-print.h: Likewise.
1112         * profile.c: Likewise.
1113         * protoize.c: Likewise.
1114         * ra-conflict.c: Likewise.
1115         * real.c: Likewise.
1116         * recog.c: Likewise.
1117         * regclass.c: Likewise.
1118         * regs.h: Likewise.
1119         * reload.c: Likewise.
1120         * rtl-error.c: Likewise.
1121         * rtlanal.c: Likewise.
1122         * scan.h: Likewise.
1123         * sched-rgn.c: Likewise.
1124         * see.c: Likewise.
1125         * stmt.c: Likewise.
1126         * target.h: Likewise.
1127         * tree-dfa.c: Likewise.
1128         * tree-eh.c: Likewise.
1129         * tree-flow-inline.h: Likewise.
1130         * tree-inline.c: Likewise.
1131         * tree-into-ssa.c: Likewise.
1132         * tree-loop-distribution.c: Likewise.
1133         * tree-nested.c: Likewise.
1134         * tree-parloops.c: Likewise.
1135         * tree-pass.h: Likewise.
1136         * tree-pretty-print.c: Likewise.
1137         * tree-profile.c: Likewise.
1138         * tree-scalar-evolution.c: Likewise.
1139         * tree-sra.c: Likewise.
1140         * tree-ssa-alias-warnings.c: Likewise.
1141         * tree-ssa-ccp.c: Likewise.
1142         * tree-ssa-coalesce.c: Likewise.
1143         * tree-ssa-dom.c: Likewise.
1144         * tree-ssa-dse.c: Likewise.
1145         * tree-ssa-forwprop.c: Likewise.
1146         * tree-ssa-live.c: Likewise.
1147         * tree-ssa-live.h: Likewise.
1148         * tree-ssa-loop-im.c: Likewise.
1149         * tree-ssa-loop-ivopts.c: Likewise.
1150         * tree-ssa-loop-niter.c: Likewise.
1151         * tree-ssa-loop-prefetch.c: Likewise.
1152         * tree-ssa-phiopt.c: Likewise.
1153         * tree-ssa-phiprop.c: Likewise.
1154         * tree-ssa-sccvn.c: Likewise.
1155         * tree-ssa-ter.c: Likewise.
1156         * tree-ssa-threadupdate.c: Likewise.
1157         * tree-ssa.c: Likewise.
1158         * tree-vect-analyze.c: Likewise.
1159         * tree-vect-transform.c: Likewise.
1160         * tree-vectorizer.c: Likewise.
1161         * tree-vn.c: Likewise.
1162         * tree-vrp.c: Likewise.
1163         * tree.c: Likewise.
1164         * tree.def: Likewise.
1165         * tree.h: Likewise.
1166         * unwind-dw2-fde.c: Likewise.
1167         * unwind.inc: Likewise.
1168         * value-prof.c: Likewise.
1169         * vmsdbgout.c: Likewise.
1170
1171 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
1172
1173         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
1174         always place FP constants in the TOC for TARGET_POWERPC64.
1175         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
1176
1177 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
1178
1179         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
1180         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
1181         enable for TARGET_E500_DOUBLE.
1182         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
1183         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
1184         floating-point modes like integer modes for E500 double.
1185         (rs6000_legitimate_offset_address_p): Likewise.
1186         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
1187         addressing for DDmode for E500 double.
1188         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
1189         modes as using 64-bits of registers for E500 double.
1190         (spe_build_register_parallel): Do not handle DDmode or TDmode.
1191         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
1192         specially for E500 double.
1193         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
1194         TDmode for E500 double.
1195         (rs6000_gimplify_va_arg): Only handle SDmode in registers
1196         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
1197         (rs6000_split_multireg_move): Do not handle TDmode specially for
1198         E500 double.
1199         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
1200         using 64-bit registers for E500 double.
1201         (emit_frame_save): Do not handle DDmode specially for E500 double.
1202         (gen_frame_mem_offset): Likewise.
1203         (rs6000_function_value): Do not call spe_build_register_parallel
1204         for DDmode or TDmode.
1205         (rs6000_libcall_value): Likewise.
1206         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1207         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
1208         for E500 double.
1209
1210 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
1211
1212         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
1213         in comments.
1214
1215 2008-06-04  Junjie Gu <jgu@tensilica.com>
1216
1217         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
1218         comparison for frame pointers.
1219
1220 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1221
1222         PR target/27386
1223         * config/avr/avr.h (PUSH_ROUNDING): Remove.
1224
1225 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1226
1227         PR target/30243
1228         * builtins.c (expand_builtin_signbit): Don't take lowpart when
1229         register is already smaller or equal to required mode. 
1230
1231 2008-06-04  Xinliang David Li  <davidxl@google.com>
1232
1233         * tree-call-cdce.c: New file. 
1234         (cond_dead_built_in_calls): New static variable.
1235         (input_domain): New struct.
1236         (check_pow): New function.
1237         (check_builtin_call): Ditto.
1238         (check_target_format): Ditto.
1239         (is_call_dce_candidate): Ditto.
1240         (gen_one_condition): Ditto.
1241         (gen_conditions_for_domain): Ditto.
1242         (get_domain): Ditto.
1243         (gen_conditions_for_pow_cst_base): Ditto.
1244         (gen_conditions_for_pow_int_base): Ditto.
1245         (gen_conditions_for_pow): Ditto.
1246         (get_no_error_domain): Ditto.
1247         (gen_shrink_wrap_conditions): Ditto.
1248         (shrink_wrap_one_built_in_call): Ditto.
1249         (shink_wrap_conditional_dead_built_in_calls): Ditto.
1250         (tree_call_cdce): Ditto.
1251         (gate_call_cdce): Ditto.
1252         (pass_call_cdce): New gimple pass.
1253         * passes.c: (init_optimization_passes): New pass.
1254         * tree-pass.h: New pass declaration.
1255         * opts.c (decode_options): New flag setting.
1256         * common.opt: Add -ftree-builtin-call-dce flag.
1257         * Makefile.in: Add new source file.
1258         * tempvar.def: New tv_id.
1259         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
1260
1261 2008-06-04  Richard Guenther  <rguenther@suse.de>
1262
1263         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
1264         (is_call_clobbered): Always check var_ann->call_clobbered.
1265         (mark_call_clobbered): Always set var_ann->call_clobbered.
1266         (clear_call_clobbered): Always clear var_ann->call_clobbered.
1267         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
1268         (reset_alias_info): Clear call clobbering info on MTAGs and
1269         globals as well.
1270         (set_pt_anything): Set pt_global_mem.
1271         (create_tag_raw): Adjust comment.
1272         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
1273
1274 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
1275             Maxim Kuvyrkov  <maxim@codesourcery.com>
1276
1277         * config/m68k/m68k.opt (mxgot): New option.
1278         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
1279         (m68k_output_addr_const_extra): New.
1280         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
1281         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
1282         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
1283         * doc/invoke.texi (M680x0 Options): Document -mxgot.
1284
1285 2008-06-04  Richard Guenther  <rguenther@suse.de>
1286
1287         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
1288         negative or non-representable offsets.
1289
1290 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1291
1292         * config/i386/i386.c (ix86_gen_leave): New.
1293         (ix86_gen_pop1): Likewise.
1294         (ix86_gen_add3): Likewise.
1295         (ix86_gen_sub3): Likewise.
1296         (ix86_gen_sub3_carry): Likewise.
1297         (ix86_gen_one_cmpl2): Likewise.
1298         (ix86_gen_monitor): Likewise.
1299         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
1300         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
1301         ix86_gen_one_cmpl2 and ix86_gen_monitor.
1302         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
1303         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
1304         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
1305         (ix86_expand_epilogue): Updated.
1306         (print_operand): Handle integer register operand for 'z'.
1307         (ix86_expand_strlensi_unroll_1): Likewise.
1308         (ix86_expand_strlen): Likewise.
1309         (ix86_expand_builtin): Likewise.
1310         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
1311         mov{q}/mov{l} and add{q}/add{l}.
1312
1313 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1314
1315         * config/i386/i386.md (P): New mode iterator.
1316         (SFmode push_operand splitter): Macroize DImode and SImode pushes
1317         using P mode iterator.
1318         (DFmode push_operand splitter): Ditto.
1319         (XFmode push_operand splitter): Ditto.
1320         (DFmode float_extend SFmode push_operand splitter): Ditto.
1321         (XFmode float_extend SFmode push_operand splitter): Do not generate
1322         SImode pushes for 64bit target.  Macroize Dimode and SImode
1323         pushes using P mode iterator.
1324         (XFmode float_extend DFmode push_operand splitter): Ditto.
1325
1326 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1327
1328         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
1329         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
1330         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
1331         return type to int.
1332         (ix86_call_abi_override): Remove check for call_used_regs.
1333
1334 2008-06-03  Richard Guenther  <rguenther@suse.de>
1335
1336         * tree-ssa-structalias.c (find_func_aliases): Add constraints
1337         for the lhs of calls if the return type contains pointers.
1338
1339 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1340
1341         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
1342         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
1343         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
1344         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
1345         of cfun and DEFAULT_ABI to deceide abi mode.
1346         (DEFAULT_ABI): New.
1347         (REG_PARM_STACK_SPACE): Removed.
1348         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
1349         (STACK_BOUNDARY): Use default target to deceide stack boundary.
1350         * config/i386/i386-protos.h (ix86_cfun_abi): New.
1351         (ix86_function_abi): Likewise.
1352         (ix86_function_type_abi): Likewise.
1353         (ix86_call_abi_override): Likewise.
1354         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
1355         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
1356         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
1357         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
1358         specific defines.
1359         (X86_64_REGPARM_MAX): New.
1360         (X86_64_SSE_REGPARM_MAX): New.
1361         (X64_REGPARM_MAX): New.
1362         (X64_SSE_REGPARM_MAX): New.
1363         (X86_32_REGPARM_MAX): New.
1364         (X86_32_SSE_REGPARM_MAX): New.
1365         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
1366         (ix86_function_regparm): Handle user calling abi.
1367         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
1368         by DEFAULT_ABI versus SYSV_ABI check.
1369         (ix86_reg_parm_stack_space): New.
1370         (ix86_function_type_abi): New.
1371         (ix86_call_abi_override): New.
1372         (ix86_function_abi): New.
1373         (ix86_cfun_abi): New.
1374         (init_cumulative_args): Call abi specific initialization.
1375         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
1376         (function_arg_64): Extend SSE_REGPARM_MAX check.
1377         (function_arg (): Remove TARGET_64BIT_MS_ABI.
1378         (ix86_pass_by_reference): Likewise.
1379         (ix86_function_value_regno_p): Likewise.
1380         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
1381         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
1382         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
1383         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
1384         (setup_incoming_varargs_64): Adjust regparm for call abi.
1385         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
1386         (ix86_va_start): Likewise.
1387         (ix86_gimplify_va_arg): Likewise.
1388         (ix86_expand_prologue): Likewise.
1389         (output_pic_addr_const): Likewise.
1390         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
1391         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
1392         (x86_output_mi_thunk): Likewise.
1393         (x86_function_profiler): Likewise.
1394         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
1395         (SYSV_ABI, MS_ABI): New constants.
1396         (DEFAULT_ABI): New.
1397         (init_regs): Add prototype of function in regclass.c file.
1398         (OVERRIDE_ABI_FORMAT): New.
1399         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
1400         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
1401         (OUTGOING_REG_PARM_STACK_SPACE): New.
1402         (ix86_reg_parm_stack_space): New prototype.
1403         (CUMULATIVE_ARGS): Add call_abi member.
1404         (machine_function): Add call_abi member.
1405         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
1406         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
1407
1408 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
1409
1410         PR target/34879
1411         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
1412         (avr_builtin_setjmp_frame_value): New function.
1413         * config/avr/avr.md (nonlocal_goto_receiver): Define.
1414         (nonlocal_goto): Define.
1415
1416 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
1417
1418         * config/mips/mips.c (mips_emit_loadgp): Return early if
1419         there is nothing do to, otherwise emit a blockage if
1420         !TARGET_EXPLICIT_RELOCS || crtl->profile.
1421         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
1422
1423 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1424
1425         * configure.ac: Drop unneeded backslash ending up in config.in.
1426         * acinclude.m4: Likewise.
1427         * config.in: Regenerate.
1428
1429 2008-05-26  Jan Hubicka  <jh@suse.cz>
1430
1431         * predict.c (maybe_hot_frequency_p): Break out of...
1432         (maybe_hot_bb_p): ... here.
1433         (maybe_hot_edge_p): New.
1434         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
1435         * basic-block.h (maybe_hot_edge_p): Declare.
1436
1437 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1438
1439         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
1440         (*cmpfp_<mode>_cc): Ditto.
1441         (*fp_jcc_8<mode>_387): Ditto.
1442         (*fop_<MODEF:mode>_2_i387): Ditto.
1443         (*fop_<MODEF:mode>_3_i387): Ditto.
1444         (*fop_xf_2_i387): Ditto.
1445         (*fop_xf_3_i387): Ditto.
1446
1447 2008-06-02  Tomas Bily  <tbily@suse.cz>
1448
1449         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
1450
1451 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1452
1453         * config/mips/mips.c (mips_valid_offset_p): New function.
1454         (mips_valid_lo_sum_p): Likewise.
1455         (mips_classify_address): Use them.
1456         (mips_force_address): New function.
1457         (mips_legitimize_address): Use it.
1458         * config/mips/mips.md (MOVE128): New mode iterator.
1459         (movtf): Require TARGET_64BIT.  Remove empty strings.
1460         (*movtf_internal): Rename to...
1461         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
1462         of "R" and use {,fp}{load,store} attributes instead of "multi".
1463         Use a separate define_split.
1464         (*movtf_mips16): New pattern.
1465
1466 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1467
1468         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
1469         * config/mips/mips.c (mips_expand_before_return): New function.
1470         (mips_expand_epilogue): Call it.
1471         * config/mips/mips.md (return): Turn into a define_expand.
1472         (*return): New insn.
1473
1474 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1475
1476         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
1477         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
1478         functions.  Do not emit uses and clobbers of CONCATs; individually
1479         use and clobber their operands.
1480         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
1481         gen_clobber, emit_use and gen_use.
1482         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
1483         (expand_builtin_return): Likewise.
1484         * cfgbuild.c (count_basic_blocks): Likewise.
1485         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
1486         * explow.c (emit_stack_restore): Likewise.
1487         * expmed.c (extract_bit_field_1): Likewise.
1488         * expr.c (convert_move, emit_move_complex_parts): Likewise.
1489         (emit_move_multi_word, store_constructor): Likewise.
1490         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
1491         (thread_prologue_and_epilogue_insns): Likewise.
1492         * lower-subreg.c (resolve_simple_move): Likewise.
1493         * optabs.c (widen_operand, expand_binop): Likewise.
1494         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
1495         * reload.c (find_reloads): Likewise.
1496         * reload1.c (eliminate_regs_in_insn): Likewise.
1497         * stmt.c (expand_nl_goto_receiver): Likewise.
1498         * config/alpha/alpha.md (builtin_longjmp): Likewise.
1499         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1500         * config/arm/arm.c (arm_load_pic_register): Likewise.
1501         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
1502         * config/arm/arm.md (untyped_return): Likewise.
1503         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
1504         * config/avr/avr.c (expand_prologue): Likewise.
1505         * config/bfin/bfin.c (do_unlink): Likewise.
1506         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
1507         * config/cris/cris.c (cris_expand_prologue): Likewise.
1508         * config/darwin.c (machopic_indirect_data_reference): Likewise.
1509         (machopic_legitimize_pic_address): Likewise.
1510         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
1511         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
1512         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
1513         (ix86_expand_convert_uns_didf_sse): Likewise.
1514         (ix86_expand_vector_init_general): Likewise.
1515         * config/ia64/ia64.md (eh_epilogue): Likewise.
1516         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
1517         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
1518         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
1519         (config/iq2000/iq2000.c): Likewise.
1520         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
1521         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
1522         (builtin_longjmp): Likewise.
1523         * config/mn10300/mn10300.md (call, call_value): Likewise.
1524         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
1525         * config/pdp11/pdp11.md (abshi2): Likewise.
1526         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
1527         * config/s390/s390.c (s390_emit_prologue): Likewise.
1528         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
1529         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
1530         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
1531         * config/sh/sh.c (prepare_move_operands): Likewise.
1532         (output_stack_adjust, sh_expand_epilogue): Likewise.
1533         (sh_set_return_address, sh_expand_t_scc): Likewise.
1534         * config/sparc/sparc.c (load_pic_register): Likewise.
1535         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
1536         * config/spu/spu.c (spu_expand_epilogue): Likewise.
1537         * config/v850/v850.c (expand_epilogue): Likewise.
1538
1539 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
1540
1541         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
1542         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
1543         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
1544         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
1545         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
1546         stack pointer register.
1547         (output_movhi): Remove code for interrupt specific writing to the 
1548         stack pointer register.
1549
1550 2008-05-31  Richard Guenther  <rguenther@suse.de>
1551
1552         PR tree-optimization/34244
1553         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
1554         (tree_expr_nonzero_warnv_p): Likewise.
1555         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
1556         ssa_name_nonnegative_p.
1557         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
1558         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
1559         not tree_expr_nonzero_warnv_p.
1560
1561         PR tree-optimization/36262
1562         Revert
1563         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
1564
1565         PR tree-optimization/34244
1566         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
1567         (record_numbers_of_iterations): New function.
1568         (execute_vrp): Cache the numbers of iterations of loops.
1569         * tree-scalar-evolution.c (scev_reset_except_niters):
1570         New function.
1571         (scev_reset): Use scev_reset_except_niters.
1572         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
1573
1574 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
1575
1576         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1577         __WORKAROUND_RETS when appropriate.
1578
1579 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1580
1581         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
1582         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
1583         mode iterator.
1584         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
1585         *fop_df_comm_sse insn patterns using MODEF mode iterator.
1586         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
1587         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
1588         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
1589         *fop_df_1_mixed insn patterns using MODEF mode iterator.
1590         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
1591         *fop_df_1_sse insn patterns using MODEF mode iterator.
1592         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
1593         *fop_df_1_i387 insn patterns using MODEF mode iterator.
1594         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
1595         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
1596         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
1597         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
1598         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
1599         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
1600         (*fop_xf_4_i387): Use <MODE> for mode attribute.
1601         (*fop_xf_5_i387): Ditto.
1602         (*fop_xf_6_i387): Ditto.
1603
1604 2008-05-30  Richard Guenther  <rguenther@suse.de>
1605
1606         * builtins.c (build_string_literal): Avoid generating
1607         a non-gimple_val result.
1608
1609 2008-05-30  DJ Delorie  <dj@redhat.com>
1610
1611         * exec-tool.in: Use an environment variable (private) instead of a
1612         file (shared) as a semaphore, so as to not break parallel builds.
1613
1614 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1615
1616         * optabs.c (maybe_encapsulate_block): Remove.
1617         (emit_libcall_block): Adjust accordingly.
1618         * optabs.h (maybe_encapsulate_block): Remove prototype.
1619
1620         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
1621         Don't use maybe_encapsulate_block.
1622
1623 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1624
1625         * config/rs6000/rs6000.c (rs6000_legitimize_address,
1626         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
1627         rtx is a SYMBOL_REF before calling get_pool_constant.
1628
1629 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1630
1631         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
1632
1633 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
1634
1635         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
1636         rather than OS names to choose INO_T_EQ definition.
1637         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
1638         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
1639
1640 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
1641
1642         PR target/36348
1643         * config/darwin-f.c: New.
1644         * config/t-darwin: Added rule to build darwin-f.o.
1645         * config.gcc: Defined new variable, fortran_target_objs.
1646         (*-*-darwin*): Set fortran_target_objs.
1647         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
1648         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
1649         * configure: Regenerated.
1650
1651 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1652
1653         PR target/35771
1654         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
1655         canonical type if needed.
1656
1657 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1658
1659         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
1660
1661 2008-05-29  Richard Guenther  <rguenther@suse.de>
1662
1663         PR tree-optimization/36343
1664         PR tree-optimization/36346
1665         PR tree-optimization/36347
1666         * tree-flow.h (clobber_what_p_points_to): Declare.
1667         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
1668         pointed-to variable is dereferenced is irrelevant to whether
1669         the pointer can access the pointed-to variable.
1670         (clobber_what_p_points_to): New function.
1671         * tree-ssa-alias.c (set_initial_properties): Use it.
1672         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
1673         call clobber check for NMTs.
1674
1675 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1676         
1677         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
1678         for printing gcov_type.
1679
1680 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1681
1682         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
1683         and the eh region information.
1684         * value-prof.c (gimple_move_stmt_histograms): New function.
1685         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
1686
1687 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
1688
1689         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
1690
1691 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
1692
1693         * value-prof.c (tree_ic_transform): Print counts.
1694         * tree-profile.c (tree_gen_ic_func_profiler):
1695         Clear __gcov_indreict_call_callee variable to avoid misattribution
1696         of the profile.
1697
1698 2008-05-28  Rafael Espindola  <espindola@google.com>
1699
1700         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
1701         invalid sharing.
1702
1703 2008-05-28  Richard Guenther  <rguenther@suse.de>
1704
1705         PR tree-optimization/36339
1706         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
1707         and clobbering code out of the loop.
1708
1709 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1710
1711         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
1712         letters defined.
1713
1714         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
1715         s390_contiguous_bitmask_p, s390_symref_operand_p,
1716         s390_check_symref_alignment, s390_reload_larl_operand,
1717         s390_reload_symref_address): New functions.
1718         (s390_branch_condition_mnemonic): Support compare and branch
1719         instructions.
1720         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
1721         and 'W' constraints.
1722         (s390_secondary_reload): Add secondary reloads for unaligned
1723         symbol refs or symbol refs to floating point or QI/TI mode
1724         integer values.
1725         (legitimate_address_p): Accept symbol references as addresses.
1726         (s390_expand_insv): Use rotate and insert selected bits
1727         instruction for insv when building for z10.
1728         (print_operand_address): Handle symbol ref addresses.
1729         (print_operand): Output modifier 'c' added for signed byte values.
1730         (s390_encode_section_info): Mark symbol refs with
1731         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
1732
1733         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
1734         (length attribute): RRF, RRR have 4 byte length.
1735         (FPALL, INTALL): New mode iterators added.
1736         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
1737         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
1738         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
1739         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
1740         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
1741         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
1742         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
1743         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
1744         instructions.
1745         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
1746         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
1747         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
1748         reload<INTALL:mode><P:mode>_toreg_z10,
1749         reload<FPALL:mode><P:mode>_tomem_z10,
1750         reload<FPALL:mode><P:mode>_toreg_z10,
1751         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
1752         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
1753         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
1754         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
1755         definition.
1756         (movmem, clrmem, cmpmem): New splitters added.
1757
1758         * config/s390/predicates.md (larl_operand): Use
1759         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
1760         SYMBOL_REF_ALIGN1_P.
1761         (s390_signed_integer_comparison,
1762         s390_unsigned_integer_comparison): New predicates.
1763
1764         * config/s390/s390-protos.h (s390_check_symref_alignment,
1765         s390_contiguous_bitmask_p, s390_reload_larl_operand,
1766         s390_reload_symref_address,
1767         s390_compare_and_branch_condition_mask): Prototypes added.
1768
1769         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
1770         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
1771         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
1772
1773 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1774
1775         * config/s390/s390.c (z10_cost): New cost function for z10.
1776         (s390_handle_arch_option, override_options): Support -march=z10 switch.
1777         (s390_issue_rate): Adjust issue rate for z10.
1778         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
1779         (processor_flags): Add PF_Z10.
1780         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
1781         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
1782         * gcc/config.gcc: Add z10.
1783
1784 2008-05-28  Richard Guenther  <rguenther@suse.de>
1785
1786         PR tree-optimization/36291
1787         * tree-flow. h (struct gimple_df): Remove var_anns member.
1788         * tree-flow-inline.h (gimple_var_anns): Remove.
1789         (var_ann): Simplify.
1790         * tree-dfa.c (create_var_ann): Simplify.
1791         (remove_referenced_var): Clear alias info from var_anns of globals.
1792         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
1793         (delete_tree_ssa): Clear alias info from var_anns of globals.
1794         Do not free var_anns.
1795         (var_ann_eq): Remove.
1796         (var_ann_hash): Likewise.
1797
1798 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
1799
1800         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
1801         and loongson2f entries.
1802         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
1803         * config/mips/mips.h (processor_type): Add Loongson-2E
1804         and Loongson-2F entries.
1805         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
1806         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
1807         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
1808         * doc/invoke.texi (MIPS Options): Document loongson2e
1809         and loongson2f processor names.
1810
1811 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1812
1813         PR target/35767
1814         PR target/35771
1815         * config/i386/i386.c (ix86_function_arg_boundary): Use
1816         alignment of canonical type.
1817         (ix86_expand_vector_move): Check unaligned memory access for
1818         all SSE modes.
1819
1820 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1821
1822         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
1823         Moved to the front of file.
1824
1825 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
1826             H.J. Lu  <hongjiu.lu@intel.com>
1827
1828         * dwarf2out.c (current_fde): New.
1829         (add_cfi): Use it.
1830         (lookup_cfa:): Likewise.
1831         (dwarf2out_end_epilogue): Likewise.
1832         (dwarf2out_note_section_used): Likewise.
1833
1834 2008-05-27  Michael Matz  <matz@suse.de>
1835
1836         PR c++/27975
1837         * c.opt (Wenum-compare): New warning option.
1838         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
1839
1840 2008-05-27  Michael Matz  <matz@suse.de>
1841
1842         PR middle-end/36326
1843         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
1844         non-BLKmode types.
1845         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
1846         into memory as tail calls.
1847
1848 2008-05-27  Richard Guenther  <rguenther@suse.de>
1849
1850         PR tree-optimization/36339
1851         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
1852         pointers cause all addressable variables to be call clobbered.
1853
1854 2008-05-27  Richard Guenther  <rguenther@suse.de>
1855
1856         PR tree-optimization/36245
1857         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
1858
1859 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1860
1861         * config/s390/s390.md: Replace all occurences of the 'm'
1862         constraint with 'RT'.
1863
1864 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1865
1866         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
1867         definitions added.
1868         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
1869         "*movdi_64".
1870         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
1871         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
1872         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
1873
1874 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1875
1876         * reload.c: (find_reloads): Skip alternatives according to the
1877         "enabled" attribute. Constify the constraint variable.
1878         * recog.c (get_attr_enabled): Add default implementation.
1879         (extract_insn): Set the alternative_enabled_p array
1880         in the recog_data struct.
1881         (preprocess_constraints, constrain_operands): Skip
1882         alternatives according to the "enabled" attribute
1883         * recog.h (struct recog_data): New field alternative_enabled_p.
1884         (skip_alternative): New inline function.
1885         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
1886         (record_reg_classes): Skip alternative according to the
1887         "enabled" attribute.
1888
1889         * doc/md.texi: Add documention for the "enabled" attribute.
1890
1891 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1892
1893         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
1894         * postreload.c (reload_cse_simplify_operands): Replace 'm'
1895         constraint with TARGET_MEM_CONSTRAINT.
1896         * recog.c (asm_operand_ok, preprocess_constraints,
1897         constrain_operands): Likewise.
1898         * regclass.c (record_reg_classes): Likewise.
1899         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
1900         * reload1.c (maybe_fix_stack_asms): Likewise.
1901         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
1902         * recog.h: Adjust comment.
1903         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
1904         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
1905         * doc/md.texi: Add a note to description of 'm' constraint.
1906         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
1907
1908 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
1909
1910         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
1911         that the bitfield is of integral type before testing its precision.
1912
1913 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1914             Sa Liu  <saliu@de.ibm.com> 
1915
1916         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
1917         __modti3, __udivti3, __umodti3 and __udivmodti4.
1918         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
1919         that implement TImode mul and div functions.
1920         * config/spu/multi3.c: New. Implement __multi3.
1921         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
1922         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
1923         functions on SPU.
1924
1925 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
1926
1927         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
1928         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
1929         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
1930         tls_sysv_suffix): New mode and mode attribute iterators.
1931         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
1932         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
1933         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
1934         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
1935         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
1936         iterators.
1937
1938 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1939
1940         PR tree-optimization/36329
1941         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
1942         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
1943         * cgraphbuild.c (initialize_inline_failed): Use the latter
1944         macro in lieu of the former.
1945         * ipa-inline.c (cgraph_mark_inline): Likewise.
1946         (cgraph_decide_inlining_of_small_function): Likewise.
1947         (cgraph_decide_inlining): Likewise.
1948         (cgraph_decide_inlining_incrementally): Likewise.
1949
1950 2008-05-26  Tristan Gingold  <gingold@adacore.com>
1951             Anatoly Sokolov  <aesok@post.ru>
1952
1953         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
1954         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
1955         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
1956         optimization for 'avr6' architecture.
1957
1958 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
1959
1960         PR target/34932
1961         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
1962
1963 2008-05-26  Richard Guenther  <rguenther@suse.de>
1964
1965         * tree-ssa-sccvn.c (expr_has_constants): Declare.
1966         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
1967
1968 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
1969
1970         PR middle-end/36253
1971         * caller-save.c (insert_restore): Verify alignment of spill space.
1972         (insert_save): Likewise.
1973         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
1974         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
1975         (STACK_SLOT_ALIGNMENT): Likewise.
1976         * function.c (LOCAL_ALIGNMENT): Removed.
1977         (get_stack_local_alignment): New.
1978         (assign_stack_local): Use it.  Set alignment on stack slot.
1979         (assign_stack_temp_for_type): Use get_stack_local_alignment.
1980         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
1981         (STACK_SLOT_ALIGNMENT): New.
1982         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
1983         stack slot in XFmode.
1984
1985         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
1986
1987 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
1988
1989         PR/36321
1990         * config/i386/i386.md (allocate_stack_worker_64): Make sure
1991         argument operand in rax isn't removed.
1992
1993 2008-05-26  Richard Guenther  <rguenther@suse.de>
1994
1995         PR middle-end/36300
1996         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
1997         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
1998
1999 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2000
2001         PR bootstrap/36331
2002         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
2003
2004 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
2005
2006         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
2007         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
2008
2009 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2010
2011         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
2012         build a trampoline if we don't want one.
2013         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
2014         return zero for nested functions if we don't want a trampoline.
2015
2016 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2017
2018         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
2019
2020 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
2021
2022         PR fortran/18428
2023         * c.opt: Removed undocumented option '-lang-fortran'.
2024         * c-common.h: Removed global variable 'lang_fortran'.
2025         * c-opts.c (c_common_handle_option): Removed code to handle
2026         option '-lang-fortran'. Updated includes.
2027         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
2028         definition of '__GFORTRAN__'.
2029         (define__GNUC__): Reimplemented to use BASEVER and
2030         cpp_define_formatted.
2031         (builtin_define_with_value_n): Removed.
2032         * c-incpath.h: Renamed to ...
2033         * incpath.h: ... this.
2034         * c-incpath.c: Renamed to ...
2035         * incpath.c: ... this. Updated includes.
2036         * fix-header.c: Updated includes.
2037         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
2038         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
2039         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
2040
2041 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2042
2043         * tree.h: Update the table of flags used on tree nodes.
2044         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
2045         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
2046         (FORCED_LABEL): Add access check.
2047         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
2048         (ASM_INPUT_P): Likewise.
2049         (ASM_VOLATILE_P): Likewise.
2050         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
2051         (OMP_SECTION_LAST): Access private_flag directly.
2052         (OMP_RETURN_NOWAIT): Likewise.
2053         (OMP_PARALLEL_COMBINED): Likewise.
2054         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
2055         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
2056         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
2057         deprecated_flag directly.
2058
2059 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
2060
2061         * final.c (frame_pointer_needed): Removed.
2062         * flags.h (frame_pointer_needed): Likewise.
2063
2064         * function.h (rtl_data): Add frame_pointer_needed.
2065         (frame_pointer_needed): New.
2066
2067 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
2068
2069         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
2070
2071 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
2072
2073         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
2074         SRC is a REG.
2075
2076 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
2077
2078         * c-common.c (strip_array_types): Move function to..
2079         * tree.c: ..here.
2080         (get_inner_array_type): Delete.
2081         * c-common.h (strip_array_types): Move declaration to..
2082         * tree.h: ..here.
2083         (get_inner_array_type): Delete.
2084         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
2085         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
2086         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2087         * config/pa/pa.c (emit_move_sequence): Likewise.
2088
2089 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2090
2091         * config/i386/i386.md (*sse_prologue_save_insn): Set length
2092         attribute to 34.
2093
2094 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
2095
2096         * function.c: Include target hook for nonlocal_goto frame value.
2097
2098 2008-05-24  Richard Guenther  <rguenther@suse.de>
2099
2100         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
2101         variable can be only accessed through a pointer or a union.
2102
2103 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2104
2105         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
2106         * doc/extend.texi: Likewise.
2107
2108 2008-05-23  DJ Delorie  <dj@redhat.com>
2109
2110         * config/m32c/jump.md (untyped_call): Add.
2111
2112         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
2113         for A24 to PSImode.
2114         (m32c_address_cost): Detail costs for indirect offsets.
2115
2116 2008-05-23  Rafael Espindola  <espindola@google.com>
2117
2118         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
2119         if a node is a SUBREG.
2120         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
2121         is a SUBREG.
2122
2123 2008-05-23  Paul Brook  <paul@codesourcery.com>
2124             Carlos O'Donell  <carlos@codesourcery.com>
2125
2126         * doc/extend.texi: Clarify use of __attribute__((naked)).
2127         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2128         * target.h (gcc_target): Add allocate_stack_slots_for_args.
2129         * function.c (use_register_for_decl): Use
2130         targetm.calls.allocate_stack_slots_for_args.
2131         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2132         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
2133         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
2134
2135 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2136
2137         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
2138
2139 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
2140
2141         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
2142         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
2143         is only rounded once.
2144
2145 2008-05-23  Richard Guenther  <rguenther@suse.de>
2146
2147         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
2148
2149 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
2150             Jakub Jelinek  <jakub@redhat.com>
2151
2152         PR target/36079
2153         * configure.ac: Handle --enable-cld.
2154         * configure: Regenerated.
2155         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
2156         * config/i386/i386.h (struct machine_function): Add needs_cld field.
2157         (ix86_current_function_needs_cld): New define.
2158         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
2159         (cld): New isns pattern.
2160         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
2161         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
2162         * config/i386/i386.opt (mcld): New option.
2163         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
2164         TARGET_CLD and ix86_current_function_needs_cld.
2165         (override_options): Use -mcld by default for 32-bit code if
2166         USE_IX86_CLD.
2167
2168         * doc/install.texi (Options specification): Document --enable-cld.
2169         * doc/invoke.texi (Machine Dependent Options)
2170         [i386 and x86-64 Options]: Add -mcld option.
2171         (Intel 386 and AMD x86-64 Options): Document -mcld option.
2172
2173 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
2174         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
2175         (return_in_memory_64): Likewise.
2176         (return_in_memory_ms_64): Likewise.
2177
2178 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2179
2180         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
2181         * builtins.c (fold_builtin_fpclassify): New.
2182         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
2183         * builtins.def (BUILT_IN_FPCLASSIFY): New.
2184         * c-common.c (handle_type_generic_attribute): Adjust to accept
2185         fixed arguments before an elipsis.
2186         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
2187         * doc/extend.texi: Document __builtin_fpclassify.
2188
2189 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
2190
2191         * omp-low.c (gate_expand_omp_ssa): Remove.
2192         (pass_expand_omp_ssa): Remove.
2193         (gate_expand_omp): Do not check for flag_openmp_ssa.
2194         * common.opt (-fopenmp-ssa): Remove.
2195         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
2196
2197 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2198
2199         * config/sh/sh.opt (mfixed-range): New option.
2200         * config/sh/sh-protos.h (sh_fix_range): Declare.
2201         * config/sh/sh.c (sh_fix_range): New function.
2202         * config/sh/sh.h (sh_fixed_range_str): Declare.
2203         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
2204         is not empty.
2205         * doc/invoke.texi (SH Options): Document -mfixed-range.
2206
2207 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
2208
2209         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
2210         it before the redeclaration.
2211
2212 2008-05-22  Anatoly Sokolov <aesok@post.ru>
2213
2214         * config/avr/avr.c (get_sequence_length): Add new function.
2215         (expand_prologue, expand_epilogue): Remove duplicate code.
2216
2217 2008-05-22  Rafael Espindola  <espindola@google.com>
2218
2219         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
2220         sharing.
2221
2222 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
2223
2224         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
2225         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
2226
2227         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
2228         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
2229         (vect_update_misalignment_for_peel): Likewise.
2230         (vector_alignment_reachable_p): Likewise.
2231         * tree-vect-transform.c (vectorizable_load): Likewise.
2232         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
2233         (get_vectype_for_scalar_type): Pass mode of scalar_type
2234         to UNITS_PER_SIMD_WORD.
2235
2236         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
2237         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2238         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2239         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2240         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2241
2242 2008-05-22  Ira Rosen  <irar@il.ibm.com>
2243
2244         PR tree-optimization/36293
2245         * tree-vect-transform.c (vect_transform_strided_load): Don't check
2246         if the first load must be skipped because of a gap.
2247
2248 2008-05-22  Richard Guenther  <rguenther@suse.de>
2249
2250         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
2251         more cases of offset disambiguation that is possible if
2252         strict-aliasing rules apply.
2253         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
2254         for basic offset and type-based disambiguation.
2255
2256 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2257
2258         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
2259         ix86_expand_vector_set on V16QImode for SSE4.1.
2260
2261 2008-05-21  Tom Tromey  <tromey@redhat.com>
2262
2263         * c.opt (Wimport): Mark as undocumented.
2264         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
2265         -Wno-import.
2266         (Warning Options): Likewise.
2267         * doc/cppopts.texi: Don't mention -Wimport.
2268
2269 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
2270
2271         PR tree-optimization/36287
2272         PR tree-optimization/36286
2273         * lambda-code.c (build_access_matrix): Do not use the loop->num
2274         for computing the number of induction variables: use the loop depth
2275         instead.
2276
2277 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
2278
2279         PR/36280
2280         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
2281         option -f(no-)leading-underscore.
2282
2283 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2284
2285         * config/i386/i386.c (ix86_expand_vector_init_general): Use
2286         GET_MODE_NUNITS (mode).
2287
2288 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
2289
2290         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
2291         (-mmulhw): Add 464 to description.
2292         (-mdlmzb): Likewise.
2293         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
2294         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
2295         464fp entries.
2296         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
2297         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
2298         * config/rs6000/rs6000.md: Update comments for 464.
2299
2300 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
2301
2302         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
2303
2304 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2305
2306         * config/i386/sse.md (vec_extractv4sf): Removed.
2307         (vec_extractv2df): Likewise.
2308         (vec_extractv2di): Likewise.
2309         (vec_extractv4si): Likewise.
2310         (vec_extractv8hi): Likewise.
2311         (vec_extractv16qi): Likewise.
2312         (vec_extract<mode>): New.
2313
2314 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2315
2316         * config/i386/sse.md (vec_setv4sf): Removed.
2317         (vec_setv2df): Likewise.
2318         (vec_setv2di): Likewise.
2319         (vec_setv4si): Likewise.
2320         (vec_setv8hi): Likewise.
2321         (vec_setv16qi): Likewise.
2322         (vec_set<mode>): New.
2323
2324 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2325
2326         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
2327         goto for vec_concat and vec_interleave.
2328
2329 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2330
2331         * config/i386/sse.md (vec_initv4sf): Removed.
2332         (vec_initv2df): Likewise.
2333         (vec_initv2di): Likewise.
2334         (vec_initv4si): Likewise.
2335         (vec_initv8hi): Likewise.
2336         (vec_initv16qi): Likewise.
2337         (vec_init<mode>): New.
2338
2339 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
2340
2341         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
2342
2343 2008-05-21  Tom Tromey  <tromey@redhat.com>
2344
2345         * ggc-zone.c (lookup_page_table_if_allocated): New function.
2346         (zone_find_object_offset): Likewise.
2347         (gt_ggc_m_S): Likewise.
2348         (highest_bit): Likewise.
2349         * ggc-page.c (gt_ggc_m_S): New function.
2350         * stringpool.c (string_stack): Remove.
2351         (init_stringpool): Update.
2352         (ggc_alloc_string): Use ggc_alloc.
2353         (maybe_delete_ident): New function.
2354         (ggc_purge_stringpool): Likewise.
2355         (gt_ggc_m_S): Remove.
2356         * ggc-common.c (ggc_protect_identifiers): New global.
2357         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
2358         ggc_protect_identifiers.
2359         * ggc.h (ggc_protect_identifiers): Declare.
2360         (gt_ggc_m_S): Update.
2361         (ggc_purge_stringpool): Declare.
2362         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
2363         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
2364         special case.
2365         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
2366
2367 2008-05-21  David S. Miller  <davem@davemloft.net>
2368
2369         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
2370         tmake_file.
2371
2372 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
2373
2374         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
2375         once finished.
2376
2377 2008-05-20  David Daney  <ddaney@avtrex.com>
2378
2379         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
2380         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
2381         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
2382         UNSPEC_UPDATE_GOT_VERSION): Renumber.
2383         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
2384         (atomic_hiqi_op): New define_code_iterator.
2385         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
2386         mips_expand_compare_and_swap_12.
2387         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
2388         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
2389         (sync_<optab><mode>, sync_old_<optab><mode>,
2390         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
2391         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
2392         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
2393         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
2394         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
2395         (test_and_set_12): New insn.
2396         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
2397         sync_new_<optab><mode>, sync_old_nand<mode>,
2398         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
2399         clobber to operand 0 for SI and DI mode insns.
2400         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
2401         mips_gen_fn_4): New typedefs.
2402         (mips_gen_fn_ptrs): Define new union type.
2403         (mips_expand_compare_and_swap_12): Remove declaration.
2404         (mips_expand_atomic_qihi): Declare function.
2405         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
2406         (mips_expand_atomic_qihi): ... this.  Use new generator function
2407         parameter.
2408         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
2409         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
2410         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
2411         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
2412         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
2413         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
2414         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
2415         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
2416         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
2417         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
2418         New macros.
2419
2420 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
2421
2422         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
2423         the missing break.
2424
2425 2008-05-20  Anatoly Sokolov <aesok@post.ru>
2426
2427         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
2428         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
2429         (avr_attribute_table): Add 'OS_main' function attribute.
2430         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
2431         functions with 'OS_main' attribute.
2432
2433 2008-05-20  Richard Guenther  <rguenther@suse.de>
2434
2435         PR tree-optimization/35204
2436         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
2437         helper, split out from ...
2438         (DFS): ... here.  Make the DFS walk non-recursive.
2439
2440 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
2441             Jan Sjodin  <jan.sjodin@amd.com>
2442
2443         PR tree-optimization/36181
2444         * tree-parloops.c (loop_has_vector_phi_nodes): New.
2445         (parallelize_loops): Don't parallelize when the loop has vector
2446         phi nodes.
2447
2448 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2449             Sebastian Pop  <sebastian.pop@amd.com>
2450
2451         * tree-loop-linear.c (gather_interchange_stats): Look in the access
2452         matrix, and never look at the tree representation of the memory
2453         accesses.
2454         (linear_transform_loops): Computes parameters and access matrices.
2455         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
2456         when fails.
2457         (access_matrix_get_index_for_parameter): New.
2458         * tree-data-ref.h (struct access_matrix): New.
2459         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
2460         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
2461         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
2462         am_vector_index_for_loop): New.
2463         (struct data_reference): Add field access_matrix.
2464         (DR_ACCESS_MATRIX): New.
2465         (compute_data_dependences_for_loop): Update declaration.
2466         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
2467         * lambda.h (lambda_vector_vec_p): Declared.
2468         * lambda-code.c: Depend on pointer-set.h.
2469         (lambda_collect_parameters_from_af, lambda_collect_parameters,
2470         av_for_af_base, av_for_af, build_access_matrix,
2471         lambda_compute_access_matrices): New.
2472         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
2473
2474 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
2475
2476         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
2477         $SOURCEDIR/include.
2478
2479 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2480             Sebastian Pop  <sebastian.pop@amd.com>
2481
2482         PR tree-optimization/36206
2483         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
2484         FOLD_CONVERSIONS.
2485         (instantiate_scev_1): Rename flags to fold_conversions.
2486         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
2487         outeside instantiation_loop.
2488         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
2489         (evolution_function_is_affine_or_constant_p): Removed.
2490         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
2491         instantiate_scev.
2492         (analyze_siv_subscript): Pass in the loop nest number.
2493         Call evolution_function_is_affine_in_loop instead of 
2494         evolution_function_is_affine_p.
2495         (analyze_overlapping_iterations): Pass in the loop nest number.
2496
2497 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2498             Sebastian Pop  <sebastian.pop@amd.com>
2499
2500         PR tree-optimization/36206
2501         * tree-chrec.h (chrec_fold_op): New.
2502         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
2503         and other trees.
2504
2505 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
2506
2507         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
2508         (DIRS_EQ): New.
2509         (remove_duplicates): Do not set inode on non-inode systems.
2510         Use DIRS_EQ.
2511
2512 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
2513
2514         * config.gcc (tm_file): Update comments about relative pathnames.
2515
2516 2008-05-20  Richard Guenther  <rguenther@suse.de>
2517
2518         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
2519         * tree-ssa-sccvn.c (process_scc): Likewise.
2520         * tree-ssa-sink.c (execute_sink_code): Likewise.
2521         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
2522         * tree-vrp.c (process_assert_insertions): Likewise.
2523         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2524         (perform_tree_ssa_dce): Likewise.
2525         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2526         (dump_dominator_optimization_stats): Likewise.
2527         * tree-vectorizer.c (vectorize_loops): Likewise.
2528
2529 2008-05-20  Richard Guenther  <rguenther@suse.de>
2530
2531         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
2532
2533 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
2534
2535         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
2536         (ix86_i386elf_return_in_memory): Likewise.
2537         (ix86_i386interix_return_in_memory): Likewise.
2538         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
2539         (SUBTARGET_RETURN_IN_MEMORY): New.
2540         * config/i386/i386elf.h: Likewise.
2541         * config/i386/ptx4-i.h: Likewise.
2542         * config/i386/sol2-10.h: Likewise.
2543         * config/i386/sysv4.h: Likewise.
2544         * config/i386/vx-common.h: Likewise.
2545         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
2546         * config/i386/i386.c (ix86_return_in_memory): Made static and
2547         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
2548         (ix86_i386elf_return_in_memory): Removed.
2549         (ix86_i386interix_return_in_memory): Removed.
2550         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
2551         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
2552
2553 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
2554
2555         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
2556
2557 2008-05-19  Xinliang David Li  <davidxl@google.com>
2558
2559         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
2560         * opts.c: Ditto.
2561         * common.opt: Ditto.
2562         * doc/invoke.texi: Ditto.
2563
2564 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
2565
2566         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
2567         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
2568
2569 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2570
2571         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
2572         sizes of operand array from 8/4 to 4/2.
2573         (ix86_expand_vector_init_general): Change size of operand array
2574         from 32 to 16.  Remove op0, op1 and half_mode.
2575
2576 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2577
2578         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
2579         (ix86_expand_vector_init_interleave): Likewise.
2580         (ix86_expand_vector_init_general): Use them.  Assert
2581         word_mode == SImode when n_words == 4.
2582
2583 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
2584
2585         * config/i386/i386.c (ix86_secondary_reload): New static function.
2586         (TARGET_SECONDARY_RELOAD): New define.
2587         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
2588         * config/i386/i386.md (reload_outqi): Remove.
2589
2590 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2591
2592         PR middle-end/35509
2593         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
2594         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
2595         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
2596         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
2597         (fold_builtin_1): Likewise.
2598         * builtins.def (BUILT_IN_ISINF_SIGN): New.
2599         c-common.c (check_builtin_function_arguments): Handle
2600         BUILT_IN_ISINF_SIGN.
2601         * doc/extend.texi: Document __builtin_isinf_sign.
2602         * fold-const.c (operand_equal_p): Handle COND_EXPR.
2603
2604 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
2605
2606         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
2607         EH cleanup at the end of the pass, search for those that have been
2608         turned into forwarder blocks and do the cleanup on their successor.
2609
2610 2008-05-18  Richard Guenther  <rguenther@suse.de>
2611
2612         * tree-cfg.c (verify_gimple_expr): Allow conversions from
2613         pointers to sizetype and vice versa.
2614
2615 2008-05-18 Xinliang David Li   <davidxl@google.com>
2616
2617         * gcc/tree-ssa-dce.c: Coding style fix.
2618         (check_pow): Documentation comment. 
2619         (check_log): Documenation comment. Coding style fix.
2620         (is_unnecessary_except_errno_call): Ditto.
2621         (gen_conditions_for_pow): Ditto.
2622         (gen_conditions_for_log): Ditto.
2623         (gen_shrink_wrap_conditions): Ditto.
2624         (shrink_wrap_one_built_in_calls): Ditto.
2625         * gcc/doc/invoke.texi: Better documentation string.
2626         * ChangeLog: Fix wrong change log entries from 
2627         May 17 checkin on function call DCE.
2628
2629 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2630
2631         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
2632
2633 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
2634
2635         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
2636         * df-problems.c (simulation routines): Fixed block comment to
2637         properly say how to add forwards scanning functions.
2638         
2639 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2640
2641         * tree-inline.c (setup_one_parameter): Remove dead code.
2642
2643 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2644
2645         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
2646         a BIT_AND_EXPR only for an INTEGER_TYPE.
2647
2648 2008-05-17 Xinliang David Li   <davidxl@google.com>
2649
2650         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
2651         (check_pow, check_log, is_unnecessary_except_errno_call): New 
2652         functions to check for eliminating math functions that are pure 
2653         except for setting errno.
2654         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
2655         general condition expressions for shrink-wrapping pow/log calls.
2656         (gen_shrink_wrap_conditions): Ditto.
2657         (shrink_wrap_one_built_in_call): Ditto.
2658         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
2659         (mark_operand_necessary): If debugging, output if OP is necessary.
2660         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
2661         unnecessary.
2662         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
2663         opt level >= 2.
2664         * gcc/common.opt: New user flag -ftree-builtin-dce.
2665         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
2666
2667 2008-05-16  David S. Miller  <davem@davemloft.net>
2668
2669         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
2670         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2671
2672 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
2673
2674         PR target/36246
2675         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
2676
2677 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2678
2679         * ifcvt.c (dead_or_predicable): Rename
2680         df_simulate_one_insn_backwards to df_simulate_one_insn.
2681         * recog.c (peephole2_optimize): Ditto.
2682         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
2683         Ditto.
2684         * df.h: Rename df_simulate_one_insn_backwards to
2685         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
2686         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
2687         scanning of defs and uses.
2688         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
2689         (df_simulate_one_insn_forwards): Removed.
2690
2691 2008-05-16  Doug Kwan  <dougkwan@google.com>
2692
2693         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
2694         QNaN & SNaN.
2695         (real_from_string): Handle NaNs and Inf as approriate.
2696
2697 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2698
2699         * doc/gty.texi (Source Files Containing Type Information): Note
2700         that headers should appear first in the gtfiles list.
2701
2702 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2703
2704         * tree.def (COND_EXEC): Properly documented this code.
2705
2706 2008-05-16  Diego Novillo  <dnovillo@google.com>
2707
2708         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
2709         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
2710         the new field.
2711
2712 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2713
2714         * tree-ssa-dse (max_stmt_uid): Removed.
2715         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
2716         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
2717         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
2718         * function.h (cfun.last_stmt_uid): New field.
2719         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
2720         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
2721         New functions.
2722         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
2723         (create_stmt_ann): Initialize the ann->uid field.
2724         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
2725         with new calls.
2726         * tree-flow.h (renumber_gimple_stmt_uids): New function.
2727
2728 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2729
2730         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
2731         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
2732         (init_empty_tree_cfg): Call it.
2733
2734 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2735
2736         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
2737         Update all users.
2738
2739 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2740
2741         * doc/invoke.text (-fdump-tree-*-verbose): New option.
2742         * tree-dump.c (dump_options): New verbose option.
2743         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
2744         Add verbose dump.
2745         * tree-pass.h (TDF_VERBOSE): New dump flag.
2746         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
2747         (tree-flow.h): Added include.
2748         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
2749
2750 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2751
2752         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
2753
2754         From Jie Zhang  <jie.zhang@analog.com>
2755         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2756         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
2757         mcpu=bf561-none and mcpu=bf561-0.2.
2758         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2759         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2760         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2761         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2762         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
2763         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
2764         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
2765         option.
2766         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
2767         (cputype_selected): Remove.
2768         (bfin_handle_option): Don't use cputype_selected.
2769         (override_options): When no mcpu option, enable all workarounds.
2770         Don't use bfin_workarounds.
2771         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
2772         processor type.
2773         (DEFAULT_CPU_TYPE): Don't define.
2774
2775 2008-05-16  Richard Guenther  <rguenther@suse.de>
2776
2777         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
2778         on deletion of the last stmt.
2779
2780 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2781
2782         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
2783         V8HImode for SSE2 and V16QImode for SSE4.1.
2784
2785 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
2786
2787         * cgraph.h (compute_inline_parameters): Made public.
2788         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
2789         variable_generate_summary, function_write_summary,
2790         variable_write_summary, variable_read_summary.  Added generate_summary,
2791         write_summary, read_summary.
2792         * cgraphunit.c (cgraph_process_new_functions): Changed call from
2793         pass_ipa_inline.function_generate_summary, to
2794         compute_inline_parameters. 
2795         * ipa-inline.c (compute_inline_parameters): Made public and added
2796         node parameter.
2797         (compute_inline_parameters_for_current): New function.
2798         (pass_inline_param): Now calls compute_inline_parameters_for_current.
2799         (inline_generate_summary): Removed parameter and made to loop over
2800         all cgraph nodes.
2801         (pass_ipa_inline): Updated for new IPA_PASS structure.
2802         * passes.c (execute_ipa_summary_passes): Now is called once per
2803         pass rather than once per node*pass.
2804         
2805 2008-05-15  Anatoly Sokolov <aesok@post.ru>
2806
2807         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
2808         avr_have_mul_p, avr_asm_only_p): Remove variables.
2809         (avr_override_options): Remove initialization of removed variables.
2810         (avr_file_start):  Convert removed variables to fields of 
2811         'struct base_arch_s *avr_current_arch'. 
2812         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
2813         (AVR_HAVE_MUL): (Ditto.).
2814         (AVR_HAVE_MOVW): (Ditto.).
2815         (AVR_HAVE_LPMX): (Ditto.). 
2816         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
2817         avr_asm_only_p): Remove declaration.
2818
2819 2008-05-15  Diego Novillo  <dnovillo@google.com>
2820
2821         * config/arm/arm.c (arm_return_in_memory): Fix return type.
2822         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
2823
2824 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
2825
2826         PR middle-end/36194
2827         * combine.c (check_conversion): Rename back to check_promoted_subreg.
2828         Don't call record_truncated_value from here.
2829         (record_truncated_value): Turn it into a for_each_rtx callback.
2830         (record_truncated_values): New function.
2831         (combine_instructions): Call note_uses with record_truncated_values.
2832         Change name of check_conversion to check_promoted_subreg. 
2833
2834 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
2835
2836         * doc/sourcebuild.texi: Document support for torture tests.
2837
2838 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2839
2840         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
2841         to alternative 4 of operand 2.
2842
2843 2008-05-15  Richard Guenther  <rguenther@suse.de>
2844
2845         * tree-pass.h (current_pass): Declare.
2846         (get_pass_for_id): Likewise.
2847         * passes.c (passes_by_id, passes_by_id_size): New globals.
2848         (set_pass_for_id): New function.
2849         (get_pass_for_id): Likewise.
2850         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
2851         (execute_function_todo): Flush per function statistics.
2852         * toplev.c (compile_file): Init statistics.
2853         (general_init): Do early statistics initialization.
2854         (finalize): Finish statistics.
2855         * statistics.h (statistics_early_init): Declare.
2856         (statistics_init): Likewise.
2857         (statistics_fini): Likewise.
2858         (statistics_fini_pass): Likewise.
2859         (statistics_counter_event): Likewise.
2860         (statistics_histogram_event): Likewise.
2861         * statistics.c: New file.
2862         * Makefile.in (OBJS-common): Add statistics.o.
2863         (statistics.o): Add dependencies.
2864         * doc/invoke.texi (-fdump-statistics): Document.
2865
2866         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
2867         (insert): Likewise.
2868         (execute_pre): Use statistics_counter_event.
2869         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
2870         (substitute_and_fold): Increment it.  Use statistics_counter_event.
2871
2872 2008-05-15  Diego Novillo  <dnovillo@google.com>
2873
2874         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
2875
2876         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
2877         * tree-ssa-alias.c (new_type_alias): Remove references to
2878         sub-variables from comment.
2879         * tree-ssa-operands.c (swap_tree_operands): Likewise.
2880
2881 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2882
2883         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
2884         attribute to 1 only for insertps alternative.
2885
2886 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2887
2888         * config/bfin/bfin.md (loadbytes): New pattern.
2889         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
2890         (bfin_init_builtins): Initialize it.
2891         (bdesc_1arg): Add it.
2892
2893 2008-05-15  Sa Liu  <saliu@de.ibm.com>
2894
2895         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
2896         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
2897         * testsuite/lib/target-supports.exp: Add
2898         check_effective_target_fortran_integer_16.
2899
2900 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2901
2902         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
2903         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
2904         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
2905         (TARGET_RETURN_IN_MEMORY): Define.
2906
2907 2008-05-15  Richard Guenther  <rguenther@suse.de>
2908
2909         PR middle-end/36244
2910         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
2911         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
2912         represent unmodifiable vars.
2913
2914 2008-05-15  Richard Guenther  <rguenther@suse.de>
2915
2916         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
2917         INDIRECT_REF and TARGET_MEM_REF.
2918         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2919         TARGET_MEM_REF.
2920
2921 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2922             H.J. Lu  <hongjiu.lu@intel.com>
2923
2924         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
2925         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
2926         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
2927         insn alternatives.  Add missing alternatives.
2928         (*vec_concatv2di_rex64_sse4_1): Likewise.
2929         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
2930         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
2931         Require TARGET_SSE.
2932
2933 2008-05-15  Richard Guenther  <rguenther@suse.de>
2934
2935         PR tree-optimization/36009
2936         PR tree-optimization/36204
2937         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
2938         (determine_invariantness_stmt): Record the loop a store is
2939         always executed in.
2940         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
2941         dependency.
2942
2943 2008-05-15  Richard Guenther  <rguenther@suse.de>
2944
2945         PR tree-optimization/34330
2946         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
2947         through the pointer will alias the SMT.
2948
2949 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
2950
2951         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
2952
2953 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2954
2955         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
2956
2957 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2958             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2959
2960         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
2961         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
2962         (vashl_optab): New optab for vector/vector shifts.
2963         (vashr_optab): Ditto.
2964         (vlshr_optab): Ditto.
2965         (vrotl_optab): Ditto.
2966         (vrotr_optab): Ditto.
2967         (optab_subtype): New enum for optab_for_tree_code call.
2968         (optab_for_tree_code): Add enum optab_subtype argument.
2969
2970         * optabs.c (optab_for_tree_code): Take an additional argument to
2971         distinguish between a vector shift by a scalar and vector shift by
2972         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
2973         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
2974         vector shift by a vector.
2975         (expand_widen_pattern_expr): Pass additional argument to
2976         optab_for_tree_code.
2977
2978         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
2979         vrotl_optab, vrotr_optab.
2980
2981         * expr.c (expand_expr_real_1): Update calls to
2982         optab_for_tree_code to distinguish between vector shifted by a
2983         scalar and vector shifted by a vector.
2984         * tree-vectorizer.c (supportable_widening_operation): Ditto.
2985         (supportable_narrowing_operation): Ditto.
2986         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
2987         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
2988         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
2989         (vect_create_epilog_for_reduction): Ditto.
2990         (vectorizable_reduction): Ditto.
2991         (vectorizable_operation): Ditto.
2992         (vect_strided_store_supported): Ditto.
2993         (vect_strided_load_supported): Ditto.
2994         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
2995         * expmed.c (expand_shift): Ditto.
2996
2997         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
2998         scalar type.
2999         (ashr@var{m}3): Ditto.
3000         (vashl@var{m}3): Document new vector/vector shift standard name.
3001         (vashr@var{m}3): Ditto.
3002         (vlshr@var{m}3): Ditto.
3003         (vrotl@var{m}3): Ditto.
3004         (vrotr@var{m}3): Ditto.
3005
3006         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
3007         (PPERM_INVERT): Ditto.
3008         (PPERM_REVERSE): Ditto.
3009         (PPERM_REV_INV): Ditto.
3010         (PPERM_ZERO): Ditto.
3011         (PPERM_ONES): Ditto.
3012         (PPERM_SIGN): Ditto.
3013         (PPERM_INV_SIGN): Ditto.
3014         (PPERM_SRC1): Ditto.
3015         (PPERM_SRC2): Ditto.
3016
3017         * config/i386/sse.md (mulv2di3): Add SSE5 support.
3018         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
3019         allows a memory operand to be the value being added, and split it
3020         to improve vectorization.
3021         (sse5_pmacsdqh_mem): Ditto.
3022         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
3023         (sse5_mulv2div2di3_high): Ditto.
3024         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
3025         (vec_pack_trunc_v4si): Ditto.
3026         (vec_pack_trunc_v2di): Ditto.
3027         (sse5_pcmov_<mode>): Remove code that tried to use use
3028         andps/andnps instead of pcmov.
3029         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
3030         pmacsdqh instructions.
3031         (vec_widen_smult_lo_v4si): Ditto.
3032
3033         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
3034         (PPERM_INVERT): Ditto.
3035         (PPERM_REVERSE): Ditto.
3036         (PPERM_REV_INV): Ditto.
3037         (PPERM_ZERO): Ditto.
3038         (PPERM_ONES): Ditto.
3039         (PPERM_SIGN): Ditto.
3040         (PPERM_INV_SIGN): Ditto.
3041         (PPERM_SRC1): Ditto.
3042         (PPERM_SRC2): Ditto.
3043         (ix86_expand_sse_movcc): Move the SSE5 test after the if
3044         true/false tests.
3045         (ix86_expand_int_vcond): If SSE5 generate all possible integer
3046         comparisons.
3047         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
3048         says ignore whether the last reference is a memory operand.
3049
3050 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3051             Paolo Bonzini <bonzini at gnu dot org>
3052
3053         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
3054         shift patterns.
3055
3056         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
3057         (vlshr<mode>3): Rename from vlshr<mode>3.
3058         (vashr<mode>3): Rename from vashr<mode>3.
3059         (mulv4sf3): Change the names of vector shift patterns.
3060         (mulv4si3): Ditto.
3061         (negv4sf2): Ditt.
3062
3063         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
3064         shift insns.
3065
3066         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
3067         (SI_SHLHI): Ditto.
3068         (SI_SHL): Ditto.
3069         (SI_SHLI): Ditto.
3070         (SI_ROTH): Ditto.
3071         (SI_ROTHI): Ditto.
3072         (SI_ROT): Ditto.
3073         (SI_ROTI): Ditto.
3074         (SPU_RL_0): Ditto.
3075         (SPU_RL_1): Ditto.
3076         (SPU_RL_2): Ditto.
3077         (SPU_RL_3): Ditto.
3078         (SPU_RL_4): Ditto.
3079         (SPU_RL_5): Ditto.
3080         (SPU_RL_6): Ditto.
3081         (SPU_RL_7): Ditto.
3082         (SPU_SL_0): Ditto.
3083         (SPU_SL_1): Ditto.
3084         (SPU_SL_2): Ditto.
3085         (SPU_SL_3): Ditto.
3086         (SPU_SL_4): Ditto.
3087         (SPU_SL_5): Ditto.
3088         (SPU_SL_6): Ditto.
3089         (SPU_SL_7): Ditto.
3090
3091         * config/spu/spu.md (v): New iterator macro to add v for vector types.
3092         (floatunssidf2_internal): Change vector/vector shift names.
3093         (floatunsdidf2_internal): Ditto.
3094         (mulv8hi3): Ditto.
3095         (ashrdi3): Ditto.
3096         (ashrti3): Ditto.
3097         (cgt_df): Ditto.
3098         (cgt_v2df): Ditto.
3099         (dftsv): Ditto.
3100         (vashl<mode>3): Rename from ashl<mode>3.
3101         (vashr<mode>3): Rename from ashr<mode>3.
3102         (vlshr<mode>3): Rename from lshr<mode>3.
3103         (vrotl<mode>3): Rename from rotl<mode>3.
3104
3105 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3106
3107         PR target/36224
3108         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
3109         multiply gives the wrong value when doing widening multiplies.
3110         (vec_widen_smult_lo_v4si): Ditto.
3111
3112 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
3113
3114         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
3115         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
3116         emit_library_call_value. 
3117         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
3118         * tree.h (ECF_LIBCALL_BLOCK): Removed.
3119         * calls.c (initialize_argument_information, precompute_arguments, 
3120         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
3121         (precompute_arguments): Removed flags parameter.
3122         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
3123         
3124 2008-05-14  Richard Guenther  <rguenther@suse.de>
3125
3126         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
3127         Make sure to register the store if the use is a PHI_NODE.
3128
3129 2008-05-14  Olivier Hainque  <hainque@adacore.com>
3130
3131         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
3132         memory if the component is to be referenced in BLKmode according
3133         to get_inner_reference.
3134
3135 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
3136
3137         * calls.c (emit_library_call_value_1): Restore code clearing
3138         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
3139
3140 2008-05-14  Olivier Hainque  <hainque@adacore.com>
3141             Nicolas Roche  <roche@adacore.com>
3142
3143         * configure.ac: Add support for a "gcc_subdir" variable in
3144         config-lang.in, to denote a subdirectory where the language/GCC
3145         integration files are to be found.
3146         * configure: Regenerate.
3147
3148 2008-05-14  Ira Rosen  <irar@il.ibm.com>
3149
3150         PR tree-optimization/36098
3151         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
3152         value for the first load in the group in case of a gap.
3153         (vect_build_slp_tree): Check that there are no gaps in loads.
3154
3155 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
3156
3157         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
3158         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
3159         expand_copysign_bit, ): Change call to emit_no_conflict_block to
3160         emit_insn and remove unneeded code to construct extra args.
3161         (emit_no_conflict_block): Removed.
3162         * optabls.h: (emit_no_conflict_block): Removed.
3163         * cse.c (cse_extended_basic_block): Remove search for
3164         REG_NO_CONFLICT note.
3165         * global.c: Removed incorrect comment added in revision 117.
3166         * expr.c (convert_move): Change call to emit_no_conflict_block to
3167         emit_insn.
3168         * recog.c: Change comments so that they do not mention
3169         REG_NO_CONFLICT.
3170         * local_alloc.c (combine_regs): Removed last parameter.
3171         (no_conflict_p): Removed.
3172         (block_alloc): Removed note, no_conflict_combined_regno and set
3173         local vars. Removed all code to process REG_NO_CONFLICT blocks.
3174         (combine_regs): Removed already_dead and code to look for
3175         REG_NO_CONFLICT notes.
3176         * lower_subreg (remove_retval_note): Removed code to look for
3177         REG_NO_CONFLICT block.
3178         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
3179         (resolve_clobber): Remove code to process libcalls that have
3180         REG_NO_CONFLICT notes.
3181         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
3182         case.
3183         * combine.c (can_combine_p, distribute_notes):  Removed
3184         REG_NO_CONFLICT case.
3185         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
3186         to emit_insns.
3187         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
3188         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
3189         Ditto.
3190         * reg-notes.def (NO_CONFLICT): Removed.
3191
3192 2008-05-14  David S. Miller  <davem@davemloft.net>
3193
3194         * config/sparc/sparc.c (sparc_profile_hook): If
3195         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
3196         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
3197         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3198
3199 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
3200
3201         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
3202
3203 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
3204
3205         PR target/36222
3206         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
3207         and op1 expansion before vector concat to have less live pseudos.
3208
3209 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
3210
3211         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
3212         ix86_expand_vector_set if supported.
3213
3214 2008-05-13  Diego Novillo  <dnovillo@google.com>
3215             Kenneth Zadeck  <zadeck@naturalbridge.com>
3216
3217         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
3218
3219         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
3220         phinodes_print_statistics, init_ssanames, fini_ssanames,
3221         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
3222         release_ssa_name, release_defs, replace_ssa_name_symbol,
3223         ssanames_print_statistics): Move ...
3224         * tree-flow.h: ... here.
3225         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
3226         Use FN instead of cfun.
3227         (make_ssa_name_fn): Rename from make_ssa_name.
3228         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
3229         * tree-flow-inline.h (make_ssa_name): Move from
3230         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
3231         * omp-low.c (expand_omp_parallel):
3232         * tree-flow-inline.h (redirect_edge_var_map_result):
3233         * tree-ssa.c (init_tree_ssa): Add argument FN.
3234         Use it instead of cfun.  Update all users.
3235
3236 2008-05-13  Tom Tromey  <tromey@redhat.com>
3237
3238         PR preprocessor/22168:
3239         * doc/cpp.texi (Top): Update menu.
3240         (Alternatives to Wrapper #ifndef): New node.
3241         (Other Directives): Document deprecation.
3242         (Obsolete Features): Remove menu.
3243         (Assertions): Merge node into Obsolete Features.
3244         (Obsolete once-only headers): Move earlier; rename to Alternatives
3245         to Wrapper #ifndef.
3246         * doc/cppopts.texi: Update.
3247         * c.opt (Wdeprecated): Enable for C and ObjC.
3248         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
3249         (C++ Dialect Options): Move -Wno-deprecated from here to...
3250         (Warning Options): ... here.
3251
3252 2008-05-13  Richard Guenther  <rguenther@suse.de>
3253
3254         PR middle-end/36227
3255         * fold-const.c (fold_sign_changed_comparison): Do not allow
3256         changes in pointer-ness.
3257
3258 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3259
3260         PR target/24713
3261         * config/sh/sh.c (sh_expand_prologue): Don't clear
3262         RTX_FRAME_RELATED_P for push insns.
3263
3264 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
3265
3266         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
3267
3268 2008-05-12  Anatoly Sokolov <aesok@post.ru>
3269
3270         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
3271         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
3272         Use 'machine->is_leaf' instead of 'leaf_func_p'.
3273
3274 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
3275
3276         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
3277         (*vec_concatv4sf_sse): This.
3278         (*sse2_concatv2si): Renamed to ...
3279         (*vec_concatv2si_sse2): This.
3280         (*sse1_concatv2si): Renamed to ...
3281         (*vec_concatv2si_sse): This.
3282         (*vec_concatv2di_rex): Renamed to ...
3283         (*vec_concatv2di_rex64): This.
3284         (*vec_concatv2si_sse4_1): New.
3285         (*vec_concatv2di_rex64_sse4_1): Likewise.
3286
3287 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
3288
3289         PR rtl-optimization/36111
3290         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
3291         that was created for swappable operands.
3292
3293 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
3294
3295         PR ada/36001
3296         * Makefile.in: Substitute GNATMAKE and GNATBIND.
3297         * configure.ac: Add call to ACX_PROG_GNAT.
3298
3299 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
3300
3301         * optc-gen.awk: Fix comment typo.
3302
3303 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3304
3305         * pretty-print.c (pp_integer_with_precision): Use
3306         HOST_LONG_LONG_FORMAT.
3307
3308 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
3309
3310         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
3311                 
3312 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
3313
3314         * config/i386/i386.c (bdesc_ptest): Removed.
3315         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
3316         (bdesc_args): Add __builtin_ia32_ptestz128,
3317         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
3318         (ix86_init_mmx_sse_builtins): Updated.
3319         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
3320         (ix86_expand_builtin): Updated.
3321
3322 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
3323
3324         * tree-cfg.c (valid_fixed_convert_types_p): New function.
3325         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
3326
3327 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
3328
3329         * value-prof.c (interesting_stringop_to_profile): Do not
3330         return early for BUILT_IN_MEMPCPY.
3331
3332 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
3333
3334         * calls.c (expand_call): Don't use callgraph to increase
3335         preferred_stack_boundary.
3336
3337         * cgraph.h (cgraph_rtl_info): Use unsigned on
3338         preferred_incoming_stack_boundary.
3339
3340         * final.c (rest_of_clean_state): Use unsigned on
3341         preferred_stack_boundary.
3342
3343 2008-05-09  Tom Tromey  <tromey@redhat.com>
3344
3345         PR preprocessor/22231:
3346         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
3347         proceeding.
3348
3349 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
3350
3351         PR tree-optimization/36129
3352         * tree-ssa-ccp.c: Include value-prof.h.
3353         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
3354         built-in function was folded to a constant.
3355         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
3356
3357 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
3358             Sebastian Pop  <sebastian.pop@amd.com>
3359
3360         * tree-scalar-evolution.c: Document instantiate_scev.
3361         (instantiate_parameters_1): Renamed instantiate_scev_1.
3362         Don't use the same loop for instantiation_loop and evolution_loop.
3363         (instantiate_scev): New.
3364         (instantiate_parameters): Moved...
3365         (resolve_mixers): Update call to instantiate_scev_1 to pass the
3366         same loop twice.  Maintains the semantics for this function.
3367         * tree-scalar-evolution.h (instantiate_scev): Declare.
3368         (instantiate_parameters): ...here.  Now static inline.
3369         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
3370         instead of resolve_mixers.
3371
3372 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
3373
3374         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
3375
3376 2008-05-09  Tomas Bily  <tbily@suse.cz>
3377
3378         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
3379         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
3380         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3381         * c-common.c (c_common_truthvalue_conversion): Likewise.
3382         * tree-object-size.c (compute_object_offset): Likewise.
3383         * tree-inline.c (estimate_num_insns_1): Likewise.
3384         * varasm.c (const_hash_1, compare_constant, copy_constant)
3385         (compute_reloc_for_constant, output_addressed_constants)
3386         (initializer_constant_valid_p): Likewise.
3387         * c-omp.c (check_omp_for_incr_expr): Likewise.
3388         * gimplify.c (gimplify_expr): Likewise.
3389         * c-typeck.c (c_finish_return): Likewise.
3390         * tree-vectorizer.c (supportable_widening_operation)
3391         (supportable_narrowing_operation): Likewise.
3392         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
3393         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
3394         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
3395         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
3396         (descr_info_loc): Likewise.
3397         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3398         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
3399         (fold_unary): Likewise.
3400         * builtins.c (get_pointer_alignment): Likewise.
3401         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
3402         (instantiate_parameters_1): Likewise.
3403         * tree.c (expr_align, stabilize_reference): Likewise.
3404         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3405         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
3406         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
3407         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3408         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
3409         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
3410         Likewise.
3411         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
3412         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
3413         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
3414         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
3415         (forward_propagate_comparison)
3416         (tree_ssa_forward_propagate_single_use_vars): Likewise.
3417         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
3418         * emit-rtl.c (component_ref_for_mem_expr)
3419         (set_mem_attributes_minus_bitpos): Likewise.
3420         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
3421         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
3422         Likewise.
3423         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
3424         (build_function_call, pointer_diff, build_compound_expr)
3425         (c_finish_return): Likewise.
3426         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
3427         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
3428         Likewise.
3429         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
3430         * expr.c (is_aligning_offset): Likewise.
3431         * tree-ssa-alias.c (is_escape_site): Likewise.
3432         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
3433         (check_all_va_list_escapes): Likewise.
3434         * tree-ssa-loop-ivopts.c (determine_base_object)
3435         (determine_common_wider_type): Likewise.
3436         * dojump.c (do_jump): Likewise.
3437         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
3438         * tree-gimple.c (is_gimple_cast): Likewise.
3439         * fold-const.c (decode_field_reference, )
3440         (fold_sign_changed_comparison, fold_unary, fold_comparison)
3441         (fold_binary): Likewise.
3442         * tree-ssa-alias-warnings.c (find_alias_site_helper)
3443         (already_warned_in_frontend_p): Likewise.
3444         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
3445         * tree.c (really_constant_p, get_unwidened): Likewise.
3446         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
3447         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
3448         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
3449         Likewise.
3450         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
3451         CONVERT_EXPR_P.
3452         (CONVERT_EXPR_P): Define.
3453         (CASE_CONVERT): Define.
3454         
3455 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
3456
3457         PR middle-end/36117
3458         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
3459         (delete_unmarked_insns): When deleting a call, call
3460         delete_unreachable_blocks.
3461         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3462         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
3463
3464 2008-05-08  Richard Guenther  <rguenther@suse.de>
3465
3466         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
3467         (-ftree-salias): Likewise.
3468         (salias-max-implicit-fields): Remove param documentation.
3469         (salias-max-array-elements): Likewise.
3470         * tree-pass.h (pass_create_structure_vars): Remove.
3471         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3472         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3473         * tree-ssa-alias.c (create_structure_vars): Remove.
3474         (gate_structure_vars): Likewise.
3475         (pass_create_structure_vars): Likewise.
3476         (gate_build_alias): Likewise.
3477         (pass_build_alias): Adjust to run always and dump the function.
3478         * common.opt (ftree-salias): Hide.
3479         * passes.c (init_optimization_passes): Remove
3480         pass_create_structure_vars, adjust comment.
3481         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3482         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3483         * opts.c (decode_options): Do not set flag_tree_salias.
3484         (common_handle_option): Add OPT_ftree_salias to the backward
3485         compatibility section.
3486
3487 2008-05-08  Richard Guenther  <rguenther@suse.de>
3488
3489         * tree-flow-inline.h (var_can_have_subvars): Move ...
3490         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
3491         * tree-flow.h (var_can_have_subvars): Remove.
3492         (push_fields_onto_fieldstack): Remove.
3493         (sort_fieldstack): Likewise.
3494         (struct fieldoff): Move ...
3495         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
3496         alias_set and base_for_components fields.
3497         (sort_fieldstack): Make static.
3498         (push_fields_onto_fieldstack): Likewise.  Remove code that
3499         handles anything but RECORD_TYPEs.  Remove alias_set and
3500         base_for_components handling.
3501         (create_variable_info_for): Adjust.
3502
3503 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
3504
3505         * common.opt (Wframe-larger-than=): Shorten the help message
3506         to one line.
3507         * doc/invoke.texi (Wframe-larger-than=): Add more description.
3508
3509 2008-05-08  Rafael Espindola  <espindola@google.com>
3510
3511         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
3512         trap.
3513         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
3514         trap and that both operands are gimple values.
3515         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
3516         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
3517         is a fp operation.
3518
3519 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3520
3521         * read-rtl.c (join_c_conditions): Return the first string if the
3522         two strings are equal.
3523
3524 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3525
3526         * gensupport.h (pred_data): Add a "num_codes" field.
3527         (add_predicate_code): Declare.
3528         * gensupport.c (add_predicate_code): New function.
3529         (std_pred_table): Add an "allows_const_p" field.
3530         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
3531         Remove the (incomplete) list of such codes from the codes field.
3532         (init_predicate_table): Use add_predicate_code.  Add all
3533         RTX_CONST_OBJs if allows_const_p is true.
3534         * genrecog.c (process_define_predicate): Use add_predicate_code.
3535
3536 2008-05-08  David Daney  <ddaney@avtrex.com>
3537             Richard Sandiford  <rsandifo@nildram.co.uk>
3538         
3539         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
3540         special case of constant zero operands.
3541         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
3542         old and new values.  Special case constant zero values.
3543         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
3544         fails.
3545         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
3546         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
3547
3548 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
3549
3550         PR target/36090
3551         * simplify-rtx.c (simplify_plus_minus): Create CONST of
3552         similar RTX_CONST_OBJ before CONST_INT.
3553
3554 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
3555
3556         * stmt.c (expand_stack_restore): Change sa mode if needed.
3557
3558 2008-05-08  Richard Guenther  <rguenther@suse.de>
3559
3560         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
3561         return type to bool.
3562         (ix86_sol10_return_in_memory): Likewise.
3563         (ix86_i386elf_return_in_memory): Likewise.
3564         (ix86_i386interix_return_in_memory): Likewise.
3565         * config/i386/i386.c (ix86_return_in_memory): Likewise.
3566         (ix86_sol10_return_in_memory): Likewise.
3567         (ix86_i386elf_return_in_memory): Likewise.
3568         (ix86_i386interix_return_in_memory): Likewise.
3569
3570 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3571
3572         PR bootstrap/36180
3573         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
3574         fndecl argument.
3575         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
3576         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
3577         declared in front.
3578
3579 2008-05-08  Richard Guenther  <rguenther@suse.de>
3580
3581         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
3582         * tree-data-ref.h (struct dr_alias): Remove subvars field.
3583         (DR_SUBVARS): Remove.
3584         * tree-dfa.c (dump_subvars_for): Remove.
3585         (debug_subvars_for): Likewise.
3586         (dump_variable): Do not dump subvars.
3587         (remove_referenced_var): Do not remove subvars.
3588         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
3589         (lookup_subvars_for_var): Remove.
3590         (get_subvars_for_var): Likewise.
3591         (get_subvars_at): Likewise.
3592         (get_first_overlapping_subvar): Likewise.
3593         (overlap_subvar): Likewise.
3594         * tree-flow.h (subvar_t): Remove.
3595         (struct var_ann_d): Remove subvars field.
3596         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
3597         argument.  Remove special handling of SFTs.
3598         (compute_tag_properties): Likewise.
3599         (set_initial_properties): Likewise.
3600         (compute_call_clobbered): Likewise.
3601         (count_mem_refs): Likewise.
3602         (compute_memory_partitions): Likewise.
3603         (compute_flow_insensitive_aliasing): Likewise.
3604         (setup_pointers_and_addressables): Likewise.
3605         (new_type_alias): Likewise.
3606         (struct used_part): Remove.
3607         (used_portions): Likewise.
3608         (struct used_part_map): Likewise.
3609         (used_part_map_eq): Likewise.
3610         (used_part_map_hash): Likewise.
3611         (free_used_part_map): Likewise.
3612         (up_lookup): Likewise.
3613         (up_insert): Likewise.
3614         (get_or_create_used_part_for): Likewise.
3615         (create_sft): Likewise.
3616         (create_overlap_variables_for): Likewise.
3617         (find_used_portions): Likewise.
3618         (create_structure_vars): Likewise.
3619         * tree.def (STRUCT_FIELD_TAG): Remove.
3620         * tree.h (MTAG_P): Adjust.
3621         (struct tree_memory_tag): Remove base_for_components and
3622         unpartitionable flags.
3623         (struct tree_struct_field_tag): Remove.
3624         (SFT_PARENT_VAR): Likewise.
3625         (SFT_OFFSET): Likewise.
3626         (SFT_SIZE): Likewise.
3627         (SFT_NONADDRESSABLE_P): Likewise.
3628         (SFT_ALIAS_SET): Likewise.
3629         (SFT_UNPARTITIONABLE_P): Likewise.
3630         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
3631         (union tree_node): Remove sft field.
3632         * alias.c (get_alias_set): Remove special handling of SFTs.
3633         * print-tree.c (print_node): Remove handling of SFTs.
3634         * tree-dump.c (dequeue_and_dump): Likewise.
3635         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
3636         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
3637         * tree-predcom.c (set_alias_info): Do not set subvars.
3638         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
3639         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
3640         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
3641         (add_vars_for_offset): Remove.
3642         (add_virtual_operand): Remove special handling of SFTs.
3643         (add_call_clobber_ops): Likewise.
3644         (add_call_read_ops): Likewise.
3645         (get_asm_expr_operands): Likewise.
3646         (get_modify_stmt_operands): Likewise.
3647         (get_expr_operands): Likewise.
3648         (add_to_addressable_set): Likewise.
3649         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
3650         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
3651         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
3652         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
3653         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
3654         (tree_node_structure): Likewise.
3655         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
3656         handling of SFTs.
3657         (find_what_p_points_to): Likewise.
3658
3659 2008-05-08  Sa Liu  <saliu@de.ibm.com>
3660
3661         * config/spu/spu.md: Fixed subti3 pattern.
3662
3663 2008-05-08  Richard Guenther  <rguenther@suse.de>
3664
3665         PR middle-end/36154
3666         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
3667         sure to create a representative for trailing arrays for PTA.
3668
3669 2008-05-08  Richard Guenther  <rguenther@suse.de>
3670
3671         PR middle-end/36172
3672         * fold-const.c (operand_equal_p): Two objects which types
3673         differ in pointerness are not equal.
3674
3675 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
3676
3677         * calls.c (compute_argument_block_size): Add argument tree fndecl.
3678         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
3679         (emit_library_call_value_1): Add new variable fndecl initialized by
3680         NULL_TREE. It should be the decl type of orgfun, but this information
3681         seems not to be available here, so it uses the default calling abi.
3682         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
3683         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
3684         by TARGET_RETURN_IN_MEMORY.
3685         * config/i386/i386-interix.h: Likewise.
3686         * config/i386/i386.h: Likewise.
3687         * config/i386/i386elf.h: Likewise.
3688         * config/i386/ptx4-i.h: Likewise.
3689         * config/i386/sol2-10.h: Likewise.
3690         * config/i386/sysv4.h: Likewise.
3691         * config/i386/vx-common.h: Likewise.
3692         * config/cris/cris.h: Removed #if 0 clause.
3693         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
3694         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
3695         argument.
3696         (ix86_sol10_return_in_memory): Likewise.
3697         (ix86_i386elf_return_in_memory): New.
3698         (ix86_i386interix_return_in_memory): New.
3699         * config/mt/mt-protos.h (mt_return_in_memory): New.
3700         * config/mt/mt.c: Likewise.
3701         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3702         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
3703         * config/bfin/bfin.h: Likewise.
3704         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
3705         argument.
3706         * config/bfin/bfin.c: Likewise.
3707         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3708         * config/alpha/unicosmk.h: Likewise.
3709         * config/i386/cygming.h: Likewise.
3710         * config/iq2000/iq2000.h: Likewise.
3711         * config/mips/mips.h: Likewise.
3712         * config/mn10300/mn10300.h: Likewise.
3713         * config/rs6000/rs6000.h: Likewise.
3714         * config/score/score.h: Likewise.
3715         * config/spu/spu.h: Likewise.
3716         * config/v850/v850.h: Likewise.
3717         * defaults.h: Likewise.
3718         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
3719         * expr.c (emit_block_move): Adjust use of
3720         OUTGOING_REG_PARM_STACK_SPACE.
3721         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
3722         OUTGOING_REG_PARM_STACK_SPACE.
3723         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
3724
3725 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
3726
3727         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
3728         on OMP_RETURN for OMP_FOR.
3729
3730         PR debug/35896
3731         * dwarf2out.c (dw_expand_expr, common_check): Removed.
3732         (fortran_common): New function.
3733         (gen_variable_die): Call fortran_common instead of common_check,
3734         adjust for it returning tree instead of rtx.  Formatting.
3735
3736 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
3737
3738         PR rtl/7335
3739         PR rtl/33826
3740         * see.c (see_copy_insn): Copy new pure const attributes for new call.
3741         * c-decl.c (merge_decls): Ditto.
3742         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
3743         to RTL_CONST_OR_PURE_CALL_P.
3744         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
3745         Initialized DECL_LOOPING_CONST_PURE.
3746         (process_call_operands): Set tree_side_effects properly.
3747         * tree.h (TREE_READONLY_DECL_P): Removed.
3748         (DECL_IS_PURE): Renamed to DECL_PURE_P.
3749         (DECL_LOOPING_OR_CONST_P): New macro.
3750         (struct tree_function_decl): Added looping_const_or_pure_p.
3751         (ECF_*) Renumbered.
3752         (ECF_LOOPING_OR_CONST_P): New macro.
3753         * rtlanal.c (pure_const_p): Removed.
3754         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
3755         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
3756         to RTL_CONST_CALL_P.
3757         * ipa-pure-const.c (pure_const_state_e): Added looping field.
3758         (check_decl, check_tree, check_call, scan_function): Initialize
3759         looping.
3760         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
3761         (static_execute): Set looping true for recursive functions.
3762         Undo setting state to IPA_NEITHER for recursive functions.
3763         * cse.c (cse_insn): 
3764         * ifcvt.c (noce_can_store_speculate_p): Changed
3765         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
3766         RTL_CONST_OR_PURE_CALL_P.
3767         * dse.c (scan_insn): Ditto.
3768         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
3769         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
3770         RTL_CONST_OR_PURE_CALL_P.
3771         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
3772         pure_call_p to RTL_CONST_CALL_P.
3773         * gimplify.c (gimplify_call_expr): Clear side effects for
3774         non-looping pure and constant calls.
3775         * calls.c (emit_call_1): Set rtl flags from ecf flags.
3776         (flags_from_decl_or_type): Set ecf flags from decl flags.
3777         (initialize_argument_information): Turn off
3778         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
3779         Change const to pure if callee_copies is true rather than just
3780         turning off const.
3781         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
3782         way of marking pure calls.
3783         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
3784         Remove hack that was supposed to fix pr7335 and remove old
3785         way of marking pure calls.
3786         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
3787         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
3788         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
3789         RTL_CONST_OR_PURE_CALL_P.
3790         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
3791         * loop-invariant.c (find_exits, find_invariant_bb): Changed
3792         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
3793         * sched-deps.c (schedule_analyze): Ditto.
3794         * rtl.h (struct rtx_def): Use call field, unchanging field, and
3795         return_val field of calls to represent pure and const function info.
3796         (CONST_OR_PURE_CALL_P): Deleted macro.
3797         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3798         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
3799         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
3800         TREE_READONLY.
3801         * tree-optimize.c (execute_fixup_cfg): Added test for
3802         ECF_LOOPING_CONST_OR_PURE.
3803         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
3804         DECL_PURE_P.
3805         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
3806         effects for looping pure or const calls.
3807         (verify_gimple_expr): Added verification code. 
3808         * config/alpha/alpha.c (alpha_legitimize_address,
3809         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
3810         RTL_CONST_CALL_P.
3811         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
3812         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
3813         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
3814         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
3815         RTL_CONST_OR_PURE_CALL_P.
3816         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
3817         and const calls to be deleted.
3818
3819 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
3820
3821         PR target/35714
3822         * config/i386/mmx.md (mmx_subv2sf3): New expander.
3823         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
3824         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
3825         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
3826         to handle nonimmediate operands.
3827         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
3828         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
3829         to handle nonimmediate operands.
3830         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
3831         (mmx_pmulhrwv4hi3): New expander.  Use
3832         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3833         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
3834         (sse2_umulv1siv1di3): New expander.  Use
3835         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3836         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
3837         (mmx_eq<mode>3): New expander.  Use
3838         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3839         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
3840         (mmx_uavgv8qi3): New expander.  Use
3841         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3842         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
3843         (mmx_uavgv4hi3): New expander.  Use
3844         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3845
3846         * config/i386/sse.md
3847         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
3848         to handle nonimmediate operands.
3849         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
3850         to handle nonimmediate operands.
3851         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
3852         to handle nonimmediate operands.
3853         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
3854         to handle nonimmediate operands.
3855         (sse2_unpckhpd_exp): New expander.  Use
3856         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3857         (sse2_unpcklpd_exp): New expander.  Use
3858         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3859         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
3860         to handle nonimmediate operands.
3861         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
3862         to handle nonimmediate operands.
3863         (*sse2_<plusminus_insn><mode>3): Rename from
3864         sse2_<plusminus_insn><mode>3 insn pattern.
3865         (sse2_<plusminus_insn><mode>3): New expander.  Use
3866         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3867         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
3868         (sse2_umulv2siv2di3): New expander.  Use
3869         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3870         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
3871         (sse4_1_mulv2siv2di3): New expander.  Use
3872         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3873         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
3874         (sse2_pmaddwd): New expander.  Use
3875         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3876         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
3877         (sse2_eq<mode>3): New expander.  Use
3878         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3879         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
3880         (sse4_1_eqv2di3): New expander.  Use
3881         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3882         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3883         (sse2_uavgv16qi3): New expander.  Use
3884         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3885         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3886         (sse2_uavgv16qi3): New expander.  Use
3887         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3888         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
3889         (sse2_uavgv8hi3): New expander.  Use
3890         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3891         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
3892         (ssse3_pmulhrswv8hi3): New expander.  Use
3893         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3894         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
3895         (ssse3_pmulhrswv4hi3): New expander.  Use
3896         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3897
3898         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
3899         (<sse>_vmmul<mode>3): Ditto.
3900         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
3901         (divv2df3): Ditto.
3902         (ssse3_pmaddubsw128): Use register_operand for operand 1.
3903         (ssse3_pmaddubsw): Ditto.
3904
3905         * config/i386/i386.c (struct_builtin_description)
3906         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
3907         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
3908         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
3909         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
3910         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
3911         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
3912         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
3913         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
3914         (ix86_fixup_binary_operands): Assert that src1
3915         and src2 must have the same mode when swapped.
3916         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
3917         and ix86_binary_operator_ok.  Do not force operands in registers
3918         when optimizing.
3919
3920 2008-05-07  Jan Hubicka  <jh@suse.cz>
3921
3922         * cgraph.c (dump_cgraph_node): Update.
3923         * cgraph.h (cgraph_local_info): Break out inline summary.
3924         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
3925         hook.
3926         * ipa-inline (inline_summary): New accestor function.
3927         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
3928         cgraph_decide_inlining, compute_inline_parameters): Update.
3929         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
3930
3931 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
3932
3933         Cleanup ColdFire scheduling support and add V4 pipeline model.
3934
3935         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
3936         (define_attr cpu): Add cfv4 value.
3937         (define_attr type, define_attr type1): Merge into a single 'type'
3938         attribute.  Update all uses.
3939         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
3940         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
3941 &