OSDN Git Service

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