OSDN Git Service

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