OSDN Git Service

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